[Addon] EnOcean MQTT (dev) By @mak-dev

Hello

J’ouvre ce post pour aider ceux qui ont eu des soucis pour les modules Enocean

A mes débuts sous HA, j’avais des modules en fil pilote de chez nodon .

Et j’ai découvert hier le travail de @mak-dev qui a fait un super boulot.

J’ai donc installé l’addons, après avoir quelque difficulté à mes mettre en place le tout, je peux vous dire que cela fonctionne très bien.

Allez on commence :

Alors pour cela il vous suffit d’aller dans
Paramètres/module complémentaire

Cliqué sur : BOUTIQUE DES MODULES COMPLEMENTAIRES en bas à droite

Une fois dans la boutique
Cliqué sur les trois point en haut à gauche.

ensuite cliqué sur
Dêpots

mettre dans la ligne : Ajouter

https://github.com/mak-gitdev/HA_enoceanmqtt-addon

et valider en appuyant sur Ajouter.

Apres quelque instant vous allez trouver

Prendre Enocean (DEV)

une fois installé

Cliqué dessus

Et aller dans configuration
vous allez voir ceci


Sur la ligne enocean_port
mettre le chemin de cle USB

Exemple pour moi

/dev/serial/by-id/usb-EnOcean_GmbH_EnOcean_USB_300_DC_FT4UKULZ-if00-port0

A partir de la , on va devoir cree un fichier eneoceanmqtt.devices

Pour cela aller a la racinde CONFIG/ de HA

cree un fichier.

et dedans mettre ceci :
PS: Remplacer 0x04120B79 par l’ ID DE VOTRE MODULE

vous trouverez l’ ID au dos de votre module

[pilotwire/entree]
address         = 0x04120e61
rorg            = 0xD2
func            = 0x01
type            = 0x0C

[pilotwire/salon]
address         = 0x04120B79
rorg            = 0xD2
func            = 0x01
type            = 0x0C

Un second fichier devrais apparaitre celui-ci se nomme
config.yaml

Je vous mets son contenu

name: "EnOcean MQTT (dev)"
description: "EnOcean to MQTT bridge for Home Assistant"
url: "https://github.com/mak-gitdev/HA_enoceanmqtt-addon"
version: "0.1.25"
slug: "ha_enoceanmqtt_dev"
stage: "experimental"
init: false
uart: true
startup: "application"
services:
  - "mqtt:need"
map:
  - "config:rw"
arch:
  - aarch64
  - amd64
  - armhf
  - armv7
  - i386
options:
  device_file: ""
  mapping_file: ""
  eep_file: ""
  log_file: "/config/enoceanmqtt.log"
  enocean_port: ""
  debug: false
  log_packets: false
  mqtt_broker: {}
  mqtt_discovery_prefix: "homeassistant"
  mqtt_prefix: "enoceanmqtt"
  mqtt_client_id: "enocean_gateway"
  mqtt_keepalive: 60
schema:
  device_file: "str"
  mapping_file: "str?"
  eep_file: "str?"
  log_file: "str?"
  enocean_port: "device(subsystem=tty)"
  debug: "bool?"
  log_packets: "bool?"
  mqtt_broker:
    host: "str?"
    port: "str?"
    user: "str?"
    pwd: "password?"
  mqtt_discovery_prefix: "str"
  mqtt_prefix: "str"
  mqtt_client_id: "str"
  mqtt_keepalive: "int"

Une fois tout cela fait cliqué sur enregistré dans en bas de la configuration.
Revenez sur Info , e haut de l’addon et cliqué
DEMARRER

Le module démarre

Aller voir dans journal si tout est OK

Comme vous pouvez le voir mes deux modules sont bien reconnu, et il remonte dans mon broker MQTT



La demo
CONFIG1

Les liens:

Le git:

Discussions

Edit:
23.02.2023 : Correction des codes

3 « J'aime »

update:

Ajout d’un module nodon : SIN-2-1-01


Le code à mettre dans :
eneoceanmqtt.devices

[lights]
address         = 0x0590A2A7
rorg            = 0xD2
func            = 0x01
type            = 0x0D

2 « J'aime »

Hello @ClassicRed (alias Sonic** :sweat_smile:),

Je te remercie d’avoir pris le temps de rédiger ce tuto.
Je me suis toujours dit que je devais le faire mais jamais eu la force de l’entamer. Donc merci beaucoup.

