NEEO Remote Binding/Transport

Ok…

No errors, OH not freezing.

cpu load went up from 5 % to 60 %
about 5 minutes later the load was at 35%, things are listed within IO
another 5 minutes later the load is at about 10-15% (Connector and Basic-UI opend).

But… changing from “Brain” to “Things” is triggering a refresh of the Things.
This takes a few minutes - load goes up to 35% at this time.
Maybe it took so long the first time, because I switched between Brain an Things.

That´s really great!
For now i just keep it running… gonna test tomorrow what happens if the Brain looses connection to the network for a longer time and if it reconnects again - if i´m not too excited testing those features :wink:

Is there already a way to configure the Binding with the Smarthome-Designer?

Thank you very much - this is really great!

EDIT:


I have 3 items which are not displayed correctly.
The reload not happend this time when switching to Brain and Things again?!

EDIT2:
Ok, this is just a wordwrap - the Item name is:
Aktor: Büro - Licht/Lüftung/Steckdose/Drucker

@tmrobert8 Thank you for the update.
It looks very good at this point. I can install and run the transport on my raspberryPi and it runs smoothly.
I now hit the next issue. This may be a limitation of NEEO, but still asking. I defined an openHAB light switch in the transport and linked it to a switch on the NEEO. I can switch on and off the light from the NEEO side. However, when I start the recipe with the light on the NEEO, it is always in state off, even when the light is on in openHAB. When I turn the switch on on the NEEO, it keeps the light on. When I then switch the light off on the NEEO, it turns the light off. Changing the switch state in openHAB does not affect the switch position in the NEEO.
So the state of the light is not retrieved from openHAB when starting the recipe to put the switch in the right state.
Any chance to adjust that?

Unplugged the Brain for about an hour.
Brain was shown online after booting the brain.
I was able to edit Things - but the NEEO-App did not find them.
After restarting OH the app is finding Things again.

I can not confirm that the switch is not updating it´s state - sometimes it does but it takes a while.
If you leave the site with the switch and enter it again, it is updating faster…

Is it correct that i can not add a thing to different rooms?
I have a thing with 4 lights switching - 2 in one room, the other 2 in 2 other rooms.
There is also a problem because i can not add a thing to different NEEO-types - i have 4 channels - one turns the WII on, one a Light and so on…

Hope, you understand what i mean - my english isn´t that perfect :frowning:

EDIT:
Unplugged the Brtain again, to test if it possible to execute a Switch, when the Brain is back online - this also does not work - i had to restart OH.

@Dragonfly
Thanks for that picture with the wordwrap. I’ll fix that in the next version. The refresh (of both tabs) only happens when you initially open the panel. From that point on, it will only refresh when you hit the refresh button in the tab header.

The CPU load looks much better now - on a refresh you will get high usage since it has to go through every thing/channel on the system and merge it with what you have defined. There really isn’t much I can do to optimize that one

As for the binding & Smarthome-Designer - I have no idea as I’ve never used that. The only special part of the binding is that the things are dynamically generated on startup - I don’t know how that would affect the designer.

@Mherwege @Dragonfly
Alot of what you said with the switch depends on alot of factors (like did you link the switch up to an power on/off buttons or to the new power state sensor?). Likewise - the brain has been inconsistent on when it asks for the current state of things and I’m still trying to understand why. What I may do is just push the current state of everything whenever we connect to the brain - that way it would be up to date on a connect.

Likewise - multiple interfaces could be a problem still (it is on mine). When we connect to a brain, we need to give it the local IP address for the brain to call back. Unfortunately I get this info from openhab and it seems to choose the wrong interface quite often. So we can send stuff to the brain, but the brain calls back to the wrong ip address. I’m still looking into a solution for that as well (that also prevent the brain from searching for openhab items).

You should be able to add a single thing to multiple rooms (I’ve got my audio system that way). The trick is that you need to, in the NEEO app, search for it twice - first time add it to a room, second time add it to a second room.

@tmrobert8
I linked the switch to a NEEO switc, assuming the switch would update. This is category LIGHT, so all these LIGHTS end up in one recipe per room, one switch per light. When I start the recipe, the state of the switches is all off. Using the switches in NEEO works, and updates my lights. Using the switches in openHAB does work on openHAB side, but does not push the stateupdate to NEEO (it is pushed through everywhere in openHAB).
Should the NEEO ask for a state update? I thought there was a callback function in the SDK. So is it not possible to push the state of the switch on initialization or state update on openHAB side to the NEEO? Will it only work through NEEO polling?
I did configure both the IP of the brain and IP of the openHAB server in the transport. I assume that should resolve the issue of not finding the brain. Before doing that, the brain was discovered, but things configured in the transport were not pushed to NEEO devices. There is a general setting in openHAB (accessible from PaperUI) to set the default subnet of the openHAB server. I saw in the logs when I do not set OH server IP address in the transport it does query that general service. Unfortunately there seems to be a bug in it as it does not see my IP as valid and still defaults to another subnet. There still is a smarthome pull request #4218 open to extend this to IPv6, so I didn’t bother trying to correct it for now. I will come back on it when that gets merged.

