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.
Le premier commentaire c'est pour vous đ