Quelques remarques:

  • Dans la config des modules fil pilote que tu as pris en exemple, pas besoin de rajouter command = CMD et log_learn = 1. C’est géré automatiquement.
  • Le fichier config.yaml n’a pas d’importance pour l’utilisateur. D’ailleurs je me demande ce qu’il fait là. C’est toi qui l’a rajouté ou bien il s’est retrouvé là à l’installation de l’addon ?

Encore merci :wink:

Hello,
@mak-dev

:wink: :wink:

Mais de rien , j’essai de venir en aide aux nouveaux et ceux qui on des soucis avec l’anglais …

Exact , mais pas compris au debut , car comme c’etais en anglais la comprehension , j’ai eu du mal , je corrige

La sur le coup , j’ai un trou de memoire !! :shushing_face: :thinking: :woozy_face:

Si tu as d’autres proposition d’améliration/optimisation, dit le moi

Petite question @mak-dev concernant la détection des équipements Enocean.
Je dispose de nombreux capteurs d’ouvertures qui marchent parfaitement bien dans Home assistant.
En revanche j’ai également en ma possession des modules pour volet roulant ( Nodon SIN-2-RS-01 ).
J’ai cru comprendre pour que les intéractions avec les volets roulants fonctionne, il fallait que le volet roulant soit appairé avec le controleur (Via doplhin view advanced ) et qu’il était également possible à la place de passer par le bouton Learn dans l’intégration MQTT. Ma question est la suivante, est je fais une erreur en ayant au préalable paramétré ces modules pour volet roulant dans le fichier enoceanmqtt.devices ?

J’ai tenté un appairage en utilisant le bouton Learn dans home assistant et mis mon module en mode appairage mais les intéractions ne semble toujours pas opérationnel.
Aurais je mal compris ou aurais je du enlever les volets roulants du fichier enoceanmqtt.devices avant d’effectuer cette opération ?

Hello @Loudramin,

J’aurais besoin d’un peu plus d’info pour comprendre ce qui se passe.

  • Peux-tu décrire un peu plus en détails ton installation EnOcean ?
  • Quelle version de l’addon utilises-tu ?
  • Vois-tu tes volets roulants (VR) sur HA ?
  • Peux-tu indiquer en détails ta procédure pour appairer ton transceiver EnOcean à tes volets roulants ?
  • Peux-tu montrer le contenu de ton fichier enoceanmqtt.devices ainsi que le log de l’addon une fois un appairage tenté ?

Bonjour et merci de prendre le temps de me répondre @mak-dev

Pour mon installation, je suis sur une machine virtuel avec virtual machine manager sur un NAS synology. J’ai un hub usb sur lequel est branché le controleur EnOcean USB300.

Pour la version de l’addon j’utilise celle ci :
EnOcean MQTT (dev)
Current version: 0.1.26

Concernant l’appairage, j’ai utiliser DolphinView pour récupérer tous les ID de mes équipements depuis mon pc windows. Que ce soit pour mes capteurs d’ouverture comme pour mes volets roulants. J’ai donc simplement rajouter les ID de ces équipements dans le fichier enoceanmqtt.devices.

Voici un exemple de configuration que j’ai fait pour un de mes volets roulants :

[volet_roulant/fenetre_salon]
address         = 0x050EEC07
rorg            = 0xD2
func            = 0x05
type            = 0x00

Bonjour,

Je reprends la mise en place de mon installation HAOS.
Merci @ClassicRed pour l’addon et @ClassicRed pour ce tuto !!!

J’ai essayé d’appliquer mais ça démarre pas avec le message d’erreur plus bas.

Dans mon cas: Zigbee2mqtt installé sur une VM à part

Voici ce que j’ai mis dans l’onglet « Configutation » de l’addon

device_file: /config/enoceanmqtt.devices
mapping_file: ""
eep_file: ""
log_file: /config/enoceanmqtt.log
enocean_port: /dev/serial/by-id/usb-EnOcean_GmbH_EnOcean_USB_300_DC_FT3YJLC6-if00-port0
debug: false
log_packets: false
mqtt_broker:
  mqtt_host: 192.168.0.17
  mqtt_port: 1883
  mqtt_user: monUser
  mqtt_pwd: monPassword
mqtt_discovery_prefix: homeassistant
mqtt_prefix: enoceanmqtt
mqtt_client_id: enocean_gateway
mqtt_keepalive: 60

Voici ce que j’ai dans l’onglet « Journal »

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
Preparing to start...
Retrieved devices file: /config/enoceanmqtt.devices
[18:32:38] ERROR: Got unexpected response from the API: Service not enabled
mqtt_host = 
mqtt_port = 
mqtt_user = 
mqtt_pwd  = 
[18:32:38] FATAL: MQTT broker connection not fully configured
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

