Intégration Enocean dans Home Assistant

J’essaie de débuter la migration vers Home Assistant, je vous partage mes recherches sur le protocole Enocean.
Une fois le dongle en votre possession (ici un USB 300), c’est parti !
image

  1. On créée l’intégration (Configuration > Intégration > Ajouter l’intégration
    image

  2. On cherche le module Enocean, et on le sélectionne
    image

  3. Si le dongle est correctement branché, il vous est proposé :
    image

  4. Si tout se passe bien, vous devriez voir ceci :
    image

  5. Pas d’interface graphique, il faut aller dans le fichier /config/configuration.yaml , suivant les recommandations de la doc officielle. Je prends l’exemple d’un sensor de température trio2sys.

sensor:
  - name: Salle de bains
    platform: enocean
    id: [0x05,0x40,0x34,0x82]
    device_class: temperature

l’id se trouve à l’arrière du produit, et si vous avez doute car écrit trop pett, un code barre 2D vous donnera l’identifiant.

Mes questions qui complèteront cet article :

  • Peut-on retrouver les logs de tout ce qui est capté par le dongle Enocean ?
  • Comment fait-on pour associer un élément dont on ne connait pas l’identifiant ?
  • Il est écrit dans la doc que si un profile EEP existe, alors il est certainement utilisable, existe-t-il un moyen de connaitre tous les profils déjà supportés ?
  • Comment créer un interrupteur virtuel Enocean ? Je m’explique, mes lumières sont gérées par des modules Nodon, et si il est assez bien expliqué comment en récupérer l’état, j’aimerais aussi appairer home assistant au module, donc faire un interrupteur virtuel.

Merci !

3 « J'aime »

Hello,
La documentation fait référence aux profils supportés par l’intégration enocean EnOcean - Home Assistant

J’ai également des soft remote nodon. Je ne pense pas qu’ils soient appairables. Par tes Lumières enocean doivent pouvoir être directement appairer à HA, puis reconnu il suffira de switcher sur l’entité reconnue pour les commander.

J’utilise un logiciel très laborieux FHEM (puis MQTT) pour récupérer mes actionneurs de volets enocean eltako FSB61NP, mais je ne conseille pas cette méthode car c’est trop usine à gaz.

Peut-être peux-tu passer par la trame enocean par hexdump (mais j’ai peur qu’il détecte ton nodon plutôt que la lumière) EnOcean

Merci, je crois que c’est en cours d’intégration pour le profil des soft remote, avec l’ajout des profils F6 et D5, même si je ne crois pas que ce soit intégré dans la release actuelle.
Par contre, ce que je ne parviens pas à faire (et ça m’étonne), c’est de ne pas pouvoir commander depuis HA les modules d’éclairage Nodon.
Sais-tu si on peut créer un switch virtuel Enocean ? Si oui, je passerais les relais en mode association et je déclencherais le bouton virtuel.

Bonjour,

Récent utilisateur de HA, et un peu frustré de ne pouvoir utiliser mes boutons Nodon (soft remote et interrupteur mural) qui marchaient si bien sous Domoticz :shushing_face: je me penche un peu sur la question, avec le premier problème de trouver l’ID du module.

Enocean point com (étant nouveau, je ne peux pas encore poster de lien) propose un outil de développement qui fait du dump des packets enocean. Un peu l’équivalent de hexdump, mais avec 2 avantages de mon point de vue :

  • c’est sous windows
  • ça ne fait pas que du dump brut, mais ça présente les informations distinctement : ID, data, status…

L’outil s’appelle DolphinView et il est téléchargeable moyennant la création d’un compte (gratuit).

Il m’a permis de scanner les paquets émis par le soft remote, de découvrir son ID que j’ai renseigné dans la configuration de HA.

Maintenant, HA détecte les événements de ce device, comme en témoigne le résultat de cette écoute d’événement :

{
    "event_type": "button_pressed",
    "data": {
        "id": [
            0,
            44,
            66,
            145
        ],
        "pushed": 0,
        "which": 0,
        "onoff": 1
    },
    "origin": "LOCAL",
    "time_fired": "2021-01-19T22:51:58.351820+00:00",
    "context": {
        "id": "d0b542d8c899bc6ee45ce00855600336",
        "parent_id": null,
        "user_id": null
    }
}

J’espère pouvoir en faire quelque chose, mais ce sera pour un jour prochain…

En attendant, je crois que ça peut répondre à certaines de tes questions, même s’il faut bidouiller et que ça ne permet une intégration « clé en main » des interrupteurs Nodon.

1 « J'aime »

Merci pour le partage !

Pour la gestion de l’événement : Automation Trigger - Home Assistant.

N’hésite pas à ouvrir un nouveau fil si tu as des questions :+1:

1 « J'aime »

Hello
j’ai aussi du enocean avec des modules nodon
mais il faut l’avouer, quelle catastrophe l’intégration de enocean sur HA.
Pour ma part pour les switch nodon, bien que j’ai l’ID, impossible le faire fonctionner sur HA.
il a fallu que j’appaire les nodon avec la clé enocean via dolphinview sur Windows, et ensuite ça fonctionne correctement sur HA
voici la méthode : Mettre en place le mode "repeater" du micromodule NodOn avec Dolphin View Advanced - Blog Domadoo

Mais mon ewattch qui permet de récupérer la puissance et la consommation de mon linky ne marche pas sur HA, seul la puissance remonte.

Au final méthode un peu brutal mais qui marche, j’ai monté une VM Jeedom qui lui gère le enocean nickel et je fais communiquer Jeedom–HA en mqtt

Pour tout le reste, je suis content de HA :slight_smile:

1 « J'aime »

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 :crazy_face:

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)

