Intégration Enocean dans Home Assistant

j’avais déjà essayer cette technique mais apparemment ca ne marche pas avec flexom V2

pour le ewattch c’est pas non plus idéal car comme il y a 4 comptages il bascule de l’un a l’autre sans savoir auquel ca correspond
moi j’ai commandé un module ATOME (gratuit) pour le compteur linky que j’ai demandé sur total direct energie puis je l’ai intégrer avec HACS pour avoir la conso global

J’avais vu cette clé, mais elle coute 2€/mois…

Salut tout le monde
J ai pas mal de module evology pour l éclairage et les contacts sec pour ouvrir les portes garages/portail
J ai essayé de lire tout les commentaires plus ou moins simple a intégrer à HA de ce que j ai pu lire.
Es ce que certains on réussi à intégrer les télécommandes 3 ou 4 boutons ? Je m en sert pour ma part dans la voiture pour ouvrir le portail/porte de garage et allumer la lumière
Es ce compliqué à intégrer ?
Merci

Bon week-end

Hello,

Recent utilisateur d’HA, je m’essaye à Enocean
J’ai des modules volets roulants, des switchs PTM210 qui les pilotes et une clé USB300
J’ai installé dolphin, je vois bien les actions quand j’appuie sur les boutons des switchs

J’ai installé l’intégration enocean et ajouté divers trucs à configuration.yaml comme

switch:

  • platform: enocean
    name: « volet_switch »
    id: [0x00, 0x2D, 0x26, 0x76]
    channel: 1

Je peux ajouter les toogle button sur le dashboard et quand je les utilise, la clé usb clignote mais il ne se passe rien

J’ai aussi ajouté le custom component de
RomeHein/homeassistant_enocean

switch:

  • platform: enocean
    name: « volet_switch »
    id: [0x00, 0x2D, 0x26, 0x76]
    channel: 0
    behavior: onoff

J’ai testé behaviour onoff, push, avec plusieurs channel, il se passe rien non plus

Dois-je absolument appairer les modules VR avec la clé usb avec dolphin ? (à priori j’ai pigé comment faire grâce à vos tuto mais le module est dur d’accès alors j’aimerai etre sur de devoir appuyer sur le bouton appairage pour aller plus loin)
Sur les autres topic qui parlent d’enocean et HA, ils ne parlent pas d’apparaige avec dolphin
La clé usb ne devrait-elle pas etre capable de reproduire le switch sans avoir à être appairer? (j’imagine que si je n’avais pas de switch, il faudrait appairer)

Faut-il ajouter une automation ?
Dans outil_dev, evenements, si j’écoute « button_pressed », je vois bien des evennements quand j’appui sur les boutons des switch

event_type: button_pressed
data:
id:
- 0
- 45
- 38
- 118
pushed: 0
which: 1
onoff: 0
origin: LOCAL
time_fired: « 2022-09-24T11:42:13.057087+00:00 »
context:
id: 01GDQMW6J1FBSS7WW1V57DGEGV
parent_id: null
user_id: null

Je n’ai pas trop compris quoi faire de ça
J’ai essayé de déclencher un évènement sur cette base dans ce même menu mais il ne se passe rien
notamment je ne sais pas ce que je dois mettre ici

action:
  - service: switch.toogle (?)
    entity_id: switch.enocean_light (?)

Faut-il ajouter ça à config.yaml ?

enocean:
device: / dev / ttyUSB0
parfois c’est USB1, parfois c’est /dev/serial/by-id/usb-EnOcean_GmbH_EnOcean_USB_300_DB_FT3G3UD2-if00-port0
Je n’ai pas trouvé où savoir ce qu’il faudrait mettre
Sachant que j’arrive bien à interagir avec la clé depuis HA j’ai pas l’impression que ce soit utile

Je n’ai pas de passerelle flexom

J’ai l’impression qu’il me manque pas grand chose
Merci d’avance pour les conseils

Bonjour @cailloup007

Oui il est obligatoire d’appairer l’émetteur (ici la clé USB300) au module à piloter.
Pendant l’appairage, la clé va faire connaître son adresse au module. Le module enregistre ensuite cette adresse dans une liste d’émetteurs connus (s’il a de la place). Seuls les émetteurs connus du module peuvent le piloter.