@Loudramin,

Merci pour tes réponses.
Il y a encore quelques questions sans réponse.

  • Vois-tu tes volets roulants (VR) sur HA ?
  • Peux-tu tenter un appairage et partager le contenu du log de l’addon une fois l’appairage tenté ?

Avec ça je devrais comprendre un peu mieux ce qui se passe.

Hello @otokarl,

Où se trouve le broker MQTT dans ton installation ?
L’erreur indique que la config MQTT n’est pas correcte.

Oui je vois bien les volets roulants dans HA.

En revanche je ne vois pas la notion de position.

Je retente l’appairage et je te fourni la log.

La log MQTT avec le mode debugging activé :

2023-08-25 19:39:33.089 DEBUG (MainThread) [homeassistant.components.mqtt.client] Transmitting message on enoceanmqtt/__system/learn/req: 'ON', mid: 16, qos: 0
2023-08-25 19:39:33.095 DEBUG (MainThread) [homeassistant.components.mqtt.client] Received message on enoceanmqtt/__system/learn (qos=0): b'ON'

La log de l’add-on :

2023-08-25 19:38:39,338 INFO: Sending packet
2023-08-25 19:38:39,440 INFO: got response packet: OK
2023-08-25 19:40:01,759 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:01,761 INFO: learn request not emitted to mqtt
2023-08-25 19:40:01,763 INFO: Sending packet
2023-08-25 19:40:01,865 INFO: got response packet: OK
2023-08-25 19:40:04,746 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:04,747 INFO: learn request not emitted to mqtt
2023-08-25 19:40:04,749 INFO: Sending packet
2023-08-25 19:40:04,851 INFO: got response packet: OK
2023-08-25 19:40:07,717 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:07,717 INFO: learn request not emitted to mqtt
2023-08-25 19:40:07,718 INFO: Sending packet
2023-08-25 19:40:07,819 INFO: got response packet: OK
2023-08-25 19:40:10,704 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:10,705 INFO: learn request not emitted to mqtt
2023-08-25 19:40:10,709 INFO: Sending packet
2023-08-25 19:40:10,812 INFO: got response packet: OK
2023-08-25 19:40:13,674 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:13,676 INFO: learn request not emitted to mqtt
2023-08-25 19:40:13,677 INFO: Sending packet
2023-08-25 19:40:13,779 INFO: got response packet: OK
2023-08-25 19:40:16,661 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:16,662 INFO: learn request not emitted to mqtt
2023-08-25 19:40:16,664 INFO: Sending packet
2023-08-25 19:40:16,766 INFO: got response packet: OK
2023-08-25 19:40:19,633 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:19,633 INFO: learn request not emitted to mqtt
2023-08-25 19:40:19,635 INFO: Sending packet
2023-08-25 19:40:19,737 INFO: got response packet: OK
2023-08-25 19:40:22,619 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:22,621 INFO: learn request not emitted to mqtt
2023-08-25 19:40:22,622 INFO: Sending packet
2023-08-25 19:40:22,724 INFO: got response packet: OK
2023-08-25 19:40:25,589 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:25,590 INFO: learn request not emitted to mqtt
2023-08-25 19:40:25,591 INFO: Sending packet
2023-08-25 19:40:25,693 INFO: got response packet: OK
2023-08-25 19:40:28,576 INFO: Sending response to UTE teach-in.
2023-08-25 19:40:28,576 INFO: learn request not emitted to mqtt
2023-08-25 19:40:28,577 INFO: Sending packet
2023-08-25 19:40:28,679 INFO: got response packet: OK

@Loudramin ,

Désolé peux-tu refaire le même log avec l’option debug activé dans l’onglet configuration de l’addon ?

Il faut également savoir que bien souvent, faire deux fois la procédure d’appairage entre le même appareil et le même transceicer correspond à un teach-in (appairage) suivi d’un teach-out (désappairage).

Salut,
J’ai une machine avec proxmox.
J’ai 2 instances de VM dessus:

  • VM1: HAOS
  • VM2: Zigbee2Mqtt avec Mosquitto comme broker. son IP est 192.168.0.17. J’ai renseigné les info du broker dans mon post dessus au format yaml. Voiçi une capture d’écran

Voici les logs que j’obtiens avec le module de VR que je tente d’appairer ( sachant que je l’ai supprimé de MQTT et de enoceanmqtt.devices au préalable) :

2023-08-26 16:10:31,267 INFO: unknown sensor: 05:0E:E5:02
2023-08-26 16:10:31,367 DEBUG: 0x02 ['0x0'] [] OrderedDict()
2023-08-26 16:10:31,368 INFO: got response packet: OK
2023-08-26 16:10:34,231 INFO: Sending response to UTE teach-in.
2023-08-26 16:10:34,232 DEBUG: 05:0E:E5:02->FF:FF:FF:FF (-73 dBm): 0x01 ['0xd4', '0xa0', '0x1', '0x46', '0x0', '0x0', '0x5', '0xd2', '0x5', '0xe', '0xe5', '0x2', '0x0'] ['0x0', '0xff', '0xff', '0xff', '0xff', '0x49', '0x0'] OrderedDict()
2023-08-26 16:10:34,233 INFO: received: 05:0E:E5:02->FF:FF:FF:FF (-73 dBm): 0x01 ['0xd4', '0xa0', '0x1', '0x46', '0x0', '0x0', '0x5', '0xd2', '0x5', '0xe', '0xe5', '0x2', '0x0'] ['0x0', '0xff', '0xff', '0xff', '0xff', '0x49', '0x0'] OrderedDict()
2023-08-26 16:10:34,234 INFO: unknown sensor: 05:0E:E5:02
2023-08-26 16:10:34,235 INFO: Sending packet
2023-08-26 16:10:34,235 DEBUG: FF:EA:1E:00->05:0E:E5:02 (-255 dBm): 0x01 ['0xd4', '0x91', '0x1', '0x46', '0x0', '0x0', '0x5', '0xd2', '0xff', '0xea', '0x1e', '0x0', '0x0'] ['0x3', '0x5', '0xe', '0xe5', '0x2', '0xff', '0x0'] OrderedDict()

J’ai un tas de message de ce type qui apparait pour cet appareil.

Hello @Loudramin,

Ce message:

2023-08-26 16:10:34,232 DEBUG: 05:0E:E5:02->FF:FF:FF:FF (-73 dBm): 0x01 ['0xd4', '0xa0', '0x1', '0x46', '0x0', '0x0', '0x5', '0xd2', '0x5', '0xe', '0xe5', '0x2', '0x0'] ['0x0', '0xff', '0xff', '0xff', '0xff', '0x49', '0x0'] OrderedDict()`

Correspond au VR qui envoie un message de broadcast pour indiquer qu’il veut s’appairer.
Qui veut s’appairer à lui doit lui répondre, ce que fait ton transceiver en lui envoyant ce message:

2023-08-26 16:10:34,235 DEBUG: FF:EA:1E:00->05:0E:E5:02 (-255 dBm): 0x01 ['0xd4', '0x91', '0x1', '0x46', '0x0', '0x0', '0x5', '0xd2', '0xff', '0xea', '0x1e', '0x0', '0x0'] ['0x3', '0x5', '0xe', '0xe5', '0x2', '0xff', '0x0'] OrderedDict()

Cela suppose que ton VR a l’adresse 0x050EE502 et ton transceiver, l’adresse 0xFFEA1E00.

N’oublie pas de désactiver le learn dans HA une fois l’appairage effectué.
Normalement ton VR devrait quiiter le mode appairage une fois l’appairage effectué et tu ne devrais plus voir de messages de ce genre dans ton log.

Si tu continues à en avoir, c’est peut être que le bouton learn de ton VR reste activé.

J’ai justement l’impression que mon VR sort du mode appairage mais uniquement avec un timeout …
Je vais tenter l’appairage avec DophinView

@otokarl,

Je pense qu’il faut tout mettre entre ''.
Par exemple:

mqtt_host: '192.168.0.17'
mqtt_port: '1883'
...

@Loudramin,

Essaie de contrôler tes VR après chaque essai.
Normalement tout est OK de ce que je vois.

Malheureusement ça ne fonctionne pas.
Je dois certainement faire quelque chose qui ne va pas.
Voici les étapes que j’effectue :
1 - Je rajoute mon volet roulant dans le fichier enoceanmqtt.devices ( en ayant récupérer au préalable l’ID via dolphinview )
2 - Je mets mon controleur Enocean USB310 en mode learn via l’intégration MQTT.
3 - Je lance la demande d’appairage de mon module de volet roulant SIN-2-RS-01 en appuyant trois fois sur le bouton prévu pour l’appairage
4 - Je désactive le mode learn de l’étape 1.
Y a t’il un endroit où je me trompe ?

Hello,
Malheureusement ça marche pas non plus, simple ou double quote.
Comme je n’ai qu’un seul micromodule, je mets en de côté pour l’instant.
En tout cas merci de tes réponses