add operation

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

1 « J'aime »

Comme évoqué précédemment, le relais Peha de type 452 FU-EBI(M) o.T. se différencie assez fortement des modules relais de type Nodon SIN-2-x-x ou autres clones avec EEP de type D2-01-12.


L’avantage de ce module Peha c’est qu’il intègre de nombreuses fonctions autonomes programmables assignables différemment sur les 2 voies du module. Fonctions elles-mêmes assignable par donneur d’ordre : Plusieurs fonctions de Temporisations, scènes, divers actionneurs (portes, mouvement, …). Malheureusement, il n’intègre pas la fonction variateur.
Par exemple plusieurs interrupteurs peuvent commander la voie 1 avec des tempo différentes pour chacun des interrupteurs qui le commandent. L’ensemble fonctionnel sans Home assistant, puis ajouter Homme Assistant pour visualiser l’état de la voie 1 et bien entendu le piloter.
A la maison, il me permet de commander les 2 boosts de la VMC depuis plusieurs endroits de la maison avec des temps de fonctionnement différents en fonction du lieu d’appel : De la cuisine pendant 30’ pour le petit boost et 10’ pour le grand boost et de la douche (inter sans fil ni pile Enocean) pour des durées de boost différentes. Et de n’importe où avec nos téléphones.

J’ai encore une fois pas mal galéré pour l’appairer avec HA, alors voici comment faire pour ce module.
Les deux voies doivent chacune s’appairer et se piloter indépendamment. Sur le module est inscrit les deux adresses (exploitables en VLD avec HA)


Dans mon cas : FF AB CE 01 pour la voie 0 et FF AB CE 03 pour la voie 1

Dans HA


switch peha1_0: # Petit boost VMC sur relais 0
  - platform: enocean
    id: [0xFF,0xAB,0xCE,0x01] # Adresse du premier canal (en VLD)
    name: petit_boost_vmc
    channel: 0

switch peha1_1: # Grand boost VMC sur relais 1
  - platform: enocean
    id: [0xFF,0xAB,0xCE,0x03] # Adresse du second canal (en VLD)
    name: grand_boost_vmc
    channel: 1

