Page 1 sur 2
NODE RED Vers mqtt DOMOTICZ
Publié : 13 avr. 2023, 22:57
par david86
Bonsoir à tous,
En suivant des tuto j'ai réussi à récupérer les informations d'un bus RS485 et de l'envoyer en mqtt. Via nodered je sais récupérer le topic, mais après je ne sais pas quoi ni où ni comment me diriger pour envoyer ces différentes valeurs vers domoticz ?
Merci,
Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 10:25
par boum
Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 10:36
par Jeff
Node red est très puissant et assez complexe quand on est pas développeur comme moi.
Au fur et à mesure des années, j'arrive à traiterles données et les rediriger vers autres devices (nextion, magic mirror; afficheur RGB), jamais vers domoticz d'ailleurs
Je procède de cette façon.
Récupérez les données comme tu le fais et après les traiter, via une fonction et les envoyer. Prendre ces blocs.

- fonction_node_red.JPG (12.37 Kio) Consulté 1738 fois
En dans le bloc fonction, traiter les données de cette façon
Code : Tout sélectionner
//*********************TEMP MINI MAXI*****************
//Temp mini
var temp_min = 50;
for (var i = ndebut; i <= nfin; i++) {
var tmini = (msg.data.list[i].main.temp_min);
if (tmini < temp_min) {
temp_min = tmini;
}
}
//Temp maxi
var temp_max = -50;
for (var i = ndebut; i <= nfin; i++) {
var tmax = (msg.data.list[i].main.temp_max);
if (tmax > temp_max) {
temp_max = tmax;
}
}
var tempminimaxi = parseInt(temp_min) + "°" + "/" + parseInt(temp_max) + "°";
var urltempminimaxi = "http://192.168.1.110/control?cmd=NEXTION,minimaxi1.txt=" + "\"" + tempminimaxi + "\"";
node.send({ topic: msg.payload[ndebut].dt_txt, url: urltempminimaxi });
Je passe par des urls et donc dans ton cas, tu peux utiliser
api Json de domoticz.
Tu dois aussi pouvoir l'envoyer en
MQTT compatible domoticz, en sortie à la place d'un node URL , tu prends un MQTT sortant.
Voila des pistes, en espérant t'aider. A l'occasion je testerais l'envoi vers domoticz
Edit : ici ca semble beaucoup plus clair que mes explications pour ton besoin
https://www.domoticz.com/forum/viewtopic.php?t=36463
Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 10:51
par david86
Ca fait un peu peur, mais je vais y regarder, merci quand même

Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 12:01
par Jeff
Tu verras, une fois la logique compris, ca le fera.
Essaye déjà de récupérer la valeur qui intéresse et affiche dans le debug.
Tu peux utiliser des variables aussi
Code : Tout sélectionner
var tempbatt = msg.payload.battery_temp
var conso = msg.payload.consumption
msg.payload = tempbatt + conso;
return msg
Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 12:17
par david86
ça c'est ok, merci, j'avais un peu avancé sur les debug, mais pas avec des variables. Petite avancé pour moi, merci.
Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 12:19
par david86
Maintenant ça serait d'etre capable d'envoyer cette donnée vers un idx de domoticz avec des lignes de ce type :
msg.payload = {"command": "switchlight", "idx": idx, "switchcmd": "Off"};
ou
msg.payload = {};
msg.payload.idx = 1110;
msg.payload.svalue = ".......;
return msg;

Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 12:36
par Jeff
J'ai fait vite fait l'essai avec une sonde temp/humidité/baro vers domoticz à partir de openweather
Ca marche nickel en MQTT.

- MQTT_flows.JPG (21.6 Kio) Consulté 1714 fois

- Json_open.JPG (17.51 Kio) Consulté 1714 fois
La fonction
Code : Tout sélectionner
var idx = 373;
var tempc = msg.payload.tempc;
var humidity = msg.payload.humidity;
var baro = msg.payload.pressure;
var data = tempc + ";" + humidity + ";" + 0 + ";" + baro + ";" + 0 ; //json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT;BAR;BAR_FOR
msg.payload = { "idx": idx, "nvalue": 0, "svalue": data }
return msg;

- Device_dz.JPG (17.44 Kio) Consulté 1714 fois
Pour les svalue, se servir de l'API Json, lien ci dessus.
Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 12:47
par david86
Dans la fonction, tu as copié copié collé directement ce que tu m'as mis ?
Ca communique, mais dans les log de domoticz j'ai invalid data, il y a déjà une grosse avancée, merci !
Re: NODE RED Vers mqtt DOMOTICZ
Publié : 14 avr. 2023, 12:58
par david86
Avec la fonction ci-après :
Code : Tout sélectionner
var idx = 1146;
var tempbatt = msg.payload.battery_temp
var data = tempbatt;
msg.payload = { "idx": idx, "nvalue": 0, "svalue": data }
return msg;
sachant que mon idx 1146 est un dummy device de tempérture uniquement et si je saisis dans mon explorateur directement :
Code : Tout sélectionner
adresseIP:port/json.htm?type=command¶m=udevice&idx=1146&nvalue=0&svalue=20
la valeur est prise en compte dans domoticz