Intégration Enocean dans Home Assistant

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 »

Trop fort merciiii :grin: (je vois effectivement le 46 64 qui est devenu 46 00 dans le incoming du log d’hier mais j’ai pas eu la présence d’esprit de faire le lien et de tenter…)
Et l’intégration « cover » de @RomeHein fonctionne ! avec les boutons haut/bas/stop ça fait propre, merci à lui également
Capture3
Pas si long ni compliqué cette affaire finalement

Reste plus qu’à démonter et apparairer les 9 autres volets… :roll_eyes:

:+1:

Bon courage :sweat_smile:

Bonjour à tous,

Je suis en train d’essayer d’intégrer des modules/actionneurs Enocean de marque Eltako dans HA avec un dongle USB300 :

  • F4SR14 : Module 4 lampes. F6-02-01
  • FUD14 : Dimmer 1 lampe. A5-38-08
  • FSB14 : volets roulants. (pas encore cherché pour ceux-ci)

Une chose à la fois, je commence par ce qui devrait être le moins compliqué : F4SR14

Je n’ai pas eu de grandes réussites avec le module Enocean ni avec l’intérgration « home-assistant-eltako » de Chrysn sur Gitlab (je ne peux poster de lien).

Je suis en train de développer une intégration custom (en m’aidant de ces précédents modules) afin de me faire les dents sur le protocole Enocean et HA. J’arrive à créer des interrupteurs virtuels (style FT 55) avec des IDs utilisant la base ID du dongle et à les « enseigner » à l’actionneur, à allumer et éteindre les lampes depuis HA (en utilisant des messages de type RPS).

J’aimerais récupérer les statuts des lampes au démarrage de l’intégration mais je ne trouve aucune information sur le sujet. Y-a-t-il un telegram afin de récupérer l’information des actionneurs ?

  • Pour F4SR14 : savoir si chacune des lampes est allumée ou éteinte
  • Pour FUD14 : savoir si la lampe est éteinte ou allumée et la valeur de sa luminosité
  • Pour FSB14 : savoir si les volets sont ouverts/fermés et à quel pourcentage.

Merci pour votre aide :slight_smile:

Vincent

j’ai enfin pu rapatrier tous mes volets
Puis fait des groupes

cover:
  - platform: group
    name: volets_rdc
    entities:
      - cover.volet_bureau
      - cover.volet_salon
      - cover.volet_chambre
      - cover.volet_sdb

qui posent un problème de position des volets qui grise les boutons up ou down

la solution proposée consiste à ajouter à configuration.yaml:

homeassistant: 
  customize: !include customize.yaml

puis à customize.yaml

cover.volets_rdc:
  current_position: '50'

ça a bien réglé le soucis pour moi

Bonjour à tous,

J’ai réussi à intégrer des modules pour les volets et l’éclairage.
J’ai un RPI, et une clef USB300.
Merci à vous pour votre aide et vos explication (appairage, fichiers de configuration, astuces …):
@RomeHein, @mak-dev, @cailloup007, @asetGem, et tous les autres qui font vivre la discussion =)
Merci !

J’ai réussi avec les modules NODE-ON et EVOLOGY.

Perso, la suite sera de :

  • Contrôller la VMC, via module relais
  • Intégrer le capteur d’humidité ?
  • Switcher le RPI de la carte SD au SSD (via USB)
  • Intégrer les soft remote (j’avais réussi au début, a voir si c’est toujours pris en compte avec les dernière configuration)
  • Intégrer la prise connectée.

Merci, et bon week-end à vous.

Juste pour info, l’addon évoqué est maintenant disponible en version expérimentale pour l’instant.

@edoss
:+1: N’hésite pas si tu as des questions lors de tes prochaines aventures. On t’aidera avec plaisir.

1 « J'aime »

Merci @mak-dev ,
Je regarderais ça, pour l’instant je ne pense pas être passé par mqtt, :thinking:
Merci en tout cas pour l’aide :wink:

@edoss
Non, la première partie du message ne t’étais pas destinée.
Je faisais juste référence à un précédent message :wink:

1 « J'aime »