Pour l’appairage, toujours le même problème avec HA qui ne sait pas le gérer. Il faut appairer le module au dongle USB via Dolphinwiew.
Espérons qu’un jour quelqu’un ayant les compétences saura aller au bout de l’intégration des appareils Enocean.

Beaucoup de recherches ici et là et avec l’aide importante de @bakkerv pour mettre en place un code d’appairage fonctionnel.
Le code d’appairage pour le module Peha 452FU-EBI(M) est le : 80 FF 01 00 08 01 D2
Pour l’exercice, pour définir ce code qui se lit à l’envers, voir ici en page 19

Le module est donc de type EEP D2-01-08. Le code constructeur Peha est 00 01 (46 pour Nodon) avec un peu de lecture là ou
Le FF correspond à la demande d’appairage de toutes les voies (mais une seule à la fois pour ce module, comme çà pas de risque).
Et 80 la demande d’appairage (type d’appairage, attente de réponse, …)

Dans Dolphinwiew :
Après avoir connecté votre dongle à votre PC et connecté le port (COM3 ici) avec F5

Dans l’onglet Telegram transmit, cliquez sur Add operation et sélectionnez un message UTE en double cliquant sur UTE telegram. (UTE = Universal Teach in)
Réduisez le nombre de datas de 8 à 7 et collez le code d’appairage 80 FF 01 00 08 01 D2
Cliquez sur Set ID et cliquez sur EurID. Cela inscrit l’adresse générique de votre dongle dans ID (sender) ici 05 8B 88 77
Entrez l’adresse du canal que vous souhaitez piloter sur votre module (ici le canal 1 avec l’adresse FF AB CE 03)
Mettez votre module Peha en mode appairage en appuyant environ 1 seconde sur le bouton d’appairage (ici LRN2 pour le canal 1). Le bouton se met à clignoter en rouge.
Cliquez sur Execute selected pour envoyer le message.
Le voyant rouge du canal appairé doit s’arrêter de clignoter et rester allumé en rouge quelques secondes. (voir nota*)
Dans les 800 ms vous devriez recevoir le message de retour de votre module sous la forme (UTE/D4) 91 FF 01 00 08 01 D2
(Nota*) Pour un désappairage, effectuer la même procédure, et si le module était préalablement appairé, le voyant va s’arrêter de clignoter et s’éteindre pour valider l’ordre de désappairage.

Refaire la même opération pour appairer le second canal :

  • Changer le DestinationID selon le second ID inscrit sur votre module (Ici FF AB CE 01)
  • Conservez le même ID de votre dongle (ici 05 8B 88 77)
  • Mettez le second canal de votre module en appairage en appuyant sur le second bouton LRN jusqu’à ce qu’il clignote rouge (Ici LRN1 pour le canal 0).
  • Cliquez sur execute selected.

Voilà, y’à plus qu’à reconnecter votre dongle à votre serveur HA et redémarrer.

J’espère que çà vous facilitera la vie

Franck

1 « J'aime »

Merci pour toutes ces informations, il ne me reste plus qu’à essayer, mais c’est très encourageant.
J’ai un dernier équipement où je vais peut-être galérer pour appairage (Profil D2-01-0C) https://media.adeo.com/marketplace/75613776/3bfa4465-7d6e-4677-9ea3-336511237de6.pdf

C’est fort possible que tu ne puisses pas l’appairer à HA. Le code EEP D2-01-0C ne semble actuellement pas encore être pris en compte de manière native dans home assistant.
N’aurais-tu pas plutôt intérêt à prendre de simples relais D2-01-12 et adapter les tensions de sortie avec une diode ?
En tous cas, tiens nous au courant de tes avancées.

De mon coté, je commence à lire le peu de documents existants sur les vannes thermostatiques avec code EEP A5-20-01. Si quelqu’un en a déjà intégré… je suis preneur de toute info :wink:
https://ubiwizz.com/l-offre-produits-ubiwizz/11587-vanne-thermostatique-enocean.html

