Binding for Warema Mobile System WMS

Hello, I am using several components from the Warema Mobile System (WMS). I can control my roller shutters over the air with this. It is a very popular system in Germany.

Some people from the iobroker forums have analyzed the proprietary protocol and written a javascript. It is working very good.

You can find it here: https://forum.iobroker.net/viewtopic.php?f=8&t=7755&start=20#p115690

Is there a way to make this work also in OpenHab? Unfortunately I can’t code, but I would be willing to help and test and so on.

Best regards,
Eb

I am sorry, but I don’t read German and the Google translate is quite poor.
Have you asked on the iobroker forum, OH is very popular in Germany too and I would bet that some of the iobroker people are also OH users.

Good luck

No, I didn’t ask there.

But it would be quite easy for me to translate everything you need, if you are able and willing to code.

I have had a quick look at the code int here. Beyond my modest abilities I am afraid. Sorry

Thank you very much anyway. Maybe there’s someone else able to help. I’m willing to donate!

I also bought components from the Warema Mobile System (WMS) for my new house.
So, I’m also very interested in an binding for OH2.

Kind regards
Rainer

We really need someone with coding skills here… :slight_smile:

Hey Rainer, please share your progress with us. Best regards, Chris

@Eberhart
you have post…

Hey Rainer, I’ve sent you a pm too!

Hi there,

I am working on an Warema openHab2 binding for quite some time and it was realy hard for me to get used to the openhab binding coding.
This new OpenWMS binding should be compatible with the Warema WMS Stick (1002775), which contains both receiver and transmitter functions.

As you may know, the protocol for communicating the Warema WMS system is not publicly known and a documentation is not available.
However, some guys have read the communication of the WMS USB stick and decoded important commands to control the blinds, so that a basic basis for this binding has been created.
Thanks a lot for that, without this preliminary work, the binding could not have been developed.

It should be noted that this is still an early beta version of the binding and must be further developed in any case.

I have programmed the binding for my personal use but feel free to use it as well - but on your own risk.

You can find the current version here.

A precompiled version can be found there, too.

As I said, it will be further developed, errors eliminated and better intercepted. But I have only little time for it, so that unfortunately no significant support can be provided by me.
Please understand if it takes a few days to answer your questions.

Keep on coding.
Regards
rainer300

Hello Rainer. I really appreciate your work. Thank you very very much. I have some devices from the WMS and am willing to test in every way possible.

Best regards,
Christopher

Hello Rainer.
I tried to get the openwms binding running. I have come so far that I could select the port in the PaperUI. Unfortunately, the “thing” remains offline and the event log also shows several errors, here is an excerpt:

> 
> 
> 2018-08-15 17:18:12.445 [ERROR] [org.openhab.binding.openwms         ] - FrameworkEvent ERROR - org.openhab.binding.openwms
> .....
> org.osgi.framework.ServiceException: Exception in org.apache.felix.scr.impl.manager.SingleComponentManager.getService()
> .....
> Caused by: java.lang.IllegalStateException: Could not load implementation object class org.openhab.binding.openwms.OpenWMSDeviceDiscovery
> .....
> 
> 2018-08-15 16:35:56.558 [hingStatusInfoChangedEvent] - 'openwms:bridge:e104e0f8' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)
> ....
> 
> 2018-08-15 17:44:20.138 [ERROR] [org.openhab.binding.openwms         ] - [org.openhab.binding.openwms.discovery(242)] Error during instantiation of the implementation object
> 
> java.lang.InstantiationException: org.openhab.binding.openwms.internal.discovery.OpenWMSDeviceDiscovery
> .....
> Caused by: java.lang.NoSuchMethodException: org.openhab.binding.openwms.internal.discovery.OpenWMSDeviceDiscovery.<init>()
> .....
> 2018-08-15 17:44:20.195 [ERROR] [org.openhab.binding.openwms         ] - [org.openhab.binding.openwms.discovery(242)] Error during instantiation of the implementation object
> 
> java.lang.InstantiationException: org.openhab.binding.openwms.internal.discovery.OpenWMSDeviceDiscovery
> .....
> 2018-08-15 17:44:20.203 [WARN ] [org.openhab.binding.openwms         ] - FrameworkEvent WARNING - org.openhab.binding.openwms
> 
> org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentManager.getService() returned a null service object
> .....
> 
> 2018-08-15 17:44:20.486 [ERROR] [openwms.handler.OpenWMSBridgeHandler] - Connection to OpenWMS transceiver failed
> 
> gnu.io.UnsupportedCommOperationException: Invalid Parameter
> 
> 	at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:212) ~[?:?]
> 
> 	at org.openhab.binding.openwms.connector.OpenWMSSerialConnector.connect(OpenWMSSerialConnector.java:46) ~[?:?]
> 
> 	at org.openhab.binding.openwms.handler.OpenWMSBridgeHandler.connect(OpenWMSBridgeHandler.java:109) ~[?:?]
> 
> 	at org.openhab.binding.openwms.handler.OpenWMSBridgeHandler.lambda$0(OpenWMSBridgeHandler.java:86) ~[?:?]
> 
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
> 
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
> 
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
> 
> 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
> 
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
> 
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
> 
> 	at java.lang.Thread.run(Thread.java:748) [?:?]

Do you have an idea what could be the problem? Are there any missing packages, settings or permissions?
It would be nice if we could get the binding running.

regards klausharald

Hi, klausharald,
unfortunately I can not reproduce the exeption.
How are your settings and which openhab version are you using?

Hi, I want to test the WMS binding, but openhab2 doesn’t find the openwms binding in the list. How can I add it?

I use openhabian with openhab 2.4.0 and copied “org.openhab.binding.openwms-2.4.0 SNAPSHOT.jar” into “openhab2-addons” but it doesn’t show up in GUI (config/bindings).

Log-Viewer:

2019-01-29 12:08:10.404 [WARN ] [org.apache.felix.fileinstall        ] - Error while starting bundle: file:/usr/share/openhab2/addons/org.openhab.binding.openwms-2.4.0%20SNAPSHOT.jar

org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.openwms [209]

  Unresolved requirement: Import-Package: gnu.io; version="3.12.0.OH"

	at org.eclipse.osgi.container.Module.start(Module.java:444) ~[?:?]

	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]

	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [10:org.apache.felix.fileinstall:3.6.4]

	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [10:org.apache.felix.fileinstall:3.6.4]

	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [10:org.apache.felix.fileinstall:3.6.4]

	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]

	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]

Hi Roger2k,

i also use openhab 2.4.0 and copied the file “org.openhab.binding.openwms-2.4.0 SNAPSHOT.jar” into the /openhab2/addons folder.
After a restart it runs, but I use ‘PaperUI’ for the configuration.

Maybe you can try the following:
Go to karaf and type

  feature:install openhab-transport-serial

Hallo Rainer,
great work done!

  1. did you port the whole implementation available from iobroker or just the portion for blind and weather station?

  2. The iobroker needs Key as parameter of the network. Where do you set the key?

  3. Can you also send data to the actors/WMS zentrale or only listening?

@rendgeor
to your questions

  1. so far, I have only implemented the processes for shutters/blinds and weather stations,

  2. no, the network key is not needed for the openhab application. However, I assume that the components are already integrated into the warema-radio-network and that the ‘panid’ is known.
    (maybe it would be a good idea to determine the network key and display it as additionel information…:thinking:)

  3. data can also be sent to the actors/blinds (up/down/stop and dimminglevel 0-100%).

Hallo Rainer,
läuft dein Openhab auf Linux oder unter Window?
d.h. gibt es einen Treiber für den WMS Stick für Linux?