Give the latest a try:

  1. Includes detection of brain going offline and restart logic
  2. Includes push of initial state on connect

Note: like the other ones - this isn’t real well tested but should work

EDIT: detection is set on a hard coded 10 second timer right now. Plan to expose that via config later.
EDIT2: and this also includes trying to find the interface the brain is on (based on subnet) - should work in about 99% of the cases where there is multiple interface cards

@tmrobert8
The push of the initial state works. When I start the transport, the NEEO has the states correct. I also see this push happening in the debug log of the transport.
Once the transport is started, no state updates get sent from openHAB to NEEO. I can use the switches from the NEEO, and these updates get pushed to openHAB correctly.

First of all - thank you for the update.

Maybe you should edit the Thing-refreshing-information to keep users patient:

Refreshing Things…
Discovery might take a few Minutes, Things are shown after discovery.

wordwrap fix still open;

Here the first test:
On the neeo-remote i have opend my light-switch.
if i switch the light on through the remote it takes about 1 second until the light goes on.
i turn the light off with oh - this takes about 9 seconds until the correct state is shown on the neeo-remote.

@tmrobert8
After being up for a while, the transport disconnects and cannot connect anymore.
This is the openHAB debug log:

2017-11-14 11:23:24.444 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Deregistering NEEO-d487672e for http://192.168.0.225:3000/v1/api/unregisterSdkDeviceAdapter using callback http://192.168.0.10:8080/neeo/NEEO-d487672e
2017-11-14 11:23:24.470 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 11 * Sending client request on thread ESH-io.neeo-293
11 > POST http://192.168.0.225:3000/v1/api/unregisterSdkDeviceAdapter
11 > Accept: application/json
11 > Content-Type: application/json
{"name":"openHAB","baseUrl":"http://192.168.0.10:8080/neeo/NEEO-d487672e"}

2017-11-14 11:23:24.557 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 11 * Client response received on thread ESH-io.neeo-293
11 < 200
11 < Access-Control-Allow-Credentials: true
11 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
11 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
11 < Connection: keep-alive
11 < Content-Length: 16
11 < Content-Type: application/json; charset=utf-8
11 < Date: Tue, 14 Nov 2017 10:23:24 GMT
11 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
11 < Server: nginx
{"success":true}

2017-11-14 11:23:24.664 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Registering NEEO-d487672e for http://192.168.0.225:3000/v1/api/registerSdkDeviceAdapter using callback http://192.168.0.10:8080/neeo/NEEO-d487672e
2017-11-14 11:23:24.666 [ERROR] [org.openhab.io.neeo.internal.NeeoApi] - Connect had an exception
java.lang.IllegalStateException: Client instance has been closed.
	at jersey.repackaged.com.google.common.base.Preconditions.checkState(Preconditions.java:173) [157:org.glassfish.jersey.bundles.repackaged.jersey-guava:2.22.2]
	at org.glassfish.jersey.client.JerseyClient.checkNotClosed(JerseyClient.java:273) [160:org.glassfish.jersey.core.jersey-client:2.22.2]
	at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:288) [160:org.glassfish.jersey.core.jersey-client:2.22.2]
	at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:76) [160:org.glassfish.jersey.core.jersey-client:2.22.2]
	at org.openhab.io.neeo.internal.net.HttpRequest.sendPostJsonCommand(HttpRequest.java:86) [234:org.openhab.io.neeo:2.2.0.201711132044]
	at org.openhab.io.neeo.internal.NeeoApi.registerApi(NeeoApi.java:238) [234:org.openhab.io.neeo:2.2.0.201711132044]
	at org.openhab.io.neeo.internal.NeeoApi.connect(NeeoApi.java:209) [234:org.openhab.io.neeo:2.2.0.201711132044]
	at org.openhab.io.neeo.internal.NeeoApi.access$0(NeeoApi.java:206) [234:org.openhab.io.neeo:2.2.0.201711132044]
	at org.openhab.io.neeo.internal.NeeoApi$1.run(NeeoApi.java:167) [234:org.openhab.io.neeo:2.2.0.201711132044]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
	at java.lang.Thread.run(Thread.java:745) [?:?]

The log on the NEEO shows ‘Unregistered SDK Adapter openHAB’ at that time.

@Mherwege

Could you post the log a bit more before that - I want to see what caused it to unregister. Likewise, in the log you should see where you set your switch - could you post what neeo does with the switch update. You’ll see something like the following (need to see the itemstateevent notice, then what results afterwards - in my case you see it sending the notification):

2017-11-14 07:49:12.350 [DEBUG] [b.r.i.net.SocketChannelSession:293  ] - Dispatching response: N C[1].Z[6].status="OFF"
2017-11-14 07:49:12.355 [DEBUG] [b.r.i.net.SocketChannelSession:293  ] - Dispatching response: N System.status="OFF"
2017-11-14 07:49:12.356 [INFO ] [smarthome.event.ItemStateEvent:47   ] - russound_zone_192168124_1_6_status updated to OFF
2017-11-14 07:49:12.357 [DEBUG] [enhab.io.neeo.internal.NeeoApi:319  ] - Sending Notification to brain (NEEO-4f150397): {"type":"6334788466840174592:powerstate","data":false}
2017-11-14 07:49:12.357 [INFO ] [s.event.ItemStateChangedEvent :47   ] - russound_zone_192168124_1_6_status changed from ON to OFF
2017-11-14 07:49:12.357 [DEBUG] [enhab.io.neeo.internal.NeeoApi:319  ] - Sending Notification to brain (NEEO-4f150397): {"type":"6334788466840174592:russound_zone_192168124_1_6_status-4","data":false}
2017-11-14 07:49:12.357 [DEBUG] [.neeo.internal.net.HttpRequest:39   ] - 11 * Sending client request on thread ESH-io.neeo-3
11 > POST http://192.168.1.29:3000/v1/notifications
11 > Accept: application/json
11 > Content-Type: application/json
{"type":"6334788466840174592:powerstate","data":false}

2017-11-14 07:49:12.357 [DEBUG] [.neeo.internal.net.HttpRequest:39   ] - 12 * Sending client request on thread ESH-io.neeo-2
12 > POST http://192.168.1.29:3000/v1/notifications
12 > Accept: application/json
12 > Content-Type: application/json
{"type":"6334788466840174592:russound_zone_192168124_1_6_status-4","data":false}

@Dragonfly
I can change the message but am confused by what you are saying. The things are available even if nothing is discovered. You may be running into processing time to create the thing definitions on the PI3 that make it look like it’s not created until the discovery.

Yes - haven’t addressed wordwrap yet

As for the timing - the best bet is to have the logs running in real time (open the karaf console and type “log:tail”). Then switch the remote and watch the messages. If I’m sending the message to the brain in a timely manner - then it’s on the brain side and I can’t do anything about that.

First time use:
I open the connector i see, that the brain is online.
I switch over to “things” - now a “long” time nothing happens (in my case); it should just be an information for new users that it can take a while until things show up to prevent them from switching around.

Does it atleast show “Refreshing things…” at that point (rather than a blank screen)? Trying to figure out what exactly you are seeing

Nevermind - I already see the issue. I reused something I shouldn’t have on a restart

@tmrobert8
There is nothing meaningful in the log 2 hours before deregisering (except some of my own rule log messages that don’t touch Neeo at all). I only switched on debug logging for org.openhab.io.neeo, so if I need something from somewhere else, I would need to switch that on as well.

As for the updates, here are the ItemStateChangedEvent lines from my events.log around the time I noticed the behavior. I was playing with Licht_Zolder, both from openHAB, wall switches and Neeo. Below that is the log of the startup of the transport just before playing with Licht_Zolder. There is nothing showing the changes going to the Neeo, while the state went to the Neeo at startup. I left in a few lines of the log beyond the time of experimenting that have nothing to do with Neeo.

events.log:

2017-11-14 09:40:40.631 [ome.event.ItemCommandEvent] - Item 'Licht_Zolder' received command ON
2017-11-14 09:40:40.655 [vent.ItemStateChangedEvent] - Licht_Zolder changed from OFF to ON
2017-11-14 09:40:40.655 [GroupItemStateChangedEvent] - gLichten_Boven changed from OFF to ON through Licht_Zolder
2017-11-14 09:40:40.659 [GroupItemStateChangedEvent] - gLichten changed from OFF to ON through gLichten_Boven
2017-11-14 09:40:42.354 [ome.event.ItemCommandEvent] - Item 'Licht_Zolder' received command OFF
2017-11-14 09:40:42.364 [vent.ItemStateChangedEvent] - Licht_Zolder changed from ON to OFF
2017-11-14 09:40:42.365 [GroupItemStateChangedEvent] - gLichten_Boven changed from ON to OFF through Licht_Zolder
2017-11-14 09:40:42.374 [GroupItemStateChangedEvent] - gLichten changed from ON to OFF through gLichten_Boven
2017-11-14 09:41:55.287 [vent.ItemStateChangedEvent] - Licht_Zolder changed from OFF to ON
2017-11-14 09:41:55.289 [GroupItemStateChangedEvent] - gLichten_Boven changed from OFF to ON through Licht_Zolder
2017-11-14 09:41:55.292 [GroupItemStateChangedEvent] - gLichten changed from OFF to ON through gLichten_Boven
2017-11-14 09:42:04.888 [GroupItemStateChangedEvent] - gLichten_Boven changed from ON to OFF through Licht_Zolder
2017-11-14 09:42:04.897 [vent.ItemStateChangedEvent] - Licht_Zolder changed from ON to OFF
2017-11-14 09:42:04.900 [GroupItemStateChangedEvent] - gLichten changed from ON to OFF through gLichten_Boven
2017-11-14 09:42:07.772 [vent.ItemStateChangedEvent] - Licht_Zolder changed from OFF to ON
2017-11-14 09:42:07.780 [GroupItemStateChangedEvent] - gLichten changed from OFF to ON through gLichten_Boven
2017-11-14 09:42:07.785 [GroupItemStateChangedEvent] - gLichten_Boven changed from OFF to ON through Licht_Zolder
2017-11-14 09:42:09.467 [vent.ItemStateChangedEvent] - Licht_Zolder changed from ON to OFF
2017-11-14 09:42:09.476 [GroupItemStateChangedEvent] - gLichten_Boven changed from ON to OFF through Licht_Zolder
2017-11-14 09:42:09.479 [GroupItemStateChangedEvent] - gLichten changed from ON to OFF through gLichten_Boven
2017-11-14 09:42:10.352 [ome.event.ItemCommandEvent] - Item 'Licht_Zolder' received command ON
2017-11-14 09:42:10.360 [vent.ItemStateChangedEvent] - Licht_Zolder changed from OFF to ON
2017-11-14 09:42:10.367 [GroupItemStateChangedEvent] - gLichten_Boven changed from OFF to ON through Licht_Zolder
2017-11-14 09:42:10.367 [GroupItemStateChangedEvent] - gLichten changed from OFF to ON through gLichten_Boven
2017-11-14 09:42:11.790 [ome.event.ItemCommandEvent] - Item 'Licht_Zolder' received command OFF
2017-11-14 09:42:11.802 [GroupItemStateChangedEvent] - gLichten_Boven changed from ON to OFF through Licht_Zolder
2017-11-14 09:42:11.815 [GroupItemStateChangedEvent] - gLichten changed from ON to OFF through gLichten_Boven
2017-11-14 09:42:11.816 [vent.ItemStateChangedEvent] - Licht_Zolder changed from ON to OFF
2017-11-14 09:42:13.229 [ome.event.ItemCommandEvent] - Item 'Licht_Zolder' received command ON
2017-11-14 09:42:13.614 [GroupItemStateChangedEvent] - gLichten_Boven changed from OFF to ON through Licht_Zolder
2017-11-14 09:42:13.614 [vent.ItemStateChangedEvent] - Licht_Zolder changed from OFF to ON
2017-11-14 09:42:13.620 [GroupItemStateChangedEvent] - gLichten changed from OFF to ON through gLichten_Boven
2017-11-14 09:42:14.733 [ome.event.ItemCommandEvent] - Item 'Licht_Zolder' received command OFF
2017-11-14 09:42:14.745 [GroupItemStateChangedEvent] - gLichten_Boven changed from ON to OFF through Licht_Zolder
2017-11-14 09:42:14.748 [GroupItemStateChangedEvent] - gLichten changed from ON to OFF through gLichten_Boven
2017-11-14 09:42:14.747 [vent.ItemStateChangedEvent] - Licht_Zolder changed from ON to OFF

openhab.log:

2017-11-14 09:36:19.123 [DEBUG] [org.openhab.io.neeo                 ] - BundleEvent RESOLVED - org.openhab.io.neeo
2017-11-14 09:36:19.136 [DEBUG] [org.openhab.io.neeo                 ] - BundleEvent [unknown:512] - org.openhab.io.neeo
2017-11-14 09:36:19.220 [DEBUG] [org.openhab.io.neeo                 ] - BundleEvent STARTING - org.openhab.io.neeo
2017-11-14 09:36:19.234 [DEBUG] [org.openhab.io.neeo                 ] - BundleEvent STARTED - org.openhab.io.neeo
2017-11-14 09:36:19.243 [DEBUG] [org.openhab.io.neeo                 ] - ServiceEvent REGISTERED - {org.openhab.ui.dashboard.DashboardTile}={component.name=org.openhab.io.neeo.NeeoDashboardTile, component.id=254, service.id=401, service.bundleid=234, service.scope=bundle} - org.openhab.io.neeo
2017-11-14 09:36:19.373 [DEBUG] [org.openhab.io.neeo.NeeoService     ] - Neeo Service activated
2017-11-14 09:36:19.414 [DEBUG] [.neeo.internal.NeeoDeviceDefinitions] - Reading contents of /var/lib/openhab2/neeo/neeodefinitions.json
2017-11-14 09:36:19.511 [DEBUG] [org.openhab.io.neeo                 ] - ServiceEvent REGISTERED - {javax.servlet.ServletContext}={osgi.web.symbolicname=org.openhab.io.neeo, osgi.web.version=2.2.0.201711132044, osgi.web.contextname=default, osgi.web.contextpath=/, service.id=403, service.bundleid=234, service.scope=singleton} - org.openhab.io.neeo
2017-11-14 09:36:19.521 [DEBUG] [org.openhab.io.neeo.NeeoService     ] - Started NEEO Dashboard tile at /neeo
2017-11-14 09:36:19.699 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 1 * Sending client request on thread Automation Provider Processing Queue
1 > GET http://192.168.0.225:3000/v1/systeminfo

