(modifié le 11 janvier 2023 à 23:32)

Utilisateur de Domoticz depuis de nombreuses années, j'ai pu constaté qu'il est un peu en retard côté intégrations et plugins par rapport à ceux disponibles dans Home Assistant. En effet ils sont souvent moins poussés, ou pire non fonctionnels.

Voyons comment réunir le meilleur des 2 mondes, grâce à MQTT qui va permettre d'envoyer dans Domoticz les données des capteurs collectés par HomeAssistant.

Ce tutoriel est proposé par TurboX, fidèle lecteur du blog, pensez à laisser un commentaire si le contenu vous plaît 😍

J'utilise Home Assistant qui tourne en docker sur un NAS Synology ainsi que Domoticz, que je trouve plus adapté à mon besoin (ça c'est personnel) qui tourne sur un Raspberry Pi.

Home Assistant récupère toutes les informations de mes NAS, de mon cozytouch, de mes panneaux solaires (enphase), etc. Voyons donc comment faire pour les données récupérées dans HomeAssistant remontent dans Domoticz.

Tutoriel

Pré requis :

  • Home Assistant
  • Domoticz
  • un broker MQTT

MQTT explorer pourra être utilisé pour vérifier les données MQTT

Il faut installer paho-mqtt et pyyaml :

pip3 install paho-mqtt
sudo pip install pyyaml

Il y a deux fichiers à copier (dans mon cas sur le Raspberry).

Soit vous téléchargez les fichiers soit vous faites un git clone :

  • MQTTlink.py : script qui permet de faire la déclaration des appareils sur un broker MQTT. En utilisant l'autodiscovery sous Domoticz les appareils seront ajouté automatiquement en s'abonnant au topic
  • config.yaml : fichier de configuration

Stockez les deux fichiers dans un répertoire (par ex sur le Raspberry /home/pi/scripts)

 

Il suffit de modifier le fichier de configuration selon sa configuration (exemples présents).

ℹ Si l'accès au broker MQTT demande un mot de passe, il faut décommenter et éditer les lignes 13 et 14 du fichier .py.

Puis  :

chmod +x MQTTlink.py
python3 MQTTlink.py

Dans MQTT explorer, on peut vérifier que le topic a bien été créé avec la configuration des capteurs.

Côté Domoticz

Dans Configuration/Matériel  > ajouter "MQTT Auto Discovery Client Gateway with LAN interface"

Configurez en adaptant l'IP du MQTT (avec identifiant/mdp si nécessaire).

Une fois ajouté allez dans les logs : vous devriez voir la découverte des dispositifs MQTT.

Maintenant il reste à envoyer de Home Assistant vers le broker MQTT.

Côté HomeAssistant

Dans Paramètres/Appareils et services : installez l'intégration "MQTT" (configurer le broker si besoin).

Ensuite dans Paramètres/Automatisations et scènes, il faut créer une scène par capteur (pour ceux sont à l'aise on peut aussi le faire via le automations.yaml)

code:

service: mqtt.publish
data:
topic: Qdata/last/envoy/1/value/1
payload: >-
{"value":{{states('sensor.xxxxx')}},"nodeName":"consommation_electric_w_value","nodeLocation":""}

Code yaml :

alias: Consommation_w
description: ""
trigger:
- platform: state
entity_id:
- sensor.xxxxx
condition: []
action:
- service: mqtt.publish
data:
topic: "Qdata/last/envoy/1/value/1"
payload: >-
{"value":{{states('sensor.xxxxxx')}},"nodeName":"consommation_electric_w_value","nodeLocation":""}
mode: single

A la ligne "topic", il faut renseigner tel que:

"Qdata/last/" + name + "/" + str(i) + "/value/1"

Name étant le nom du capteur et l'ID dans le fichier config.yaml.

Conclusion

Et voilà ! Chaque mise à jour du capteur sous Home Assistant sera récupéré par Domoticz. Ce script a été testé avec succès sur des capteurs d'énergie.

A noter que pour les capteurs d'énergie qui remontent la puissance (W) et l'énergie (kWh) il suffit de mettre le même nom pour que la puissance soit bien remontée dans les deux capteurs de Domoticz, comme dans l'exemple ID1 et ID2 du config.yaml.

Je vais essayer de maintenir et développer le script, vous pourrez donc faire un git pull pour récupérer la dernière mise à jour. J'aimerai aussi passer le tout en docker, si quelqu'un à les connaissances et est intéressé pour le faire je suis preneur.

Merci à TurboX pour ce tuto 👍

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter