Page 1 sur 1

Error: MQTT

Publié : 23 janv. 2024, 09:54
par knasson
bonjour,

Quand je veux publier un message MQTT depuis un poste deporté en faisant:

Code : Tout sélectionner

root@pi:/home/knasson/consoEAU# mosquitto_pub -h 192.168.1.38 -u mqtt -P knasson -t "domoticz/in" -m '{"command":"udevice","idx"=1038,"nvalue":0,"svalue":"22222"}'
j'obtiens cette erreur dans le log domoticz

Code : Tout sélectionner

2024-01-23 09:26:15.691 Error: MQTT: Invalid/Unhandled data received! (Topic: domoticz/in, Message: {"command":"udevice","idx"=1038,"nvalue":0,"svalue":"22222"})
Idx=1038 correspond a un device virtuel de type compteur.
le json donne la structure suivante:

Code : Tout sélectionner

/json.htm?type=command&param=udevice&idx=IDX&svalue=COUNTER[code]
Quand je recois des messages du broker mosquitto provenant d'autres devices sur le meme topic en faisant:

Code : Tout sélectionner

 mosquitto_sub -h 192.168.1.38 -u mqtt -P knasson -t domoticz/in
j'obtiens bien la copie de messages envoyé par les device a domoticz: et CES MESSAGES METTENT BIEN A JOUR LES DEVICES CORRESPONDANTS....

Code : Tout sélectionner

{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;0.00;0.00;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;1.94;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"270;W;0.00;0.00;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;1.94;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;1.94;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;6.11;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;1.94;6.11;22;24"}
{"command":"udevice","idx":1035,"nvalue":0,"svalue":"0.00;0.56"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"45;NE;1.94;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;1.94;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"90;E;6.11;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"270;W;1.94;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"45;NE;0.00;0.00;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;0.00;0.00;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"0;N;0.00;0.00;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"270;W;0.00;0.00;22;24"}
{"command":"udevice","idx":1035,"nvalue":0,"svalue":"0.00;0.56"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"315;NW;0.00;0.00;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"315;NW;0.00;0.00;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"45;NE;1.94;6.11;22;24"}
{"command":"udevice","idx":597,"nvalue":0,"svalue":"45;NE;0.00;0.00;22;24"}
Je bute la dessus car je voudrai envoyer les datas de mon compteur d'eau. La syntaxe parait correcte AVez vous une idée d'où ca eut provenir?
Merci de votre aide

Re: Error: MQTT

Publié : 23 janv. 2024, 10:19
par boum
À tout hasard

Code : Tout sélectionner

'{"command":"udevice","idx"=1038,"nvalue":0,"svalue":"22222"}'

Code : Tout sélectionner

'{"command":"udevice","idx":1038,"nvalue":0,"svalue":"22222"}'

Re: Error: MQTT (RESOLU)

Publié : 23 janv. 2024, 10:25
par knasson
Merci, merci c'était bien cela ,
bien vu en tous cas.

Cordialement
Knasson

Re: Error: MQTT

Publié : 24 janv. 2024, 17:22
par knasson
bonjour,

Sur le même sujet et la même commande qui fonctionne maintenant très bien avec une valeur numérique pour svalue;"222223" par exemple.
dans un script je veux envoyer une variable numérique $value en lieu et place du nombre "222223" ,
la valeur de $value est de 222223. si je fais "svalue": "$value" domoticz me donne une erreur.
pour résumer
si je fais :

Code : Tout sélectionner

mosquitto_pub -h 192.168.1.38 -u mqtt -P knasson -t domoticz/in -m '{"command":"udevice","idx":1040, "svalue":"222223"}'
c'est OK le compteur est bien mis a jour avec la valeur 222223
si dans mon script j'arrive avec une variable dont la valeur $value qui vaut 222223 et que je fais:

Code : Tout sélectionner

mosquitto_pub -h 192.168.1.38 -u mqtt -P knasson -t domoticz/in -m '{"command":"udevice","idx":1040, "svalue"="$value"
et bien j'ai une erreur dans le log domoticz et le compteur n'est pas mis a jour et je me demande pourquoi?

Code : Tout sélectionner

024-01-24 16:55:00.306 Error: UpdateMeter: Error converting sValue/sUsage! (IDX: 1040, sValue: '$value', sUsage: '0', dType: 113, sType: 0)
2024-01-24 16:58:15.408 Error: GetJSonDevices: exception occurred : 'stoll'
2024-01-24 16:58:15.408 Error: GetJSonDevices: exception occurred : 'stoll'
2024-01-24 16:58:15.409 Error: GetJSonDevices: exception occurred : 'stoll'
apparement stoll indique un problem de conversion string/integer?
Merci de votre aide