New openHab2 EnOcean binding

Hi Daniel (@fruggy83),

just one thing I observed. I am using the following generic thing

Thing enocean:genericThing:37182ce4:FFC75D0D "Aktor - Licht - Feld3_17_1" (enocean:bridge:37182ce4) @ "Garten" [enoceanId="FFC75D0D", senderIdOffset=13,sendingEEPId="A5_FF_FF", receivingEEPId="A5_FF_FF", broadcastMessages=true] {Channels: Type genericSwitch:genericSwitch [transformationType="MAP", transformationFunction="enocean_FSR12.map"]}
Switch iLicht_Gartenlampe_Walnuss "Licht - Gartenlampe Walnuß" <light> (gEveningLight) {channel="enocean:genericThing:37182ce4:FFC75D0D:genericSwitch",autoupdate="true"}

with a mapping file

// syntax for EEP A5_FF_FF:
genericSwitch|ON=0000000F
genericSwitch|OFF=FFFF000F

which works fine for me. However I get a warning in the log

2018-12-28 10:21:57.697 [WARN ] [rm.AbstractFileTransformationService] - Could not transform 'genericSwitch|FFFF000F' with the file 'enocean_FSR12.map' : Target value not found in map for 'genericSwitch|FFFF000F'

which disappears when I add

// syntax for EEP F6_FF_FF 
genericSwitch|0000000F=OnOffType|ON
genericSwitch|FFFF000F=OnOffType|OFF

in the mapping file. Should I get the warning? Apart from the warning everything works fine for me.

Best regards,
Thorsten

Hi Daniel (@fruggy83) and all,

I don’t get this “Peha 452 FU-EBI o.T.” working.

First of all, that “Easyclick Gateway Binding Application Note” doesn’t meet it’s behaviour. The actuator doesn’t act like described in that PDF, albeit it should apply to that model. I always end in “Programming Mode” … both LEDs blink green.

So, I used “normal” teach in for each channel, while a running enocean discovery with OH2. In log I see the UTE requests and also that OH2 is answering those. This happens within “a second”, so enabling teach in on the actuator for one channel, blinking red led, solid red led, no led. Then I have a new devices in inbox.

From here it doesn’t make any difference, if I define this channels as a thing in PaperUI or in my things file, parameters and behaviour is the same. These two things are polled by OH2, I get the correct status of my switches, but cannot switch them from OH2.

Trying to switch I see outgoing payload and obviuously an answer RESPONSE with code RET_OK payload 00 received, but actuator doesn’t do anything … also I do see regular polling channels in log, followed by some enocean payload and RET_OK.

Definition looks like that, default.things:

   Thing measurementSwitch esszimmer_eg_vswitch0 "Esszimmer EG VSwitch Tisch (EEP D2_01_08)" @ "OPENHAB2" [
      enoceanId="XXXXXX01",
      senderIdOffset=3,
      sendingEEPId="D2_01_08",
      broadcastMessages=false,
      receivingEEPId="D2_01_08",
      suppressRepeating=false,
      pollingInterval=300 ]
   Thing measurementSwitch esszimmer_eg_vswitch1 "Esszimmer EG VSwitch Wand (EEP D2_01_08)" @ "OPENHAB2" [
      enoceanId="XXXXXX03",
      senderIdOffset=4,
      sendingEEPId="D2_01_08",
      broadcastMessages=false,
      receivingEEPId="D2_01_08",
      suppressRepeating=false,
      pollingInterval=300 ]

default.items:

Switch VSwitch_Esszimmer_EG_Tisch_Licht "VLicht Esszimmer EG Tisch" <light> (EG_Esszimmer) {
   channel="enocean:measurementSwitch:gtwy:esszimmer_eg_vswitch0:generalSwitch",
   autoupdate="true"
}
Switch VSwitch_Esszimmer_EG_Wand_Licht "VLicht Esszimmer EG Wand" <light> (EG_Esszimmer) {
   channel="enocean:measurementSwitch:gtwy:esszimmer_eg_vswitch1:generalSwitch",
   autoupdate="true"
}

Any advice welcome :slight_smile:

Thanks so far.

Cheers
Frank

PS.: I found the trailing EnoceanID from one of the former posts. I forgot, one of my single channel actuators is also an EBI, exactly a “Peha 451 FU-EBI o.T.”. But same issue, no gateway “teach in” modus and with normal teach in I just get the VLD part teached in and not the 4BS part. So no switching from OH2 possible …