2017-11-14 09:36:19.761 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 1 * Client response received on thread Automation Provider Processing Queue
1 < 200
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
1 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
1 < Connection: keep-alive
1 < Content-Length: 1869
1 < Content-Type: application/json; charset=utf-8
1 < Date: Tue, 14 Nov 2017 08:36:19 GMT
1 < ETag: W/"74d-Yx+0KGYCHVyGsbH3Dw7HD5B3AYw"
1 < Server: nginx
1 < Vary: Accept-Encoding
{"hardwareRegion":"EU","touchButtonPressed":false,"hardwareRevision":5,"user":"mark.herwege@telenet.be","version":"0.47.9-28fa9fa","tr2version":"0.47.9","firmwareVersion":"0.47.9-20170629-28fa9fa-1106-170431","hostname":"NEEO-d487672e","totalmem":1053433856,"freemem":561135616,"ip":"192.168.0.161","lanip":"192.168.0.225","wlanip":"192.168.0.161","wlanregion":"EU","wlancountry":"BE","wlaninfo":["RSSI=-50","LINKSPEED=150","NOISE=9999","FREQUENCY=2457"],"uptime":47346,"loadavgShort":0.0029296875,"loadavgMid":0.04296875,"loadavgLong":0.09375,"network":{"eth0":{"bytes":{"receive":"38275672","transmit":"42314326"},"packets":{"receive":"123659","transmit":"159177"},"errs":{"receive":"0","transmit":"0"},"drop":{"receive":"10","transmit":"0"},"fifo":{"receive":"0","transmit":"0"},"frame":{"receive":"0"},"compressed":{"receive":"0","transmit":"0"},"multicast":{"receive":"0"},"colls":{"transmit":"0"},"carrier":{"transmit":"0"}},"wlan0":{"bytes":{"receive":"51077639","transmit":"197027"},"packets":{"receive":"181827","transmit":"1478"},"errs":{"receive":"0","transmit":"0"},"drop":{"receive":"1905","transmit":"3"},"fifo":{"receive":"0","transmit":"0"},"frame":{"receive":"0"},"compressed":{"receive":"0","transmit":"0"},"multicast":{"receive":"0"},"colls":{"transmit":"0"},"carrier":{"transmit":"0"}},"tun0":{"bytes":{"receive":"347440","transmit":"489988"},"packets":{"receive":"5113","transmit":"5635"},"errs":{"receive":"0","transmit":"0"},"drop":{"receive":"0","transmit":"0"},"fifo":{"receive":"0","transmit":"0"},"frame":{"receive":"0"},"compressed":{"receive":"0","transmit":"0"},"multicast":{"receive":"0"},"colls":{"transmit":"0"},"carrier":{"transmit":"0"}}},"duidata":{"channels.json":"0784778","devices.json":"cae52c7"},"systemtime":"2017-11-14T08:36:19.747Z","activeHandles":{"activeHandlesCount":12,"activeHandles":{"Timer":5,"Socket":6,"Server":1}}}

2017-11-14 09:36:19.779 [DEBUG] [org.openhab.io.neeo.NeeoService     ] - Brain discovered: NEEO-d487672e at /192.168.0.225 and starting servlet at /neeo/NEEO-d487672e
2017-11-14 09:36:19.823 [DEBUG] [nal.servletservices.NeeoBrainService] - >>>> RESENDING
2017-11-14 09:36:19.832 [DEBUG] [org.openhab.io.neeo.NeeoService     ] - Started NEEO Listener at /neeo/NEEO-d487672e
2017-11-14 09:36:19.837 [DEBUG] [org.openhab.io.neeo                 ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.core.events.EventSubscriber}={ipAddresses=192.168.0.225, component.name=org.openhab.io.neeo.NeeoService, service.config.category=io, service.config.description.uri=io:neeo, exposeAll=false, service.pid=org.openhab.io.neeo.NeeoService, service.config.label=NEEO Connector, localIpAddress=192.168.0.10, component.id=255, service.id=402, service.bundleid=234, service.scope=bundle} - org.openhab.io.neeo
2017-11-14 09:36:20.801 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Registering NEEO-d487672e for http://192.168.0.225:3000/v1/api/registerSdkDeviceAdapter using callback http://192.168.0.10:8080/neeo/NEEO-d487672e
2017-11-14 09:36:21.002 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 1 * Sending client request on thread ESH-io.neeo-16
1 > POST http://192.168.0.225:3000/v1/api/registerSdkDeviceAdapter
1 > Accept: application/json
1 > Content-Type: application/json
{"name":"openHAB","baseUrl":"http://192.168.0.10:8080/neeo/NEEO-d487672e"}

2017-11-14 09:36:21.081 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 1 * Client response received on thread ESH-io.neeo-16
1 < 200
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
1 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
1 < Connection: keep-alive
1 < Content-Length: 16
1 < Content-Type: application/json; charset=utf-8
1 < Date: Tue, 14 Nov 2017 08:36:21 GMT
1 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
1 < Server: nginx
{"success":true}

