Home Assistant intègre nativement le support des appareils domotiques radio compatibles avec la passerelle Open Source RFLink. Dans le tutoriel précédent, nous avons vu comment inclure des objets connectés développés à l’aide de la librairie MySensors v2. L’inclusion d’appareils radio à l’aide de la gateway RFLink est un peu différente. La documentation technique manque de détails concernant l’ajout des appareils dans les groupes.
Sommaire
Passerelle RFLink et matériel utilisé pour le tutoriel
RFLink est un projet Open Source qui permet de réaliser une passerelle (gateway) entre un logiciel domotique et des appareils domotiques qui communiquent par ondes radio. C’est une alternative très économique à la gateway commerciale RFXCom. Le projet RFLink est capable de gérer plusieurs fréquences radio 315MHz, 433MHz, 868MHz, 915MHz et 2,4GHz. Suivez ce guide pour fabriquer votre passerelle domotique radio pour moins de 15€.
RFLink à base d’Arduino Mega 2560 et d’un module radio Super Heterodyne.
Pour ce tutoriel, nous utiliserons deux détecteurs de fumée Chacon 34126 qui communiquent en 433MHz. On les trouve assez facilement en magasin de bricolage ou les marchands en ligne.
Avertissement. Vérifiez que la fréquence radio employée par l’appareil est autorisée dans votre pays avant tout achat.
Configuration de la passerelle dans Home Assistant
Tout comme MySensors, RFLink est supporté nativement par Home Assistant. Ouvrez le fichier de 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 le fichier se trouve dans le dossier utilisateur
sudo nano /home/UTILISATEUR/.homeassistant/configuration.yaml
La première chose à faire est de configurer un Hub RFLink. La documentation présente complète se trouve ici. Deux lignes suffisent
rflink: port: /dev/serial/by-id/usb-id01234
Pour trouver le port USB sur lequel est branché la passerelle, commencez par connecter l’Arduino Mega à votre ordinateur ou au Raspberry Pi. Ensuite, dans le Terminal, exécutez les commandes suivantes pour lister les appareils connectés.
cd /dev/serial/by-id ls usb-Arduino__www.arduino.cc__Arduino_Mega_2560_85430353631351209040-if00
D’autres paramètres optionnels peuvent compléter la configuration si besoin :
- host : dans le cas ou la gateway est accessible depuis en autre poste en TCP/IP. Suivez ce tutoriel qui explique comment faire avec ser2net
- wait_for_ask : attend la confirmation de l’exécution de la commande précédente avant d’envoyer la suivante. C’est le mode actif par défaut. Il est plus lent mais aussi plus fiable
- ignore_devices : il est possible d’ignorer des périphériques radio. La commande supporte le joker (*)
- reconnect_interval : temps d’attente en secondes entre deux tentatives de re-connexion
Activer le logger
Durant la mise au point, il est nécessaire d’activer l’enregistrement des messages par le logger intégré. Créez une nouvelle section logger si celle-ci n’existe pas encore. Il est possible de récupérer les messages radio ainsi que les messages échangés avec la gateway.
logger: default: error logs: rflink: debug homeassistant.components.rflink: 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
Enregistrez le fichier (CTRL + X puis Y) puis 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 depuis le Terminal.
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
Vous pouvez également consulter le log en ouvrant le fichier home-assistant.log qui se trouve dans le même répertoire que les fichiers de configuration. Voici un exemple
2017-05-19 12:16:05 INFO (MainThread) [homeassistant.components.rflink] Initiating Rflink connection 2017-05-19 12:16:05 INFO (MainThread) [homeassistant.components.rflink] Connected to Rflink 2017-05-19 12:16:05 DEBUG (MainThread) [rflink.protocol] connected 2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] received data: 20;00;Nodo RadioFrequencyLink - RFLink Gateway V1.1 - R46; 2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] got packet: 20;00;Nodo RadioFrequencyLink - RFLink Gateway V1.1 - R46; 2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] decoded packet: {'node': 'gateway', 'firmware': 'RFLink Gateway', 'protocol': 'unknown', 'revision': '46', 'hardware': '$ 2017-05-19 12:16:06 DEBUG (MainThread) [rflink.protocol] got event: {'version': '1.1', 'firmware': 'RFLink Gateway', 'id': 'rflink', 'hardware': 'Nodo RadioFrequencyLink', 'revi$ 2017-05-19 12:16:06 DEBUG (MainThread) [homeassistant.components.rflink] event of type unknown: {'version': '1.1', 'firmware': 'RFLink Gateway', 'id': 'rflink', 'hardware': 'Nod$ 2017-05-19 12:16:06 DEBUG (MainThread) [homeassistant.components.rflink] unhandled event of type: unknown
Tout est correct, vous pouvez continuer
Inclusion des appareils : lumières, interrupteurs, capteurs
Maintenant qu’HASS peut se connecter à la passerelle, il ne reste plus qu’à ajouter les devices à un groupe existant (ou un nouveau groupe). Contrairement à MySensors, les appareils radio ne sont malheureusement pas listés dans le panneau d’état.
La première chose à faire est de récupérer l’identifiant de l’appareil. Pour cela, un seul moyen, faire fonctionner l’appareil pour qu’il envoi un signal radio contenant son identité. Appuyez sur le bouton de test ou de commande puis ouvrez le journal d’exécution (home-assistant.log) qui se trouve dans le même répertoire que les fichiers de configuration.
Ici, en appuyant sur le bouton de test du détecteur de fumée Chacon, on récupère toutes les informations nécessaires pour l’inclure dans Home Assistant.
2017-05-19 15:50:17 DEBUG (MainThread) [rflink.protocol] received data: 20;01 2017-05-19 15:50:17 DEBUG (MainThread) [rflink.protocol] received data: ;Slave;Debug=01 00 00 10 2017-05-19 15:50:17 DEBUG (MainThread) [rflink.protocol] received data: 00 1; 2017-05-19 15:50:17 WARNING (MainThread) [rflink.protocol] dropping invalid data: 20;01;Slave;Debug=01 00 00 10 00 1; 2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data: 20;02; 2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data: FA20RF;ID=40cd71;SWITCH= 2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data: 01;CMD=ON;SMOKEALERT=ON; 2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] received data: 2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] got packet: 20;02;FA20RF;ID=40cd71;SWITCH=01;CMD=ON;SMOKEALERT=ON; 2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] decoded packet: {'node': 'gateway', 'command': 'on', 'protocol': 'fa20rf', 'smokealert': 'on', 'id': '40cd71', 'switch':$ 2017-05-19 16:37:01 DEBUG (MainThread) [rflink.protocol] got event: {'command': 'on', 'id': 'fa20rf_40cd71_01'}
L’identifiant se trouve à la ligne got event.
Ouvrez de nouveau le fichier de configuration.
sudo nano configuration.yaml
Les détecteurs de fumées sont gérés comme des interrupteurs. L’inclusion d’un appareil de type switch ne nécessite aucun réglage particulier. On ajoute un bloc de type switch en lui indiquant un nom (utilisé dans le groupe). La plateforme est de type rflink. Puis on liste les appareils (devices) reliés à ce bloc
switch sirenes: platform: rflink devices: fa20rf_40cd71_01: name: cuisine
C’est la configuration minimale nécessaire. D’autres paramètres sont disponibles pour affiner la gestion des appareils (la liste complète ici) :
Si vous devez inclure des capteurs, la configuration est un peu différente. En effet, il est nécessaire d’indiquer à HASS le type de capteur employé. Les types des capteurs supportés sont les suivants (documentation détaillée) :
- average_windspeed : vitesse moyenne du vent
- barometric_pressure : pression atmosphérique
- battery : batterie
- weather_forecast : prévision météo
- doorbell_melody : mélodie de la sonnette
- command : commande
- co2_air_quality : teneur en CO2 dans l’atmosphère
- current_phase_1 : intensité du courant phase 1
- current_phase_2 : idem pour la phase 2
- current_phase_3 : et la phase 3
- distance
- firmware
- humidity_status
- humidity
- hardware
- kilowatt
- light_intensity : intensité lumineuse
- meter_value
- total_rain : hauteur d’eau totale tombée
- rain_rate
- revision
- noise_level : niveau de bruit
- temperature
- uv_intensity : indice UV
- version
- voltage : tension du courant
- watt
- windchill (?)
- winddirection : direction du vent
- windgusts : rafale de vent
- windspeed : vitesse du vent
- windtemp : température du vent (?)
C’est la même chose pour les lumières mais le type n’est pas un paramètre obligatoire. Voici les types de lumière gérés (documentation détaillée) :
- hybrid : envoi une commande dim suivie de ON ou OFF
- Switchable : commutable, une lampe classique
- Dimmable : variateur de lumière
- Toogle : inverseur d’état. Il n’y a que la commande ON qui est envoyée. Cette commande peut être utile pour certains appareils tel que les interrupteurs muraux de la marque Livolo.
Configurer le groupe
Le plus dure est fait, l’ajout des détecteurs de fumée dans un groupe se fait très simplement. On va par exemple créer un groupe qui présente tous les détecteurs de fumée de la maison
smoke: name: Détecteurs de fumées control: hidden entities: - switch.cuisine - switch.lingerie
On pourra ajouter ce groupe dans la vue capteurs par exemple
sensor_view: name: Capteurs view: yes icon: mdi:gauge entities: - group.smoke
Enregistrez la configuration et redémarrez Home Assistant depuis l’interface ou en exécutant cette commande
sudo systemctl restart home-assistant@homeassistant
Voilà, les deux détecteurs de fumées sont maintenant intégrés à Home Assistant. L’affichage n’est pas encore parfait. La surcharge du style disponible qui permet de définir le type de capteur via l’option device_class semble ne pas fonctionner pour RFLink.
Avez-vous aimé cet article ?