Adding support for Seneye Aquarium & Pond Sensors (removing the need for a Seneye Web Server)

Stephen, would you mind sharing instruction on how to add custom components please? I really appreciate your sharing of the Seneye integration to HA.

Sorry, I don’t have this integration running at the moment and my raspberry pi had a bit of a melt down, so I can’t easily test it at the moment.

I haven’t been keeping up to date with changes to HA recently, the whole custom components system changed but I’ll need to find some time to fix this to work with those changes.

1 Like

@mcclown , this is pretty cool. Rather than trying to integrate with Home Assistant, could this just post data to a MQTT broker? It would decrease the complexity. I imagine most people’s Home Assistant installation isn’t physically close to their fish tanks, and doing MQTT fits other patterns for sending sensor data. You can use a raspberry pi with just your python application running on it, rather than a Raspberry pi with Home Assistant running on it. The level of complexity for that latter setup is so much higher.

Does this require a version 1 or version 2 Seneye SUD? It looks like with version 2 firmware, they made it much harder to use this device. Every month, you need to “activate” a new slide. Does having USB access and skipping the Seneye cloud get around this issue so you can have a completely local solution and just buy new slides when you want better accuracy? I don’t really understand the slide activation process - whether the v2 firmware on the SUD prevents readings if the slides aren’t activated?

@electronichamsters It’s for v2 unfortunately. This does seem to work past that one month window. It let me get another few weeks out of the slide, which seemed to work fine. I have heard reports that might have changed though.

I haven’t been able to test it in a while though, as my setup for my tank changed, so I no longer have my Seneye or a Raspberry Pi in the mix.

I published the python modules that I created to manage interactions with the Seneye, so it could be used to create a service that publishes to MQTT. That was how I originally tested it actually but I never kept that test code.

@electronichamsters
I wrote a C++ prototype this week doing exactly that: sending readings from the Seneye over MQTT. I posted an early version on Github. It’s functional enough to power a dashboard. I’m hoping to find some time to add MQTT discovery and the support of several Seneye devices concurrently.

1 Like

@brardb that’s awesome, thank you for posting.

Hey hey I did the same thing for NodeJs before a saw This was already done. Might be helpful for someone.

Finally completed my Seneye set up in HA:

2 Likes

Looking great! Which Seneye integration did you use?

Also, what graph card are you using. They look great.

hi, it took me a while to fix seneye, but doing baby steps I get there, so I’m using node-red to deal with Seneye especialy to interpret their fedback, so in short:

  1. every 30 sec sending url request: https://api.seneye.com/v1/devices/AAAAAAAA?IncludeState=1&user=BBBBBBBBB&pwd=CCCCCC where AAAAAA is your device id (can be found on www.seneye.com 2nd page “maintenance tools”:

    BBBBB is your user for the website, and CCCCC is your password for the website.
    2.then returned message will arrive in JSON code,

    that can be taken aparts split:

    and sent to MQTT in separate channels and assigned to sensors:

    then just pick up from MQTT and assign to sensors, and you done.

    BTW: worth to mention working with time/dates is a bit tricky, but if you need to know how, I can share the way I’ve done it.

and the graphs are from HACKs
e.g. PH:
type: custom:mini-graph-card
name: Reef Ph 72h
hours_to_show: 72
points_per_hour: 1
animate: true
hour24: true
line_width: 2
font_size: 100
entities:

  • entity: sensor.reef_ph
    show:
    labels: true
    animate: true
    extrema: true
    icon_adaptive_color: false
    name_adaptive_color: false
    color_thresholds:
  • value: 7.95
    color: red
  • value: 8
    color: green
  • value: 8.2
    color: green
  • value: 8.28
    color: red

and the greed card for bars, then set up limits for the colours:

WOW, this view looks amazing, can you share your code please, i would like to do the same view as yours, am using the same method for retrieving the data via the api so it would be nice to do what you have done on my home assistant,
many thanks

