Oui, déjà, je fais abstraction des protocoles. Une lampe est une lampe, je ne veux pas savoir si c’est du zwave, du zigbee, du chacon ou autre…
Avant, sous Jeedom, je doublais tous les équipement avec des Virtuels. Ouais, je sais, c’est pas bien, mais c’est bien pratique.
Maintenant, tous les protocoles passent par le protocole MQTT d’une manière ou d’une autre.
Ensuite, Node-RED fait la correspondance « en masse » vers des équipements « Virtuels ».
Les topics sont sous la forme
- domotique/nodered/piece/equipement/commande
- domotique/nodered/piece/equipement/commande/set
- domotique/nodered/piece/equipement/commande/get
Dans MQTT Explorer, j’ai ceci
Dans un autre onglet, Node-RED souscrit au topic domotique/nodered/#
. Puis, j’ai une routine qui sauvegarde tout ce qui rentre dans une seule variable globale mqtt qui est objet JSON contenant toute l’arborescence.
Dans les variables context de Node-RED, j’ai une seule variable (context) globale mqtt
Ensuite, les messages sont filtrés par équipement (porte, fenêtre, lumiere, soleil,…).
Pour les scénarios, je prends les équipements (porte, fenêtre, lumiere, soleil,…) qui m’intéresse et dès qu’un évenement arrive, je regarde ce dont j’ai besoin dans la variable globale pour effectuer la logique. Comme toutes les infos sont stockées en local, c’est très rapide, pas besoin d’aller intérroger les équipements Jeedom.
Par exemple, voici la partie de la logique pour allumer/éteindre les lumières de chaque pièce.
flows_lumieres.json.txt (77,6 Ko)
Jeedom devient juste une interface graphique avec des seulement des équipements JMQTT
Alors qui est en Z-Wave/Zigbee/Chacon ? On s’en fout !