J’ai pas mal galéré pour intégrer mes équipements Enocean, mais j’ai finalement atteint le but que je cherchais.
Je trouve de gros avantages aux équipements Enocean, c’est dommage qu’ils ne soient pas plus mis en valeur et intégrés dans Home Assistant.
Il y a une constante évolution dans les intégrations, alors parions que ce qui est encore compliqué aujourd’hui sera plus simple demain. Mais en attendant, il a fallu mettre les mains dans le cambouis…
Si mon expérience peut en aider d’autres, je partage :
J’avais commencé à équiper une partie de la maison avec des équipements Enocean. Je leur trouvais le gros atout de ne pas nécessiter de pile pour fonctionner.
Les interrupteurs muraux utilisent l’énergie piézoélectrique de l’appui sur le bouton pour envoyer un signal vers les récepteurs appairés, les sondes un petit capteur solaire, et les vannes thermostatiques l’effet pelletier.
De plus les modules récepteurs (relais, variateurs, …) existent avec diverses options telles que des tempos intégrées programmables (pratique pour un boost VMC), des vitesses de variations ajustables, ou encore des mises en veille progressives, etc.
Bref, de nombreuses possibilités qui m’ont permis de réaliser des réaménagements de l’ancien, sans box domotique.
Cela me permet également aujourd’hui qu’ home Assistant est en place, de tout faire fonctionner sans HA en cas de panne, tel que c’était avant son arrivée.
Mais il faut admettre qu’à ce jour, le standard Enocean est très peu développé dans HA. Il m’a fallu de nombreux essais et lectures pour arriver à faire fonctionner ceux que je vous présente.
De même, mes équipements sont de marques différentes, achetés et installés au fil des mois et des besoins (avant HA). Ainsi, tous n’ont pas la même manière d’être intégrés dans HA. Il me reste encore un module de marque Peha (452 FU-EBI) que je n’ai pas encore réussi à appairer. Et dans un proche avenir des vannes thermostatiques sur lesquelles je ne me suis pas encore penché … je complèterais lorsque mon HA saura les exploiter.
Il n’y a pas de souci particulier avec les émetteurs (inters muraux, sondes T° & HR). Mais cela se complique avec les actionneurs (variateurs)
Pour mémoire, pour les émetteurs, c’est le plus simple …
Exemples pris sur HA : EnOcean - Home Assistant
binary_sensor:
- platform: enocean
id: [0x--,0x--,0x--,0x--]
ou en sensor pour les sondes
sensor:
- name: Living Room
platform: enocean
id: [0x--,0x--,0x--,0x--]
device_class: temperature
L’ID à écrire correspond à celui indiqué sur les sondes ou interrupteurs comme par exemple ID:0033CB22.
Dans mon cas cela donnerait :
binary_sensor:
- platform: enocean
id: [0x00,0x33,0xCB,0x22]
name: interrupteur 4p lum salon
sensor:
- name: sonde temperature salon
platform: enocean
id: [0x05,0x05,0xEC,0x97]
device_class: temperature
Pour gérer les interrupteurs dans HA je fais commuter un input_boolean qui sera ensuite utilisé où je le souhaite. Pour cela, j’utilise cet automation :
- id: gestion_inters_1ab
alias: automatisation interrupteur 1a et 1b # Il s'agit d'un inter 2 voies (4 touches)
description: transformation signaux interrupteur 1A et 1B vers input_boolean
trigger:
- platform: event
event_type: button_pressed
event_data:
id: [0x00, 0x33, 0xCB, 0x22] # Cet ID correspond à l'ID de l'interrupteur mural
pushed: 1
action:
- service_template:
"{% if trigger.event.data.which == 1 %}
{% if trigger.event.data.onoff == 0 %}
input_boolean.turn_on
{% elif trigger.event.data.onoff == 1 %}
input_boolean.turn_off
{% endif %}
{% elif trigger.event.data.which == 0 %}
{% if trigger.event.data.onoff == 0 %}
input_boolean.turn_on
{% elif trigger.event.data.onoff == 1 %}
input_boolean.turn_off
{% endif %}
{% endif %}"
data_template:
entity_id:
"{% if trigger.event.data.which == 1 %}
{% if trigger.event.data.onoff == 0 %}
input_boolean.inter_1a
{% elif trigger.event.data.onoff == 1 %}
input_boolean.inter_1a
{% endif %}
{% elif trigger.event.data.which == 0 %}
{% if trigger.event.data.onoff == 0 %}
input_boolean.inter_1b
{% elif trigger.event.data.onoff == 1 %}
input_boolean.inter_1b
{% endif %}
{% endif %}"
mode: single
Ainsi, l’input_boolean.inter_1a basculera On/Off avec les inters A de l’inter 4 poles, et l’input_boolean.inter_1b basculera On/Off avec les inters B du même inter 4 poles.
Autant d’automations que d’interrupteurs à intégrer. Bien entendu, choisir des noms différents et explicites des input_boolean.xxxxxx que vous souhaitez utiliser.
On peut ensuite utiliser l’état de chaque input_boolean (input_boolean.inter_1a ou input_boolean.inter_1b dans mon cas) pour faire commuter ce qu’on souhaite (lampe, script, …)
Pour les actionneurs c’est plus complexe (relais, variateurs).
Ceux-ci nécessitent d’être appairés avec les émetteurs qui leur envoient des signaux (je fais abstraction des signaux de retours d’états pour simplifier).
Le but étant qu’ils ne prennent en compte que les signaux qui leurs sont destinés. J’ai plusieurs relais et variateurs dans ma maison et je souhaite qu’un seul variateur obéisse à deux interrupteurs (effet va-et-vient)
Il faut donc appairer le variateur avec ces deux interrupteurs, et ce qui nous intéresse … avec HA.
Or avec notre dongle USB 300, nous n’avons de base qu’un seul ID (058F8877 dans mon cas). Il est fonctionnel pour tous les relais TOR de type EEP D2-01-12, mais est insuffisant si vous avez plusieurs variateurs de type Eltako FUD61.
Pour ces derniers, il faut lui attribuer autant d’ID que nous avons de récepteur indépendants.
Avec un seul ID et un appairage avec cet ID unique, vous auriez tous les actionneurs qui répondraient au même ordre une fois appairé. Peu pratique, sauf pour un allumage ou une extinction générale …
Le seul moyen que j’ai trouvé, puisque HA ne sait pas encore traiter les appairages, c’est de passer par le logiciel DolphinView Advanced.
(Il faut s’inscrire pour pouvoir le télécharger.)
Celui-ci permet, une fois le dongle USB300 raccordé sur votre PC, de lire tout le flux de messages qui circule dans votre espace, et d’envoyer des messages.
C’est également pratique pour lire l’ID d’un équipement que l’on n’a pas réussi à identifier par son étiquette (çà ne m’est pas encore arrivé).
Du coup, pour appairer les actionneurs (relais, variateurs, …), il faut passer par ce logiciel et utiliser le dongle USB300 pour envoyer les trames aux actionneurs.
/!\ Attention, si vous avez déconnecté le dongle de votre serveur HA, il faudra faire un redémarrage pour sa reprise en compte. Ce qui n’est pas pratique pour faire des tests. Alors je vous conseille d’effectuer vos appairages par série d’actionneurs une fois que vous vous êtes fait la main sur le premier.
Voici les codes d’appairage que j’utilise :
Pour les relais Nodon de type SIN 2-2-01 (ou le clone Evology) avec EEP D2-01-12 :
Code d’appairage en UTE : 91 02 46 00 12 01 D2 (on y retrouve le code EEP dans les 3 derniers digits)
(Pour ce modèle, les deux voies sont appairées en même temps. Pas besoin d’effectuer un appairage par canal)
Pour les variateurs Eltako FUD61 NPN-230V : (EEP idem A5-38-08 d’après leur doc) :
Code d’appairage en 4BS : E0 40 0D 80
Une fois votre clé USB raccordée et votre DoplfinView ouvert, vous sélectionnez le com où se situe votre clé. Vous y relevez l’ID principal du dongle (ici ID 05 8B 88 77)
Assurez-vous d’être connecté (touche connect enfoncée ou F5)
Pour les relais type EEP D2-01-12, vous sélectionnez l’onglet ‹ telegram transmit › (1).
Ensuite ‹ + Add operation › et vous sélectionnez en double cliquant un type ‹ Send radio - UTE telegram › (2)
(3) Dans data, vous y inscrivez le code d’appairage 91 02 46 00 12 01 D2 (sur mon exemple je suis en 8 digits alors que 7 auraient suffit, du coup j’ai un 00 inutile à la fin)
Dans ID, vous inscrivez l’ID de votre clé relevé précédemment (05 8B 88 77 dans mon cas, mais n’est peut-être pas nécessaire. Si vous testez, faites moi un retour, je mettrais à jour)
Dans Destination ID, l’ID de votre relais (05 14 18 7C dans mon cas)
Une fois la ligne complétée, mettez votre relais en mode appairage (appuis 3 coups consécutifs sur le petit bouton du relais. La voie 0 doit se mettre à clignoter).
Attention, vous ne disposez que de quelques secondes pour envoyer votre code d’appairage.
Sélectionnez la bonne ligne à envoyer si comme moi, vous en avez écrit plusieurs (1), puis cliquez sur ‹ Execute selected ›(2)
Votre clé a du envoyer le code et votre relais le reconnaitre. Le clignotement de la voie 0 s’arrête pour valider l’appairage.
Modifiez simplement l’ID destination pour chaque relais de type D2-01-12 que vous souhaitez appairer et recommencer la procédure d’appairage (3 appuis sur le bouton du relais concerné, et execute selected).
Dans HA
Fichier configuration.yaml
# Pour les deux voies du relais 1
switch 01_0: # Relais 1 voie 0
- platform: enocean
id: [0x05,0x14,0x18,0x7C]
name: relais 01 voie 0
channel: 0
switch 01_1: # Relais 1 voie 1
- platform: enocean
id: [0x05,0x14,0x18,0x7C]
name: relais 01 voie 1
channel: 1
# Ces relais ne nécessitent étrangement pas de sender_id contrairement aux light (voir ci-dessous)
Après redémarrage, vous devriez retrouver dans la console outil de développement les 2 entités du relais : switch.relais_01_voie_0 et switch.relais_01_voie_1
Dès lors, vous devriez pouvoir piloter le relais en cliquant sur le sélecteur disponible en cliquant sur le (I) devant l’entité.
Pour les modules variateurs (light), c’est un peu plus compliqué.
Pour commencer, dans DolphinView, vous sélectionnez l’onglet ‹ telegram transmit ›.
Préparez une ligne de commande en 4BS (‹ +Add operation › et sélectionnez Send radio - 4BS Telegram)
Dans data, inscrivez le code d’appairage des variateur de type FUD61NPN : E0 40 0D 80
Comme expliqué précédemment le système doit envoyer les codes avec un ID émetteur (sender_id) différent en fonction du variateur à commander. Ce qui n’est étrangement pas nécessaire avec les relais type D2-01-12 pour lesquels on n’indique aucun sender_id.
Probablement que le code est géré différemment dans HA pour les switch et différemment pour les light. J’imagine qu’HA utilise un ID différent pour chaque relais (switch) qu’il commande.
Je n’ai malheureusement pas d’autre dongle USB pour écouter ce que HA envoi lors d’un envoi de trame vers un switch / relais. Je n’ai pas creusé car ça fonctionne ainsi …
Donc pour les modules variateurs, il faut déterminer un ID expéditeur pour chaque module.
De ce que j’ai compris, le dongle dispose d’une série d’ID réservés derrière l’ID principal. Le véritable ID du dongle est obtenu encore une fois grâce à DolphinView.
En bout de la ligne de commande en 4BS, cliquez sur setID puis sur ‹ BaseID - GetBaseID from gateway ›. (1)
Le champ ID (3): doit se remplir d’une valeur hexa en 4 bytes (Dans mon cas c’était FF C4 3B 80). Il s’agit du premier ID disponible dans le dongle USB.
Celui-ci est bien différent de l’ID inscrit sur le portcom de l’USB300 (05 8B 88 77 sur mon dongle).
Afin de générer les ID qui vont servir à communiquer avec chaque variateur, il faut utiliser cet ID et lui ajouter des incréments en hexadécimal. (1 à 128)
Dans mon cas c’est assez facile en partant de 80, les 4 variateurs que j’utilise seront donc appairés avec les ID de l’émetteur en partant de FF C4 3B 81 à FF C4 3B 84. (Il me semble qu’il y a une bonne centaine d’ID disponibles (126))
Si vous ne vous sentez pas à l’aise avec les additions d’hexadécimaux, vous pouvez utiliser Excel. Avec la formule HEXDEC() pour convertir le nombre en décimal dans le cas où vous auriez un ID de type : FF C4 3B 2F = 4 291 050 287 auquel j’ajoute le premier variateur (+ 1 ) : 4 291 050 288 , ce qui donne avec la formule inverse : DECHEX() FF C4 3B 30, puis FF C4 3B 31 pour le second variateur et ainsi de suite (virez les espaces entre les digits pour qu’Excel reconnaisse le nombre)
Donc dans mon cas, pour appairer le 3ème variateur de mon domicile, j’inscris dans le champ ID (3): FF C4 3B 83
Dans le champ ‹ DestinationID › , j’écrit l’id inscrit sur l’étiquette de mon 3 ème module variateur (ici 05 86 B1 04). J’ai parfois eu des ID avec 7 digits comme celui ci-dessous au lieu des 8 nécessaires. Il faut simplement ajouter un 0 devant.
Mettre le module en mode appairage (potentiometre du bas sur ‹ auto › et potentiometre du haut sur ‹ LRN ›. Le voyant doit se mettre à clignoter rouge.
Sélectionnez la bonne ligne à exécuter qui doit passer en bleu (4) (pas comme sur la vue où c’est l’UTE qui est sélectionné) et appuyez sur ‹ execute selected › (5)
Le voyant rouge du module doit s’éteindre.
Le module variateur est maintenant appairé au dongle USB300. Plus qu’à le rebrancher sur votre serveur HA et le redémarrer.
Je vous conseille de noter dans une feuille (Excel) les ID de chacun de vos modules en face des ID retenus pour le dongle USB300 afin de s’y retrouver en cas de besoin ultérieur et connaitre ceux déjà employés pour ne pas les réutiliser.
Dans HA
Fichier configuration.yaml :
light lumiere_var_3:
- platform: enocean
name: Lumiere variateur 3
id: [0x05,0x86,0xB1,0x04] # L'ID inscrit sur le variateur
sender_id: [0xFF,0xC4,0x3B,0x83] # L'ID créé dans le dongle USB300 avec DolphinView pour ce variateur (1 ID différent par variateur à piloter)
Voilà,
Vous devriez retrouver après redemarrage l’entité lumiere_variateur_3
Il ne vous reste plus qu’à lui attribuer une carte lumière dans le lovelace.