Les objets connectés développés à l’aide de la librairie MySensors sont très bien pris en charge par Home Assistant. Dans ce tutoriel, nous allons voir comment intégrer des projets MySensors développés à l’aide de la version 2.x de la librairie.
Il est possible de se connecter directement à une Gateway MySensors ou une gateway MQTT. Nous allons voir comment faire avec la première solution. Ce tutoriel fonctionne quelque soit la plateforme utilisée pour faire fonctionner le serveur domotique (Windows, macOS, Linux et Raspberry).
Sommaire
Matériel nécessaire
Si vous débutez dans le développement d’objets connectés à base d’Arduino ou d’ESP8266 à l’aide de la librairie MySensors, voici quelques articles pour vous mettre sur les rails :
Pour cet article, j’ai utilisé la sonde de température et d’humidité présentée dans ce tutoriel. Il se trouve à environ 50m de la gateway. Ce n’est pas très loin, mais il y a beaucoup de végétation. La gateway présentée ici est basée sur un ESP8266 (Wemos d1 mini). Pour augmenter la portée de réception, j’ai opté par un antenne 6dBi. Le cable est assez long pour la fixer à l’extérieur. Pour optimiser la portée de transmission, lisez ce tutoriel.
Ajouter des objets MySensors à la configurations Home
La librairie MySensors étant pris en charge nativement, il n’y a rien à installer. L’intégration va juste consister à déclarer la passerelle et intégrer les objets dans les groupes.
Ouvrez le fichier configuration.yaml. Si vous avez installé Home-Assistant dans un environnement virtuel (conseillé), exécutez cette commande
sudo nano /home/homeassistant/.homeassistant/configuration.yaml
Sinon, il se trouve dans votre dossier utilisateur
sudo nano /home/UTILISATEUR/.homeassistant/configuration.yaml
La documentation présente tous les types de configuration possibles (tous les détails ici)
mysensors: gateways: - device: '/dev/ttyUSB0' persistence_file: 'path/mysensors.json' baud_rate: 38400 - device: '/dev/ttyACM0' persistence_file: 'path/mysensors2.json' baud_rate: 115200 - device: '192.168.1.18' persistence_file: 'path/mysensors3.json' tcp_port: 5003 - device: mqtt persistence_file: 'path/mysensors4.json' topic_in_prefix: 'mygateway1-out' topic_out_prefix: 'mygateway1-in' optimistic: false persistence: true retain: true version: 2.0
On peut donc directement se connecter à un objets MySensors branché sur le port USB (2 premiers devices), à une Gateway standard et enfin une gateway MQTT.
Le composant MySensors propose plusieurs options complémentaires quelque soit la passerelle choisie :
- optimistic (optionnel, faux par défaut). Utilisez cette option pour les appareils qui ne retournent pas l’état de sortie. Par exemple un interrupteur. On considère qu’il a bien changé d’état lorsqu’on a appuyé dessus.
- persistence (optionnel) : permet d’activer ou désactiver l’enregistrement des données dans un fichier JSON local. Il n’est pas conseillé de désactiver cette option. Si la persistence est désactivée, les capteurs doivent se présenter (lisez ce tutoriel pour en savoir plus sur la présentation) à chaque envoi de données. Ce n’est pas très pratique.
- retain (optionnel) : option pour la passerelle MQTT. Active ou désactive l’option de retenue des messages par le broker MQTT.
- version (optionnel) : version de la librairie utilisée. L’API MySensors à sensiblement évoluée depuis la version 2.0 (documentation technique ici). Il est préférable d’indiquer la version utilisée et si possible uniformiser votre code.
Ici nous allons donc configurer une gateway TCP/IP. Elle possède l’adresse IP (fixe) 192.168.1.20 sur le réseau local. Par défaut, le port de communication est le port 5003.
mysensors: gateways: device: '192.168.1.20' persistence_file: '/home/homeassistant/.homeassistant/mysensors.json' tcp_port: 5003 optimistic: false persistence: true retain: true version: 2.0
Activer le logger
Durant la mise au point, il est préférable d’activer l’enregistrement des messages par le logger intégré. Créez une nouvelle section logger. Il est possible de récupérer les messages du composants ainsi que les messages échangés avec la gateway.
logger: default: error logs: mysensors: debug homeassistant.components.mysensors: debug
Le logger accepte plusieurs niveaux de sévérité. Le mode debug convient dans la plupart des cas :
- critical
- fatal
- error
- warning
- warn
- info
- debug
- notset
Redémarrer HASS
Redémarrez Home Assistant. Je vous conseille de redémarrer le service depuis l’interface en vous rendant au panneau Configuration par exemple ou en exécutant cette commande.
sudo systemctl restart home-assistant@homeassistant
Suivez le lancement pour vérifier que HASS est bien connecté à la passerelle avec cette commande
sudo journalctl -fu home-assistant@homeassistant
Configurer le groupe
Maintenant qu’HASS peut se connecter à la passerelle, il ne reste plus qu’à ajouter les devices à un groupe existant (ou un nouveau groupe). Vous avez du voir passer les identifiants des devices en suivant le journal d’execution du service. Heureusement, il est possible de trouver très facilement le nom des appareils directement depuis l’interface Web.
Ouvrez le menu et cliquez sur l’icône pour ouvrir le panneau des états (states en anglais). Les appareils commencent par le préfixe sensor
Pour ajouter les capteurs à un groupe existant, il suffit de l’ajouter à la liste des entities. Voici un exemple pour les sondes d’humidité.
humidity: name: Sondes d'humidité entities: - sensor.humidity_158d000156cbfa - sensor.box_little_3_1
Modifier l’affichage (fichier customize.yaml)
Comme pour les tutoriel précédents, je vous conseille de séparer la configuration dans des fichiers séparés pour faciliter la maintenance.
Ouvrez le fichier customize.yaml. Pour chaque capteur, créez une étiquette et ajoutez l’option friendly_name pour définir le libellé qui sera affiché à l’écran.
sensor.objet_1_0: friendly_name: Temperature Extérieure sensor.objet_1_1: friendly_name: Humidité Extérieure
Enregistrez et redémarrez HASS
Voilà, tous les objets MySensors ont été correctement intégré à l’interface. Vous pouvez également profiter de l’historique des mesures.
Dans le prochain tutoriel, nous verrons comment faire pour inclure des appareils radio à l’aide d’aide de la passerelle Open Source RFLink.
Avez-vous aimé cet article ?