Besoin d'aide avec Node Red et Domoticz

Forum dédié au protocole MQTT : fonctionnement, intégration ...
Pour les questions concernant le plugin de FlyingDomotic, merci d'utiliser le sous-forum dédié.
jcv
Messages : 6
Inscription : 21 nov. 2022, 22:46

Besoin d'aide avec Node Red et Domoticz

Message par jcv »

Bonsoir,
j'utilise Domoticz avec Raspberry depuis quelque temps et j'ai découvert Node red pour créer un Dashboard.
Je rencontre un pb par rapport à l'utilisation de Node red.
Je voudrais dans un premier temps récupérer les données d'une sonde de température via Domoticz et afficher les valeurs sur un Dashboard.

Quelqu'un peut il m'apporter son aide ?

Merci beaucoup

jc
Capture d’écran 2022-11-21 à 22.55.05.png
Capture d’écran 2022-11-21 à 22.55.05.png (15.56 Kio) Consulté 2195 fois
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Besoin d'aide avec Node Red et Domoticz

Message par Jeff »

Oui je epux t'aider, voici ce que j'utilise.
Il y a plusieurs manières de traiter les données :
Soit tu surveilles le topic "domoticz" comme ton exemple ou soit tu lances une requête sur un device particulier, tu traites la donnée et tu l'affiche ou la renvoi comme tu le souhaites
Nodered_temp.png
Nodered_temp.png (22.55 Kio) Consulté 2173 fois
La commande json pour lancer une requête sur un device particulier : "http request"

Code : Tout sélectionner

TonipDz/json.htm?type=devices&rid=IDX
Tu passes par un bloc "json" puis par un bloc "fonction" et après tu peux retravailler la donnée, voici un exemple

Code : Tout sélectionner

msg.payload = msg.payload.result[0].Temp;
msg.payload = (msg.payload).toFixed(1)
//msg.payload = msg.payload + "°";
//var url = "192.168.1.111/control?cmd=NEXTION,temp.txt="+"\""+msg.payload+"\"";
//var url = "192.168.1.111/control?cmd=NEXTION,temp.txt="+"%22"+msg.payload+"°"+"%22";
//msg.url = url;
return msg;
Voici un exemple de flow, tu peux aussi voir d'autres exemple dans le tuto Nextion

Code : Tout sélectionner

