Enocean : add profils

Hi everybody,

I want to replace my Dashbutton from Amazon.
I choose the Enocean technology and I bought a Nodon Soft Button (EEP: D2-03-0A).

Does it possible to add this profil ? I’m a really no coder…
I used DolphinView to have a Telegram Log of the equipment:

  <EventLog>
    <Control Timestamp="2019-08-15 11:39:33.474" Direction="Open" Port="COM5" Type="Connection" Data="FT3G6J18A GATEWAYCTRL 868.3 MHz ERP1 2.15.0.0" />
    <Telegram Timestamp="2019-08-15 11:39:36.790" Direction="Incoming" Port="COM5" RORG="D2" Data="64 01" Status="00" ID="8100C8F4" dBm="-61" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="0" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2019-08-15 11:39:36.790" Direction="Incoming" Port="COM5" Type="01" Data="D2 64 01 81 00 C8 F4 00" OptionalData="00 FF FF FF FF 3D 00" />
    </Telegram>
    <Telegram Timestamp="2019-08-15 11:39:44.968" Direction="Incoming" Port="COM5" RORG="D2" Data="64 02" Status="00" ID="8100C8F4" dBm="-65" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="0" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2019-08-15 11:39:44.968" Direction="Incoming" Port="COM5" Type="01" Data="D2 64 02 81 00 C8 F4 00" OptionalData="00 FF FF FF FF 41 00" />
    </Telegram>
    <Telegram Timestamp="2019-08-15 11:39:47.088" Direction="Incoming" Port="COM5" RORG="D2" Data="64 03" Status="00" ID="8100C8F4" dBm="-61" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="0" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2019-08-15 11:39:47.088" Direction="Incoming" Port="COM5" Type="01" Data="D2 64 03 81 00 C8 F4 00" OptionalData="00 FF FF FF FF 3D 00" />
    </Telegram>
    <Telegram Timestamp="2019-08-15 11:39:47.498" Direction="Incoming" Port="COM5" RORG="D2" Data="64 04" Status="00" ID="8100C8F4" dBm="-61" DestinationID="FFFFFFFF" SecurityLevel="0" SubtelegramCount="0" Tickcount="0" OptionalData="" >
      <Packet Timestamp="2019-08-15 11:39:47.498" Direction="Incoming" Port="COM5" Type="01" Data="D2 64 04 81 00 C8 F4 00" OptionalData="00 FF FF FF FF 3D 00" />
    </Telegram>

The Data[2] is the only bit which change:

  • Data[2] = 01: normally press and release
  • Data[2] = 02: 2 quick presses
  • Data[2] = 03: Long press (and still pressed)
  • Data[2] = 04: Release of a long press

Does it possible to integrate this equipment ? Or explain me how to do ?

Thank you in advance !!!

Wheee! I just managed to got one of those up and running (HA on a Synology VM, local USB 300 stick) with a hand forged action:

alias: Nodon Enocean Soft Button  
description: ''
trigger:
  - event_data:
      id:
        - [id byte 1]
        - [id byte 2]
        - [id byte 3]
        - [id byte 4]
      onoff: -1
      which: -1
      pushed: null
    event_type: button_pressed
    platform: event
condition: []
action:
 :
mode: single

The integration seems to recognize it as a button, but doesn’t care for the details: I get an event that something happened with the button, but not what exactly.

That’s good enough to use this button on a most rudimentary level, but it’d be nice to be able to use it properly, with double press and long hold/release.

Looking at the binary_sensor.py source code, the reason is obvious: it doesn’t check for any specific types of buttons but assumes EEP F6 types and reacts to their defined button states.
As a result, “pushed”, “which” and “onoff” are not set.

This button is implemented as EEP D2-03-0A, as stated above, and decoding the action would be simple enough as it’s coded in packet.data[2], see above.

Also, packet.data[1] contains the battery level in %.

Looks like the Enocean integration needs a lot of love, I’m not asking for full luxury here.

Properly named events would indeed be nice to have, but I could live very well with a quick and dirty yet usable workaround, like adding raw packet.data[1] and packet.data[2] to the event.

Anyone? Pretty please?