Hi Daniel (@fruggy), did you received the log via email?
Thanks, Tino

Hello all,
I give OpenHab a new chance because of the new EnOcean binding.
Thank you very much for this work!!

Can you tell me what is the detailed meaning of the RS485 option of this binding?

My understanding/hope is to be able to use a direct (cable) connection to the Eltako 14 - RS485 Bus.
Sending and receiving EnOcean radio telegrams over FGW14. Is this the right understanding?
Which baud rate is used (setting on FGW14)?

My installation is using self made light switches that are sending ERP telegrams over a second FGW14 to the actuators (FSB14/FSR14/FUD14/F4HK14).
For the moment no information of the sensors is available on the wireless interface.
Because of this, a cable connected solution would e great!

Thank you again!
Rainer

1 Like

Hi Daniel (@fruggy83 ),

I have a push button and tried to integrate it with the definition

Thing enocean:pushButton:37182ce4:0082EB6D "Schalter - Mobil" (enocean:bridge:37182ce4) @ "Schlafzimmer" [enoceanId="0082EB6D", receivingEEPId="F6_01_01"]
Switch iSchalter_Schlafzimmer "Schalter - Schlafzimmer" <switch> (gSwitch) {channel="enocean:pushButton:37182ce4:0082EB6D:pushButton"}

In PaperUI it is marked online but when I push the button I get the following error in the log

