Voici donc la suite du tuto pour communiquer entre le nextion et tout autre système fournissant des données dont bien sûr domoticz. Cela peut-être des données météo, l'heure, la date, toutes les données compatibles avec node red.
Nous allons commencer par récupérer des données domoticz.
Au préalable, il faudra avoir installer
un serveur MQTT et ajouter le matériel dans domoticz

- Hard_MQTT.jpg (37.71 Kio) Consulté 3003 fois
Pour cela on commence à récupérer les données MQTT sortantes de domoticz avec la fonction "MQTT IN" disponible sous le node "network". On y relie une fonction json, on peut aussi déja visualiser les trames sortantes en y mettant en sortie une focntion "debug".

- MQTT_In.jpg (31.77 Kio) Consulté 3003 fois
Après il faut jouer de la fonction, voici le flow pour voir comment moi je fais, il y a plein de méthode.
Code : Tout sélectionner
[{"id":"1befe3b7.71227c","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"af82b364.faf1d","type":"mqtt in","z":"1befe3b7.71227c","name":"","topic":"domoticz/out","qos":"2","datatype":"auto","broker":"f0e0a1f2.be3d4","x":170,"y":160,"wires":[["b45edc00.b34eb"]]},{"id":"b45edc00.b34eb","type":"json","z":"1befe3b7.71227c","name":"","x":350,"y":160,"wires":[["3991777e.2b97e8","337d7c52.0ec064","d2dc9b8f.bcc6d8"]]},{"id":"337d7c52.0ec064","type":"function","z":"1befe3b7.71227c","name":"Humidity","func":"msg.topic = \"domoticz/out/\"+msg.payload.name+\"/Humidity\";\n\nif (msg.payload.dtype === \"Temp + Humidity\") \n{\nmsg.payload = msg.payload.svalue2\nreturn msg;\n}\n\n","outputs":1,"noerr":0,"x":560,"y":180,"wires":[["fc77bfed.3aebb"]]},{"id":"3991777e.2b97e8","type":"function","z":"1befe3b7.71227c","name":"Temperature","func":"msg.topic = \"domoticz/out/\"+msg.payload.name+\"/Temperature\";\nvar name = msg.payload.name;\n\nif (msg.payload.dtype === \"Temp + Humidity\") \n{\nmsg.payload = msg.payload.svalue1\n\n \nreturn msg;\n}\nelse if (msg.payload.dtype === \"Temp\")\n{\nmsg.payload = msg.payload.svalue1\n \nreturn msg;\n}\n\n\n","outputs":1,"noerr":0,"x":570,"y":120,"wires":[["fc77bfed.3aebb"]]},{"id":"fc77bfed.3aebb","type":"mqtt out","z":"1befe3b7.71227c","name":"","topic":"","qos":"","retain":"","broker":"f0e0a1f2.be3d4","x":830,"y":160,"wires":[]},{"id":"d2dc9b8f.bcc6d8","type":"debug","z":"1befe3b7.71227c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":520,"y":60,"wires":[]},{"id":"f0e0a1f2.be3d4","type":"mqtt-broker","z":"","name":"","broker":"192.168.1.100","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"15","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
De cette façon je trame les topics selon leur nom et je les récupère sous espeasy avec le device MQTT généric Import comme ceci. J'ai tellement de données à afficher que j'utilise des devices MQTT : MQTT1, MQTT2, MQTT3...

- Device_MQTT.jpg (84.44 Kio) Consulté 3003 fois
Après j'utilise le plugin nextion pour les afficher. Je l'ai modifié et recompilé pour pouvoir afficher 20 lignes

- Device_Nextion.jpg (117.14 Kio) Consulté 3003 fois
Voilà pour cette 1ère étape.
Je vous met le flow complet de mon écran 7", le dernier en date, obligé de zipper, je dépasse le nombre de caractère complet d'un post