Ce tutoriel date un peu. Privilégier de paser par l’intégration officielle Shelly plutot que pzr cette intégration custom sauf si vous savez ce que vous faites.
Pour essayer de se débarrasser le plus possible du cloud, Shelly nous offre la possibilité de passer ses appareils en MQTT, mais le problème est qu’ils ne sont pas découvert automatiquement par Home Assistant connecté à notre broker Mosquitto favori. (même si ils communiquent bien avec le broker)
Nous allons donc voir comment faire en sorte qu’ils le soient.
Prérequis
- Avoir HACS d’installé
Ajouter l’intégration Python Script dans Home Assistant.
Voici le lien officiel pour ajouter python script a votre systeme domotique préféré. Pour les anglophobes, voici la procédure.
Cette intégration vous permet d’écrire des scripts Python qui sont exposés en tant que services dans Home Assistant. Chaque fichier Python créé dans le dossier /python_scripts/ sera exposé en tant que service. Le contenu n’est pas mis en cache, vous pouvez donc facilement développer : éditez le fichier, enregistrez les modifications, appelez le service. Les scripts sont exécutés dans un environnement sandbox.
Configuration.yaml
Il vous faut ajouter cette ligne dans le fichier configuration.yaml
.
python_script:
Ensuite via File Editor
créer un dossier nommé python_scripts
Ajouter le script
Deux méthodes possibles:
- Ajouter le fichier
shellies_discovery.py
dans le dossier créé ci dessus. - Passer par HACS (nous la détaillerons plus tard)
Méthode manuelle
Récupérer le fichier dans le GitHub puis ajouté le via File Editor (par exemple).
Ensuite redémarrer Home Assistant.
Méthode via HACS
Dans HACS, rechercher Shellies Discovery
dans les Automations
puis installer le.
Ce dernier vous installera le fichier shellies_discovery.py
dans le dossier python_script
Automation.yaml
Il vous reste a ajouter dans automation.yaml
le code suivant.
Configuration minimal
- id: shellies_announce
alias: 'Shellies Announce'
trigger:
- platform: homeassistant
event: start
- platform: time_pattern
hours: "/1" # Modifying this if you are using Shelly Motion can drain your device's battery quickly.
action:
service: mqtt.publish
data:
topic: shellies/command
payload: announce
- id: 'shellies_discovery'
alias: 'Shellies Discovery'
mode: queued
max: 999
trigger:
platform: mqtt
topic: shellies/announce
action:
service: python_script.shellies_discovery
data:
id: '{{ trigger.payload_json.id }}'
mac: '{{ trigger.payload_json.mac }}'
fw_ver: '{{ trigger.payload_json.fw_ver }}'
model: '{{ trigger.payload_json.model }}'
mode: '{{ trigger.payload_json.mode | default }}'
host: '{{ trigger.payload_json.ip }}'
Ensuite soit vous redémarré Home Assistant soit vous rechargé les automations et exécuté l’automatisation Shellies Announce
.
Vous devriez voir apparaître dans Configuration → Intégration → MQTT → shelly XXXXX ou shelly + nom donné
Voici la liste des devices supportés ici
Sources.
Python Script HA Officiel (en)
Sujet Shelly Discovery Script (en)
GitHub Shellies Discovery (en)
Liste de sdevices compatibles (en)