Seneye Binding

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 :slight_smile: 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? :wink: ):

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?

<response>
   <device>
      <id>2106</id>
      <description>Vijver</description>
      <type>2</type>
      <time_diff>0</time_diff>
      <status>
            <disconnected>0</disconnected>
            <out_of_water>0</out_of_water>
            <wrong_slide>1</wrong_slide>
            <last_experiment>1554310681</last_experiment>
      </status>
      <exps>
            <temperature>
            <trend>-1</trend>
            <critical_in>-1</critical_in>
            <avg>15.4</avg>
            <status>0</status>
            <curr>14.5</curr>
            <advises/>
      </temperature>

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.

1 Like

Thanks for you effort so far!!!

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ā€¦)

1 Like

I added a slide to the SUD of my pond. Seneye is getting the data correctly in, see below.

With the OH binding, I only get values of Temperature and NH3 during startup.
No updates afterwards. But a bit strange, other values are also missing.

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<response>
<device>
<id>2106</id>
<description>Vijver</description>
<type>2</type>
<time_diff>0</time_diff>
<status>
<disconnected>0</disconnected>
<slide_serial>s34vz743ih8</slide_serial>
<slide_expires>1557222087</slide_expires>
<out_of_water>0</out_of_water>
<wrong_slide>0</wrong_slide>
<last_experiment>1555241281</last_experiment>
</status>
<exps>
<temperature>
<trend>-1</trend>
<critical_in>2</critical_in>
<avg>10.2</avg>
<status>0</status>
<curr>9.9</curr>
<advises/>
</temperature>
<ph>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>8.10</avg>
<status>0</status>
<curr>8.18</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>1</trend>
<critical_in>-1</critical_in>
<avg>11.3</avg>
<status>0</status>
<curr>11.3</curr>
<advises/>
</o2>
<light>
<max_value>46</max_value>
<status>0</status>
<curr>100</curr>
<advises/>
</light>
</exps>
</device>
<device>
<id>66724</id>
<description>Aquarium</description>
<type>3</type>
<time_diff>0</time_diff>
<status>
<disconnected>0</disconnected>
<slide_serial>T13DW336DP0</slide_serial>
<slide_expires>1556815767</slide_expires>
<out_of_water>0</out_of_water>
<wrong_slide>0</wrong_slide>
<last_experiment>1555240075</last_experiment>
</status>
<exps>
<temperature>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>24.8</avg>
<status>0</status>
<curr>25.1</curr>
<advises/>
</temperature>
<ph>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>7.80</avg>
<status>0</status>
<curr>7.78</curr>
<advises/>
</ph>
<nh3>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>0.001</avg>
<status>0</status>
<curr>0.001</curr>
<advises/>
</nh3>
<nh4>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>29.46</avg>
<status>0</status>
<curr>30.24</curr>
<advises/>
</nh4>
<o2>
<trend>0</trend>
<critical_in>-1</critical_in>
<avg>8.2</avg>
<status>0</status>
<curr>8.2</curr>
<advises/>
</o2>
<lux>
<status/>
<curr>27</curr>
<advises/>
</lux>
<par>
<curr>0</curr>
<advises/>
</par>
<kelvin>
<curr>0</curr>
<advises/>
</kelvin>
</exps>
</device>
</response>```

Ben,

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.

1 Like

Hello,

I was trying to use the seneye with the xml file.
this was not working but I have the solution!

https://community.openhab.org/t/xpath-how-can-i-return-a-value-from-this-xml/79219/5?u=whininie

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!

Just installed it, and at first sight, it works.

Can you tell us what has been changed?

ps Iā€™m very intrested in the possibility to have more seneye sensors included. Personally Iā€™m using a fishtank and pond installation. :wink:

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.

What kind of sensor were you thinking of adding?

Once again many thanks.

hmm, Guess I yelled to soon. :blush:
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).

Items:

Number                  BotjeAqua_O2                    "Zuurstof O2 [%.1f]"                            <zuurstof2>     (FishTankO2)            { channel="seneye:monitor:f6a80861:O2" }
Number                  BotjeAqua_lux                   "Licht LUX [%s]"                                <lux>           (FishTankLux)           { channel="seneye:monitor:f6a80861:lux" }
Number                  BotjeAqua_par                   "Licht PAR [%s]"                                <par>           (FishTankPar)           { channel="seneye:monitor:f6a80861:par" }
Number                  BotjeAqua_kelvin                "Licht KELVIN [%s]"                             <kelvin>        (FishTankKelvin)        { channel="seneye:monitor:f6a80861:kelvin" }
DateTime                BotjeAqua_lastreading           "Laaste input"                                  <update>                                { channel="seneye:monitor:f6a80861:lastreading" }
DateTime                BotjeAqua_slideexpires          "Slide verloopt"                                <slide>                                 { channel="seneye:monitor:f6a80861:slideexpires" }
DateTime                BotjeAqua_lastreading2          "Laaste input [%1$ta %1$td/%1$tm/%1$ty %1$tR]"  <update>                                { channel="seneye:monitor:f6a80861:lastreading" }
DateTime                BotjeAqua_slideexpires2         "Slide verloopt [%1$ta %1$td/%1$tm/%1$ty]"      <slide>                                 { channel="seneye:monitor:f6a80861:slideexpires" }
String                  BotjeAqua_slideSerial           "Slide Serienummer"                             <slide>                                 { channel="seneye:monitor:f6a80861:slideserial" }
String                  BotjeAqua_outOfWater            "Waterniveau [MAP(aquarium.map):%s]"            <water>                                 { channel="seneye:monitor:f6a80861:outofwater" }
String                  BotjeAqua_disconnected          "Geen updates meer..."                          <update>                                { channel="seneye:monitor:f6a80861:disconnected" }
String                  BotjeAqua_wrongSlide            "Verkeerde slide"                               <update>                                { channel="seneye:monitor:f6a80861:wrongslide" }

Number                  BotjeVijver_Temperature         "Temperatuur Ā°C [%.1f]"                         <fishtemp>      (PondTemp)              { channel="seneye:monitor:5db3e631:temperature" }
Number                  BotjeVijver_PH                  "Zuurtegraad PH [%.2f]"                         <ph>            (PondPH)                { channel="seneye:monitor:5db3e631:ph" }
Number                  BotjeVijver_NH3                 "Ammonium NH3 [%.3f]"                           <nh3>           (PondNH)                { channel="seneye:monitor:5db3e631:nh3" }
Number                  BotjeVijver_NH4                 "Ammonium NH4 [%.2f]"                           <nh4>           (PondNH4)               { channel="seneye:monitor:5db3e631:nh4" }
Number                  BotjeVijver_O2                  "Zuurstof O2 [%.1f]"                            <zuurstof2>     (PondO2)                { channel="seneye:monitor:5db3e631:O2" }
Number                  BotjeVijver_lux                 "Licht LUX [%s]"                                <lux>           (PondLux)               { channel="seneye:monitor:5db3e631:lux" }
Number                  BotjeVijver_par                 "Licht PAR [%s]"                                <par>           (PondPar)               { channel="seneye:monitor:5db3e631:par" }
Number                  BotjeVijver_kelvin              "Licht KELVIN [%s]"                             <kelvin>        (PondKelvin)            { channel="seneye:monitor:5db3e631:kelvin" }
DateTime                BotjeVijver_lastreading         "Laaste input"                                  <update>                                { channel="seneye:monitor:5db3e631:lastreading" }
DateTime                BotjeVijver_slideexpires        "Slide verloopt"                                <slide>                                 { channel="seneye:monitor:5db3e631:slideexpires" }
DateTime                BotjeVijver_lastreading2        "Laaste input [%1$ta %1$td/%1$tm/%1$ty %1$tR]"  <update>                                { channel="seneye:monitor:5db3e631:lastreading" }
DateTime                BotjeVijver_slideexpires2       "Slide verloopt [%1$ta %1$td/%1$tm/%1$ty]"      <slide>                                 { channel="seneye:monitor:5db3e631:slideexpires" }
String                  BotjeVijver_slideSerial         "Slide Serienummer"                             <slide>                                 { channel="seneye:monitor:5db3e631:slideserial" }
String                  BotjeVijver_outOfWater          "Waterniveau [MAP(vijver.map):%s]"              <water>                                 { channel="seneye:monitor:5db3e631:outofwater" }
String                  BotjeVijver_disconnected        "Geen updates meer..."                          <update>                                { channel="seneye:monitor:5db3e631:disconnected" }
String                  BotjeVijver_wrongSlide          "Verkeerde slide"                               <update>                                { channel="seneye:monitor:5db3e631:wrongslide" }

Log after manual restart of the binding:

2020-05-27 12:58:23.770 [hingStatusInfoChangedEvent] - 'seneye:monitor:5db3e631' changed from ONLINE to UNINITIALIZED
2020-05-27 12:58:23.778 [hingStatusInfoChangedEvent] - 'seneye:monitor:5db3e631' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)
2020-05-27 12:58:23.779 [hingStatusInfoChangedEvent] - 'seneye:monitor:f6a80861' changed from ONLINE to UNINITIALIZED
2020-05-27 12:58:23.786 [hingStatusInfoChangedEvent] - 'seneye:monitor:f6a80861' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)
2020-05-27 12:58:23.917 [hingStatusInfoChangedEvent] - 'seneye:monitor:f6a80861' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to INITIALIZING
2020-05-27 12:58:23.934 [hingStatusInfoChangedEvent] - 'seneye:monitor:f6a80861' changed from INITIALIZING to ONLINE
2020-05-27 12:58:23.949 [hingStatusInfoChangedEvent] - 'seneye:monitor:5db3e631' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to INITIALIZING
2020-05-27 12:58:23.955 [hingStatusInfoChangedEvent] - 'seneye:monitor:5db3e631' changed from INITIALIZING to ONLINE
2020-05-27 12:58:29.867 [vent.ItemStateChangedEvent] - BotjeAqua_Temperature changed from 23.75 to 23.625
2020-05-27 12:58:29.868 [vent.ItemStateChangedEvent] - BotjeAqua_NH4 changed from 29.19 to 29.45
2020-05-27 12:58:29.869 [vent.ItemStateChangedEvent] - BotjeAqua_lastreading changed from 2020-05-27T12:24:02.000+0200 to 2020-05-27T12:54:03.000+0200
2020-05-27 12:58:29.870 [vent.ItemStateChangedEvent] - BotjeAqua_lastreading2 changed from 2020-05-27T12:24:02.000+0200 to 2020-05-27T12:54:03.000+0200
2020-05-27 12:58:30.238 [vent.ItemStateChangedEvent] - BotjeVijver_Temperature changed from 20.75 to 21.0
2020-05-27 12:58:30.245 [vent.ItemStateChangedEvent] - BotjeVijver_PH changed from 7.34 to 7.43
2020-05-27 12:58:30.246 [vent.ItemStateChangedEvent] - BotjeVijver_lastreading2 changed from 2020-05-27T12:28:01.000+0200 to 2020-05-27T12:58:01.000+0200
2020-05-27 12:58:30.246 [vent.ItemStateChangedEvent] - BotjeVijver_lastreading changed from 2020-05-27T12:28:01.000+0200 to 2020-05-27T12:58:01.000+0200

From the Karaf console can you type

log:set DEBUG org.openhab.binding.seneye

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.

OK. With the debug, you can nicely see that itā€™s doing something every 5 minutes.

But not all data is coming in?
Or will it maybe only get the info for things that are changed?

020-05-27 14:33:44.910 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '83084' read
2020-05-27 14:33:44.910 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '3' type
2020-05-27 14:33:44.911 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 3
2020-05-27 14:33:46.046 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2106' read
2020-05-27 14:33:46.046 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2' type
2020-05-27 14:33:46.047 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 2
2020-05-27 14:33:46.050 [vent.ItemStateChangedEvent] - BotjeVijver_Temperature changed from 21.75 to 22.25
2020-05-27 14:33:46.051 [GroupItemStateChangedEvent] - PondTemp changed from 21.75 to 22.25 through BotjeVijver_Temperature
2020-05-27 14:33:46.056 [GroupItemStateChangedEvent] - PondPH changed from 7.36 to 7.41 through BotjeVijver_PH
2020-05-27 14:33:46.057 [vent.ItemStateChangedEvent] - BotjeVijver_PH changed from 7.36 to 7.41
2020-05-27 14:33:46.057 [vent.ItemStateChangedEvent] - BotjeVijver_lastreading2 changed from 2020-05-27T13:58:02.000+0200 to 2020-05-27T14:28:01.000+0200
2020-05-27 14:33:46.057 [vent.ItemStateChangedEvent] - BotjeVijver_lastreading changed from 2020-05-27T13:58:02.000+0200 to 2020-05-27T14:28:01.000+0200
2020-05-27 14:38:45.431 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '83084' read
2020-05-27 14:38:45.432 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '3' type
2020-05-27 14:38:45.432 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 3
2020-05-27 14:38:46.503 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2106' read
2020-05-27 14:38:46.503 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2' type
2020-05-27 14:38:46.503 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 2
2020-05-27 14:43:45.941 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '83084' read
2020-05-27 14:43:45.942 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '3' type
2020-05-27 14:43:45.942 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 3
2020-05-27 14:43:46.925 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2106' read
2020-05-27 14:43:46.925 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2' type
2020-05-27 14:43:46.925 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 2
2020-05-27 14:48:46.517 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '83084' read
2020-05-27 14:48:46.518 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '3' type
2020-05-27 14:48:46.518 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 3
2020-05-27 14:48:47.430 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2106' read
2020-05-27 14:48:47.430 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2' type
2020-05-27 14:48:47.430 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 2
2020-05-27 14:53:46.978 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '83084' read
2020-05-27 14:53:46.978 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '3' type
2020-05-27 14:53:46.979 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 3
2020-05-27 14:53:47.902 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2106' read
2020-05-27 14:53:47.903 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2' type
2020-05-27 14:53:47.903 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 2
2020-05-27 14:58:50.295 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '83084' read
2020-05-27 14:58:50.295 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '3' type
2020-05-27 14:58:50.295 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 3
2020-05-27 14:58:50.298 [vent.ItemStateChangedEvent] - BotjeAqua_Temperature changed from 24.0 to 23.875
2020-05-27 14:58:50.301 [GroupItemStateChangedEvent] - FishTankTemp changed from 24.0 to 23.875 through BotjeAqua_Temperature
2020-05-27 14:58:50.302 [vent.ItemStateChangedEvent] - BotjeAqua_NH4 changed from 28.67 to 28.93
2020-05-27 14:58:50.303 [GroupItemStateChangedEvent] - FishTankNH4 changed from 28.67 to 28.93 through BotjeAqua_NH4
2020-05-27 14:58:50.303 [vent.ItemStateChangedEvent] - BotjeAqua_lastreading changed from 2020-05-27T14:24:02.000+0200 to 2020-05-27T14:54:02.000+0200
2020-05-27 14:58:50.303 [vent.ItemStateChangedEvent] - BotjeAqua_lastreading2 changed from 2020-05-27T14:24:02.000+0200 to 2020-05-27T14:54:02.000+0200
2020-05-27 14:58:50.806 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2106' read
2020-05-27 14:58:50.807 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2' type
2020-05-27 14:58:50.807 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 2
2020-05-27 14:58:50.810 [vent.ItemStateChangedEvent] - BotjeVijver_Temperature changed from 22.25 to 22.875
2020-05-27 14:58:50.810 [vent.ItemStateChangedEvent] - BotjeVijver_O2 changed from 8.7 to 8.6
2020-05-27 14:58:50.810 [vent.ItemStateChangedEvent] - BotjeVijver_PH changed from 7.41 to 7.46
2020-05-27 14:58:50.814 [vent.ItemStateChangedEvent] - BotjeVijver_lastreading2 changed from 2020-05-27T14:28:01.000+0200 to 2020-05-27T14:58:01.000+0200
2020-05-27 14:58:50.815 [vent.ItemStateChangedEvent] - BotjeVijver_lastreading changed from 2020-05-27T14:28:01.000+0200 to 2020-05-27T14:58:01.000+0200
2020-05-27 14:58:50.815 [GroupItemStateChangedEvent] - PondTemp changed from 22.25 to 22.875 through BotjeVijver_Temperature
2020-05-27 14:58:50.817 [GroupItemStateChangedEvent] - PondO2 changed from 8.7 to 8.6 through BotjeVijver_O2
2020-05-27 14:58:50.819 [GroupItemStateChangedEvent] - PondPH changed from 7.41 to 7.46 through BotjeVijver_PH
2020-05-27 15:03:50.795 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '83084' read
2020-05-27 15:03:50.796 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '3' type
2020-05-27 15:03:50.796 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 3
2020-05-27 15:03:51.280 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2106' read
2020-05-27 15:03:51.280 [DEBUG] [inding.seneye.internal.SeneyeService] - seneye '2' type
2020-05-27 15:03:51.281 [DEBUG] [eneye.internal.handler.SeneyeHandler] - found that sensor is type 2

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.

Please let me know how it goes!

It works great!!!

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?

Fish Tank (week graphs)

Pond (day graph (wasnā€™t working before))

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 you for you fantastic work!!!

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.

Ps Iā€™m loving the graphs!

1 Like