2018-12-30 17:36:30.271 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2018-12-30 17:36:30.275 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2018-12-30 17:36:30.283 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 0082EB6D payload F6100082EB6D2001FFFFFFFF5200 received
2018-12-30 17:36:30.289 [ERROR] [ding.enocean.internal.eep.EEPFactory] - Cannot instantiate EEP F6-01-01: null
2018-12-30 17:36:30.292 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - java.lang.reflect.InvocationTargetException
2018-12-30 17:36:30.575 [TRACE] [ernal.transceiver.EnOceanTransceiver] - Received Sync Byte
2018-12-30 17:36:30.580 [TRACE] [ernal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
2018-12-30 17:36:30.586 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for 0082EB6D payload F6000082EB6D2001FFFFFFFF5000 received
2018-12-30 17:36:30.592 [ERROR] [ding.enocean.internal.eep.EEPFactory] - Cannot instantiate EEP F6-01-01: null
2018-12-30 17:36:30.596 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - java.lang.reflect.InvocationTargetException

Do you have any idea what this means?

Best regards,
Thorsten

Good evening everybody,

I upgraded now to 2.5 snapshot of the binding running 2.4 OH and facing the issue to change all my item and config files related to the binding.

I achieved my mechanical handle to run. First issue I am facing to is that I don’t get a standard light (actuator + switch) running.

.thing:

Bridge enocean:bridge:FT1M2J09 "EnOcean GatewaY" [ path="/dev/ttyUSB0" ] 
   {
   Thing mechanicalHandle fk01 "Fensterkontakt" @ "Schlafzimmer" [ enoceanId="ABEFCDGH", receivingEEPId="F6_10_00" ]
   Thing classicDevice cd01 "Licht Leseecke" @ "Leseecke" [ 
      senderIdOffset=1, 
      sendingEEPId="F6_02_01", 
      broadcastMessages=true, 
      receivingEEPId="F6_02_01",
      suppressRepeating=false]
      { 
      Type virtualSwitchA             : virtualSwitchA              [duration=300, switchMode="rockerSwitch"]
      Type rockerswitchListenerSwitch : Listener1 "Schalter Leseecke links"  [enoceanId="ABCDEFGH", channel="channelB", switchMode="rockerSwitch"]
      }
   }

.items:

Switch Leseecke "Leseecke"  {
                            channel="enocean:classicDevice:FT1M2J09:cd01:virtualSwitchA", 
                            channel="enocean:classicDevice:FT1M2J09:cd01:Listener1"
                            }

Now my questions:

Based on my old configuration I expected that I can enter the ID into the virtual Switch as before to avoid for each device the teach in mode again:

old .item:

Switch Licht_Virtual_Rocker_Leseecke "Leseecke" <lightbulb> (Alle_Lichter_WZ) ["Lighting"]{channel="openocean:virtualRockerSwitch:6a9999c8:virtualRockerswitchA"}

Where can I set the existing EnOceanId ID (from the old virtual rocker) for the new virtual Rocker that I can use it again?

Second: What is the logic behind the listener? By now I get a signal for a dummy switch in my sitemap, but it is the opposite of DIR1 and DIR2. By switching the light to ON with DIR2, the sitemap status change to off and with DIR1 (OFF) the sitemap status of the switch changes to ON, which is confusing me a bit. Any hint where I can set the correct DIR?

I hope someone faced the same issue and solved it… :slight_smile:
Cheers,
Woogi

Hi community,
I recently bought an Enocean Pi (running on RPi 3 / openHAB2). So as of now, there’s not a single actor available at home. My intention was to make sure first the gateway is running.

cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 root=PARTUUID=8a390473-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

config.txt
enable_uart=1
dtoverlay=pi3-disable-bt

pi@raspberrypi:~ $ dmesg |grep tty
[ 0.000000] Kernel command line: 8250.nr_uarts=1 bcm2708_fb.fbwidth=800 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=PARTUUID=8a390473-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[ 0.669650] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
[ 0.669696] console [ttyAMA0] enabled
[ 4.433993] usb 1-1.3: ch341-uart converter now attached to ttyUSB0

enocean.thing:

Bridge enocean:bridge:gtwy "EnOcean Gateway" [ path="/dev/ttyAMA0" ] {

}

Log:
2018-12-31 01:11:31.497 [hingStatusInfoChangedEvent] - ‘enocean:bridge:gtwy’ changed from OFFLINE (CONFIGURATION_PENDING): opening serial port… to OFFLINE (CONFIGURATION_PENDING): starting rx thread…
2018-12-31 01:11:31.504 [hingStatusInfoChangedEvent] - ‘enocean:bridge:gtwy’ changed from OFFLINE (CONFIGURATION_PENDING): starting rx thread… to OFFLINE (CONFIGURATION_PENDING): trying to get bridge base id…

I’m having a Jeelink running. So i cannot deactivate uart/serial. Is that a show stopper? Already tried to set log level for binding to trace, but nothing happens:
/var/lib/openhab2/etc/org.ops4j.pax.logging.cfg => log:set TRACE org.openhab.binding.enocean

Any suggestions?

Hello everybody,

I am back from my family roundtrip and will try to answer your questions now. Please post your question again, if I should miss a question.

Best regards and a happy new year!
Daniel

Hi Frank (@fnu),

you default.items file contains an error in the channel definition. A channel link for a measurementSwitch should look like enocean:measurementSwitch:gtwy:esszimmer_eg_vswitch0:generalSwitchor enocean:measurementSwitch:gtwy:esszimmer_eg_vswitch0:dimmer. You missed the last part of the channel Id.You can always click on the icon next to the channel name to copy the channel Id into your clipboard. So first of all fix your item file. Try the generalSwitch channel first, if it does not work, try the dimmer channel. If this still does not work, you should post the log containing the messages when you switching the item in openhab and when you switch the device with your physical rockers.

I just get the VLD part teached in and not the 4BS part

You PEHA devices use VLD and 4BS status messages with different EnoceanIds. As these messages should contains the same content, you can ignore the 4BS part.

But, it sometime takes a while until the eoncean gets back online

I also see such a behaviour in my logs. But did not looked into it as the EnOceanSerialTransceiver always initialized. Maybe the first try is to fast. It sends the base id request before the receiving thread is running and therefore missed the answer from the gateway.

Best regards
Daniel

Yes, that’s right, it was wrong in my post, I corrected it in real life (and now in post) … :slight_smile: … but still doesn’t work … :frowning:

If I look in the debug enabled log, it looks like as there are too less messages send out to the Peha EBI. If I switch one of the unidirectional Peha ones, I see always two payploads been sent, with the EBI one just one. Unlike the Nodon actuators, there’s no payload answer from the Peha EBI ones …

In the meantime I replaced the 2-channel Peha EBI with a Nodon 2-channel, what worked in OH2 with your openocean 2.5.0-SNAPSHOT within a couple of minutes …

I still have the 1-channel Peha EBI in business for further investigations …

How to update the openocean binding? Stopping OH2, replace the jar file with a newer brew and restart OH2?

Cheers
Frank

Hi Thorsten (@ThAO),

In PaperUI it is marked online but when I push the button I get the following error in the log

As I do not own a push button, I could not test it by my own. However I already found the bug and will fix it soon.

Should I get the warning?

Without these two lines, you can only send messages to the Aktor but you are not able to transform incoming messages. If you do not need this inbound messages, you can ignore these warnings.

I hope I did not waste your time with the issue

No problem. I had similar problems with my outdoor temperature sensor. Dev machine (USB300) receives the messages flawlessly, my server (EnOceanPi) not. But why are you using FHEM and openHAB in parallel? Do not you trust my binding :wink:

Best regards
Daniel

Hi Frank (@fnu),

If I look in the debug enabled log, it looks like as there are too less messages send out to the Peha EBI

Maybe we should just conntact the PEHA support and ask them what kind of messages they are expecting. The NodOn guys where really helpfull in such a case and even solved problems with the UTE teach in.

How to update the openocean binding? Stopping OH2, replace the jar file with a newer brew and restart OH2?

I am doing it in the same way. If you are in doubt you could also clean the cache before starting openHAB again. In this case you have to reinstall the serial feature to get the binding running.

Best regards
Daniel

Hi Daniel (@fruggy83),

thanks for checking my issue.

I am still running FHEM in parallel because I am using Busch-Jaeger motion detection sensors in conjunction with Peha 455 FU-S2 sender. To receive the signal I need the push button running (it also sends 0x00 / 0x10). The remaining thing to integrate is an Eltako FMH8 rocker switch - just not tried so far because we almost never use it.

Best regards,
Thorsten

Hi Daniel (@fruggy83),

Will try to call them this week …

The Peha EBI 1-channel is polled regular and correctly about its status (here after restart of OH2):

2018-12-31 14:53:02.124 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG VLD for XXXXXX01 payload D2046080XXXXXX010001FFFFFFFF5000 received
2018-12-31 14:53:02.132 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - ESP Packet payload D2046080XXXXXX0100 for XXXXXX01 received
2018-12-31 14:53:02.159 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG _4BS for XXXXXX00 payload A500009448XXXXXX000001FFFFFFFF5000 received

2018-12-31 14:53:02.165 [vent.ItemStateChangedEvent] - Schlafzimmer_OG_Aktor changed from NULL to OFF

And it looks kind of correct if trying to switch it from OH2:

2018-12-31 15:08:22.260 [ome.event.ItemCommandEvent] - Item 'Schlafzimmer_OG_Aktor' received command ON

2018-12-31 15:08:22.265 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - Enqueue new send request with ESP3 type RADIO_ERP1 without callback
2018-12-31 15:08:22.272 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - Sending data, type RADIO_ERP1, payload D2011E01YYYYYY050001XXXXXX01FF00

2018-12-31 15:08:22.285 [vent.ItemStateChangedEvent] - Schlafzimmer_OG_Aktor changed from OFF to ON

2018-12-31 15:08:22.301 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RESPONSE with code RET_OK payload 00 received

But doesn’t do anything. From the Nodon I get something like this after switching it from OH2:

2018-12-31 15:05:56.589 [ome.event.ItemCommandEvent] - Item 'Esszimmer_EG_Aktor_Kanal1' received command ON

2018-12-31 15:05:56.599 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - Enqueue new send request with ESP3 type RADIO_ERP1 without callback
2018-12-31 15:05:56.616 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - Sending data, type RADIO_ERP1, payload D2010101YYYYYY030001XXXXXXF6FF00

2018-12-31 15:05:56.622 [vent.ItemStateChangedEvent] - Esszimmer_EG_Aktor_Kanal1 changed from OFF to ON

2018-12-31 15:05:56.635 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RESPONSE with code RET_OK payload 00 received
2018-12-31 15:05:57.265 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG VLD for XXXXXXF6 payload D20461E4XXXXXXF60001FFFFFFFF5000 received
2018-12-31 15:05:57.271 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - ESP Packet payload D20461E4XXXXXXF600 for XXXXXXF6 received

The Nodon actuator sends some feedback after switching.

Cheers
Frank

HI Christoph (@sepp99),

for the moment everything works as expected

Always good to hear, that the binding works as expected for someone and does not just make trouble :wink:

The marketplace does not have an autoupdate function. At least I am not aware of. So you just have to deinstall the marketplace binding and just reinstall it to get the newest version.

Best regards
Daniel

Hi Rainer (@jahnra),

sorry that I must disappoint you. Currently the binding does only support radio connection. A wired (RS485) connection is plannend but not yet implemented. This option is the first part of the wired implementation and was not meant to be deployed.

Best regards
Daniel

Hi Tino (@flynux),

yes thanks, I received the log. I will investigate it further tomorrow :+1: .

Best regards
Daniel

Hello Daniel (@fruggy83)

Thank you for your answer!
I think the way to support radio telegrams on the binding is not so far away.
Most of the parts are already there, expect listening for ERP on the interface.

Unfortunately I have no experience in programming JAVA,
but I think about writing a small Python interface between the binding and the serial interface
to do the job of the TCM310 in software.

But I am not disappointed at all! I can imagine how many hours you spent on this project…

Thanks,
Rainer

Hi @all,

happy new year 2019!

Hi Daniel (@fruggy83),

if you have a look into my last post, you can see OH2@openocean does send different payloads to the actuators, for the same action:

Switch on for Peha:

Sending data, type RADIO_ERP1, payload D2011E01YYYYYY050001XXXXXX01FF00

Switch on for Nodon:

Sending data, type RADIO_ERP1, payload D2010101YYYYYY030001XXXXXXF6FF00

The octets for sender and receiver EnoIDs must be different, sure, but what about the others? I’m especially curious why the third octet is different?

Thanks so far.

Cheers
Frank

Hi Daniel (@fruggy83),

happy new year, i hope you enjoyed the time with the Familiy.

I am using your binding since long time, we also had already conversations in the past on Github.
We have the same setup ( Eltako FSB14, etc… ) .

Everything is working fine, but until last week, i never cared about percentage control of my eltako rollershutters, then i started trieng this and it is not working. I tried 2 days many different things, reinstalling the binding, using genericrollershutter, deleted the things and items from my files and created via PaperUI etc. , but i don´t get it to work.

I am on the latest Openhab Snapshot Version, so your binding is also the latest.
The Shuttime is set in my Thing.
My FAM14 is sending the status, the operation mode is set to 2.
Commands Up, Down, Stop, 100,0 are working. But nothing between 1-99 is working. In that case, the command isn´t even send, as you can see in my log.

Is there a general problem or do you have a hint what i am doing wrong?

This is my thing

Thing rollershutter FFAA3DA3 "Arbeiten_rechts_Rollo" @ "Büro"  [enoceanId="FF9D66A3", senderIdOffset=35, sendingEEPId="A5_3F_7F_EltakoFSB", receivingEEPId="A5_3F_7F_EltakoFSB", broadcastMessages=true, suppressRepeating=false, pollingInterval=3] {Channels: Type rollershutter:rollershutter [shutTime=25]} 

This is my item

Rollershutter Arbeiten_rechts_Rollo_Rollershutter "Arbeiten rechts Rollo [%s%%]" &lt;blinds&gt; (Rollo) {channel="enocean:rollershutter:FT1R5UQ1:FFAA3DA3:rollershutter", autoupdate = "false" }

Here a log example, where you can see, that for Command(50) nothing is happening.

10:10:15.195 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'Arbeiten_rechts_Rollo_Rollershutter' received command 50
10:10:27.937 [INFO ] [smarthome.event.ItemCommandEvent     ] - Item 'Arbeiten_rechts_Rollo_Rollershutter' received command 100
10:10:27.954 [DEBUG] [ternal.transceiver.EnOceanTransceiver] - Enqueue new send request with ESP3 type RADIO_ERP1 without callback
10:10:27.959 [DEBUG] [ternal.transceiver.EnOceanTransceiver] - Sending data, type RADIO_ERP1, payload A500190208FFAA3DA30001FFFFFFFFFF00
10:10:27.973 [TRACE] [ternal.transceiver.EnOceanTransceiver] - Received Sync Byte
10:10:27.981 [TRACE] [ternal.transceiver.EnOceanTransceiver] - >> Received header, data length 1 optional length 0 packet type 2
10:10:27.985 [DEBUG] [ternal.transceiver.EnOceanTransceiver] - RESPONSE with code RET_OK payload 00 received
10:10:27.990 [TRACE] [ternal.transceiver.EnOceanTransceiver] - Response without listener
10:10:28.465 [TRACE] [ternal.transceiver.EnOceanTransceiver] - Received Sync Byte
10:10:28.470 [TRACE] [ternal.transceiver.EnOceanTransceiver] - >> Received header, data length 7 optional length 7 packet type 1
10:10:28.478 [DEBUG] [ternal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG RPS for FF9D66A3 payload F602FF9D66A33001FFFFFFFF5000 received

Best regards and thanks

Wiss911