OpenHAB2, EnOcean and NodOn - Bindings

Hi folks,

Iā€™m not a beginner in Home Automation, but Iā€™m a newbie in EnOcean.
My house is 95% KNX equipped, and I wanted to extend the last lights which are not managed through KNX.
At the beginning I wanted to use ZWave, but the proof of concepts didnā€™t work and I had to give up this technology because of the mesh (not enough equipped)
I saw that EnOcean could fulfil my expectations, but at the moment I cannot control my smart plug :frowning:

Configuration:

  • Raspberry PI 2 with a Raspbian distribution
  • EnOcean Gateway USB 310 (This is the same than the USB 300, but with a SMA port (amazon link)
  • Smart Plug EnOcean nodOn Type E ASP-2-1-00 (amazon link)

I installed my gateway following the EnOcean Setup Procedure (EnOcean link)
I checked in FHEM and Iā€™m able to see my gateway and to ā€œinteractā€ with it (get functions)

At this moment, I tried to link my Smart Plug with my Gateway as follows:

First tests

  • My environment is clean (no interferences)
  • Gateway is plugged in Raspberry PI2
  • NodOn Smart Plug is not so far away from the gateway (around 3 meters / 10 feet) without any wall between them (I tried at other distances between 1m/3feet and 6m/20feet, but the result is the same)
  • Raspberry reboot and FHEM is automatically launched
  • When Raspberry was stable (all services launched), I pressed the ON/OFF button during around 2sec, it was red blinking.
  • After around 30 secondes, it went back to green.
  • In FHEM, the Smart Plug wasnā€™t recognized.
  • In the logs : NOTHING, except some messages saying the gateway disappeared and reappeared just when I pressed the button on the NodOn Smart Plug.

Communication Sniffing using EnOcean Tools

  • I did a factory reset on the Smart Plug to have a clean configuration
  • I used EnOcean Dolphin View (Basic et Advanced) under Windows 7 with the gateway plugged on the computer
  • When I shortly pressed on the Smart Plug Button, I can see bytes in the logsā€¦ That was great ! Because now I know that the communication exists at least from the smart plug to the gateway
  • I tried to send a message from Dolphin View to the Smart Plug, but without any success. Iā€™m not saying it doesnā€™t work, I just think I wasnā€™t able to correctly use the application (didnā€™t understand everything)

Communication Sniffing through Raspberry

  • Then, I went back on the Raspberry PI2 hosting Raspbian with the gateway physically plugged on it
  • I stopped OpenHAB and FHEM and I checked that the gateway was recognized and mounted as /dev/ttyUSB0.
  • I executed the ā€˜ls -l /dev/ttyUSB0ā€™ command, it gave me the following result:
crw-rw---- 1 root dialout 188, 0 dƩc. 2 00:21 /dev/ttyUSB0

and the ā€˜idā€™ command gave me:

uid=1001(openhab) gid=1001(openhab) groupes=1001(openhab),5(tty),20(dialout)

so my user belongs to ā€œdialoutā€ and ā€œttyā€ groups
I then tried to execute the following commands:

sudo stty -F /dev/ttyUSB0 57600
sudo hexdump -C < /dev/ttyUSB0

And then, I tried to interact with the Smart Plug. I could see bytes sent each time I shortly pressed the ON/OFF button
Again, it means that the communication exists at least from the smart plug to the gateway

And now, Iā€™m trying to reach the ultimate goal : Make it work through OpenHAB2

My item object (I got the Smart Plug Id through Dolphin View) :

Switch E1_Cxx_yy   "Living Room Switch" (E1_LIGHTS) {enocean="{id=01:8B:37:26, eep=D2:01:0A}"}

My sitemap object :

...
Text label="Living Room" icon="sofa" {
     Frame {
          // items
          switch item=E1_Cxx_yy
     }
}
...

my log file (just concerning EnOcean) :



$ grep -i cean /var/log/openhab2/openhab.log

2016-12-02 16:26:04.822 [DEBUG] [org.openhab.binding.enocean ] - BundleEvent
STARTING - org.openhab.binding.enocean

2016-12-02 16:26:04.829 [DEBUG] [ng.enocean.internal.EnoceanActivator] -
enocean binding has been started.

2016-12-02 16:26:04.952 [DEBUG] [org.openhab.binding.enocean ] - ServiceEvent
REGISTERED - {org.openhab.model.item.binding.BindingConfigReader,
org.openhab.binding.enocean.EnoceanBindingProvider}={component.name=org.openhab.binding.enocean.genericbindingprovider,
component.id=141, service.id=258,
service.bundleid=176, service.scope=bundle} - org.openhab.binding.enocean

2016-12-02 16:26:09.224 [DEBUG] [org.openhab.binding.enocean ] - ServiceEvent
REGISTERED - {org.osgi.service.event.EventHandler,
org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*,
service.pid=org.openhab.enocean, component.name=org.openhab.binding.enocean.binding,
component.id=140, service.id=260,
service.bundleid=176, service.scope=bundle} - org.openhab.binding.enocean

2016-12-02 16:26:09.226 [INFO ] [.enocean.internal.bus.EnoceanBinding] -
Connecting to Enocean [serialPort='/dev/ttyUSB0' ].

2016-12-02 16:26:09.230 [INFO ] [g.apache.aries.spifly.dynamic.bundle] - Bundle
Considered for SPI providers: org.openhab.binding.enocean

2016-12-02 16:26:09.233 [INFO ] [g.apache.aries.spifly.dynamic.bundle] - No
'SPI-Provider' Manifest header. Skipping bundle: org.openhab.binding.enocean

2016-12-02 16:26:09.236 [DEBUG] [org.openhab.binding.enocean ] - BundleEvent
STARTED - org.openhab.binding.enocean

2016-12-02 16:26:09.505 [DEBUG] [.enocean.internal.bus.EnoceanBinding] -
Updating item state for items [E1_Cxx_yy]

2016-12-02 16:26:09.520 [INFO ] [org.opencean.core.ESP3Host ] - starting
receiveRadio..

2016-12-02 16:37:48.237 [DEBUG] [.enocean.internal.bus.EnoceanBinding] -
Checking provider with names [E1_Cxx_yy]

2016-12-02 16:37:57.659 [DEBUG] [.enocean.internal.bus.EnoceanBinding] -
Checking provider with names [E1_Cxx_yy]

Conclusion / Questions

Some questions :

  • I understand it is not necessary to associate/link the smart plug with the gateway, as it seems to be automatically done. Is that true ?
  • How can I test that the communication from the gateway to the plug correctly works ? Do you have any linux commands to send ?
  • I guess there is a problem with the EEP profile (D2-01-A0), I feel that itā€™s like if OpenHab was unable to translate received bytes. Any idea ?
  • hexdump behaviour is weirdā€¦ sometimes, when I execute the command, it gave me directly the prompt, so no traceā€¦ Sometimes it worksā€¦ donā€™t understand the reason
  • In conclusion, I donā€™t understand where is (are) my mistake(s)ā€¦ Could you help me please.

Thanks in advance for your help

1 Like

Hi,

A new message to give more information found in logs :

2016-12-03 09:48:48.491 [ItemCommandEvent          ] - Item 'E1_Cxx_yy' received command ON

==> /var/log/openhab2/openhab.log <==
2016-12-03 09:48:48.511 [DEBUG] [.enocean.internal.bus.EnoceanBinding] - Checking provider with names [E1_Cxx_yy]

==> /var/log/openhab2/events.log <==
2016-12-03 09:48:48.512 [ItemStateChangedEvent     ] - E1_Cxx_yy changed from OFF to ON

==> /var/log/openhab2/openhab.log <==
2016-12-03 09:48:48.515 [DEBUG] [nternal.converter.MatchingConverters] - ProtocolValue null is not configured. If the command is a state this will result in no error.

Any ideas ?

1 Like

Is there anybody out there ?

1 Like

Hi,
Thank you Michael for your message :slight_smile:
Actually I went further into my investigationsā€¦ Iā€™m now able to communicate both way with the NodOn SmartPlug (EEP D2-01-0A) and with a NodOn Relay (profile EEP D2-01-12).
The main remaining problem is that it is only through DolphinView at the moment.
But itā€™s very good because it works !

I had to use UTE commands to associate the gateway with the actuators (Thanks a lot to Aurelian B for its help).
I read EEP 2.6.6 profiles (see https://www.enocean-alliance.org/eep/) and I successfully generated several commands (still send and received using DolphinView)

So the next step was to figure out why it didnā€™t work with OpenHAB. So I got sources from GitHub and I went inside the code. And I understood why it doesnā€™t work. The main reasons are the following :

  • EEP profiles D2-01-0A and D2-01-12 are not supported by the binding.
  • And you were right, the code has been written to receive packets FROM devices, and not to send packets TO devices.
  • I just had a quick look at opencean package, and I have the feeling that ESP3 packets are not all supported. I have to check !

I saw in another post on the Community (EnOcean bindings : Opencean or Aleoncean?) that there were a discussion in July concerning the EnOcean package (use of opencean or aleoncean and licences issues). It helped me to understand a lot of things as well.
It doesnā€™t seem to be simple to manage as @Kai said.

So at the moment, I just began to write my own code, and if results are there, Iā€™ll propose it to the community.

1 Like

Hi again,
@Chris or @Kai could you just tell me if a development is planed on
EnOcean bindings. I wouldnā€™t like to invest time on a subject if something is already planned :slight_smile:
Thanks in advance for your answer.

Hi @schnibel,

I am not aware of any current activities around EnOcean (unfortunately!). It would be awesome if you would go for it and make EnOcean support better in openHAB!

Hi Kai,
Thanks for your answer.
Ok, I will investigateā€¦ and learn OpenHAB implementation at the same time.
So it will take time :frowning:

ha im currently in the same position as you. got two way communication via dolphinview. but only with the enocean proprietary hardware. if you go outside of that magnum, illumra, leviton, etcā€¦ these companies have made it a bit more difficult to access their stuffs as i have previously done so successfully only with enocean products,

Something to look into for you is dolphinlink, comes with a bunch of sample code in order to interface with the enocean stuffs. again you will run into issues on non enocean proprietary products specifically when trying to implement into openhab.

if you need clarity on my message let me know.

Dolphin view is good and all but we want full control. at least something.:stuck_out_tongue_closed_eyes:

Here is a link that may help with the binding/ DolphinLink/ EnoceanLink. It was made for this.
https://www.enocean.com/fileadmin/redaktion/support/enocean-link/changelog.html

Im working with this now but donā€™t have as much experience as i am sure others have.

Other useful tools:

enocean serial protocol.

enocean eeps:

ill keep you posted to see if i make any progress.

update: only certain eeps are allowed with the trial version
F6-02-XX, F6-03-XX, F6-04-XX, F6-10-XX
D5-00-XX
A5-02-XX, A5-04-XX, A5-06-XX, A5-07-XX, A5-10-XX, A5-12-XX

No remote management support
No security support
No Generic Profiles support

Hi Michael,
Good to see that Iā€™m not the only one to be interested in this binding :slight_smile:
Thanks for the dolphinlink and sample codeā€¦ I didnā€™t know that.

On my side I began (mainly from scratch) to create an opensource package for the ESP3 protocole.
The idea is to support all kind of packets described in the ESP3 specification (https://www.enocean.com/fileadmin/redaktion/pdf/tec_docs/EnOceanSerialProtocol3.pdf) in order to build all kind of packets.
At the moment it seems to be ok, and I will begin to test this package quite soon I hope.
Next, Iā€™ll work on another package, for the EEPPayloadFactory, and the idea is to implement all kinds of payload described in the document (https://www.enocean-alliance.org/eep/).
The problem is that I only have few EnOcean components, so it will be quite difficult to testā€¦ any idea ?

At the moment, Iā€™m working on packages that are OpenHAB independantā€¦ But next, I will have to write down the binding for OpenHAB. I didnā€™t get any information right nowā€¦ Just saw a quick tutorial.
But I donā€™t know how to manage, through OpenHAB, the association between modules and Gatewayā€¦

Maybe we can work together on these points.
Iā€™m not an OpenHab developer expert either, but letā€™s try and have fun !

have you checked out other companies software? not just Dolphin View? for example companies in the enocean alliance use similar versions of a program called airconfig, ive also ran into navigan and other companies software from the enocean alliance membership page . this is what they use to interface with enocean things usb to relays/gateways/sensors/ what ever. there are even a few tutorials on youtube on how to use these. im currently working on translating bit streams used by several programs in order to better understand how to send commands and configurations.

also came across this cool advertisement. for enocean products. pretty funny.

if you want to work together pm me your info and lets see where we are and what skills we have letā€™s see what we can make happen.

this might be a solution for your limited testing environment

Also I had a lot of success with back and forth communication of enocean devices through FHEM. if we reverse engineer that then we can maybe gain insight on making enocean work with OpenHab.

Last but not least, the telegrams ive been intercepting have been from devices with a PIC on them here is an example of recieving data from an enocean device with a PIC

and the messages intercepted follow a format according to page 18 of the advanced remote management guide

using dolphinview does not give you all the data packets, you have to use something like portmon to monitor serial ports used by the USB TCM 300 device.

adding this just so i have everything in one place for anyone else who may be interested.

https://www.element14.com/community/docs/DOC-55169/l/enocean-pi-transforms-raspberry-pi-into-a-wireless-gateway

Hi Michaƫl,
Just a message to tell you that this week-end, I managed communicating both way with my NodOn SmartPlug (D2-01-0A), through a modified version of the package org.openceanā€¦ (I made these modifications :slight_smile:)

As I would like to work on a version fully usable by OpenHAB, I have to admit I prefer focusing on the update of this org.opencean package initially developed by @thomas_letsch_de.
So, I donā€™t want to use other companies software, or API, or EnoceanLink or so onā€¦ Just because I donā€™t want to deal with licensing issues.

Moreover, the code initially developed by Thomas has really good bases, actually, what I saw is that I need to work on the classes structures

@Kai, do you confirm that there is no problem, in terms of licence, on the opencean package developed by @thomas_letsch_de ? and available on Git at the following address ?)

done deal, my avenues of trial have reached dead ends anyways as i am also avoiding liscensing issues. Iā€™ll start studying the opencean code and begin playing with it a little while i figure something out.

A question i have for you is, how through dolphin view, did you interface with your plug?

i have an LED zone controller that im able to send teach in messages to as i have a security key as well as get the remote management functions working but i am not able to turn it on or off. though there is two way communication as i can ping it and it will toggle on and off but not stay that way.
D2-40-00

then i have another relay to which i cannot use the remote management stuffs none of my telegrams seem to be taken by the relay. A5- 38-08

do i need a security key?

Hi!
I have one USB300 gateway and one STM330 temperature-sensor up and running in openhab2.
I have upgraded to openhab2 last stable 2.1.0 Build 752 for a couple of hours ago and enocean works so far.
If you have any need of me I will be able to help you with testing on my devices. Just let me know.
Regards Ɩrjan

hey Orjan!

Appreciate the help! i have relays, switches, occ sensors of all types to aid in testing too. what EEP are you using as that would help in sending specific messages to it.

It is like: eep=A5:02:05.
btw, nice video about enocean, Iā€™m still watching itā€¦:slight_smile:, O no I had to rewind.

Hi Christophe,

I would be glad if you can use some of my code :slight_smile:.
Actually the licensing issues with Enocean are not that easy. From my old emails I could find out a statement like:
If you have no commercial interest, then use the EEP docs and write software. Anyone who wants to use your software for a commercial purpose must get in touch with the enocean alliance.

That makes it easy to write open source code, but hard for anyone using it in a commercial way.

Anyway, if I can help you with anything, just drop me a note (or link me as in this thread).

Best regards,
Thomas

Hi,

Goodā€¦ the post is living !
Thanks Thomas for the point on the licensing commercial limitation. @Kai : I donā€™t know how to manage this point. Any help on this point would be appreciated :slight_smile:

Orjan : Lucky youā€¦ I just checked in the code (org.opencean.core.eep.EEPParserFactory.java) and the EEP A5-02-05 is one of the supported EEP. So it explain why you donā€™t have any problem with this :slight_smile:

Actually, for all other readers, it seems the supported EEPs are now the followings :

  • F6 Telegram (RPS) : F6_02_01, F6_02_02, F6_10_00
  • A5 Telegram (4BS) : A5_02_05, A5_04_01, A5_07_03, A5_08_01, A5_08_02, A5_08_03, A5_09_04, A5_09_05, A5_11_04
  • D2 Telegram (VLD) : D2_01_08
  • D5 Telegram (1BS) : D5_00_01
  • 07 (Obsolete Telegram) : 07_06_01

Christophe

1 Like