Page 2 sur 6

Re: Plugin MQTT de FlyingDomotic

Publié : 28 mai 2024, 13:50
par Flying Domotic
C'est "normal". Si le dispositif peut être modifié depuis Domoticz, il faut préciser des éléments "set". Sinon, il est prudent de définir le dispositif comme protégé, ou lui donner un type non modifiable.

Re: Plugin MQTT de FlyingDomotic

Publié : 28 mai 2024, 14:08
par Flying Domotic
La dernière version permet de passer des commandes (après l'avoir installée ;-)

Pour la température, par exemple, définir comme suit :

Code : Tout sélectionner

{
        "temp target heating": {
            "topic": "/home/alsavo/config/1",
            "type": "242", "subtype":"1","switchtype":0,
            "mapping":{"item":"", "multiplier":0.1},
            "set": {"command": "plugins/MqttMapper/alsavoSet.sh 2 # "}
        }
}
Créer un fichier alsavoSet.sh dans le répertoire du plugin MqttMapper comme suit :

Code : Tout sélectionner

#!/bin/bash
value=$(echo "scale=0; $2 / 1" | bc)
[chemin où est installé AlsavoCtrl]/AlsavoCtrl -s 824500039214 -l 8608 -a 192.168.1.66 -p 1194 $1 $value  | python3 mqpublish.py
Changer la protection en exécutable :

Code : Tout sélectionner

chmod +x alsavoSet.sh
Vérifier que la commande "bc" est installée (en saisissant "bc" dans un shell). Si elle ne l'est pas, l'installer par

Code : Tout sélectionner

sudo apt install bc
Tenter le changement et bien vérifier les logs et la PAC, histoire que la consigne ne soit pas 10 fois trop grande ou petite, vu qu'il y a un multiplicateur. Si ça coince, ne pas hésiter à forcer la valeur à la min par la commande AlsavoCtrl et à râler ici ;-)

Pour info, le fichier de commande attend le registre à charger en premier paramètre (ici 2), suivi de la consigne à affecter (ici #, qui sera remplacé par la valeur donnée dans Domoticz).

Re: Plugin MQTT de FlyingDomotic

Publié : 28 mai 2024, 18:42
par knasson
bonsoir,

Je vois cette erreur dans le log domoticz

Code : Tout sélectionner

2024-05-28 18:29:00.166 Error: MQTT_mapper: Error 2 executing plugins/MqttMapper/alsavoSet.sh 2300.0
Par ailleurs lors de la rédaction du la ligne "set" dans MqttMapper.json, j'ai apparemment un problème de syntaxe avec la fin de la ligne mon editeur "nano" me l'ecrit en blanc. j'ai du supprimer les espaces pour ca me paraisse correct.
je l'ai ecrit comme cela...

Code : Tout sélectionner

"set": {"command": "plugins/MqttMapper/alsavoSet.sh 2#"}
sans espace entre 2 et #ni après #..
je pense que l'erreur vient de là.
je vais titiller la syntaxe et vais voir....
je l'ai réécrit avec les espaces et j'ai la meme erreur...je cherche
en tous ca merci ....
edit: 19h46
Ca marche!(presque) disons que j'ai toujours cette erreur chaque fois ue je change la temperature de consigne...
024-05-28 19:40:05.092 Error: MQTT_mapper: Error 2 executing plugins/MqttMapper/alsavoSet.sh 2 270.0
2024-05-28 19:41:27.076 Error: MQTT_mapper: Error 2 executing plugins/MqttMapper/alsavoSet.sh 2 265.0
2024-05-28 19:43:50.100 Error: MQTT_mapper: Error 2 executing plugins/MqttMapper/alsavoSet.sh 2 275.0
2024-05-28 19:44:47.114 Error: MQTT_mapper: Error 2 executing plugins/MqttMapper/alsavoSet.sh 2 250.0
Ensuite la valeur ne se met pas a jour dans les 5 s comme normalement attendu, mais c'est un peu différé et pas régulier.
Il semble qu'il y ait une interference entre la commande d'envoi et celle de reception.
Je vais faire des manip en bloquant l'envoi mqtt.
Est ce que cette erreur te parle?

Re: Plugin MQTT de FlyingDomotic

Publié : 28 mai 2024, 18:48
par Flying Domotic
Il faut écrire :

Code : Tout sélectionner

"set": {"command": "plugins/MqttMapper/alsavoSet.sh 2 #"}
avec un espace avant et après le "2", qui est le premier paramètre indiquant qu'on va faire un set sur l'item 2, # sera remplacé par la valeur.

Re: Plugin MQTT de FlyingDomotic

Publié : 28 mai 2024, 20:02
par knasson
oui je m'en doutais donc j'ai bien ecritet je tourne avec cette syntaxe.

Code : Tout sélectionner

 "temp target cooling":{"topic": "/home/alsavo/config/2",
        "type": "242", "subtype":"1","switchtype": "0",
        "mapping":{"item":"value",  "multiplier":0.1},
        "set": {"command": "plugins/MqttMapper/alsavoSet.sh 2 # "}
        },
toujours cette erreur dans le log...mais qui apparement n'empêche pas de mettre à jour la valeur.

Donc encore merci pour cette solution et Bravo Bravo...
Je considere que ca marche car je viens de faire 2 ou 3 essais et c'est pas mal!!!
de toute façon, d'origine sur domoticz les setpoints on toujours eu des petits problème de prise en compte des valeurs.
Il faut souvent faire la manip 2 fois de suite pour que ca enregistre.
Donc on est bien👌

Re: Plugin MQTT de FlyingDomotic

Publié : 28 mai 2024, 20:40
par Flying Domotic
Il faudrait regarder, mais c'est probablement le code erreur renvoyé par la commande qui n'est pas nul.

Re: Plugin MQTT de FlyingDomotic

Publié : 29 mai 2024, 16:55
par knasson
bonjour ,

J'ai paramétré les 3 "target temperature" avec la commande.
ca marche trés bien.

Code : Tout sélectionner

 
 "temp target cooling":{"topic": "/home/alsavo/config/2",
        "type": "242", "subtype":"1","switchtype": "0",
        "mapping":{"item":"value",  "multiplier":0.1},
        "set": {"command": "plugins/MqttMapper/alsavoSet.sh 2 # "}
     },
  "temp target autoMode":{"topic": "/home/alsavo/config/3",
        "type": "242", "subtype":"1","switchtype": "0",
        "mapping":{"item":"value",  "multiplier":0.1},
        "set": {"command": "plugins/MqttMapper/alsavoSet.sh 3 # "}
     },
   "temp target heating":{"topic": "/home/alsavo/config/1",
        "type": "242", "subtype":"1","switchtype": "0",
        "mapping":{"item":"value",  "multiplier":0.1},
        "set": {"command": "plugins/MqttMapper/alsavoSet.sh 1 # "}
    }

maintenant j'ai 1 multiswitch

Code : Tout sélectionner

 
 "Mode de fonctionnement":{"topic": "/home/alsavo/config/4",
        "type":"244", "subtype":"62", "switchtype":"18",
        "options":{"SelectoStyle":"0","LevelOffHidden":"false","LevelNames":"Chauffage|AutoMode|Cooling"},
        "mapping":{"item":"value", "default":"0", "values": {"157":"0","158":"10","156":"20"}},
        "set": {"command":"plugins/mqttMapper/alsavoSet.sh 4 #" }
        }
la il est evident que ca ne peut pas marcher tel quel car je n'envoie qu'une valeur, alors qu'il faut en envoyer une pour chaque niveau du selecteur (0,10,20).Là je pense avoir tous les outils ( le script) , mais je bute sur la syntaxe.
I doit falloir employer 3 fois la commande (1 fois par niveau), mais j'ignore la syntaxe qu'il faut utiliser pour cela.
Si ce n'est pas abuser puis je avoir ton aide pour écrire le "set"?
la table de verité est la suivante: (Milles excuses au moderateur)

Modération

Publié : 29 mai 2024, 22:34
par Keros
Pour tes images, peux-tu s'il te plait les redimensionner avant de les envoyer sur le forum ? Pour charger ton message, il faut télécharger 4 Mo d'image : c'est énorme :o Une image de 200 Ko suffit largement et ceux qui n'ont pas de fibre 100 Mo/s pourront continuer de profiter d'une navigation fluide. Sans parler des sauvegardes du forum qui vont exploser à ce rythme :roll: Ce serait sympa si tu pouvais éditer ton post et recharger des photos plus légères comme demandé dans la section Bien utiliser le forum.. Merci

Re: Plugin MQTT de FlyingDomotic

Publié : 29 mai 2024, 23:25
par knasson
OK c'est bien normal , je vous demande de m'excuser..Merci bonne soirée

knasson

Re: Plugin MQTT de FlyingDomotic

Publié : 30 mai 2024, 01:28
par Flying Domotic
Concernant la table de vérité, il y a en fait pas mal de dispositifs.
Pour l'index 4:
  • Pompe : on/off
  • Mode : Chauffage/Auto/Raffraichissement
  • Horloge : on/off
A priori, on peut trouver :
  • Froid=24, Chaud=25, Auto=26
  • Pompe on = +32
  • Horloge on = +132
Pour l'index 16 :
  • Ventillo chauffage : Powerfull/Smart/Silent
  • Ventillo auto : Smart
  • Ventillo froid : Powerfull/Smart/Silent
Il faudrait donc créer 2 inters virtuels (pompe et horloge) et 4 sélecteurs virtuels (mode + 3 ventillo).

Il faudrait créer 2 dispositifs cachés (un pour l'index 4 et un pour le 16) avec MqttMapper.

Il faudrait écrire un script pour lire les dispositifs cachés et charger les inters et les sélecteurs à partir des valeurs lues.

Il faudrait écrire un script pour récupérer les changements des inters et des sélecteurs et recomposer les valeurs des dispositifs cachés.

Je dois pouvoir donner un coup de main si besoin.