Ce qui du coup est tout à fait normal avec l’explication donnée plus haut. La clé envoie un télégramme EnOcean au module mais, n’étant pas connue du module, il ne se passe rien.

Il est également normal de voir les événements des PTM210. Ces événements se traduisent par l’envoi d’un télégramme EnOcean en mode broadcast, donc visible par tout le monde.

Il y a peut être une solution pour éviter d’aller appuyer sur le bouton learn du module. Voir ce lien vers une autre discussion EnOcean.

Pour ce point, il faudra expliquer un peu plus en détails ce que tu veux faire. Je n’ai pas tout compris.

A+

Hello @asetGem !
C’est top ce que tu as joint la !

Je suis en train de travailler sur le D2-05-00, en particulier son integration dans HA.
Sur le github de HA, il y a pas mal de personnes qui on fait des Pull Request (abrégé PR: procedure d’ajout de nouveauté par une personne externe a HA) pour integrer plein de nouvelles choses, comme ces volets roulant, le teach-in etc

Mais… forcement il y a un reviewer qui bloque toutes les PR, c’est assez relou parceque du coup il y a aucune mise a jour possible de ce module. En gros on est bloqué avec cette integration.
Son argument c’est que ca devrait etre une librairie externe qui devrait integrer tout ces details du protocol (la facon d’appairer etc).
Donc ce qui ce passe c’est ca: HA > integration Enocean officiel > le code python de Kype (son repo github kipe/enocean)

Le probleme c’est que Kipe a fait ce code pour un petit projet a la base il y a 7 ans, et il maintient plus du tout ce repo. Et honnetement ca prendrait pas mal de wd de le refaire de A à Z… donc ca restera comme ca.
En attendant, comme ce reviewer bloque toutes les PR, j’ai fait mon repo qui integre ces nouveautés, dont la prise en charge des volets roulants + le teach in via un service. Je ne suis donc pas dutout l’auteur de ces ajouts, mais j’ai simplement mergé le code manuellement. Vous pouvez trouver mon repo sur github (j’ai pas le droit de poster de liens):
RomeHein/homeassistant_enocean

Maintenant petite question pour toi @asetGem, as tu reussi a appairer ces volets roulants ? Parce que j’ai le meme comportement que toi, quand j’envoie le code UTE, rien ne ce passe coté controleur. Quand j’essaye d’envoyer des messages ca ne fonctionne pas non plus
J’ai des modeles evology, donc je pense pas que le code d’appairage soit le meme, j’ai l’impression que ca differe suivant les constructeurs. Du coup ca me bloque pour tester l’integration cover dans HA. Le code a l’air bien foutu, jai limpression qu’il a ete testé, ca genere les bonnes entrée dans l’UI d’HA et HomeKit.

Ok je viens de tester, même sans reaction du module D2-05-00 lors de l’appairage, ca fonctionne avec le code que tu a fourni, merci!
Donc l’integration « cover » enocean que j’ai mis sur mon github fonctionne tres bien. On peut monter/descendre/arreter et meme choisir la position du volet, donc plutot cool. Ca genere automatiquement l’UI correspondante dans l’UI de homekit, encore plus cool :slight_smile:

La procedure c’est:

  • appairage avec dolphin view, suivre la procedure que @asetGem a decrite, avec les codes d’appairage. Meme si rien ne reagi, l’appairage a ete correctement effectué, passer a l’etape suivante.
  • installer l’integration custom que j’ai mise sur mon github (copier le contenu de mon github dans votre fichier « custom_integration »)
  • ajouter dans votre fichier de config cover.yaml les lignes suivantes:
