Broadlink binding for RMx, A1, SPx and MP. Any interest?

Hi @abal,
I had the same issue when getting the codes, tried Broadlink Manager that seems to be very handy but as I’m on macOS I couldn’t try it out.
Finally I got it working with the following (you will need an Android device, original source):

  1. Install Broadlink e-control app from Play store
  2. Learn your remotes as per normal instructions using e-control.
  3. Tap the burger settings and tap ‘Share’. Tap 'Share to other phones in WLAN. Tap Cancel.
  4. Install RM Plugin Lite from Play Store
  5. Tap on Device List to import Broadlink device config that was previously shared.
  6. Enable HTTP bridge
  7. Navigate to http://androidipaddress:9876/
  8. Find Code List and click on the link.

In the original source you they need to use a step 9, with openHab is not necessary.

Then you can continue the procedure as described in #56 for integrating them into OH.

Cheers

1 Like

Hi @pablogil,

Thank you very much for your answer. I’ve tried the e-control app, but I’m having some troubles with it (I’m using the new BroadLink app instead, which is working fine) , it is not able to find my BroadLink. Then, I’ve tested the BroadLink manager you’ve mentioned (I’m a windows user), which looks promising, it is able to recognize the IR codes, but not the RF ones. I’ve found some other guys having a similar issue, so I’m going to investigate that further. If that will not work, then I’ll get back to your solution.
BTW: is there any way to get the codes from the new BroadLink app? It seems, that the e-control is not developed anymore, it did not get any update since a year or more …

Cheers,
Attila

try enterring MAC address with lower case

Maybe you need to stick to the e-control app… for instance try with other Android device.

Maybe some one can tell, what is the last version of broadlink binding and what version of openhub it support? thx

Version 2.5 is supported. See this post

1 Like

Thanks @themillhousegroup, you are the best! Hope to have this binding as standard, mean on openhab marketplace as it’s working propely!

Dear Colleagues,

It’s not working for me even after reboot.

BroadlinkDiscoveryService - Beginning Broadlink device scan…

2020-01-22 22:42:25.157 [WARN ] [internal.discovery.DiscoveryProtocol] - Beginning async Broadlink device scan; will wait 10000ms for responses

2020-01-22 22:42:25.196 [WARN ] [internal.discovery.DiscoveryProtocol] - Broadlink device scan waiting for 10000 ms to complete …

2020-01-22 22:42:25.254 [INFO ] [.discovery.BroadlinkDiscoveryService] - Data received during Broadlink device discovery: from 10.1.1.27:80[34:ea:34:d0:a8:8c]

2020-01-22 22:42:25.260 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing ‘broadlink:rm2:34-ea-34-d0-a8-8c’ to inbox.

==> /var/log/openhab2/events.log <==

2020-01-22 22:42:25.262 [home.event.InboxAddedEvent] - Discovery Result with UID ‘broadlink:rm2:34-ea-34-d0-a8-8c’ has been added.

==> /var/log/openhab2/openhab.log <==

2020-01-22 22:42:29.064 [WARN ] [org.eclipse.jetty.server.HttpChannel] - /rest/inbox/broadlink:rm2:34-ea-34-d0-a8-8c/approve

javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:88) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.Server.handle(Server.java:494) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

Caused by: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

... 15 more

Caused by: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:278) ~[?:?]

at org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:260) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:509) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[?:?]

at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[?:?]

at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

... 15 more

Caused by: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.openhab.binding.broadlink.internal.BroadlinkHandlerFactory.supportsThingType(BroadlinkHandlerFactory.java:56) ~[?:?]

at org.eclipse.smarthome.core.thing.binding.ThingFactory.createThing(ThingFactory.java:100) ~[?:?]

at org.eclipse.smarthome.config.discovery.internal.PersistentInbox.approve(PersistentInbox.java:191) ~[?:?]

at org.eclipse.smarthome.io.rest.core.internal.discovery.InboxResource.approve(InboxResource.java:104) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]

at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[?:?]

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[?:?]

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[?:?]

at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[?:?]

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[?:?]

at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[?:?]

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[?:?]

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[?:?]

at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[?:?]

at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

... 15 more

2020-01-22 22:42:35.198 [WARN ] [internal.discovery.DiscoveryProtocol] - Device scan: wait complete …

2020-01-22 22:42:35.200 [WARN ] [internal.discovery.DiscoveryProtocol] - Ended Broadlink device scan…

2020-01-22 22:42:35.202 [INFO ] [link.internal.socket.BroadlinkSocket] - Socket closed

2020-01-22 22:42:35.204 [INFO ] [.discovery.BroadlinkDiscoveryService] - Discovery complete. Found 1 Broadlink devices

2020-01-22 22:42:35.204 [INFO ] [link.internal.socket.BroadlinkSocket] - Receiver thread ended

2020-01-22 22:42:39.840 [WARN ] [.discovery.BroadlinkDiscoveryService] - BroadlinkDiscoveryService - Beginning Broadlink device scan…

2020-01-22 22:42:39.843 [WARN ] [internal.discovery.DiscoveryProtocol] - Beginning async Broadlink device scan; will wait 10000ms for responses

2020-01-22 22:42:39.866 [WARN ] [internal.discovery.DiscoveryProtocol] - Broadlink device scan waiting for 10000 ms to complete …

2020-01-22 22:42:39.894 [INFO ] [.discovery.BroadlinkDiscoveryService] - Data received during Broadlink device discovery: from 10.1.1.27:80[34:ea:34:d0:a8:8c]

2020-01-22 22:42:49.869 [WARN ] [internal.discovery.DiscoveryProtocol] - Device scan: wait complete …

2020-01-22 22:42:49.871 [WARN ] [internal.discovery.DiscoveryProtocol] - Ended Broadlink device scan…

2020-01-22 22:42:49.873 [INFO ] [link.internal.socket.BroadlinkSocket] - Socket closed

2020-01-22 22:42:49.875 [INFO ] [link.internal.socket.BroadlinkSocket] - Receiver thread ended

2020-01-22 22:42:49.875 [INFO ] [.discovery.BroadlinkDiscoveryService] - Discovery complete. Found 1 Broadlink devices

2020-01-22 22:42:56.584 [WARN ] [org.eclipse.jetty.server.HttpChannel] - /rest/inbox/broadlink:rm2:34-ea-34-d0-a8-8c/approve

javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:88) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.Server.handle(Server.java:494) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]

at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

Caused by: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

... 15 more

Caused by: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:278) ~[?:?]

at org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:260) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:509) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[?:?]

at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[?:?]

at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

... 15 more

Caused by: java.lang.NoSuchFieldError: SUPPORTED_THING_TYPES_UIDS

at org.openhab.binding.broadlink.internal.BroadlinkHandlerFactory.supportsThingType(BroadlinkHandlerFactory.java:56) ~[?:?]

at org.eclipse.smarthome.core.thing.binding.ThingFactory.createThing(ThingFactory.java:100) ~[?:?]

at org.eclipse.smarthome.config.discovery.internal.PersistentInbox.approve(PersistentInbox.java:191) ~[?:?]

at org.eclipse.smarthome.io.rest.core.internal.discovery.InboxResource.approve(InboxResource.java:104) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]

at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[?:?]

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[?:?]

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[?:?]

at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[?:?]

at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[?:?]

at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[?:?]

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[?:?]

at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[?:?]

at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[?:?]

at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[?:?]

at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[?:?]

at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[?:?]

at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) ~[?:?]

at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

... 15 more

try with textual definition

create a file called for example : broadlink.things under the thing folder

Thing broadlink:rm2:44-ea-34-c7-c9-15 "txtBroadlink RM2-Salon [192.168.1.101]-RM_1"					[ ipAddress="192.168.1.101", port=80, staticIp=true, mac="34:ea:34:c7:c9:15", authorizationKey="097628343fe99e23765c1513accf8b02", iv="562e17996d093d28ddb3ba695a2e6f58", mapFilename="RM_1_c.map", pollingInterval=120 , retries=3, ignoreFailedUpdates=true]

Thing broadlink:rm3:78-0f-78-19-fe-31 	"txtBroadlink RM3-Nat[192.168.1.112]-mini_4"				[ ipAddress="192.168.1.113", port=80, staticIp=true, mac="78:0f:77:19:fe:31", authorizationKey="097628343fe99e23765c1513accf8b02", iv="562e17996d093d28ddb3ba695a2e6f58", mapFilename="mini_4_c.map", pollingInterval=120, retries=3, ignoreFailedUpdates=false]
1 Like

there;s an issue with the temperature

