New openHab2 EnOcean binding

Hi Tristan,

EnOcean defined different ways for peering an actor/sensor with openhab. In your case you cannot use the discovery or autodetect mode as your actor does not send a message to which the binding could respond. Instead you have to do the following steps:

  • Define your thing with the correct EnOceanId and choose an unique SenderId
  • Bind the TeachIn channel of this thing to a switch item
  • Set your actor into learning/teach in mode
  • Switch your teach in item in openhab to ON

Afterwards you should be able to control your actor through openHAB.

Best regards
Daniel

1 Like

Hi Daniel,
thanks it´s working fine!
Can you write down this little manual to the Openhab Bindig ENOCEAN FAQ. or make a little wiki, please. I have read about 500 of this 725 comments, learned a lot in the FHEM Forum, but the little piece to suceed , was only “where the hell is the teachIN channel”
I did find the solution -> the TeachIn channel is not showing automaticly in the switching/dimming actor thing-configuration-> you must click on the right corner “show more” and now the channel is there and you be able to link them, you doesn`t need to link a rocker Switch Item to the teach In channel of the switching/dimmer, because after the teach in linking in OH a new switch appears in “control” under your named schwitching/dimming actor for pairing , works great and fast, if you know this :face_with_monocle:

here some picture:

1 Like

Hi Tristan,

thanks for your suggestions. I hoped that the documentation would be clear, but an additional hint regarding the “show more” button would be indeed helpful :+1: Another good point is the ENOCEAN FAQ. Where would you expect to find this FAQ? I am not aware of such a section for the other bindings in den openhab docs.

Best regards
Daniel

Hi Daniel,

i had readthe documentation in OH about Enocean, but for me it dont realy help. i am not a programmer iam only a Noob. Two question from my side, are you from germany? can i pm you if i would have some more questions? Regards the ENOCEAN FAQ , its my misstake this exist only in the FHEM Forum

Tristan

One Note to de FUD61NPN, if the State in OH2 switch in 2-3 second back towards Zero, then please activate the Feedback function -> upper Switch toward “CLR” and the under Switch three Times to “Auto”, The the Backchannel is active and the State will be the realtime State of your FUD61NPN

Thank you very much for your efforts and the reference to ReMan & ReCon.

It’s the same as here

and

I think at the moment there is no solution or this. I’ll wait :slight_smile:

Best regards
Sebastian

Hi Daniel and Dominik,

now I have a Hora Smartdrive MX installed and (as I suspected as stilla noob) I get it not working properly.
Implementiation into openhab seems to be o.k. It has been detected automatically, switched to online and all channels are available in PaperUI. The only anomaly was that the device was offered twice in the inbox without rocognizable difference except the deviceID. But now I get not all data (correct) from the device, especially not the current temperature (see figure below). I’m also wondering about exact same values indicated by the channels ‘rssi’ and ‘failure code’ (my be a mismatch in program code?).


The logfile reports following:

2019-09-29 10:47:46.976 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG _4BS for 019AA8F9 payload A552273509019AA8F90000FFFFFFFF3000 received
2019-09-29 10:47:46.978 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - ESP Packet payload A552273509019AA8F900 for 019AA8F9 received
2019-09-29 10:47:46.987 [vent.ChannelTriggeredEvent] - enocean:thermostat:bdf9f894:019AA8F9:statusRequestEvent triggered false
2019-09-29 10:50:41.763 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG _4BS for 019AA8F9 payload A54F253509019AA8F90000FFFFFFFF3100 received
2019-09-29 10:50:41.767 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - ESP Packet payload A54F253509019AA8F900 for 019AA8F9 received
2019-09-29 10:50:41.783 [vent.ChannelTriggeredEvent] - enocean:thermostat:bdf9f894:019AA8F9:statusRequestEvent triggered false
2019-09-29 10:53:45.744 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG _4BS for 019AA8F9 payload A54E223509019AA8F90000FFFFFFFF3000 received
2019-09-29 10:53:45.748 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - ESP Packet payload A54E223509019AA8F900 for 019AA8F9 received
2019-09-29 10:53:45.771 [vent.ChannelTriggeredEvent] - enocean:thermostat:bdf9f894:019AA8F9:statusRequestEvent triggered false
2019-09-29 10:56:49.827 [DEBUG] [ernal.transceiver.EnOceanTransceiver] - RADIO_ERP1 with RORG _4BS for 019AA8F9 payload A54D213509019AA8F90000FFFFFFFF3000 received
2019-09-29 10:56:49.831 [DEBUG] [rnal.handler.EnOceanBaseThingHandler] - ESP Packet payload A54D213509019AA8F900 for 019AA8F9 received
2019-09-29 10:56:49.853 [vent.ChannelTriggeredEvent] - enocean:thermostat:bdf9f894:019AA8F9:statusRequestEvent triggered false
....

I have also seen your following instruction, but I don’t know how what exactly, and where has to be implement in openhab?
grafik

It would be very helpful to get your assistance again.
Thank you very much in advance.

Best regards
Klaus

Hey @kdmsch,

the error code should be positive:

Please double check whether you are using the correct channel!

The thermostat is asking OpenHAB for new instructions, so you have to implement a rule to send back a response each time you receive a telegram. Otherwise your thermostat will show error !53. Try to move the wheel of the device and have a look at the display. Please describe what you see. Two arrows pointing to each other? This means pairing didn’t succeed. !53? -> no response from OpenHAB. I’ll show you how to implement a DSL rule hopefully this evening.

Which EnOcean binding version are you using?

Dominik

Hi Dominik
thank you for the hints. Yes now -after some hours - I get now the failure code 53 - (and this is now different from rssi and this in what I also have expected) - which is is also what I see on the Hora-display after temperture was displayed (53!). In the upper right corner small two arrows pointing to each other are shown and the ain display shows simultaneous the actual temperature. After temperature main display changes to the failure code 53!. But I get already the following information from the Hora:

I have currently running 2.5.0 snapshot 1703.
As up to now I only have implemented some very simple an small rules it would be great if you could give me an example how this rule have to look like.

Thanke you for your fast support.

Best regards
Klaus Schäfer

Excellent!
So as I said, you need a rule that gets fired when you receive a telegram from your device. In this rule you can use the values

  • Feed temperature
  • SetPoint (target temperature)
  • Room temperature
  • Current valve position

to calculate the new valve position. Once the new position is set, you have to trigger an event to send back the answer to the device.

Let us think of the following conf/items/enocean.items:

Switch c_thermo_sendcommand "Send Command" {channel="enocean:thermostat:usb300:11223344:sendCommand"}

Number:Temperature c_thermo_feedtemp "Vorlauftemperatur [%.1f °C]" {channel="enocean:thermostat:usb300:11223344:feedTemperature"}
Number:Temperature c_thermo_setpoint "Gewünschte Temperatur [%.1f °C]" {channel="enocean:thermostat:usb300:11223344:temperatureSetPoint"}
Number:Temperature c_thermo_roomtemp "Raumtemperatur [%.1f °C]" {channel="enocean:thermostat:usb300:11223344:temperature"}

Number c_thermo_valve "Ventilöffnung [%d%%]" {channel="enocean:thermostat:usb300:11223344:valvePosition"}
Number c_thermo_wakeupcycle "WakeUp cycle [%d]" {channel="enocean:thermostat:usb300:11223344:wakeUpCycle"}

Example of a conf/rules/thermostat.rules:

rule "Thermostat status request event"
when
    Channel "enocean:thermostat:usb300:11223344:statusRequestEvent" triggered
then
    logWarn("Thermostat", "New thermostat status request event");

    // Read values from device
    val feedtemp = (c_thermo_feedtemp.state as Number).floatValue();
    val setpoint = (c_thermo_setpoint.state as Number).floatValue();
    val roomtemp = (c_thermo_roomtemp.state as Number).floatValue();
    val valve = (c_thermo_valve.state as Number).floatValue();

    // Calculate your new values

    // Set new values
    c_thermo_setpoint.sendCommand(setpoint);
    c_thermo_valve.sendCommand(valve);
    c_thermo_wakeupcycle.sendCommand(9);

    // Send answer back to device
    c_thermo_sendcommand.sendCommand(ON);
end

Keep in mind that the Hora Smartdrive MX does not always listen for new telegrams from OpenHAB. It wakes up periodically and asks for new values, which have then to be sent as an answer.

Unfortunately, I cannot give you an implementation for calculating the valve position. I think of a PI controller, but as it it summer I was not able to test this, so I didn’t implement it yet…

Furthermore, I am still not sure whether the thermostat controller logic should be part of the EnOcean binding, a completely own binding, part of OpenHAB, or something the user has to provide (like it is now)…

Cheers,
Dominik

thank you very much again Dominik, spending your night to give me a efficient lessen in Openhab😊. I will now implement and test it in my environment. Will inform you when it is successful.

Best regards
Klaus

HI Tristan,

sorry for my late answer. I am from Cologne, so I speak german. You can also PM me, but do not expect quick answers :grinning:

Daniel

Hi Sebastian and all others interested in the ongoing progress,

I have currently three pending PR:

  • Channel definition improvements => #6149
  • Support for Environmental Sensors => #5741
  • Support for tristate pushbuttons => #6155

Next PR after pending PR are finished (features are already implemented)

  • Support for signal messages like battery level, addresses problem of @kdmsch
  • Improve detection of unreceived messages, retry policy and support for duty cycle messages @raphael
  • Support for wired setup => ESP2 @kbecker

Next steps

  • Sync openocean repo with official binding
  • SMACK (already implemented, further tests outstanding, will be first submitted to openocean repo) @Ratiomatic
  • ReMan & ReCon!!!

So ReMan and ReCon are on my list, but still need some time.

Best regards
Daniel

1 Like

Hi @kdmsch,

I added support for SIG telegrams to the openocean binding (2.5.0.2 release). Could you do me a favor and test if this works? I checked all my devices but none sends such telegrams. After a successsful test I would merge it to the official binding.

Best regards
Daniel

Hello Daniel,

I have two new Items ,NODON PIR occupancy. With the EEP A5-07-03. how can i add These Sensors? My First expirements are i can add them But they only Switch First Time to „ on „ and later not back „ off“ how can we Solve That?

Best Regards

Tristan

Hi Tristan,

it should be possible to autodetect these NodOn PIR sensor. Just start discovery and press the paring button afterwards on the sensor. This should send a teach in telegram which should get recognized by the binding (a lot of should :wink: ).
Nevertheless an “off” signal should be detected when you add this sensor manually too. Could enable the debug log and post the received messages of the sensor?

Best regards
Daniel

Helll Daniel,

If i use the autodiscovery OH discover a generic thing , with some channels like RGB color adjust… seems a EEP with A5-ff-ff-ff. how can i make a debug log?

Best regard

Tristan

Hello,
I think I had the same with a tracker device from eltako that also uses the A5-07 and only sends ON messages. My workaround was to use a switch Item with the expire binding. In my case if no new ON command arrives within 10 minutes it switches the item to OFF. This should work for the Nodon pir too if it sends an ON telegram every time it detects motion. Hope this helps at least as a workaround.
Best regards Johannes

Hi Daniel,

I will install and test it. But what is the 2.5.0.2 version? Is it just available or an upcoming release? Since some weeks I use always the latest snapshot.

Best regards
Klaus

HI Tristan,

which version of the binding do you use? There was a bug in the detection of EEP A5-07-03 which got fixed with #5704 . This fix is contained in 2.5 milestones.
The debug log can be activated through the karaf console. On an openhabianpi setup do the following:

  • ssh -p 8101 openhab@localhost
  • PSW: habopen
  • log:set debug org.openhab.binding.enocean

The NodOn Pir can be setup with an automatic OFF time, after which an off signal is send. Maybe this time is to high :man_shrugging:

Best regards
Daniel

1 Like