Comment inclure des objets MySensors v2 à Home Assistant (HASS) • Domotique et objets connectés à faire soi-même

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).

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

mqs7oduglm2waykoobg6-5190313

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.

swuzilvondcni5aijbds-8906053

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 ?