Seneye Binding

I can only find this in openhab.logs, after this nothing (I tried it again yesterday, last log was around 17h,…)

2018-10-15 17:15:53.334 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occurred while informing handler: null
java.lang.NullPointerException: null
	at org.openhab.binding.seneye.handler.SeneyeHandler.newState(SeneyeHandler.java:69) ~[?:?]
	at org.openhab.binding.seneye.handler.SeneyeHandler.handleCommand(SeneyeHandler.java:58) ~[?:?]
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:278) ~[?:?]
	at org.eclipse.smarthome.core.thing.link.ThingLinkManager.lambda$0(ThingLinkManager.java:300) ~[?:?]
	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) [?:?]

It seems when I initialise/save my settings, it will fetch data, but only once. Also only temperature and NH3 is collected, not pH so far. I have no issues going into the seneye.me or app and have a valid slide.

I now have set up de seneye via PaperGUI. It says the device is online. in the overview/control tab of paper GUI the data is the same/not updated. For my items I used the channel which is shown in the screenshot below (seneye:monitor:3054d5ed:temperature).

In openhab are you login in with your email address or username?

Seems something with the scheduler? when I edit Thing in paper GUI and save again I get this instantly in the logs:

09:54:51.622 [WARN ] [e.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
09:54:52.249 [WARN ] [ommon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception
java.lang.NullPointerException: null
        at org.openhab.binding.seneye.handler.SeneyeHandler.newState(SeneyeHandler.java:69) ~[?:?]
        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) [?:?]

As username I’ve used my e-mail address? As this is the way I login into the app and website as well.

Can you put the following in your web-browser changing the *** for your login details

https://api.seneye.com/v1/devices/?IncludeState=1&user=***&pwd=***

Then post the results here

this are the results

<response>
<device>
<id>54450</id>
<description>Koningshoflei</description>
<type>2</type>
<time_diff>0</time_diff>
<status>
<disconnected>0</disconnected>
<slide_serial>D37KD467NJ2</slide_serial>
<slide_expires>1541504197</slide_expires>
<out_of_water>0</out_of_water>
<wrong_slide>0</wrong_slide>
<last_experiment>1539677581</last_experiment>
</status>
<exps>
<temperature>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>12.6</avg>
<status>0</status>
<curr>13.0</curr>
<advises/>
</temperature>
<ph>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>7.91</avg>
<status>0</status>
<curr>7.86</curr>
<advises/>
</ph>
<nh3>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>0.021</avg>
<status>0</status>
<curr>0.020</curr>
<advises/>
</nh3>
<o2>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>10.7</avg>
<status>0</status>
<curr>10.6</curr>
<advises/>
</o2>
<light>
<max_value>9</max_value>
<status>0</status>
<curr>100</curr>
<advises/>
</light>
</exps>
</device>
</response>

That looks good! Now just to work out why the binding is failing to pull the data!
Can you log in to the console and set the logs to debug:-

log:set DEBUG org.openhab.binding.seneye

Then initialise/save your settings again to force a refresh, and then post the logs.
Once you have posted the logs you can put them back to default

log:set DEFAULT org.openhab.binding.zwave

Can you also post your settings (make sure you hide you password and email)

openhab.log after initialising thing:


2018-10-16 10:54:30.650 [DEBUG] [binding.seneye.handler.SeneyeHandler] - Initializing Seneye API service.
2018-10-16 10:54:30.671 [WARN ] [.core.thing.binding.BaseThingHandler] - BaseThingHandler.initialize() will be removed soon, ThingStatus can be set manually via updateStatus(ThingStatus.ONLINE)
2018-10-16 10:54:31.298 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '54450' read
2018-10-16 10:54:31.311 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception
java.lang.NullPointerException: null
	at org.openhab.binding.seneye.handler.SeneyeHandler.newState(SeneyeHandler.java:69) ~[?:?]
	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) [?:?]

settings (via GUI),

There is nothing jumping out at me… You could try putting something in the location field (although I can’t see that causing any issues)
You could also try the test version of an update to the binding, to do this:-

Uninstall the current binding via paper.
Download the .jar from

https://openhab.jfrog.io/openhab/libs-pullrequest-local/org/openhab/binding/org.openhab.binding.seneye/2.4.0-SNAPSHOT/

Put the .jar in your addons folder
Reboot openHab.

See if that helps

To restore the original version delete the .JAR file,
reinstall the current binding via paper
Reboot

I’ll try updating to latest version, but prefer to do that when I’m on location. It’s a live environment with a lot of hvac control. Will post update later on…

thanks!

No problem,
Unfortunately I’m not the original author of the binding, so there is still loads I do not understand.
The update has some bits I added due to issues I was having, as well as adding a couple of extra channels.
If we work out why it doesn’t work for you hopefully I can add that as well.

Hi,

Just wondering if you have had chance to try this yet?
Really curious to see if it helped at all

Just in case anybody is interested in the updated binding, this is now included in the latest milestone (2.4.0.M7)

I’m running now the latest version (2.4.0.M7) since a day of 2. And no issues found!
Great job, and thank you very much !!!

I’m just missing 1 thing in this story: An out of the water trigger.
Seneye is able to send you a message when the sensor is out of the water. Can we also check this with Openhab? I’m very interested in this. This way I can cut fe the power of the filterpump…

Hi Ben,

The Binding should now include four new channels disconnected, slideserial, outofwater and wrongslide.
The readme on openHAB has been updated with the details.
Readme
Let me know how you get on

Ahhh, OK.
Going to test it tonight…

I didn’t see these new channels in the paperUI. Didn’t checked the readme. :blush:
Maybe something to improve (update) in the future?

Hi Ben,
Before you make any changes can you check the following for me.
In PaperUI if you go to configuration, then things, then the Seneye thing.
Can you check if the new channels are shown, and are unselected?
Just want to see if it hides the new channels or not.
Many thanks

The channels are not in the paperUI.
I don’t see an option to (un)hide/more/advanced/… Just ‘disable’.

Can you log into the openHAB console and enter bundle:list and confirm what version seneye is reporting?
For some reason it doesn’t appear to have updated fully?!?

Sure, here we go:

235 │ Active │ 80 │ 2.4.0.M7 │ Seneye Binding