hi, here a full node-red module including dates convertion:
[{“id”:“f1939796.abade8”,“type”:“tab”,“label”:“Seneye”,“disabled”:false,“info”:""},{“id”:“a34e20ef.d65e8”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“Temp”,“func”:“msg.payload = msg.payload[0].exps.temperature.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:220,“wires”:[[“5a7d96f0.e70dc8”]]},{“id”:“8b274ef6.c7352”,“type”:“inject”,“z”:“f1939796.abade8”,“name”:“30 sec”,“props”:[{“p”:“payload”},{“p”:“topic”,“vt”:“str”}],“repeat”:“30”,“crontab”:"",“once”:false,“onceDelay”:0.1,“topic”:"",“payload”:"",“payloadType”:“date”,“x”:120,“y”:300,“wires”:[[“acbfe05f.fe984”]]},{“id”:“acbfe05f.fe984”,“type”:“http request”,“z”:“f1939796.abade8”,“name”:"",“method”:“GET”,“ret”:“obj”,“paytoqs”:“ignore”,“url”:“https://api.seneye.com/v1/devices/o16ltls24psr?IncludeState=1&user=your_email&pwd=your_pass",“tls”:"",“persist”:false,“proxy”:"",“authType”:"",“x”:130,“y”:240,“wires”:[[“a34e20ef.d65e8”,“e4ac4c11.167ef”,“97c2f3df.31cf5”,“23e3f222.9577ae”,“81942829.17e618”,“1bc0627b.4d29be”,“e9f6285a.609b58”,“ba2dfea6.ec175”,“b549d3b9.51392”,“6c40e3cd.3dc99c”,“e2ecbfec.37f08”]]},{“id”:“5a7d96f0.e70dc8”,“type”:"mqtt out”,“z”:“f1939796.abade8”,“name”:“tele/seneye/temp”,“topic”:“tele/seneye/temp”,“qos”:“1”,“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:650,“y”:200,“wires”:[]},{“id”:“e4ac4c11.167ef”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“Ph”,“func”:“msg.payload = msg.payload[0].exps.ph.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:260,“wires”:[[“db71308c.87541”,“a836eabe.d05428”]]},{“id”:“db71308c.87541”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:“tele/seneye/ph”,“topic”:“tele/seneye/ph”,“qos”:"",“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:640,“y”:260,“wires”:[]},{“id”:“97c2f3df.31cf5”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“O2”,“func”:“msg.payload = msg.payload[0].exps.o2.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:300,“wires”:[[“c4b7d71.6086728”]]},{“id”:“c4b7d71.6086728”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:“tele/seneye/o2”,“topic”:“tele/seneye/o2”,“qos”:"",“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:640,“y”:320,“wires”:[]},{“id”:“23e3f222.9577ae”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“NH3”,“func”:“msg.payload = msg.payload[0].exps.nh3.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:340,“wires”:[[“55642588.8ac07c”]]},{“id”:“55642588.8ac07c”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:“tele/seneye/nh3”,“topic”:“tele/seneye/nh3”,“qos”:"",“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:640,“y”:380,“wires”:[]},{“id”:“81942829.17e618”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“NH4”,“func”:“msg.payload = msg.payload[0].exps.nh4.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:380,“wires”:[[“15c69907.73fa77”]]},{“id”:“15c69907.73fa77”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:“tele/seneye/nh4”,“topic”:“tele/seneye/nh4”,“qos”:"",“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:640,“y”:440,“wires”:[]},{“id”:“1bc0627b.4d29be”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“LUX”,“func”:“msg.payload = msg.payload[0].exps.lux.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:420,“wires”:[[“df1360ba.e7d98”]]},{“id”:“df1360ba.e7d98”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:"",“topic”:“tele/seneye/lux”,“qos”:"",“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:640,“y”:500,“wires”:[]},{“id”:“e9f6285a.609b58”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“PAR”,“func”:“msg.payload = msg.payload[0].exps.par.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:460,“wires”:[[“35f88207.05aace”]]},{“id”:“35f88207.05aace”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:"",“topic”:“tele/seneye/par”,“qos”:"",“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:640,“y”:560,“wires”:[]},{“id”:“ba2dfea6.ec175”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“Kelvin”,“func”:“msg.payload = msg.payload[0].exps.kelvin.curr;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:390,“y”:500,“wires”:[[“f76bdcb0.3c236”]]},{“id”:“f76bdcb0.3c236”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:"",“topic”:“tele/seneye/k”,“qos”:"",“retain”:“false”,“broker”:“f1ac860d.bdaee8”,“x”:630,“y”:620,“wires”:[]},{“id”:“6f27af9.4fa0c5”,“type”:“api-call-service”,“z”:“f1939796.abade8”,“name”:“Seneye py.script”,“server”:“d63ab2a.9fb8c5”,“version”:3,“debugenabled”:false,“service_domain”:“python_script”,“service”:“seney”,“entityId”:"",“data”:"",“dataType”:“json”,“mergecontext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:380,“y”:680,“wires”:[[]]},{“id”:“beb12e66.bfc3e”,“type”:“inject”,“z”:“f1939796.abade8”,“name”:“2M”,“props”:[{“p”:“payload”},{“p”:“topic”,“vt”:“str”}],“repeat”:“120”,“crontab”:"",“once”:false,“onceDelay”:0.1,“topic”:"",“payload”:"",“payloadType”:“date”,“x”:100,“y”:740,“wires”:[[“6f27af9.4fa0c5”,“83bc3a78.7aa988”,“b549d3b9.51392”]]},{“id”:“83bc3a78.7aa988”,“type”:“api-call-service”,“z”:“f1939796.abade8”,“name”:“Sensor py.script”,“server”:“d63ab2a.9fb8c5”,“version”:3,“debugenabled”:false,“service_domain”:“python_script”,“service”:“sensor”,“entityId”:"",“data”:"",“dataType”:“json”,“mergecontext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:370,“y”:740,“wires”:[[]]},{“id”:“80e686a.feb7478”,“type”:“comment”,“z”:“f1939796.abade8”,“name”:“Seneye Script Run”,“info”:"",“x”:120,“y”:660,“wires”:[]},{“id”:“b549d3b9.51392”,“type”:“debug”,“z”:“f1939796.abade8”,“name”:"",“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“false”,“statusVal”:"",“statusType”:“auto”,“x”:150,“y”:540,“wires”:[]},{“id”:“4a3376f.d853488”,“type”:“mqtt in”,“z”:“f1939796.abade8”,“name”:"",“topic”:“tele/seneye/ph”,“qos”:“1”,“datatype”:“auto”,“broker”:“f1ac860d.bdaee8”,“x”:110,“y”:840,“wires”:[[“2c8f0794.d6b7c8”,“6fb2292f.3e2178”]]},{“id”:“6fb2292f.3e2178”,“type”:“debug”,“z”:“f1939796.abade8”,“name”:“mqtt seneye”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“statusVal”:"",“statusType”:“auto”,“x”:430,“y”:900,“wires”:[]},{“id”:“2c8f0794.d6b7c8”,“type”:“api-call-service”,“z”:“f1939796.abade8”,“d”:true,“name”:“Push Reef Ph”,“server”:“d63ab2a.9fb8c5”,“version”:3,“debugenabled”:false,“service_domain”:“input_number”,“service”:“set_value”,“entityId”:“sensor.reef_ph”,“data”:"",“dataType”:“json”,“mergecontext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:370,“y”:800,“wires”:[[“6fb2292f.3e2178”]]},{“id”:“c055535b.4208a”,“type”:“mqtt in”,“z”:“f1939796.abade8”,“name”:"",“topic”:“tele/seneye/temp”,“qos”:“0”,“datatype”:“auto”,“broker”:“f1ac860d.bdaee8”,“x”:100,“y”:900,“wires”:[[“6fb2292f.3e2178”]]},{“id”:“6c40e3cd.3dc99c”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“Last”,“func”:“msg.payload = msg.payload[0].status.last_experiment;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“x”:190,“y”:60,“wires”:[[“edb8f828.f14df8”]]},{“id”:“edb8f828.f14df8”,“type”:“moment”,“z”:“f1939796.abade8”,“name”:"",“topic”:"",“input”:"",“inputType”:“msg”,“inTz”:“Europe/London”,“adjAmount”:0,“adjType”:“days”,“adjDir”:“add”,“format”:"",“locale”:“C”,“output”:"",“outputType”:“msg”,“outTz”:“Europe/London”,“x”:380,“y”:60,“wires”:[[“fe5a48e8.54aec8”]]},{“id”:“f2d3ec95.cfe9c”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:“tele/seneye/last”,“topic”:“tele/seneye/last”,“qos”:“1”,“retain”:“false”,“respTopic”:"",“contentType”:"",“userProps”:"",“correl”:"",“expiry”:"",“broker”:“f1ac860d.bdaee8”,“x”:880,“y”:40,“wires”:[]},{“id”:“e2ecbfec.37f08”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“slide”,“func”:“msg.payload = msg.payload[0].status.slide_expires;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:190,“y”:100,“wires”:[[“6916bb1d.35e384”]]},{“id”:“6916bb1d.35e384”,“type”:“moment”,“z”:“f1939796.abade8”,“name”:"",“topic”:"",“input”:"",“inputType”:“msg”,“inTz”:“Europe/London”,“adjAmount”:0,“adjType”:“days”,“adjDir”:“add”,“format”:"",“locale”:“C”,“output”:"",“outputType”:“msg”,“outTz”:“Europe/London”,“x”:380,“y”:100,“wires”:[[“21a3d1a9.bca3fe”]]},{“id”:“a836eabe.d05428”,“type”:“debug”,“z”:“f1939796.abade8”,“name”:“slide”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“statusVal”:"",“statusType”:“auto”,“x”:850,“y”:200,“wires”:[]},{“id”:“de2dab27.7f6d18”,“type”:“mqtt out”,“z”:“f1939796.abade8”,“name”:“tele/seneye/slide”,“topic”:“tele/seneye/slide”,“qos”:“1”,“retain”:“false”,“respTopic”:"",“contentType”:"",“userProps”:"",“correl”:"",“expiry”:"",“broker”:“f1ac860d.bdaee8”,“x”:890,“y”:140,“wires”:[]},{“id”:“fe5a48e8.54aec8”,“type”:“change”,“z”:“f1939796.abade8”,“name”:"",“rules”:[{“t”:“set”,“p”:“payload”,“pt”:“msg”,“to”:"$moment(msg.payload).fromNow()",“tot”:“jsonata”}],“action”:"",“property”:"",“from”:"",“to”:"",“reg”:false,“x”:660,“y”:60,“wires”:[[“f2d3ec95.cfe9c”,“3d501f8c.66c9b”,“acfb54c9.a8ba28”]]},{“id”:“3d501f8c.66c9b”,“type”:“debug”,“z”:“f1939796.abade8”,“name”:“last rading”,“active”:false,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“statusVal”:"",“statusType”:“auto”,“x”:1050,“y”:60,“wires”:[]},{“id”:“21a3d1a9.bca3fe”,“type”:“change”,“z”:“f1939796.abade8”,“name”:"",“rules”:[{“t”:“set”,“p”:“payload”,“pt”:“msg”,“to”:"$moment(msg.payload).fromNow()",“tot”:“jsonata”}],“action”:"",“property”:"",“from”:"",“to”:"",“reg”:false,“x”:660,“y”:100,“wires”:[[“a836eabe.d05428”,“de2dab27.7f6d18”]]},{“id”:“acfb54c9.a8ba28”,“type”:“switch”,“z”:“f1939796.abade8”,“name”:“if >45min”,“property”:“payload”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“45 minutes ago”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:1,“x”:860,“y”:100,“wires”:[[“db52d51e.3a7fb8”]]},{“id”:“db52d51e.3a7fb8”,“type”:“function”,“z”:“f1939796.abade8”,“name”:“Seneye no updated for 1H”,“func”:“msg.payload = {}\nmsg.payload.chatId = 448821241\nmsg.payload.type = “message”\nmsg.payload.content = “Seneye not updated for 1H”\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:1080,“y”:100,“wires”:[[“2f8581c6.01246e”]]},{“id”:“2f8581c6.01246e”,“type”:“telegram sender”,“z”:“f1939796.abade8”,“name”:“HomeAssistant”,“bot”:“9b801c0b.69c2c”,“haserroroutput”:false,“outputs”:1,“x”:1320,“y”:100,“wires”:[[]]},{“id”:“f1ac860d.bdaee8”,“type”:“mqtt-broker”,“name”:“homeassitant”,“broker”:“192.168.105.3”,“port”:“1883”,“clientid”:"",“usetls”:false,“compatmode”:false,“keepalive”:“60”,“cleansession”:true,“birthTopic”:"",“birthQos”:“0”,“birthPayload”:"",“closeTopic”:"",“closeQos”:“0”,“closePayload”:"",“willTopic”:"",“willQos”:“0”,“willPayload”:""},{“id”:“d63ab2a.9fb8c5”,“type”:“server”,“name”:“Home Assistant”,“version”:1,“addon”:true,“rejectUnauthorizedCerts”:true,“ha_boolean”:“y|yes|true|on|home|open”,“connectionDelay”:true,“cacheJson”:true},{“id”:“9b801c0b.69c2c”,“type”:“telegram bot”,“botname”:“notovich2_bot”,“usernames”:"",“chatids”:“448821241; 1455372842”,“baseapiurl”:"",“updatemode”:“polling”,“pollinterval”:“300”,“usesocks”:false,“sockshost”:"",“socksport”:“6667”,“socksusername”:“anonymous”,“sockspassword”:"",“bothost”:"",“localbotport”:“8443”,“publicbotport”:“8443”,“privatekey”:"",“certificate”:"",“useselfsignedcertificate”:false,“sslterminated”:false,“verboselogging”:false}]

hello, could you export this as i am unable to use your config as it comes up with errors please?

[{"id":"f1939796.abade8","type":"tab","label":"Seneye","disabled":false,"info":""},{"id":"a34e20ef.d65e8","type":"function","z":"f1939796.abade8","name":"Temp","func":"msg.payload = msg.payload[0].exps.temperature.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":220,"wires":[["5a7d96f0.e70dc8"]]},{"id":"8b274ef6.c7352","type":"inject","z":"f1939796.abade8","name":"30 sec","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"30","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":300,"wires":[["acbfe05f.fe984"]]},{"id":"acbfe05f.fe984","type":"http request","z":"f1939796.abade8","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://api.seneye.com/v1/devices/o16ltls24psr?IncludeState=1&[email protected]&pwd=290878","tls":"","persist":false,"proxy":"","authType":"","x":130,"y":240,"wires":[["a34e20ef.d65e8","e4ac4c11.167ef","97c2f3df.31cf5","23e3f222.9577ae","81942829.17e618","1bc0627b.4d29be","e9f6285a.609b58","ba2dfea6.ec175","b549d3b9.51392","6c40e3cd.3dc99c","e2ecbfec.37f08"]]},{"id":"5a7d96f0.e70dc8","type":"mqtt out","z":"f1939796.abade8","name":"tele/seneye/temp","topic":"tele/seneye/temp","qos":"1","retain":"false","broker":"f1ac860d.bdaee8","x":650,"y":200,"wires":[]},{"id":"e4ac4c11.167ef","type":"function","z":"f1939796.abade8","name":"Ph","func":"msg.payload = msg.payload[0].exps.ph.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":260,"wires":[["db71308c.87541","a836eabe.d05428"]]},{"id":"db71308c.87541","type":"mqtt out","z":"f1939796.abade8","name":"tele/seneye/ph","topic":"tele/seneye/ph","qos":"","retain":"false","broker":"f1ac860d.bdaee8","x":640,"y":260,"wires":[]},{"id":"97c2f3df.31cf5","type":"function","z":"f1939796.abade8","name":"O2","func":"msg.payload = msg.payload[0].exps.o2.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":300,"wires":[["c4b7d71.6086728"]]},{"id":"c4b7d71.6086728","type":"mqtt out","z":"f1939796.abade8","name":"tele/seneye/o2","topic":"tele/seneye/o2","qos":"","retain":"false","broker":"f1ac860d.bdaee8","x":640,"y":320,"wires":[]},{"id":"23e3f222.9577ae","type":"function","z":"f1939796.abade8","name":"NH3","func":"msg.payload = msg.payload[0].exps.nh3.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":340,"wires":[["55642588.8ac07c"]]},{"id":"55642588.8ac07c","type":"mqtt out","z":"f1939796.abade8","name":"tele/seneye/nh3","topic":"tele/seneye/nh3","qos":"","retain":"false","broker":"f1ac860d.bdaee8","x":640,"y":380,"wires":[]},{"id":"81942829.17e618","type":"function","z":"f1939796.abade8","name":"NH4","func":"msg.payload = msg.payload[0].exps.nh4.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":380,"wires":[["15c69907.73fa77"]]},{"id":"15c69907.73fa77","type":"mqtt out","z":"f1939796.abade8","name":"tele/seneye/nh4","topic":"tele/seneye/nh4","qos":"","retain":"false","broker":"f1ac860d.bdaee8","x":640,"y":440,"wires":[]},{"id":"1bc0627b.4d29be","type":"function","z":"f1939796.abade8","name":"LUX","func":"msg.payload = msg.payload[0].exps.lux.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":420,"wires":[["df1360ba.e7d98"]]},{"id":"df1360ba.e7d98","type":"mqtt out","z":"f1939796.abade8","name":"","topic":"tele/seneye/lux","qos":"","retain":"false","broker":"f1ac860d.bdaee8","x":640,"y":500,"wires":[]},{"id":"e9f6285a.609b58","type":"function","z":"f1939796.abade8","name":"PAR","func":"msg.payload = msg.payload[0].exps.par.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":460,"wires":[["35f88207.05aace"]]},{"id":"35f88207.05aace","type":"mqtt out","z":"f1939796.abade8","name":"","topic":"tele/seneye/par","qos":"","retain":"false","broker":"f1ac860d.bdaee8","x":640,"y":560,"wires":[]},{"id":"ba2dfea6.ec175","type":"function","z":"f1939796.abade8","name":"Kelvin","func":"msg.payload = msg.payload[0].exps.kelvin.curr;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":500,"wires":[["f76bdcb0.3c236"]]},{"id":"f76bdcb0.3c236","type":"mqtt out","z":"f1939796.abade8","name":"","topic":"tele/seneye/k","qos":"","retain":"false","broker":"f1ac860d.bdaee8","x":630,"y":620,"wires":[]},{"id":"6f27af9.4fa0c5","type":"api-call-service","z":"f1939796.abade8","name":"Seneye py.script","server":"d63ab2a.9fb8c5","version":3,"debugenabled":false,"service_domain":"python_script","service":"seney","entityId":"","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":380,"y":680,"wires":[[]]},{"id":"beb12e66.bfc3e","type":"inject","z":"f1939796.abade8","name":"2M","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"120","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":740,"wires":[["6f27af9.4fa0c5","83bc3a78.7aa988","b549d3b9.51392"]]},{"id":"83bc3a78.7aa988","type":"api-call-service","z":"f1939796.abade8","name":"Sensor py.script","server":"d63ab2a.9fb8c5","version":3,"debugenabled":false,"service_domain":"python_script","service":"sensor","entityId":"","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":370,"y":740,"wires":[[]]},{"id":"80e686a.feb7478","type":"comment","z":"f1939796.abade8","name":"Seneye Script Run","info":"","x":120,"y":660,"wires":[]},{"id":"b549d3b9.51392","type":"debug","z":"f1939796.abade8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":150,"y":540,"wires":[]},{"id":"4a3376f.d853488","type":"mqtt in","z":"f1939796.abade8","name":"","topic":"tele/seneye/ph","qos":"1","datatype":"auto","broker":"f1ac860d.bdaee8","x":110,"y":840,"wires":[["2c8f0794.d6b7c8","6fb2292f.3e2178"]]},{"id":"6fb2292f.3e2178","type":"debug","z":"f1939796.abade8","name":"mqtt seneye","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":430,"y":900,"wires":[]},{"id":"2c8f0794.d6b7c8","type":"api-call-service","z":"f1939796.abade8","d":true,"name":"Push Reef Ph","server":"d63ab2a.9fb8c5","version":3,"debugenabled":false,"service_domain":"input_number","service":"set_value","entityId":"sensor.reef_ph","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":370,"y":800,"wires":[["6fb2292f.3e2178"]]},{"id":"c055535b.4208a","type":"mqtt in","z":"f1939796.abade8","name":"","topic":"tele/seneye/temp","qos":"0","datatype":"auto","broker":"f1ac860d.bdaee8","x":100,"y":900,"wires":[["6fb2292f.3e2178"]]},{"id":"6c40e3cd.3dc99c","type":"function","z":"f1939796.abade8","name":"Last","func":"msg.payload = msg.payload[0].status.last_experiment;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":190,"y":60,"wires":[["edb8f828.f14df8"]]},{"id":"edb8f828.f14df8","type":"moment","z":"f1939796.abade8","name":"","topic":"","input":"","inputType":"msg","inTz":"Europe/London","adjAmount":0,"adjType":"days","adjDir":"add","format":"","locale":"C","output":"","outputType":"msg","outTz":"Europe/London","x":380,"y":60,"wires":[["fe5a48e8.54aec8"]]},{"id":"f2d3ec95.cfe9c","type":"mqtt out","z":"f1939796.abade8","name":"tele/seneye/last","topic":"tele/seneye/last","qos":"1","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f1ac860d.bdaee8","x":880,"y":40,"wires":[]},{"id":"e2ecbfec.37f08","type":"function","z":"f1939796.abade8","name":"slide","func":"msg.payload = msg.payload[0].status.slide_expires;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":190,"y":100,"wires":[["6916bb1d.35e384"]]},{"id":"6916bb1d.35e384","type":"moment","z":"f1939796.abade8","name":"","topic":"","input":"","inputType":"msg","inTz":"Europe/London","adjAmount":0,"adjType":"days","adjDir":"add","format":"","locale":"C","output":"","outputType":"msg","outTz":"Europe/London","x":380,"y":100,"wires":[["21a3d1a9.bca3fe"]]},{"id":"a836eabe.d05428","type":"debug","z":"f1939796.abade8","name":"slide","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":850,"y":200,"wires":[]},{"id":"de2dab27.7f6d18","type":"mqtt out","z":"f1939796.abade8","name":"tele/seneye/slide","topic":"tele/seneye/slide","qos":"1","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f1ac860d.bdaee8","x":890,"y":140,"wires":[]},{"id":"fe5a48e8.54aec8","type":"change","z":"f1939796.abade8","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$moment(msg.payload).fromNow()","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":60,"wires":[["f2d3ec95.cfe9c","3d501f8c.66c9b","acfb54c9.a8ba28"]]},{"id":"3d501f8c.66c9b","type":"debug","z":"f1939796.abade8","name":"last rading","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1050,"y":60,"wires":[]},{"id":"21a3d1a9.bca3fe","type":"change","z":"f1939796.abade8","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$moment(msg.payload).fromNow()","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":660,"y":100,"wires":[["a836eabe.d05428","de2dab27.7f6d18"]]},{"id":"acfb54c9.a8ba28","type":"switch","z":"f1939796.abade8","name":"if >45min","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"45 minutes ago","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":860,"y":100,"wires":[["db52d51e.3a7fb8"]]},{"id":"db52d51e.3a7fb8","type":"function","z":"f1939796.abade8","name":"Seneye no updated for 1H","func":"msg.payload = {}\nmsg.payload.chatId = 448821241\nmsg.payload.type = \"message\"\nmsg.payload.content = \"Seneye not updated for 1H\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1080,"y":100,"wires":[["2f8581c6.01246e"]]},{"id":"2f8581c6.01246e","type":"telegram sender","z":"f1939796.abade8","name":"HomeAssistant","bot":"9b801c0b.69c2c","haserroroutput":false,"outputs":1,"x":1320,"y":100,"wires":[[]]},{"id":"f1ac860d.bdaee8","type":"mqtt-broker","name":"homeassitant","broker":"192.168.105.3","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"d63ab2a.9fb8c5","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true},{"id":"9b801c0b.69c2c","type":"telegram bot","botname":"notovich2_bot","usernames":"","chatids":"448821241; 1455372842","baseapiurl":"","updatemode":"polling","pollinterval":"300","usesocks":false,"sockshost":"","socksport":"6667","socksusername":"anonymous","sockspassword":"","bothost":"","localbotport":"8443","publicbotport":"8443","privatekey":"","certificate":"","useselfsignedcertificate":false,"sslterminated":false,"verboselogging":false}]

just copy and past it in node-red

Hi,
I’m new here (to the seneye not HA) :stuck_out_tongue:
I alway forget to test my pond with teststrips, so i hope seneye is giving me results.
Anyhow, i have loads of questions, i hope all will be answered and i get smarter :slight_smile:

  1. there are different versions of seneye, which do i need? I think the home? I don’t need the pond right?
  2. I dont like the webserver idea, it costs too much. I read the seneye is usb… question is how do i solve it? I want to get it into HA so HA can warn me if results are too low/high
    How do i do this? Get the usb adapter plug? Or do i need to pair it with a raspberry pi or smth?
  3. How do i pair it with HA? What do i need?
  4. Can the seneye be in the water all seasons? So even winter when its freezing?
  5. No trouble the usb will get wet of the rain?
  6. I need the pads right? Every 30 days i need to change them?
  7. Does the seneye last long and give accurate results?
  8. I cant find a HA integration yet, or am i overlooking?

Thanks guys !

Just bought a seneye pond
Now have to find a way to get it into HA, preferrale without the need for a seneye webserver and wifi
But how lol
My raspberry pi with HA is way to far way to connect with usb to it (30 m from garden to inside the house, its undoable)

hi let me answer some of your questions:

  • there are different versions of seneye, which do i need? I think the home? I don’t need the pond right? - you can get basic USB to plug to anny computer, it will upload the readings to Seneye servers, but if the distance is the issue you need Web Server with wifi, so usb pluged to server, and WiFi connects to internet.
  • I dont like the webserver idea, it costs too much. I read the seneye is usb… question is how do i solve it? I want to get it into HA so HA can warn me if results are too low/high
    How do i do this? Get the usb adapter plug? Or do i need to pair it with a raspberry pi or smth? - check on ebay, i get my set up for under £50
  • How do i pair it with HA? What do i need? - I’ve posted API instructions, it is not easy process took me a while to interpret API data
  • Can the seneye be in the water all seasons? So even winter when its freezing? - sure it can, but you need slide to replace every 30days to get readings Ph, O2, Lights, temperature
  • No trouble the usb will get wet of the rain? - sure you can seal it somehow in the electrical box.
  • I need the pads right? Every 30 days i need to change them? - if you want to monitor Ph, then yes, for my reef is crucial parameter, if you don’t replace slide it will stop updating on S. servers and you will not get any notifications
  • Does the seneye last long and give accurate results? -30 days for Ph, for temperature is unlimited, but it is stupid to pay >£50 just for thermometer, you can fix it with Sonoff wifi TH16 + thermo sensor for about £10 (have couple of those to control my aquarium lights when it is too hot
  • I cant find a HA integration yet, or am i overlooking? - nope, there is no simple way, lots of voodoo is required, for pond do not recommend (all you need is temperature (not sure why, as pond are not heated), for home reef, marine aqua definitely worth money, as other solutions will cost from £500
    [/quote]