Salut @Arno ,
bon je migre de jeedom et je rencontre un problème.
J’ai 5 capteurs de Température nodon. J’ai bien branché ma clé enocean et fait l’intégration. Il me la voit sur le bon chemin.
Mais aucun module ne remonte. J’insère les lignes :

sensor:
  - name: Salle de bains
    platform: enocean
    id: [0x##,0x##,0x##,0x##]
    device_class: temperature

En remplacement les # par les numéros de mon module. Je reboot, toujours rien…
Je précise que mes modules sont (étaient) déjà appairés à la clé enocean sur mon jeedom…
Saurais tu m’aiguiller ?

Bonjour,

As-tu inséré ces deux lignes dans ton fichier configuration.yaml ?


enocean:
  device: /dev/ttyUSB0

Puis rebooter …

Salut, Ouep…ça aussi j’ai fait

Bizarre, ce profil était reconnu nativement.
Ce type de profil n’est pas vraiment associé à une clé (il ne reçoit pas d’ordre).
Je dois m’y remettre, je regarderais la configuration que j’avais mise en place

Chez moi les sondes sont toujours opérationnelles, et heureusement vu qu’elles pilotent le chauffage et qu’il n’est toujours pas coupé fin mai… été caniculaire qu’ils avaient predis…

Je pense que notre ami a résolu son problème (avec sa clé)

https://forum.hacf.fr/t/probleme-d-integration-des-cles-enocean-et-aeotec-sur-pi4/4554?u=bubule

Bonjour,

je rouvre le sujet pour les intéressés ! J’ai de l’enocean depuis 2 ans que je gère via un custom_component, en faisant des mise à jour régulières pour suivre les évolutions de HA.
Par contre c’est galère… l’Enocean est un peu le parent pauvre des protocoles alors que plein de gens l’utilisent dans leur coin, et qu’il possède de nombreux avantages !

Pour ceux qui sont intéressé, voici les décodages des trames pour :

Les boutons Nodon Soft Button (identiques à ceux-ci), les Nodon Soft Remote (ici), et les détecteurs de mouvement (ici) :

Binary sensor :

        """EEP: F6-02-02 - Nodon Soft Remote"""
        if packet.rorg == 0xF6:
            press = packet.data[1]
            if press == 0x70:
                self._state = 4
                self.schedule_update_ha_state()
                time.sleep(1)
                self._state = 0
                self.schedule_update_ha_state()
            elif press == 0x50:
                self._state = 3
                self.schedule_update_ha_state()
                time.sleep(1)
                self._state = 0
                self.schedule_update_ha_state()
            elif press == 0x30:
                self._state = 2
                self.schedule_update_ha_state()
                time.sleep(1)
                self._state = 0
                self.schedule_update_ha_state()
            elif press == 0x10:
                self._state = 1
                self.schedule_update_ha_state()
                time.sleep(1)
                self._state = 0
                self.schedule_update_ha_state()
            else:
                self._state = 0
                self.schedule_update_ha_state()
        
        """EEP: D2-03-0A - Nodon Soft Button"""
        if packet.rorg == 0xD2:
            press = packet.data[2]
            if press == 0x01:
                self._state = 1
                self.schedule_update_ha_state()
                time.sleep(1)
                self._state = 0
                self.schedule_update_ha_state()
            elif press == 0x02:
                self._state = 2
                self.schedule_update_ha_state()
                time.sleep(1)
                self._state = 0
                self.schedule_update_ha_state()
            elif press == 0x03:
                self._state = 3
                self.schedule_update_ha_state()
                time.sleep(1)
                self._state = 0
                self.schedule_update_ha_state()
            else:
                self._state = 0
                self.schedule_update_ha_state()

        """EEP: A5-07-03 - Nodon Detecteur de Mouvement"""

        if packet.rorg == 0xA5:
            press = packet.data[4]
            if press == 0x88:
                self._state = "on"
            elif press == 0x08:
                self._state = "off"
            else:
                self._state = "off"
            self.schedule_update_ha_state()

Ainsi que les détecteurs d’ouverture (ici) :

sensor :

class EnOceanDoorDetector(EnOceanSensor):
    """Representation of an EnOcean window handle device.
    EEPs (EnOcean Equipment Profiles):
    - D5-00-01
    """

    def value_changed(self, packet):

        """Update the internal state of the sensor."""
        packet.parse_eep(0x00, 0x01)
        contact_value = packet.parsed['CO']['value']

        if contact_value == 'open':
            self._attr_native_value = STATE_OPEN
        elif contact_value == 'closed':
            self._attr_native_value = STATE_CLOSED

        self.schedule_update_ha_state()

Pour le reste des détecteurs d’ouverture, reprendre le même schéma que le « WindowHandle »

Attention, ce ne sont pas forcément les intégrations les plus propres qui existent, mais elles ont l’avantage de fonctionner relativement bien.

Malgré mes questions sur le Discord, le forum anglais, et le GitHub, je n’ai jamais réussi à proposer la prise en charge de ces composants dans le code officiel pour ne plus utiliser de custom_component…

Si certains sont motivés, faites moi signe !

PS : Les bouton Enocean Enki chez LeroyMerlin sont bien moins chers (je les ai trouvés à en promo à 5€/bouton), et identiques aux Nodon ! Un vrai bon plan quoi :slight_smile:

PS 2 : Quite à faire, voici le lien vers le custom_component entier ici

4 « J'aime »

Je sui très intéressé, mais je ne suis pas encore au point pour l’intégration de mes propres custom component ; peux-tu m’indiquer la méthode d’intégration retenue ?

  1. Tu récupères le dossier ici que tu renommes enocean

  2. Tu le places ensuite dans /config/custom_components/ de ton arborescence HA (à créer s’il /custom_components/ n’existe pas déjà)

Ton arborescence devrait alors ressembler à : /config/custom_components/enocean/ avec tous les fichiers dedans

  1. Si ce n’est pas fait, tu créer ton INTÉGRATION ENOCEAN

  2. Dans ton fichier /config/binary_sensor.yaml, tu peux alors déclarer tes objets Enocean. Par exemple pour un Soft Bouton (ou un bouton Enki en l’occurence) :

  - platform: enocean #Bouton Enki
    name: Bouton Enki 1
    id: [0x81,0x00,0xC4,0x92]

Pour un capteur d’ouverture, c’est dans /config/sensor.yaml que je les place :

  - name: Detecteur_Fenetre_Chambre
    platform: enocean
    id: [0x05,0x0F,0x4C,0x6B]
    device_class: doordetector
  1. Redémarrer HA

Tu peux alors aller observer l’état de ton entité binary_sensor.bouton_enki_1 lorsque tu presses le bouton associé
Idem avec sensor.doordetector_detecteur_fenetre_chambre

Si tu as besoin d’autres exemple, n’hésite pas ! Je t’invite à regarder aussi les fichiers présents dans /custom_components/encoean pour savoir comment catégoriser les objets (binary ou sensor)

4 « J'aime »

Bonjour, je viens de suivre les recommandations pertinentes de l’article où pour remédier à l’impossibilité de piloter un switch à partir de HA (alors que la commande du module à partir de l’interrupteur physique est bien prise en compte dans l’aperçu) on envisage l’utilisation de DolphinView, j’ai suivi la mise en oeuvre proposée (code d’appairage en data, dans ID: ID de la clé, dans ID destination: l’ID du module, envoi du code lors de la mise du module en appairage). Dans STATUS, j’ai laissé 00.
Résultat: rien de changé, est-ce lié au champ STATUS?
merci pour votre réponse.

1 « J'aime »

Bonjour,

Quel type de module souhaites-tu appairer ?
(sinon oui, je ne me souviens pas avoir indiqué un quelconque status. Donc 00 devrait suffire)