Comment connecter Home Assistant et Domoticz 🩵
Je migre de Domoticz vers Home Assistant, progressivement.
La bonne nouvelle ? Home Assistant et Domoticz peuvent se parler
J'ai créé des interactions entre ces 2 systèmes de domotique. Ainsi je peux migrer chaque périphérique en temps voulu et sans pression, le temps d'appréhender Home Assistant.
Dans cet article je vous explique comment un interrupteur relié à Home Assistant peut donner un ordre d'allumage à un bandeau LED piloté par Domoticz.
Le but
Lorsque j'appuie sur un bouton Zigbee (IKEA Shortcut E1812) relié à Home Assistant je veux qu'il ordonne à Domoticz d'allume la tête de lit.
La tête de lit étant reliée à Domoticz en Zigbee, il s'agit d'un bandeau LED USB branché sur une prise LIDL (TS011F).
Domoticz fonctionne sur un Raspberry Pi et HomeAssistant sur un mini PC, ce sont 2 machines distinctes.
Principe et pré-requis
Dans mon installation HA je dispose d'un broker MQTT (Moquitto) et de Zigbee2MQTT (Z2M).
J'aurais pu accéder à l'état du bouton depuis Domoticz via MQTT, mais je vous présente ici une méthode générique qui fonctionne avec n'importe quel type de périphérique. Si vous aviez eu un périphérique WiFi Tuya dans HA il n'aurait pas été exposé dans le broker MQTT (à moins de relayer l'état Tuya vers MQTT...).
Pré-requis : HA et Domoticz doivent chacun disposer d'une @IP fixe (ou en DHCP static), il est important qu'elle ne bouge pas.
Dans mon cas :
- 192.168.0.14 : Domoticz
- 192.168.0.26 : HA
Actions à réaliser dans Domoticz
Vous devez autoriser l'IP de HA à atteindre l'API dans :
Configuration > Paramètres > Sécurité : réseaux de confiance
J'ai donc ajouté 192.168.0.26 qui est l'adresse IP de HA.
Pensez à cliquer sur "appliquer les paramètres" pour mémoriser.
Enfin, identifiez l'ID de l'ampoule/prise que vous souhaitez piloter, dans mon cas ce sera l'IDX 1312.
Action à réaliser dans Home Assistant
HA va piloter un périphérique Domoticz au travers de l'API Domoticz, grâce à un script bash qui va commuter l'état de la tête de lit.
Avant d'aller plus loin, testez cette ligne de commande en SSH depuis Home Assistant (HAOS de mon côté):
/usr/bin/curl "http://192.168.0.14:8080/json.htm?type=command¶m=switchlight&idx=1312&switchcmd=Toggle&level=0&passcode="
Vous devez remplacer :
- idx=1312 par l'ID de votre ampoule (affichée dans Domoticz)
- 192.168.0.14:8080 par l'IP et port de Domoticz
L'important est d'avoir un status "OK". Si c'est le cas continuons.
Ici l'action sera "toggle" c'est à dire que ça la tête de lit s'allumera si elle est éteinte et vice versa. Vous pouvez aussi décider de simplement éteindre ou allumer. Dans mon cas je veux reproduire le fonctionnement d'un bouton poussoir façon télérupteur.
A l'aide de StudioCodeServer créez un script :
config > shell > domoticz_tetelit.sh
Avec ceci comme contenu :
#!/bin/bash /usr/bin/curl "http://192.168.0.14:8080/json.htm?type=command¶m=switchlight&idx=1312&switchcmd=Toggle&level=0&passcode="
Astuce : pour récupérer facilement l'URL ouvrez Domoticz aller sur la page pour actionner votre ampoule/prise, appuyez sur F12 > onglet réseau, puis actionner le périphérique. Vous verrez l'URL d'appel qui est strictement identique à celle de l'API.
Redémarrer Home Assistant
Pour que le script soit pris en compte, faites un redémarrage de Home Assistant.
Menu "Outils de développement > Redémarrer > Redémarrer Home Assistant"
:
Ne faites pas un rechargement rapide, cela ne suffira pas
Création de l'automatisation
Maintenant que notre script fonctionne il ne reste plus qu'à l'associer à l'appui du bouton dans Home Assistant.
Menu Paramètres > Automatisations et scènes :
Voici la version YAML (modifiez le device_id):
alias: HA_to_Domoticz - Quand Bouton Shortcut Ikea allume la tete de lit description: "" triggers: - domain: mqtt device_id: ad668f7ef44ad44217c21c75c48d9a8a type: action subtype: "on" trigger: device conditions: [] actions: - metadata: {} data: {} action: shell_command.tete2lit mode: single
Debug
Si cela ne fonctionne pas, vérifiez que la ligne de commande en SSH fonctionne. Si oui, alors testez chaque étape de votre automatisation à l'aide des 3 points verticaux > exécuter l'action.
Vous pouvez également le faire via :
Outils de développement > Action > Shell Command: tete2lit
Conclusion
Et voilà, it works!
Il s'agit de ma manière de faire, n'hésitez pas à me partager la votre en commentaire.
Je prévois un autre article pour synchroniser l'état d'un périphérique plus complexe, à savoir faire remonter la vitesse de fonctionnement d'un ventilateur de plafond connecté dans HA vers Domoticz.
Vous n'aimez pas le RSS : abonnez-vous par email
Vous devriez me suivre sur Twitter : @xhark
Article original écrit par Mr Xhark publié sur Blogmotion le 22/05/2025 |
Pas de commentaire |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons