Enocean Fil Pilote compatible?

bonjour,
sur jeedom passerelle pour les interrupteurs enocean (TCM310) qui pilotes les lumière de ma Fibaro home center 3.
j’ai depuis un crash de problème avec jeedom. a 90 % les interrupteur ne réagisse pas.

j’ai donc cherche et je suis tombe sur home assistant. graphique super, reconnait tous mes appareille.
saufe le usb enocean TCM 310
j’ai suivi tout les étape mais rien n’y fait.

pouvez vous m’aider
je sus sur raspberry 3 32 bit

Bonjour, la TCM310 est-elle reconnue par votre Raspberry Pi, hors home assistant ?

Rebonjour,

J’ai commencé à intégrer mon ewattch. Au départ, je n’avais que les entités delete, RSSI et tariff qui apparaissaient dans HA. J’ai l’impression que, comme l’envoi de energy et power sont quasi en même temps, le paramètre availability bloquait.
Plutôt que jouer sur availability pour récupérer la valeur de energie ou power, j’ai utilisé une condition directement dans le value_template. Avec cette config, j’ai bien les 2 entités, avec les valeurs qui correspondent :

0x01:
      - component: "sensor"
        name: "power"
        config:
            state_topic: "MR"
            state_class: "measurement"
            device_class: "power"
            unit_of_measurement: "W"
        config_json:
             state_class: "measurement"
             state_topic: ""
             value_template: >-
                 {% if value_json.DT == 1 %}{{ value_json.MR/(10**value_json.DIV) }}{% else %} {{ states("sensor.e2m_ewattchtic_power") }} {% endif %}
             device_class: "power"
             unit_of_measurement: "W"
      - component: "sensor"
        name: "energy"
        config:
              state_topic: "MR"
              state_class: "total"
              device_class: "energy"
              unit_of_measurement: "kWh"
        config_json:
              state_topic: ""
              state_class: "total"
              value_template: >-
                  {% if value_json.DT == 0 %} {{ value_json.MR/(10**value_json.DIV) }} {%else %} {{ states("sensor.e2m_ewattchtic_energy") }} {% endif %}
              device_class: "energy"
              unit_of_measurement: "kWh"
       - component: "sensor"
         name: "tariff"
         config:
             state_topic: "TI"
         config_json:
              state_topic: ""
              value_template: "{{ value_json.TI }}"

J’ai également ajouté les state_class, pour pouvoir utiliser energy en tant statistique, que j’ai intégré dans l’onglet énergie de home assistant :

Pour l’instant, tout a l’air de fonctionner correctement. A voir à l’usage.
Par contre, ça ne fonctionne qu’en utilisant config_json, donc à voir comment adapter s’il y a besoin d’utiliser config par la suite.
Il y a aussi le problème que ce n’est plus générique. Je rentre « en dur » la valeur de référence de l’entité. J’imagine qu’il y a un moyen de juste demander d’‹ ignorer › le message MQTT si DT n’a pas la bonne valeur ?

Concernant mon A5-12-00, je n’arrive pour l’instant pas à l’intégrer. Je ne suis pas sure d’avoir le bon ID, il faut que j’investigue.

Hello @asetGem

Oui il y a des limitations lorsqu’on n’utilise pas JSON. Ça va sauter tôt ou tard je pense …

Est-ce que tu pourrais essayer avec states(entity_id) à la place de states("sensor.e2m_ewattchtic_energy") ? De la sorte, ça redevient générique.

J’ai été confronté à ce soucis mais je n’ai pas trouvé de réponse pour l’instant. Je pense effectivement que mqtt.sensor devrait gérer ce cas là plutôt que de rajouter un else pour conserver l’état.

Autre possibilité, ce serait de rajouter channel = DT dans la configuration du ewattch dans enoceanmqtt.conf, vu que d’après ce que tu indiques, on a bien les deux informations puissance et énergie qui sont remontées en même temps.
Ainsi, on aurait les infos pour la puissance sur le topic DT1 et l’énergie sur le topic DT0. Plus besoin dans ce cas de faire une condition dans value_template. C’est peut être ce qu’il y a de mieux à faire je pense. Et ça fonctionnerait même sans utiliser JSON.

Je ne sais pas je vois bien usb dans home assistant
Voir photos

Bonjour,

Est-ce que vous pouvez transférer votre message sur ce sujet svp : Problème reconnaissance clé TCM310 enocean

Ce sera + facile à retrouver par d’autres utilisateurs dans votre cas.
Merci !

Est-ce que tu pourrais essayer avec states(entity_id) à la place de states("sensor.e2m_ewattchtic_energy") ? De la sorte, ça redevient générique.

:+1: Je cherchais justement par quelle variable était représentée la valeur actuelle.
ça fonctionne comme ça oui.

Autre possibilité, ce serait de rajouter channel = DT dans la configuration du ewattch dans enoceanmqtt.conf, vu que d’après ce que tu indiques, on a bien les deux informations puissance et énergie qui se remontées en même temps.
Ainsi, on aurait les infos pour la puissance sur le topic DT1 et l’énergie sur le topic DT0. Plus besoin dans ce cas de faire une condition dans value_template. C’est peut être ce qu’il y a de mieux à faire je pense. Et ça fonctionnerait même sans utiliser JSON.

En effet, c’est encore mieux !
Alors par contre je me suis peut-être mal exprimée. Les deux valeurs ne sont pas remontées en même temps. Il y a 2 messages mqtt différents : { DT = 1, MR = X} qui correspond à la puissance, et { DT=0, MR=Y} qui correspond à l’énergie. Mais donc ça correspond en mettant channel=DT.
Voilà la nouvelle configuration pour ces devices dans mapping.yaml (TI ne dépendant pas du channel, je l’ai affecté à DT1 par défaut… ) :

0xA5:
  0x12:
    0x01:
         - component: "sensor"
           name: "power"
           config:
              state_topic: "DT1/MR"
              state_class: "measurement"
              device_class: "power"
              unit_of_measurement: "W"
           config_json:
              state_class: "measurement"
              state_topic: "DT1"
              value_template: "{{ value_json.MR/(10**value_json.DIV) }}"
              device_class: "power"
              unit_of_measurement: "W"
         - component: "sensor"
           name: "energy"
           config:
              state_topic: "DT0/MR"
              state_class: "total"
              device_class: "energy"
              unit_of_measurement: "kWh"
           config_json:
              state_topic: "DT0"
              state_class: "total"
              value_template: "{{ value_json.MR/(10**value_json.DIV) }}"
              device_class: "energy"
              unit_of_measurement: "kWh"
         - component: "sensor"
           name: "tariff"
           config:
              state_topic: "DT1/TI"
           config_json:
              state_topic: "DT1"
              value_template: "{{ value_json.TI }}"

avec, dans enoceanmqtt.conf:

[EwattchTIC]
address    = 0x00000000
channel    = DT
rorg       = 0xA5
func       = 0x12
type       = 0x01
log_learn  = 1
persistent = 1
1 « J'aime »

Je me demandais s’il serait possible de choisir le nom des entités quand on définit un channel :

Pour le A5 12 01, les 2 channels sont power et energy, par définition de l’EEP.

Par contre, pour les lumières, IO correspond à 2 lampes différentes. On choisit le nom du device (entre [] ), mais les entités sont ensuite automatiquement nommées <device_name>_IO[0-1], ce qui n’est pas forcément très parlant.
Est-ce qu’on ne pourrait pas ajouter, dans le cas de multi-channel, quelque chose comme :

[lumiere_salon-et-entree]
address = 0x0000000
rorg = 0xD2 # VLD
func = 0x01
type = 0x12
channel = IO
channel1 = "entree"
channel0 = "salon"
log_learn = 1
publish_rssi    = 0
command = CMD
persistent = 1

Ce qui donnerait les entités light.e2m_lumiere_salon-et-entree_entree et light.e2m_lumiere_salon-et-entree_salon

Je ne sais pas si ça aurait du sens de faire ça, ni à quel point ça demande de changements dans le code. Après, il y a peut-être des modules avec + que 2 channels différents, et ça rendrait le enoceanmqtt.conf un peu plus verbeux…

J’avais pensé à un truc comme ça à un moment.
Finalement je me suis dit que ce n’était pas nécessaire dans la mesure où on peut changer les noms des entités dans HA.

Oui bien sur on peut les changer après. Mais c’était histoire de tout définir en une seule fois, sans avoir besoin de repasser à plusieurs endroits. Mais c’est du détail, c’est très bien comme ça :wink:

Autre chose que je cherche à faire, c’est appairer 2 appareils entre eux « physiquement ». Par exemple, j’ai un device interrupteur et un light pairés avec ma clé enocean, qui apparaissent dans HA. Je peux faire une automation pour que, lorsqu’on appuie sur l’interrupteur, ça allume la lumière. Seulement, si pour une raison ou une autre HA est down, on ne pourra plus allumer la lumière.
D’un autre côté, je sais qu’on peut pairer un interrupteur avec une lumière, en allant appuyer sur le module.

Dans la mesure où les 2 sont pairés avec la clé, il doit être possible de les faire pairer entre eux, donc sans avoir besoin de redémonter la lampe pour aller chercher le module. Sais-tu comment faire ça ?

Là comme ça, j’aurais tendance à dire que ce n’est pas possible.

Il est impératif de mettre le module commandant la lumière en mode appairage pour pouvoir lui rajouter un nouvel organe de commande. Dans ce mode, le module apprend l’adresse du nouvel organe de commande et la stocke dans sa mémoire interne.
Seuls les émetteurs connus peuvent le commander.

Si j’ai bien compris, tu as un logement livré connecté, il devrait donc y avoir un moyen de mettre la lumière en mode appairage sans la démonter. Ensuite il te faudra juste appuyer sur le bouton qui allumera la lumière et l’appairage sera effectué.

Oui c’est ça, tout est déjà installé dans le logement. Je peux bien sûr aller dévisser les caches au plafond pour appuyer sur le bouton (c’est ce que j’ai fait pour les appairer avec ma clé usb enocean). Mais ça reste quand même assez lourd pour juste ajouter un interrupteur. Je sais que c’est possible car il y a une appli qui le fait lorsque les devices sont liés à leur box.
Dans l’appli, il faut avoir appairé unefois pour toutes les VR, lumières, interrupteurs etc avec la box. Ensuite, on peut juste sélectionner un interrupteur et lui affecter la lumière que l’on souhaite. Aucune idée de comment c’est fait, et le problème est que cette appli nécessite d’avoir cette box… Mais je suppose que celle-ci doit être en partie similaire à HA couplé d’une clé USB enocean, d’où mon idée de le faire via HA.

Hello @asetGem,

Alors effectivement c’est possible.

Comme ça m’intriguait, j’ai cherché un peu dans les docs EnOcean et j’ai trouvé la spécification Remote Commissioning qui permet entre autres de gérer l’appairage des appareils EnOcean.
Il y a 2 modes pour faire de l’appairage à distance:

  • Un mode qui consiste à juste mettre un appareil en mode appairage à distance et à poursuivre l’appairage de façon traditionnelle. Ça revient à faire un appui virtuel sur le bouton learn du module.
  • Un mode un peu plus évolué où on écrit directement dans la mémoire du module à appairer. Plus besoin ici de mettre le module en mode d’appairage. Vu que la finalité de l’appairage est la définition d’une liste de modules connus, ce mode vient donc mettre à jour directement cette liste.

Seul bémol, apparemment tous les appareils EnOcean ne supportent pas forcément ce « Remote Commissioning ». Les tiens de toute évidence le supportent.

En cherchant encore un peu sur le site EnOcean, j’ai trouvé ce lien qui explique comment utilisé Dolphinview pour réaliser cette opération.

J’ai regardé tout ça un peu en diagonal mais ça semble très intéressant comme fonctionnalité.
On ouvrira peut être un nouveau sujet pour échanger la dessus si besoin.

Bonjour,
J’ai un petit soucis avec des modules D2-05-00, les volets fonctionnes à l’envers et lorsqu’ils sont en position à fond le bouton monté ou descendre disparais. est ce un réglage a faire?

Bonjour,
Normalement non, pas de réglage à faire. Mais peut-être que certains modèles utilisent les commandes inverses. Pouvez-vous aller dans "outils de développementé > « etats » > le nom de votre entité. Dans les attributs, quelle est la valeur de current position lorsque le volet est ouvert/ lorsqu’il est fermé ?

Bonjour,
Lorsque le volet est en état fermé la position est a 0, en état ouvert il est a 100.
J’ai lu plus haut que vous aviez eu le même problème et vous avez changé des valeurs, je ne trouve pas le fichier pour changer ces valeurs

C’est dans le mapping.yaml (HA_enoceanmqtt/mapping.yaml at master · mak-gitdev/HA_enoceanmqtt · GitHub)

ligne 394, remplacer la valeur de POS par :

payload_open: >-
     {"CMD":"1","POS":"100","ANG":"127","REPO":"0","LOCK":"0","CHN":"0","send":"clear"}
payload_close: >-
     {"CMD":"1","POS":"0","ANG":"127","REPO":"0","LOCK":"0","CHN":"0","send":"clear"}

Vous pouvez mettre ce fichier personnalisé dans le dossier que vous souhaitez et vous y référer en donnant son chemin dans la configuration de l’add-on enoceanmqtt (à la place de ne rien mettre pour accéder au fichier par défaut).

Merci de votre aide tout fonctionne nickel. :grin:

1 « J'aime »

Hello, suis passé par l’intégration interne à HA, ca fonctionne niquel, merci pour tout :slight_smile: