NEEO Remote Binding/Transport

Now that the NEEO Remote/Brain has been announced. I’m happy to share with you a binding and transport that will work with NEEO.

The binding can be found Here and it’s Readme

The transport can be found Here and it’s Readme

The binding is also available using the marketplace (the transport cannot be installed via the marketplace since transports are unavailable).

Note: you may want to look for the last ones I’ve posted to https://github.com/openhab/openhab2-addons/pull/3191 as the above are a bit old now.

Binding Capabilities
The binding will discover the NEEO brains and provide you with a channel for each recipe - allowing you to start and stop NEEO recipes from openHAB.

Transport Capabilities
The more powerful transport does MUCH more. The transport will allow you to expose openHAB things/channels to the NEEO brain - allowing you to control openHAB via the remote control. Example: I can expose my music system (Russound binding in openHAB) as an audio device on the NEEO and can turn it on/off with the remote power buttons, change the volume with the volume buttons, switch sources with the remote display and even display the album cover art on the remote display. VERY EXCITING.

Videos
Transport
Here is a video I made showing the openHAB setup of the transport: https://youtu.be/HTEZgQa4Fnk
Here is a video of NEEO Remote controlling openHAB items (showing changes via HABPANEL): https://youtu.be/VCGHddTLsMA

Binding
Here is a video showing executing recipes on the NEEO showing up in openHAB: https://youtu.be/eIxsGmFK57o

Note: since I made the videos - I’ve added the ability to show images from openHAB (if a channel contains an image URL).

Multibrain Recipes
Here is a video that shows how to expose brain devices to other brains. This allows you to control a brain centrally located in a different room from any brains in other rooms: https://youtu.be/NPIBp6tkbMg

Overriding Hard Keys on NEEO devices
Video showing how to override hard key bindings on NEEO: https://youtu.be/oX7kvas-LyE

EDITS:

  • Dec 31st, 2017 - updated links to point to 2.2 snapshot
  • Jan 4th, 2018 - updated to 2.3 snapshot (can be used on openHAB 2.2). Added overriding hard keys video
  • April 4th, 2018 - added readme’s to this post
  • June 11th, 2018 - updated to 2.4 snapshot (can be used on openHAB 2.2+). Added new LIST type, implemented new NEEO naming standards, improved search results, added firmware to brain page, fixed numerous bugs on thing page.
6 Likes

You are my hero!

Thanks for sharing :blush:

Now I lnly hope that I will get my neeo remote soon …

Next week I’ll post the video showing how both are used

Looking foreward to this.

Added videos

Wow. Just Wow.

I owe you a beer!

Installed today. Works great! Thanks again for sharing your work!

Hey Tim, thanks for your awesome work.

The binding works well, I just can’t figure out to get the things to the transport tool. The brain ist connected and looks like in your youtube video.
But I can’t see any things under the second tab.

What am I doing wrong?

The transport only works with things for OH2 addons - if you are using OH1 addons, they won’t appear nor are they supported. Let me know if that’s the case or not.

I’m running openhab 2 on Synology nas. Installed hue binding, Sony binding, Kodi etc. Nothing appears unfortunately.
Restarted neeo, restarted openhab, reinstalled the neeo binding and transport.

Anything happened like that?

Can you turn on debug for the neeo transport - see if there are any exceptions listed in it.

This is what I got.
Hope that helps…I’m not that much in the world of all these and can’t see what’s wrong or not :wink:

2017-11-04 20:20:56.454 [WARN ] [eclipse.jetty.servlet.ServletHandler] - /neeo/neeostatus/thingstatus
java.lang.IllegalArgumentException: Channel ‘YamahaReceiverRXV673_Power’ didn’t have a unique channel number: 1
at org.openhab.io.neeo.models.NeeoDevice.(NeeoDevice.java:100)[232:org.openhab.io.neeo:2.1.0.201706091502]
at org.openhab.io.neeo.models.NeeoDevice.(NeeoDevice.java:65)[232:org.openhab.io.neeo:2.1.0.201706091502]
at org.openhab.io.neeo.internal.OpenHabToDeviceConverter.convert(OpenHabToDeviceConverter.java:92)[232:org.openhab.io.neeo:2.1.0.201706091502]
at org.openhab.io.neeo.internal.NeeoDeviceDefinitions.get(NeeoDeviceDefinitions.java:240)[232:org.openhab.io.neeo:2.1.0.201706091502]
at org.openhab.io.neeo.internal.servletservices.ThingStatusService.handleGet(ThingStatusService.java:102)[232:org.openhab.io.neeo:2.1.0.201706091502]
at org.openhab.io.neeo.internal.NeeoServlet.doGet(NeeoServlet.java:128)[232:org.openhab.io.neeo:2.1.0.201706091502]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)[18:javax.servlet-api:3.1.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)[18:javax.servlet-api:3.1.0]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[79:org.eclipse.jetty.security:9.2.19.v20160908]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:287)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.Server.handle(Server.java:499)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[80:org.eclipse.jetty.server:9.2.19.v20160908]
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[71:org.eclipse.jetty.io:9.2.19.v20160908]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[83:org.eclipse.jetty.util:9.2.19.v20160908]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[83:org.eclipse.jetty.util:9.2.19.v20160908]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]

Does anyone have this running on 2.2? I’ve got the Brain added as a thing, and it shows online. Then, a bunch of items show up in the inbox, for the defined rooms on the brain. When I go to add one of those items as a thing, I get an Error: 409 - Conflict.

Ah - I think I see the issue. Do you have multiple items linked to that channel “yamahareceiverrxv673_power”? Appears I didn’t compensate for that…

@jace - I run on 2.2 just fine. Could you turn on debug so we can get a more complete picture of what’s happening. I’m also assuming you are using the binding rather than the transport?

@Matze
Could you go to https://github.com/openhab/openhab2-addons/pull/2350 and download the zip I posted for you. Unzip it and replace the transport jar in your addons directory and give it a try again. Should fix your error if I understand it correctly.

Tim

Thanks a lot Tim, that was the issue I came up with, good to know for everybod I would say. Was just a test :wink:

Had some more things, connected to different items, cleaned everything out and it works just fine.

@Matze great - give that new version a try and see if you still get the error when you have multiple items linked the channel.

Hey Tim, there is no jar inside the zip. Should I place the whole unzipped folders and files inside the addons folder?

Ack - sorry mean rename it to a jar