Hey there!
I had this failure: >>[ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method ‘ThingHandler.handleCommand()’<<.
Followed the instructions somewhere above in this topic:
Removed all old Broadlink bindings 2.4 with karafe console (bundle:uninstall xy).
Now installed version 2.5 beta on OH2.5.0 and it works perfectly!
Thank you very much!
Have a nice day!

In case it helps…

I have 2 RM Mini, the first one, bought last year from bangood, is integrated into OpenHAB using RM Bridge Code Learning.

This week I bought the second one, and it doesn’t work properly as a remote controller, but I can’t get the codes to use them in OpenHAB.

I have tried with RM Bridge Code Learning (error in Mac address, it does not recognize it as RM2), I have tried with Broadlink Manager (I can not connect to the device …), I am currently testing with HomeAssistant, but I do not get it either … .

From what I have seen (on the bottom of the device), there are 2 different models:

Model: RM mini 3 - FCC ID: 2ACDZRMMINI (firmware v57) - Integrated ok in OpenHAB.

Model: RM mini 3 - FCC ID: 2ACDZ-RMMINI3-RM (firmware v44057) - I can’t get codes to integrate in OpenHAB

From what I have seen in http://fccid.io the chipset of each one of them is different.

I leave the links in case it can help developers:

RMMINI: https://fccid.io/2ACDZRMMINI/Internal-Photos/Internal-Photos-3433519

RMMINI3-RM: https://fccid.io/2ACDZ-RMMINI3-RM/Internal-Photos/Internal-Photos-3979173

1 Like

Hey guys, i got the RM Mini 3 and followed the instructions here to add it to OpenHAB. I found the Auth key and the IV and added it successfully. I guess I’m just struggling now with getting the actual IR codes for my devices. I don’t have an Android phone, is there another way to retrieve these codes?

Did you try this in the instructions?

Step 6: For RMx devices only. In this step, we will find IR/RF code to insert into the broadlink.map file. Go to http://rm-bridge.fun2code.de/rm_manage/code_learning.html337 to learn the various IR/RF codes.

My bad, I thought that site required an android device. Maybe I misread it.

I think I’m having the same issue as stated above. I got some IR codes off of GlobalCache.com for my Samsung TV and they weren’t working.

I checked the firmware on my RM Mini 3 and it matches the below.

I will post my config files below when I get home tonight to make sure im not doing anything wrong.

Is there a problem integrating this model of RM Mini 3 with OpenHAB?

Looks like an Android phone is required. are there any other ways of getting codes?

Also not sure if im experiencing the same issue as above. Below are my configs. Map Transformation is installed.

home.items:
    //Broadlink RM Mini 3
    String   BroadlinkRM31921681189Command   "Command"   {channel="broadlink:rm3:c8-f7-42-40-85-02:command"}
    String Fan_On_Proxy {channel="broadlink:rm3:c8-f7-42-40-85-02:command"}
    String TV_On_Proxy1 {channel="broadlink:rm3:c8-f7-42-40-85-02:command"}
    String TV_On_Proxy2 {channel="broadlink:rm3:c8-f7-42-40-85-02:command"}

broadlink.map:
    Fan_On=0000 006e 0000 000c 0030 0010 002f 0010 0010 002f 0030 0010 002f 0010 00...
    TV_On1=0000 006D 0000 0022 00ac 00ac 0016 0040 0016 0040 0016 0040 0016 0015 00...
    TV_On2=0000006D0000002200ac00ac001600400016004000160040001600150016001500160015...

rule "TV1"
when
    Item TV_On_Proxy1 changed from Off to On
then
    TV_On_Proxy1.sendCommand("TV_On1")
end

rule "TV2"
when
    Item TV_On_Proxy2 changed from Off to On
then
    TV_On_Proxy2.sendCommand("TV_On2")
end

rule "TV1"
when
    Item Fan_On_Proxy changed from Off to On
then
    Fan_On_Proxy.sendCommand("Fan_On")
end

Yes, ther is another way: You can use the Broadlink Manager: https://sourceforge.net/projects/broadlink-manager/files/Windows%207/
It connects via network to the RMx and you can learn the codes with it.

This way has not worked for me with the model RM mini 3 - FCC ID: 2ACDZ-RMMINI3-RM (firmware v44057) . It does not recognize the device.
Has anyone been able to read the codes with this model?

Yes, I have a RM mini 3 and it worked, but it takes some time until the device is found.