SCRIPTS MQTT
communication entre 2 serveurs Domoticz Après quelques problèmes avec une mise à jour de node-red, mon réseau Zigbee2mqtt ne fonctionnait plus; pour éviter ces soucis j'ai décidé d'ajouter une VM sur mon serveur Proxmox afin de créer un serveur MQTT indépendant du serveur domoticz , d'installer un Domoticz 2020 sur une autre VM car la mise à jour de mon Domoticz opérationnel avait échouée. Par contre je voulais conserver les affichages sur tablette de mes custom's pages , j'ai donc opté pour un transfert en douceur de mon DZ 2019 vers un DZ 2020 avec MQTT:- création de la VM domoticz 2020 - ajout de la passerelle Zigbee2mqtt sur ce serveur - création de capteurs virtuels sur domoticz 2019 pour recevoir les données du réseau Zigbee - transfert progressif des autres données et des nombreux scripts python, bash ,lua concernant mon portier , ma BD mySql ,.... Cette page ne traite que de la communication entre 2 serveurs Domoticz (même de versions différentes) par MQTT ou MQTTS , qui peut permettre de regrouper des valeurs provenant de sites géographiques éloignés.
Exemple avec un capteur de T° Zigbee3mqtt le capteur mesure la température de la cave , la passerelle Zigbee2mqtt est installée sur Domoticz 2020
Le script crée dans Domoticz 2020
Script Lua
--envoi de données d'un Domoticz 192.168.1.86 à un domoticz 192.168.1.75 --le serveur MQTTS et installé avec le serveur 192.168.1.75 -- -- commandArray = {} -- local HOST="192.168.1.75" -- si tls local CA="/etc/mosquitto/ca_certificates/ca.crt" -- local IDX="237" local sonde1 = 'Temp_cave' --Nom de la sonde de température -- limiter température à x décimal function round(num,numDecimal) local mult = 10^(numDecimal or 0) return math.floor(num * mult + 0.5) / mult end -- if (devicechanged[sonde1]) then local temperature = devicechanged[string.format('%s_Temperature', sonde1)] --Temperature relevée dans la cave temp = round(temperature,1) print('temp_cave='..temp) local commande='{"command":"udevice", "idx":237, "svalue":"'..temp..'"}' os.execute('mosquitto_pub -h '..HOST..' -t "domoticz/in" -m \''..commande..'\' --cafile /etc/mosquitto/ca_certificates/ca.crt') end return commandArray
Création d' un capteur virtuel dans Domoticz 2019
les Logs:
- Domoticz 2019:
crée le 31/01/2021