[{"id":"f599dccd0a2cda03","type":"inject","z":"d92935e8764fb718","name":"1 min","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":90,"y":240,"wires":[["04207534012c8fea"]]},{"id":"04207534012c8fea","type":"http request","z":"d92935e8764fb718","name":"Exterieure","method":"GET","ret":"txt","paytoqs":"ignore","url":"192.168.1.200:8080/json.htm?type=devices&rid=223","tls":"","persist":false,"proxy":"","authType":"","senderr":false,"credentials":{},"x":290,"y":240,"wires":[["fba04c368fd2d3ee"]]},{"id":"fba04c368fd2d3ee","type":"json","z":"d92935e8764fb718","name":"","property":"payload","action":"","pretty":false,"x":450,"y":240,"wires":[["133ad89133cc1e32","7bc5f5090a018a6f"]]},{"id":"133ad89133cc1e32","type":"function","z":"d92935e8764fb718","name":"Url Data","func":"msg.payload = msg.payload.result[0].Temp;\nmsg.payload = (msg.payload).toFixed(1)\n\n//msg.payload = msg.payload + \"°\";\n//var url = \"192.168.1.111/control?cmd=NEXTION,temp.txt=\"+\"\\\"\"+msg.payload+\"\\\"\";\n//var url = \"192.168.1.111/control?cmd=NEXTION,temp.txt=\"+\"%22\"+msg.payload+\"°\"+\"%22\";\n//msg.url = url;\n\n\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":240,"wires":[["96766142ae2b1094"]]},{"id":"5396c5a6e82e8048","type":"mqtt in","z":"d92935e8764fb718","name":"Baie","topic":"Baie/Temperature","qos":"2","datatype":"auto","broker":"ee3b0af6.711048","nl":false,"rap":true,"rh":0,"inputs":0,"x":160,"y":400,"wires":[["97b244fe9e14b05c"]]},{"id":"97b244fe9e14b05c","type":"json","z":"d92935e8764fb718","name":"","property":"payload","action":"","pretty":false,"x":350,"y":400,"wires":[["7bc5f5090a018a6f"]]},{"id":"7bc5f5090a018a6f","type":"debug","z":"d92935e8764fb718","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":850,"y":400,"wires":[]},{"id":"96766142ae2b1094","type":"mqtt out","z":"d92935e8764fb718","name":"","topic":"Exterieure/Temperature","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"ee3b0af6.711048","x":850,"y":240,"wires":[]},{"id":"ee3b0af6.711048","type":"mqtt-broker","name":"","broker":"192.168.1.200","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
jcv
Messages : 6
Inscription : 21 nov. 2022, 22:46

Re: Besoin d'aide avec Node Red et Domoticz

Message par jcv »

Bonsoir Jeff,
Merci pour ta réponse, cependant est il possible que tu m'envoies le paramétrage de tous tes Node afin que je puisse comprendre ?
En te remerciant d'avance
JC
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Besoin d'aide avec Node Red et Domoticz

Message par Jeff »

Bonjour,

Tu as tout ce que tu as besoin pour récupérer des infos d'un device de domoticz.
As tu bien compris mes explications...
Je vais essayé d'être plus précis, tu dois importer le flow avec le code en bas de mon post.
Tu dois changer ip et le numéro de device du node http "extérieure" de mon ex. Tu peux à ce stade relier une case de visualisation des messages case verte "msg payload" après la case json et voir dans le volet de droite les logs, icône coocinelle "debug" le json.
A partir de là tu peux relier le bloc fonction et traiter l'info que tu veux récupérer et après tu renvois cette info vers une case de dashboard...
Montre moi des images de ton flow si tu as besoin aide
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
jcv
Messages : 6
Inscription : 21 nov. 2022, 22:46

Re: Besoin d'aide avec Node Red et Domoticz

Message par jcv »

Bonjour Jeff,
Je commence à comprendre :D
Juste encore une précision, que signifie le paramètre "Topic" dans le mode "Mqtt out" ? Que dois je inscrire comme paramètres ?

Et peux tu aussi m'éclairer sur le programme contenu dans le mode fonction ? A quoi cela sert d'écrire ?

msg.payload = msg.payload.result[0].Temp;
msg.payload = (msg.payload).toFixed(1)

Voila, encore des interrogations pour moi.
Merci de ton temps

En te remerciant de ta patience
JC
Dernière modification par Keros le 23 nov. 2022, 18:37, modifié 1 fois.
Raison : Merci d'éditer le dernier message pour y rajouter l'information supplémentaire
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Besoin d'aide avec Node Red et Domoticz

Message par Jeff »

La valeur dans le topic, sert à renvoyer la valeur du msg.payload sur un topic particulier, je l'utilise sur un plugin MQTT de espeasy pour mon afficheur nextion, sur mon écran RGB...

Pour ce qui te concerne toi à la place du node mqtt tu vas utiliser un node jauge ou chart pour lafficher ta valeur msg.payload sur ton dashboard.
As tu déjà installer serveur mosquitto pour le mqtt ?
Récupères tu tes valeurs de domoticz dans les logs ?
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
jcv
Messages : 6
Inscription : 21 nov. 2022, 22:46

Re: Besoin d'aide avec Node Red et Domoticz

Message par jcv »

J'ai réussi à créer un Dashboard tout simple ! Ce n'est qu'un début !!! (voir PJ)

En fait si je comprends bien, le paramètre Topic est un espace qui te permet de stocker les données que tu filtres pour pouvoir les réexporter ultérieurement. C ça ?

JC
Pièces jointes
Capture d’écran 2022-11-23 à 18.50.12.png
Capture d’écran 2022-11-23 à 18.50.12.png (174.46 Kio) Consulté 2072 fois
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Besoin d'aide avec Node Red et Domoticz

Message par Jeff »

Cool, c'est parti.

Pour le topic, pas du tout, voir le sujet pour comprendre,
https://gagnebin.tech/glossaire/le-topi ... %20sujet).
Dans ton cas actuel, tu n'en as pas besoin car tu ne récupère pas et n'envois pas de données sur le réseau mqtt. En fait tu n'utilises pas du tout le MQTT mais tu pourrais écouter le topic domoticz et piocher dedans...
Fait un essai et met un debug pour voir.
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
jcv
Messages : 6
Inscription : 21 nov. 2022, 22:46

Re: Besoin d'aide avec Node Red et Domoticz

Message par jcv »

Bonsoir Jeff,
J'ai bien avancé sur node red. J'ai encore des progrès a faire sur les nodes "function". Je ne connais pas assez le langage pour écrire des petits bouts de programme. Connais tu un site qui pourrait m'expliquer cela en détail?

Je voudrais également commander une lampe, dont je connais l'idx via domoticz. Comment faire ? Peux tu m'orienter ?

En te remerciant
JC
Jeff
Messages : 1007
Inscription : 17 nov. 2016, 20:54
Localisation : Rennes (35)

Re: Besoin d'aide avec Node Red et Domoticz

Message par Jeff »

Bonsoir JC,

Pour les fonctions, oui c'est pas facile, il faut tomber sur des exemples mais je pense avoir fait le tour de mon besoin et pouvoir aider pour ce qui concerne domoticz. Le langage est du javascript, donc pour retravailler des chaines ou des nombres, genre arondir, couper des chaines, il faut regarder dans les fonctions javascript. Tu peux aussi voir les tutos nodered.

Sinon pour ton besoin de commande à partir du dashboard de nodered vers domoticz, il y a plein de façon de faire, je te joins des morceaux pour t'aider, sachant que je n'utilise pas le dashbord de nodered personnellement, je l'ai fait pour un copain.

Lien de API domoticz json de tous les devices : https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's

Code : Tout sélectionner

[{"id":"ff9c5f46.325f6","type":"ui_button","z":"686062c8b16cf8d5","name":"Marche pompe","group":"48503950.855868","order":5,"width":"3","height":"1","label":"Marche pompe","color":"#F0FFFF","bgcolor":"#228B22","icon":"check_circle","payload":"1","payloadType":"str","topic":"","x":380,"y":940,"wires":[["5b3d5522cfa9d10e"]]},{"id":"5b3d5522cfa9d10e","type":"http request","z":"686062c8b16cf8d5","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"192.168.1.200:8080/json.htm?type=command&param=switchlight&idx=224&switchcmd=On","tls":"","persist":false,"proxy":"","authType":"","senderr":false,"x":630,"y":940,"wires":[["822d33967947f920"]]},{"id":"822d33967947f920","type":"debug","z":"686062c8b16cf8d5","name":"","active":true,"console":"false","complete":"false","x":1110,"y":940,"wires":[]},{"id":"bbbb8b20aaebcf62","type":"function","z":"686062c8b16cf8d5","name":"Url Data","func":"if (msg.payload == 0)\n{\nvar url = \"192.168.1.200:8080/json.htm?type=command&param=switchlight&idx=224&switchcmd=Off\";\nmsg.url = url;\nreturn msg;\n}\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":1000,"wires":[["cb7c11513adf8be3"]]},{"id":"966854881fbd779d","type":"ui_button","z":"686062c8b16cf8d5","name":"Arrêt pompe","group":"48503950.855868","order":6,"width":"3","height":"1","passthru":false,"label":"Arrêt pompe","tooltip":"","color":"#F0FFFF","bgcolor":"#1E90FF","className":"","icon":"close","payload":"0","payloadType":"str","topic":"","topicType":"str","x":370,"y":1000,"wires":[["bbbb8b20aaebcf62"]]},{"id":"cb7c11513adf8be3","type":"http request","z":"686062c8b16cf8d5","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"","tls":"","persist":false,"proxy":"","authType":"","x":810,"y":1000,"wires":[["822d33967947f920"]]},{"id":"48503950.855868","type":"ui_group","name":"Rechauffeur","tab":"982905c.d4adff8","order":2,"disp":false,"width":"6"},{"id":"982905c.d4adff8","type":"ui_tab","name":"Domotique","icon":"dashboard","order":1}]
Version: 2023.1 sur VM Synology, docker Zwave Js UI (Z-stick GEN5, Fibaro...), Zigbeefordomoticz. Nextion RGB Led Screen
Répondre