Seems the same. I was looking for similar errors online and read somewhere to clear cache, so I deleted all I have from seneye. Stopped Openhab, cleared cache and restarted. Installed the binding and created the things file. From the moment I saved that file I get following error message:
'seneye:monitor:c7a38169' changed from UNINITIALIZED to INITIALIZING
12:13:18.954 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'seneye:monitor:c7a38169' changed from INITIALIZING to ONLINE
12:13:18.953 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
12:13:19.568 [WARN ] [ommon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
at org.openhab.binding.seneye.internal.handler.SeneyeHandler.newState(SeneyeHandler.java:70) ~[?:?]
at org.openhab.binding.seneye.internal.SeneyeService.lambda$0(SeneyeService.java:77) ~[?:?]
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) [?:?]
Would you mind private messaging your login details for seneye, so I can test them on my system?
Obviously I completely understand if you donāt want to!
So I have some good news and bad news.
First the good (kind of) news, I can recreate the problem on my system so you are not doing anything wrong your end.
Now the bad, it looks like a bug in the original part of the binding (that I am still trying to work out, as I am not the original creator).
It looks like the error checking functions of the Binding do not work properly, so if the data received does not match what is expected the whole Binding crashes.
From the past conversations in this thread I believe the issue is the binding is expecting some data to be received that is not included in the Koi (pond over here) version on the sensor.
I will try to investigate this further but unfortunately this is unlikely to be a quick fix.
As soon as I think I have something that works I will update you
Cool! Happy itās not me then Itās not a critical part of our openhab system, I was very happy to see a Seneye binding in the first place. Will hear it here when there would be an update. Thanks for the info!
Just added an extra SUD to my installation. So now, Iām having a reef and pond sensor.
At first sight, everything runs fine. Data for fishtank and pond are coming in.
But the updates (every 5 minutes) wonāt run. Just the first time, the data comes in, after that, nothingā¦ same error as from scratch009ā¦
Seneye binding is 2.5.0.M1
Any suggestions are very appreciated. Today, Iāve lost fishtank data. Will see tomorrow to remove everything and start over.
21:16:56.320 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'seneye:monitor:15659fba' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to INITIALIZING
21:16:56.330 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
21:16:56.331 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'seneye:monitor:15659fba' changed from INITIALIZING to ONLINE
21:16:56.333 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'seneye:monitor:d316aed1' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to INITIALIZING
21:16:56.342 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
21:16:56.343 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'seneye:monitor:d316aed1' changed from INITIALIZING to ONLINE
21:16:56.675 [WARN ] [ommon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
at org.openhab.binding.seneye.internal.SeneyeService.initialize(SeneyeService.java:121) ~[?:?]
at org.openhab.binding.seneye.internal.handler.SeneyeHandler.initializeSeneyeService(SeneyeHandler.java:132) ~[?:?]
at org.openhab.binding.seneye.internal.handler.SeneyeHandler.lambda$0(SeneyeHandler.java:126) ~[?:?]
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:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
21:16:56.964 [WARN ] [ommon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
at org.openhab.binding.seneye.internal.handler.SeneyeHandler.newState(SeneyeHandler.java:74) ~[?:?]
at org.openhab.binding.seneye.internal.SeneyeService.lambda$0(SeneyeService.java:81) ~[?:?]
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) [?:?]```
Tried to download the latest verion I could find, cleared cache (!) created a new thingā¦
Currently running verison:
261 | Active | 80 | 2.5.0.201904031156 | Seneye Binding
Error log at startā¦ (why canāt those java guys create better error logs? ):
2019-04-03 16:57:23.657 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2019-04-03 16:57:24.708 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
at org.openhab.binding.seneye.internal.SeneyeService.initialize(SeneyeService.java:121) ~[?:?]
at org.openhab.binding.seneye.internal.handler.SeneyeHandler.initializeSeneyeService(SeneyeHandler.java:132) ~[?:?]
at org.openhab.binding.seneye.internal.handler.SeneyeHandler.lambda$0(SeneyeHandler.java:126) ~[?:?]
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:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
ā edit ā
It seems to work after a reboot of the server?
grep Botje log/events.log| grep _Tem
2019-04-03 17:32:19.529 [.ItemChannelLinkAddedEvent] - Link 'BotjeVijver_Temperature-seneye:monitor:062cdb09:temperature' has been added.
2019-04-03 17:32:19.572 [.ItemChannelLinkAddedEvent] - Link 'BotjeAqua_Temperature-seneye:monitor:3a5e1334:temperature' has been added.
2019-04-03 17:32:28.181 [vent.ItemStateChangedEvent] - BotjeAqua_Temperature changed from NULL to 24.6
2019-04-03 17:32:29.749 [vent.ItemStateChangedEvent] - BotjeVijver_Temperature changed from NULL to 14.4
2019-04-03 17:42:29.240 [vent.ItemStateChangedEvent] - BotjeAqua_Temperature changed from 24.6 to 24.5
2019-04-03 18:12:32.266 [vent.ItemStateChangedEvent] - BotjeAqua_Temperature changed from 24.5 to 24.6
2019-04-03 18:42:37.175 [vent.ItemStateChangedEvent] - BotjeAqua_Temperature changed from 24.6 to 24.5
A bit odd is that it only gets the data every 30 mintues?
And in PaperUI, Iāve got 5 minute pol interval?
Or is this linked with the update in the seneye app itself?
My Pond sensor only gets the data in the beginning?
Maybe linked because I donāt have an active slide in it?
Slide will be for the upcoming weeks, first I need to put some cables in place for it.
But when I check the site https://api.seneye.com/v1/devices/?IncludeState=1&user=XXX&pwd=YYYY , Iām getting the temperature value? So strange that it wouldnāt be imported in openHAB?
I believe the problem both you and scratch009 are having is being caused by the original design of the binding.
I believe that the binding is trying to pull values that donāt exist on the Koi/pond sensor and the binding is not able to read/handle the Null value.
I have tried to re-write the Binding but have struggled to work out some of its original design.
I am therefore writing this again from scratch, however progress is very slow at the moment due to other commitments.
I will try to get something to test as soon as possible.
I believe the 30min data updates is caused by the Sensor uploading every 30 mins.
You could try forcing the sensor to carry out an extra update to see what happens but I think this is down to the sensor itself.
Let me know if you want some help with testing.
Or if you want my login for seneye (with reef and pond SUD), no prob to give this.
ps would be nice to have the values pulled without an active slide. This way, we can have some rules ourself to get us warned (water loss, temperature highā¦)
I believe the problem is the binding is looking for a nh4 channel, but this is not supported by the pond sensor.
I have tried to just edit the binding so that channel is optional but this isnāt working.
I looks like this issue is they way the Binding was designed to carry out the error checking.
I am currently rewriting the binding (this should also include some other tweaks) unfortunately this is a very slow progress.
Finally an update,
I am having some problems uploading this to the main build, so have dropped it on my old website for testing.
Feel free to download and test (please feed back results both good and bad) Seneye Binding
To test please delete current Seneye things and uninstall the Seneye binding.
Download the new binding and drop it into the addons folder.
Re-add your Seneye devices
Good Luck!
Many thanks for testing it, glad it appears to be working better.
The real only change to this version is that it looks at the type of sensor (pond, Reef or Home) then just processes the required fields.
Previous it always tried to return every reading, even if the sensor did not support it.
This isnāt a perfect fix as Iām not sure what will happen if a sensor is upgraded, etc.
Also the coding for this is a bit rough and ready!
I was hoping to do a lot more but just couldnāt get it all working.
If you see anything that needs correcting or adding please let me know.
I probably wonāt try another big refresh until we have OpenHAB 3.0 but will bug fix and try little upgrades if needed before then.
hmm, Guess I yelled to soon.
After removing my things (I missed this part), and rebuilding them, it seems that itās not been automaticlly refreshed? Or at least the 5 minutes donāt do much during the last 20 minutes.
When I restart the binding manually, some items are refreshed, but not all?
All my items are linked properly (when I check this in paperUI).
leave it running for 30 mins and post the results, the debug results normally appear in the openhab.logs file.
Can you also post the associated events.log
By default the seneye sensor only uploads data to the internet every 30 mins. Iām not sure if this is something that can be changed, as this has been set by Seneye.
The binding will pull data from the cloud at whatever rate you configure at setup but the data will be the same until the sensor next upload, I hope this makes sense.
Thatās looking good at the moment, you are right it will only report the reading has updated, if the reading is different.
Then you will see what the reading changed from and to.
Keep an eye on it and see what happens.
Might be worth giving it a day or so and comparing it to the official Seneye dashboard but I think it is updated correctly.
Maybe one remark? Seems that the slide serial isnāt coming in at this point.
In a week I need to change the slides, so propably heāll then pick it up? But maybe you could push it that he pulls the data fe once a day?
And not sure if itās possible. But maybe you can only show the channels that are really used?
fe I believe that with the pond, you can only read NH3? And you need to buy an upgrade to have the LUX/PAR/Kelvin options.
Thanks for the feedback itās really helpful.
I believe the update should be Officially included in the next milestone build of OpenHAB.
I have been looking and currently can see a reason for it not pulling the serial number!
I will keep looking and see what I can find.
I would be grateful if you can let me know what happens when you change slides!
I plan to only show the available channels in the OpenHAB 3.0 version as this requires a lot more work.
Keep the feedback and suggestions coming it is very helpful.