- platform: enocean
  name: "Roof"
  sender_id: [0x05, 0xFF, 0xFF, 0xFF] (l'id de votre dongle)
  id: [0x05, 0xFF, 0xFF, 0xFF] (l'id de votre module D2-05-00)

et voila

1 « J'aime »

Hello @RomeHein,

C’est également ce que j’avais constaté.
Du coup j’ai abandonné l’intégration et je suis en train de mettre en place un truc par MQTT:
Principe initial
Simplification avec MQTT Discovery
Nouveau Github

Tu pourras peut être y trouver des choses intéressantes pour rajouter de nouveaux EEP dans ton intégration custom :wink:

C’est interessant ca, bravo pour le repo ! Effectivement ca pourrait me servir pour prendre exemple !
Par contre je me demande si il ne vaudrait pas mieux que tu passes ton temps de dev a refaire une libraire python enocean directement, en s’appuyant sur celle existante, ca pourrait le faire.
Parce que la on ajoute une couche supplementaire de MQTT (avec tout ce que ca implique, en particulier un broker), je pense que ce n’est pas prendre la bonne direction en terme d’archi/complexité.
Apres dis moi, je me trompe peut etre, il y a peut etre un element dans cette surcouche qui apporte une facilité dans l’utilisation de nouveaux controllers :slight_smile:

Pour ma part, j’ai vraiment pas le temps de me pencher dessus, surtout que python n’est pas un language que je maitrise, donc ca impliquerait que j’apprenne ca en plus. Perso je me contente de patcher l’integration HA avec une custom integration. C’est pas la folie, mais ca marche sans trop de complexité. Le teach in y est via un service, pas top non plus, mais il y a UTE et 4BS

Ce qui serait top, ca serait d’avoir une integration qui utilise une libraire externe (comme celle de Kipe, mais plus complete, avec le teach in, built in) et qui gere les devices a la facon de ESPHome.

Je te rassure, grâce à MQTT Discovery, c’est très simple de supporter de nouveaux EEP (exemples, explications).

L’avantage de MQTT c’est que tu peux par exemple, déporter dans un endroit plus favorable, ta box qui gère ton EnOcean et tes autres protocoles radio et communiquer par MQTT avec un HA positionné ailleurs.
Ça se fait déjà, par exemple pour le Zigbee, il y a ZHA et zigbee2mqtt.

Je jetterai un coup d’œil à ton repo tout à l’heure.
Perso je suis fan du protocole EnOcean pour sa simplicité et sa praticité. Si on peut améliorer son support dans HA :+1:

Hello @RomeHein

Alors du coup, j’ai fini par abandonner l’intégration officielle, pour les mêmes raisons que tu indiques (plus d’évolution). Je suis passée par la librairie enoceanmqtt dont parle @mak-dev . Avec le code qu’il a ajouté, c’est top. Il n’y a même plus besoin de passer par Dolphin pour appairer les nouveaux modules.
Pour intégrer ces fameux VR, je les rajoute dans enoceanmqtt.conf comme ceci :

[Nom_pour_lentite]
address         = [id du module]
rorg            = 0xD2
func            = 0x05
type            = 0x00
log_learn = 1
command = CMD
persistent = 1

Cela crée une entité cover.e2m_[Nom_pour_lentite], que l’on peut ensuite intégrer dans lovelace ou dans une automation comme n’importe quelle entité cover (on peut gérer l’ouverture/fermeture totale ou à un certain %, l’inclinaison si c’est un store inclinable etc).

Je ne suis pas sure que la couche mqtt ajoute vraiment de la complexité. C’est utilisé par de plus en plus de trucs, donc perso j’avais déjà un broker (mosquito) qui tournait avant, et ça permet de centraliser un peu toutes les intégrations.

Merci @mak-dev pour les explications

Par contre asetGem semble dire qu’avec ta méthode mqtt, on pourrait ne pas avoir à appairer les modules avec la clé usb ?!

ça donne envie d’essayer mais je n’ai pas encore tout compris au tuto github
/mak-gitdev/HA_enoceanmqtt

pip install enocean-mqtt => ok

configurer enoceanmqtt.conf => a priori ok, mais je suis pas sur d’avoir compris "put it to /etc/enoceanmqtt.conf "
on est censé mettre ça où dans les dossiers de HA ? on accède comment à etc?

avoir un broker mqtt qui tourne => ok (add on mosquitto dans HA)

run enoceanmqtt from within the directory of the config file or provide the config file as a command line argument
on fait ça comment depuis le terminal ?

Pour le lancement automatique au démarrage, vu que j’ai pas bien pigé le gestionnaire de fichier, je pige pas bien non plus ^^

  • copy the enoceanmqtt.service to /etc/systemd/system/
  • systemctl enable enoceanmqtt
  • systemctl start enoceanmqtt

En ensuite ça créé des entités pilotables ?

Salut @cailloup007,

Il faudra toujours appairer les modules à la clé EnOcean comme expliqué précédemment. C’est comme ça que fonctionne le protocole EnOcean.
Par la « méthode MQTT » comme tu dis, c’est juste que cet appairage peut se faire sans avoir à utiliser DolphinView.

Sinon quelle est ton installation Home Assistant (matérielle comme logicielle) ?

ok ok
Je suis sous windows sur une VM virtual box, j’ai téléchargé l’image virtualbox de HA ici
home-assistant io/installation/windows

Si j’ai bien compris, il s’agit donc de HAOS.

Pour l’instant, la méthode d’installation indiquée ne fonctionne qu’avec Home Assistant supervised.
Je n’ai pas encore eu le temps de faire une image docker voir mieux un addon HA.
J’espère avoir un peu de temps ce weekend pour m’y attaquer.

Bonjour,

Par contre asetGem semble dire qu’avec ta méthode mqtt, on pourrait ne pas avoir à appairer les modules avec la clé usb ?!

Non je disais juste qu’il n’y a plus besoin de passer par Dolphin View pour appairer. Lorsque enoceanmqtt est en train de tourner, il suffit de mettre le module en mode appairage, et il va s’appairer « automatiquement » avec la clé.

Concernant le tuto, à ma connaissance, tu n’as pas de dossier /etc dans HA OS. En fait, le but du tuto, c’est de lancer enoceanmqtt au démarrage de la machine qui contient HA (donc dans un linux, raspi OS ou autre), pour qu’il tourne en background. Le problème, c’est que chez toi, c’est directement l’OS de HA qui se lance avec la VM. Je n’ai jamais testé cette configuration. Je verrai une possibilité, mais je n’ai pas de quoi tester si ça marche. Voilà l’idée :

  • déjà, s’assurer que enoceanmqtt fonctionne bien. Pour ça, créer un fichier de configuration (comme le enoceanmqtt.conf donné en exemple dans le github) dans le dossier config (ou un sous-dossier de celui-ci). Dans le terminal, lancer le programme avec :
enoceanmqtt <path-to-config-file>

Il y aura normalement des logs qui s’affichent. Actionne tes devices pour vérifier qu’ils sont bien pris en compte.

  • une fois que tout ça fonctionne, dans le configuration.yaml, ajouter :
shell_command:
    start_enoceanmqtt: "/bin/bash enoceanmqtt <path-to-config-file>"
  • puis créer une automation avec :
trigger:
  - platform: homeassistant
    event: start
action:
  - service: shell_command.start_enoceanmqtt
    data: {}

Mais je ne suis pas sure du comportement des automations, si l’action n’est pas killée au bout d’un certain temps…

Une autre possibilité, mais plus compliquée, serait de faire un add-on local, en suivant cette procédure : Tutorial: Making your first add-on | Home Assistant Developer Docs et en mettant la ligne de commande enoceanmqtt dans le run.sh

merci pour vos conseils,

Je suis allé voir le remote comissioning proposé par mak-dev
https://www.enocean.com/wp-content/uploads/redaktion/support/dolphin-view/DolphinView/mod_remotecom.htm
A priori mes modules ne sont pas compatibles
Je suis donc allé démonter un mur pour apparairer un module en appuyant sur le bouton, en utilisant dolphin view
je pense faire la bonne manip sur dolphin mais mon module ne semble pas valider l’appairage (module nodon, le voyant reste rouge plutôt que de clignoter vert quand ça appaire bien)


puis je selectionne la ligne et execute selected
J’ai quand même retesté l’intégration HA avec le github de RomeHein dans custom integration, et dans configuration.yaml

cover:
   - platform: enocean
     name: "volet"
     sender_id: [cle usb] 
     id: [module VR]

le volet ne réagit pas

Pour la méthode mqtt, je tape des trucs de noob :flushed:
Capture
comment on se positionne dans le bon dossier avant d’appeler un fichier ?

@cailloup007
Pourrais-tu ouvrir dolphinview, appuyer sur le bouton du module, et reporter ici le contenu de la trame interceptée par dolphinview ?

Concernant enoceanmqtt, ce n’est pas encore adapté à ton installation HAOS. Ce n’est pour l’instant disponible que pour les installations HA supervised.
Je te propose donc de mettre ça de côté le temps que je fasse le nécessaire (image docker et/ou addon HA)

log d’aujourd’hui en appuyant une fois sur le bouton (puis une autre fois pour faire remonter le volet)

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Workspace Source="DolphinView Advanced 3.8.9.0 ">
  <EventLog>
    <Control Timestamp="2022-10-10 17:46:27.799" Direction="Open" Port="COM3" Type="Connection" Data="FTZ195ULA GATEWAYCTRL   2.11.1.0" />
    <Telegram Timestamp="2022-10-10 17:46:53.771" Direction="Incoming" Port="COM3" RORG="D2" Data="0A 00 00 04" Status="00" ID="05873766" dBm="-55" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="1" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-10 17:46:53.771" Direction="Incoming" Port="COM3" Type="01" Data="D2 0A 00 00 04 05 87 37 66 00" OptionalData="01 FF FF FF FF 37 00" />
    </Telegram>
    <Telegram Timestamp="2022-10-10 17:46:59.348" Direction="Incoming" Port="COM3" RORG="D2" Data="14 00 00 04" Status="00" ID="05873766" dBm="-55" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="1" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-10 17:46:59.348" Direction="Incoming" Port="COM3" Type="01" Data="D2 14 00 00 04 05 87 37 66 00" OptionalData="01 FF FF FF FF 37 00" />
    </Telegram>
    <Telegram Timestamp="2022-10-10 17:47:00.088" Direction="Incoming" Port="COM3" RORG="D2" Data="15 00 00 04" Status="00" ID="05873766" dBm="-55" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="1" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-10 17:47:00.088" Direction="Incoming" Port="COM3" Type="01" Data="D2 15 00 00 04 05 87 37 66 00" OptionalData="01 FF FF FF FF 37 00" />
    </Telegram>
    <Telegram Timestamp="2022-10-10 17:47:01.220" Direction="Incoming" Port="COM3" RORG="D2" Data="14 00 00 04" Status="00" ID="05873766" dBm="-54" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="1" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-10 17:47:01.220" Direction="Incoming" Port="COM3" Type="01" Data="D2 14 00 00 04 05 87 37 66 00" OptionalData="01 FF FF FF FF 36 00" />
    </Telegram>
    <Telegram Timestamp="2022-10-10 17:47:06.845" Direction="Incoming" Port="COM3" RORG="D2" Data="0A 00 00 04" Status="00" ID="05873766" dBm="-58" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="1" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-10 17:47:06.845" Direction="Incoming" Port="COM3" Type="01" Data="D2 0A 00 00 04 05 87 37 66 00" OptionalData="01 FF FF FF FF 3A 00" />
    </Telegram>
    <Telegram Timestamp="2022-10-10 17:47:12.479" Direction="Incoming" Port="COM3" RORG="D2" Data="00 00 00 04" Status="00" ID="05873766" dBm="-55" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="1" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-10 17:47:12.479" Direction="Incoming" Port="COM3" Type="01" Data="D2 00 00 00 04 05 87 37 66 00" OptionalData="01 FF FF FF FF 37 00" />
    </Telegram>

et dans le log d’hier quand j’ai envoyé la demande d’appairage

    <Telegram Timestamp="2022-10-09 18:09:16.415" Direction="Outgoing" Port="COM3" RORG="D4" Data="91 01 46 64 00 05 D2" Status="00" ID="019B511F" dBm="2147483647" DestinationID="05873766" SecurityLevel="0" SubtelegramCount="3" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-09 18:09:16.431" Direction="Outgoing" Port="COM3" Type="01" Data="D4 91 01 46 64 00 05 D2 01 9B 51 1F 00" OptionalData="03 05 87 37 66 FF" />
    </Telegram>
    <Packet Timestamp="2022-10-09 18:09:16.446" Direction="Incoming" Port="COM3" Type="02" Data="00" OptionalData="" />
    <Telegram Timestamp="2022-10-09 18:09:16.462" Direction="Incoming" Port="COM3" RORG="D4" Data="A0 01 46 00 00 05 D2" Status="00" ID="05873766" dBm="-76" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="1" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2022-10-09 18:09:16.462" Direction="Incoming" Port="COM3" Type="01" Data="D4 A0 01 46 00 00 05 D2 05 87 37 66 00" OptionalData="01 FF FF FF FF 4C 00" />
    </Telegram>

Ah !
Retente l’appairage avec DolphinView en envoyant cette fois 91 01 46 00 00 05 D2.
Ça devrait être bon je pense

1 « J'aime »