2017-11-14 09:36:21.099 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Getting existing device mappings from http://192.168.0.225:3000/v1/projects/home
2017-11-14 09:36:21.241 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 1 * Sending client request on thread ESH-io.neeo-16
1 > GET http://192.168.0.225:3000/v1/projects/home

2017-11-14 09:36:21.980 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 1 * Client response received on thread ESH-io.neeo-16
1 < 200
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
1 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
1 < Connection: keep-alive
1 < Content-Length: 106628
1 < Content-Type: application/json; charset=utf-8
1 < Date: Tue, 14 Nov 2017 08:36:21 GMT
1 < ETag: W/"1a084-TcmeVroGgg1ACnfEc2iq6ICUpoI"
1 < Server: nginx
1 < Vary: Accept-Encoding
{"name":"home","version":"1.0.2","label":"Home Sweet Home","configured":true,"airkey":"df0877e9b4ed53df5638bf5374dc6e75","rooms":{"Woonkamer":{"name":"Woonkamer","icon":"neeo.icon.room.bonus-room","hasController":true,"devices":{"TV scherm":{"name":"TV scherm","roomName":"Woonkamer","roomKey":"6232364704816168960","adapterDeviceId":"default","details":{"sourceName":"duiro","adapterName":"tv","type":"TV","manufacturer":"Samsung","name":"LE37B530P7W","timing":{"standbySourceCommandDelay":12000,"standbyCommandDelay":11000,"sourceSwitchDelay":3000,"shutdownDelay":1000},"presetSettings":{"format":"Three Digit","delayBetween":400},"deviceversion":2,"commandSets":[{"name":"Samsung TV 036 (Most Models) (Anynet) (GCDB 595) (RS)","medium":"infrared","isGeneric":false,"version":22},{"name":"GENERIC_CODESET_TV_SAMSUNG_1_ALL MODELS","medium":"infrared","isGeneric":true,"version":4}],"deviceCapabilities":[],"roles":["DESTINATION"],"capabilities":[],"useTuner":false},"macros":{"ANYNET":{"key":"6333602498271510528","componentType":"button","name":"ANYNET","label":"ANYNET","deviceName":"TV scherm","deviceKey":"6333602498120515584","roomName":"Woonkamer","roomKey":"6232364704816168960"},"BACK":{"key":"6333602498309259264","componentType":"button","name":"BACK","label":"BACK","deviceName":"TV scherm","deviceKey":"6333602498120515584","roomName":"Woonkamer","roomKey":"6232364704816168960"},"CHANNEL DOWN":{"key":"6333602498342813696","componentType":"button","name":"CHANNEL DOWN","label":"CHANNEL DOWN","deviceName":"TV scherm","deviceKey":"6333602498120515584","roomName":"Woonkamer","roomKey":"6232364704816168960"},"CHANNEL LIST":{"key":"6333602498447671296","componentType":"button","name":"CHANNEL LIST","label":"CHANNEL LIST","deviceName":"TV scherm","deviceKey":"6333602498120515584","roomName":"Woonkamer","roomKey":"6232364704816168960"},"CHANNEL UP":{"key":"6333602498472837120","componentType":"button","name":"CHANNEL UP","label":"CHANNEL UP","deviceName":"TV scherm","deviceKey":"6333602498120515584","roomName":"Woonkamer","roomKey":"6232364704816168960"},"CURSOR DOWN":{"key":"6333602498502197248","componentType":"button","name":"CURSOR DOWN","label":"CURSOR DOWN","deviceName":"TV scherm","deviceKey":"6333602498120515584","roomName":"Woonkamer","roomKey":"6232364704816168960"},"CURSOR LEFT":{"key":"6333602498527363072","componentType":"button","name":"CURSOR LEFT","label":"CURSOR LEFT","deviceName":"TV scherm","deviceKey":"6333602498120515584",

2017-11-14 09:36:22.372 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Invalid UID (probably not an openhab thing): tv for key 6333602498120515584
2017-11-14 09:36:22.375 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Invalid UID (probably not an openhab thing): dvb for key 6333603326914985984
2017-11-14 09:36:22.378 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Invalid UID (probably not an openhab thing): avreceiver for key 6333603566179057664
2017-11-14 09:36:22.381 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Invalid UID (probably not an openhab thing): mediaplayer for key 6333603814326665216
2017-11-14 09:36:22.384 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Invalid UID (probably not an openhab thing): dvd for key 6333604522702667776
2017-11-14 09:36:22.387 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Invalid UID (probably not an openhab thing): gameconsole for key 6333613478682558464
2017-11-14 09:36:22.397 [DEBUG] [nal.servletservices.NeeoBrainService] - >>>> RESENDING
2017-11-14 09:36:22.407 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335752224903266304:Licht_Zolder","data":false}
2017-11-14 09:36:22.414 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335813294179221504:Licht_Trap","data":false}
2017-11-14 09:36:22.419 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335793750693904384:Licht_Badkamer","data":false}
2017-11-14 09:36:22.422 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 2 * Sending client request on thread ESH-io.neeo-17
2 > POST http://192.168.0.225:3000/v1/notifications
2 > Accept: application/json
2 > Content-Type: application/json
{"type":"6335752224903266304:Licht_Zolder","data":false}

2017-11-14 09:36:22.429 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 3 * Sending client request on thread ESH-io.neeo-15
3 > POST http://192.168.0.225:3000/v1/notifications
3 > Accept: application/json
3 > Content-Type: application/json
{"type":"6335813294179221504:Licht_Trap","data":false}

2017-11-14 09:36:22.439 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335793854913970176:Licht_Badkamer_Lavabos","data":false}
2017-11-14 09:36:22.444 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335813538778447872:Licht_Nachthal","data":false}
2017-11-14 09:36:22.446 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 4 * Sending client request on thread ESH-io.neeo-18
4 > POST http://192.168.0.225:3000/v1/notifications
4 > Accept: application/json
4 > Content-Type: application/json
{"type":"6335793750693904384:Licht_Badkamer","data":false}

2017-11-14 09:36:22.458 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 6 * Sending client request on thread ESH-io.neeo-19
6 > POST http://192.168.0.225:3000/v1/notifications
6 > Accept: application/json
6 > Content-Type: application/json
{"type":"6335793854913970176:Licht_Badkamer_Lavabos","data":false}

2017-11-14 09:36:22.458 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 5 * Sending client request on thread ESH-io.neeo-16
5 > POST http://192.168.0.225:3000/v1/notifications
5 > Accept: application/json
5 > Content-Type: application/json
{"type":"6335813538778447872:Licht_Nachthal","data":false}

2017-11-14 09:36:22.570 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 3 * Client response received on thread ESH-io.neeo-15
3 < 200
3 < Access-Control-Allow-Credentials: true
3 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
3 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
3 < Connection: keep-alive
3 < Content-Length: 16
3 < Content-Type: application/json; charset=utf-8
3 < Date: Tue, 14 Nov 2017 08:36:22 GMT
3 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
3 < Server: nginx
{"success":true}

2017-11-14 09:36:22.576 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335794192714825728:Licht_Slaapkamer_Kind1","data":false}
2017-11-14 09:36:22.581 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 7 * Sending client request on thread ESH-io.neeo-15
7 > POST http://192.168.0.225:3000/v1/notifications
7 > Accept: application/json
7 > Content-Type: application/json
{"type":"6335794192714825728:Licht_Slaapkamer_Kind1","data":false}

2017-11-14 09:36:22.629 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 7 * Client response received on thread ESH-io.neeo-15
7 < 200
7 < Access-Control-Allow-Credentials: true
7 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
7 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
7 < Connection: keep-alive
7 < Content-Length: 16
7 < Content-Type: application/json; charset=utf-8
7 < Date: Tue, 14 Nov 2017 08:36:22 GMT
7 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
7 < Server: nginx
{"success":true}

2017-11-14 09:36:22.632 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335795298064924672:Licht_Slaapkamer_Ouders","data":0}
2017-11-14 09:36:22.637 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 8 * Sending client request on thread ESH-io.neeo-15
8 > POST http://192.168.0.225:3000/v1/notifications
8 > Accept: application/json
8 > Content-Type: application/json
{"type":"6335795298064924672:Licht_Slaapkamer_Ouders","data":0}

2017-11-14 09:36:22.646 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 2 * Client response received on thread ESH-io.neeo-17
2 < 200
2 < Access-Control-Allow-Credentials: true
2 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
2 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
2 < Connection: keep-alive
2 < Content-Length: 16
2 < Content-Type: application/json; charset=utf-8
2 < Date: Tue, 14 Nov 2017 08:36:22 GMT
2 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
2 < Server: nginx
{"success":true}

2017-11-14 09:36:22.648 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335752802718973952:Licht_Zithoek","data":0}
2017-11-14 09:36:22.654 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 9 * Sending client request on thread ESH-io.neeo-17
9 > POST http://192.168.0.225:3000/v1/notifications
9 > Accept: application/json
9 > Content-Type: application/json
{"type":"6335752802718973952:Licht_Zithoek","data":0}

2017-11-14 09:36:22.661 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 4 * Client response received on thread ESH-io.neeo-18
4 < 200
4 < Access-Control-Allow-Credentials: true
4 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
4 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
4 < Connection: keep-alive
4 < Content-Length: 16
4 < Content-Type: application/json; charset=utf-8
4 < Date: Tue, 14 Nov 2017 08:36:22 GMT
4 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
4 < Server: nginx
{"success":true}

2017-11-14 09:36:22.668 [DEBUG] [org.openhab.io.neeo.internal.NeeoApi] - Sending Notification to brain (NEEO-d487672e): {"type":"6335753469437149184:Licht_Zithoek_Staanlamp","data":false}
2017-11-14 09:36:22.676 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 6 * Client response received on thread ESH-io.neeo-19
6 < 200
6 < Access-Control-Allow-Credentials: true
6 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
6 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
6 < Connection: keep-alive
6 < Content-Length: 16
6 < Content-Type: application/json; charset=utf-8
6 < Date: Tue, 14 Nov 2017 08:36:22 GMT
6 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
6 < Server: nginx
{"success":true}

2017-11-14 09:36:22.674 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 10 * Sending client request on thread ESH-io.neeo-18
10 > POST http://192.168.0.225:3000/v1/notifications
10 > Accept: application/json
10 > Content-Type: application/json
{"type":"6335753469437149184:Licht_Zithoek_Staanlamp","data":false}

2017-11-14 09:36:22.690 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 5 * Client response received on thread ESH-io.neeo-16
5 < 200
5 < Access-Control-Allow-Credentials: true
5 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
5 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
5 < Connection: keep-alive
5 < Content-Length: 16
5 < Content-Type: application/json; charset=utf-8
5 < Date: Tue, 14 Nov 2017 08:36:22 GMT
5 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
5 < Server: nginx
{"success":true}

2017-11-14 09:36:22.709 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 8 * Client response received on thread ESH-io.neeo-15
8 < 200
8 < Access-Control-Allow-Credentials: true
8 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
8 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
8 < Connection: keep-alive
8 < Content-Length: 16
8 < Content-Type: application/json; charset=utf-8
8 < Date: Tue, 14 Nov 2017 08:36:22 GMT
8 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
8 < Server: nginx
{"success":true}

2017-11-14 09:36:22.724 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 9 * Client response received on thread ESH-io.neeo-17
9 < 200
9 < Access-Control-Allow-Credentials: true
9 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
9 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
9 < Connection: keep-alive
9 < Content-Length: 16
9 < Content-Type: application/json; charset=utf-8
9 < Date: Tue, 14 Nov 2017 08:36:22 GMT
9 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
9 < Server: nginx
{"success":true}

2017-11-14 09:36:22.738 [DEBUG] [hab.io.neeo.internal.net.HttpRequest] - 10 * Client response received on thread ESH-io.neeo-18
10 < 200
10 < Access-Control-Allow-Credentials: true
10 < Access-Control-Allow-Headers: Content-Type,Accept,X-Requested-With,Origin,X-NEEO-Secure
10 < Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
10 < Connection: keep-alive
10 < Content-Length: 16
10 < Content-Type: application/json; charset=utf-8
10 < Date: Tue, 14 Nov 2017 08:36:22 GMT
10 < ETag: W/"10-oV4hJxRVSENxc/wX8+mA4/Pe4tA"
10 < Server: nginx
{"success":true}

2017-11-14 09:40:00.020 [INFO ] [e.smarthome.model.script.solar.rules] - PV uitlezen
2017-11-14 09:40:06.116 [INFO ] [smarthome.model.script.sunrise.rules] - Dim indoor lights on clear sky
2017-11-14 09:40:07.031 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden PV
2017-11-14 09:40:07.058 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden PV
2017-11-14 09:40:07.080 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden GS
2017-11-14 09:40:07.116 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden GS
2017-11-14 09:40:38.340 [INFO ] [e.smarthome.model.script.light.rules] - Calculate outside light
2017-11-14 09:45:00.025 [INFO ] [e.smarthome.model.script.solar.rules] - PV uitlezen
2017-11-14 09:45:05.560 [INFO ] [smarthome.model.script.sunrise.rules] - Dim indoor lights on clear sky
2017-11-14 09:45:06.463 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden PV
2017-11-14 09:45:06.494 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden GS
2017-11-14 09:45:06.500 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden PV
2017-11-14 09:45:06.508 [INFO ] [e.smarthome.model.script.solar.rules] - Update meterstanden GS
2017-11-14 09:45:38.458 [INFO ] [e.smarthome.model.script.light.rules] - Calculate outside light

@Mherwege
Went too far back in the openhab.log this time. What I need to see is the eventchange and then the logs around the same time. Example: you had an event change at 9:42:14 - what I need to see in the openhab log is around that time (I should see an item change message followed by some neeo messages)

@tmrobert8
It is all there in the 2 logs. the eventchange is written to the event.log, not the openhab.log. The event.log shows all ItemChange events of Licht_Zolder. Nothing is logged from neeo at that time in openhab.log. The timeframes I provided match between the 2 files, except that I started with openhab.log from the very start of the transport a few minutes earlier.
There is nothing logged in openhab.log between 9:40:38 and 9:45:00. All events happened in between these two times. The messages in openhab.log before and after these times are unrelated.

ah - missed the last timestamps were 9:45.

@Dragonfly @Mherwege

Could you try the latest:

  1. Maybe addressed @Mherwege issue with state changes
  2. Fixed @Dragonfly issue with long names
  3. Fixed @Mherwege issue with deregistration
  4. Changed a few things in MDNS discovery