Data From Solvis SC2 and Remote

For heating/cooling related questions in Domoticz

Moderator: leecollings

Post Reply
thomasbaetge
Posts: 153
Joined: Wednesday 02 October 2019 11:47
Target OS: Linux
Domoticz version: 2023.1
Location: DE / BY / LT
Contact:

Data From Solvis SC2 and Remote

Post by thomasbaetge »

Hi everyone,

after quite some research in various ressources, I managed to read Data from my Solvis Max heating system (via Solvisemote, their network box) into Domoticz, using node-red.
If anyone needs or wants that too, I'd be happy to provide a detailled how-to.
jrtimmerman
Posts: 3
Joined: Thursday 11 June 2020 9:32
Target OS: -
Domoticz version:
Contact:

Re: Data From Solvis SC2 and Remote

Post by jrtimmerman »

Goodmorning,

I'm also looking into reading the data from the solvis max into Node red. Next step for me would be to connect this towards a database / domotics system.

greetings Jeroen
thomasbaetge
Posts: 153
Joined: Wednesday 02 October 2019 11:47
Target OS: Linux
Domoticz version: 2023.1
Location: DE / BY / LT
Contact:

Re: Data From Solvis SC2 and Remote

Post by thomasbaetge »

cool.... if you need any help, let me know :)
jrtimmerman
Posts: 3
Joined: Thursday 11 June 2020 9:32
Target OS: -
Domoticz version:
Contact:

Re: Data From Solvis SC2 and Remote

Post by jrtimmerman »

Can you share your flow with me? I have trouble connecting and questioning the rc2.
thomasbaetge
Posts: 153
Joined: Wednesday 02 October 2019 11:47
Target OS: Linux
Domoticz version: 2023.1
Location: DE / BY / LT
Contact:

Re: Data From Solvis SC2 and Remote

Post by thomasbaetge »

Sure, no problem.
Getting data ist the easy part (HTTP request node), parsing is a bit more complicated. I don't use all, just the data I am interested in.

the dashboard nodes are optional.

Code: Select all

[{"id":"bfcf1ef4.6b3da","type":"tab","label":"Solvis","disabled":false,"info":""},{"id":"5536b632.9cf8b8","type":"http request","z":"bfcf1ef4.6b3da","name":"Read Solvis data","method":"GET","ret":"txt","paytoqs":false,"url":"192.168.2.8/sc2_val.xml","tls":"","persist":false,"proxy":"","authType":"digest","x":110,"y":120,"wires":[["fcd8cf2c.24b8e","7a2eb9f4.887178"]]},{"id":"960a6f0a.5a777","type":"inject","z":"bfcf1ef4.6b3da","name":"10 Minuten","topic":"","payload":"","payloadType":"date","repeat":"600","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":60,"wires":[["5536b632.9cf8b8"]]},{"id":"fcd8cf2c.24b8e","type":"debug","z":"bfcf1ef4.6b3da","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":350,"y":60,"wires":[]},{"id":"328f6e86.9b4d12","type":"function","z":"bfcf1ef4.6b3da","name":"Aussentemperatur","func":"var results = msg.payload\n\nvar num = parseInt(results.substring(75,77)+results.substring(73,75),16)/10\nif (num > 32767)\n{num = num - 65536\n    num = num *-1\n}\n\n\nmsg.payload = num\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":180,"wires":[["919ca55.302d858","a2930263.b2bc5"]]},{"id":"22a2976a.a16a88","type":"function","z":"bfcf1ef4.6b3da","name":"Kollektortemperatur","func":"var results = msg.payload\n\nvar num = parseInt(results.substring(67,69)+results.substring(65,67),16)/10\nif (num > 32767)\n{num = num - 65536\n//    num = num *-1\n}\n\n//num = num / 10\n\nmsg.payload = num\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":220,"wires":[["2fff28aa.6e21d8"]]},{"id":"d4a6b429.aaed78","type":"function","z":"bfcf1ef4.6b3da","name":"Solarertrag","func":"var results = msg.payload\nvar energy = parseInt(results.substring(187,189)+results.substring(185,187),16)\n\nvar prev = flow.get(\"energy\")||0\n\nif (prev !== 0)\n{\nvar current = energy - prev\n\n\nmsg.topic = \"energy\"\nmsg.payload = current\n\nreturn msg;\n}","outputs":1,"noerr":0,"x":410,"y":360,"wires":[["a7905f0b.e7a53","64e456e3.c10dc8"]]},{"id":"7a2eb9f4.887178","type":"function","z":"bfcf1ef4.6b3da","name":"Error","func":"if (msg.payload.substring(0, 5)!= \"Error\")\n{\nreturn msg;\n}","outputs":1,"noerr":0,"x":130,"y":260,"wires":[["328f6e86.9b4d12","22a2976a.a16a88","d4a6b429.aaed78","316b870e.25f698","814ff91.6157e08","a6f30dfb.905a7","de211b7f.952fa8","ed2f0c38.d12c7","b2392a38.ccc5d8"]]},{"id":"316b870e.25f698","type":"function","z":"bfcf1ef4.6b3da","name":"Fehlercode","func":"var results = msg.payload\nvar num = parseInt(results.substring(167,169),16)\n\nmsg.payload = num\n\nif (num !== 0)\n{\n  msg.payload = {\n    \"command\": \"sendnotification\",\n    \"subject\": \"Solvis\",\n    \"body\": \"Heizung Fehlercode: \" + num.toString(),\n    \"priority\": 0}\n\nreturn msg;\n}","outputs":1,"noerr":0,"x":410,"y":120,"wires":[["c9504299.c2f35"]]},{"id":"c9504299.c2f35","type":"mqtt out","z":"bfcf1ef4.6b3da","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"f80d8629.7db0e8","x":1090,"y":340,"wires":[]},{"id":"814ff91.6157e08","type":"function","z":"bfcf1ef4.6b3da","name":"Solarleistung","func":"\nvar results = msg.payload\n\nvar num = parseInt(results.substring(221,223)+results.substring(219,221),16)/10\nvar newmsg = {payload:\"\", topic:\"\"};\nnewmsg.topic = \"Solarleistung\"\nnewmsg.payload = num\n\nvar power = num * 1000 //umrechnen in Watt\n\nmsg.topic = \"power\"\nmsg.payload = power.toString() + \";0.000\"\nreturn [msg, newmsg];","outputs":2,"noerr":0,"x":410,"y":300,"wires":[["a7905f0b.e7a53"],["b3e172e2.1a139"]]},{"id":"919ca55.302d858","type":"function","z":"bfcf1ef4.6b3da","name":"","func":"\n\nmsg.payload = { \n    \"idx\" :346,\n    \"nvalue\" :0,\n    \"svalue\" :msg.payload.toString()\n     \n}\nreturn msg;","outputs":1,"noerr":0,"x":670,"y":180,"wires":[["c9504299.c2f35"]]},{"id":"bbf97d5b.3c6d9","type":"debug","z":"bfcf1ef4.6b3da","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":950,"y":780,"wires":[]},{"id":"a7905f0b.e7a53","type":"join","z":"bfcf1ef4.6b3da","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":630,"y":300,"wires":[["82c7aa82.2f7408"]]},{"id":"82c7aa82.2f7408","type":"function","z":"bfcf1ef4.6b3da","name":"","func":"var watt = parseInt(msg.payload.power)\n\nvar kw = msg.payload.energy\nkw = kw * 1000\nnode.warn(kw)\nvar sval = watt.toString() + \";\" + kw.toString()\n\nmsg.payload = { \n    \"idx\" :345,\n    \"nvalue\" :0,\n    \"svalue\" :sval\n     \n}\nreturn msg;","outputs":1,"noerr":0,"x":760,"y":300,"wires":[["c9504299.c2f35"]]},{"id":"11eca12a.3fdacf","type":"inject","z":"bfcf1ef4.6b3da","name":"00:00 - 06:00 Uhr","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"0 0-5 * * *","once":false,"onceDelay":0.1,"x":430,"y":720,"wires":[["e17ecc48.7f74b"]]},{"id":"e17ecc48.7f74b","type":"http request","z":"bfcf1ef4.6b3da","name":"Read Solvis data","method":"GET","ret":"txt","paytoqs":false,"url":"192.168.2.8/sc2_val.xml","tls":"","persist":false,"proxy":"","authType":"digest","x":690,"y":720,"wires":[["4f7f67d0.ecd8e8"]]},{"id":"834624af.ff1dc8","type":"function","z":"bfcf1ef4.6b3da","name":"Solarertrag täglich","func":"var results = msg.payload\nvar energy = parseInt(results.substring(187,189)+results.substring(185,187),16)\nnode.warn(energy)\nif (energy !== 0)\n{\nflow.set(\"energy\", energy)\n}\n","outputs":1,"noerr":0,"x":1110,"y":720,"wires":[[]]},{"id":"a2930263.b2bc5","type":"ui_gauge","z":"bfcf1ef4.6b3da","name":"","group":"d11d2982.29e7a8","order":1,"width":0,"height":0,"gtype":"donut","title":"Außentemperatur","label":"Grad","format":"{{value}}","min":"-20","max":"45","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1270,"y":200,"wires":[]},{"id":"2fff28aa.6e21d8","type":"ui_gauge","z":"bfcf1ef4.6b3da","name":"","group":"73178ce2.40eb64","order":2,"width":0,"height":0,"gtype":"gage","title":"Kollektortemperatur","label":"Grad","format":"{{value}}","min":"0","max":"200","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1270,"y":240,"wires":[]},{"id":"b3e172e2.1a139","type":"ui_gauge","z":"bfcf1ef4.6b3da","name":"","group":"73178ce2.40eb64","order":1,"width":0,"height":0,"gtype":"gage","title":"Solarleistung","label":"KW","format":"{{value}}","min":0,"max":"20","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1250,"y":300,"wires":[]},{"id":"a6f30dfb.905a7","type":"function","z":"bfcf1ef4.6b3da","name":"Solar Vorlauf","func":"var results = msg.payload\n\nvar num = parseInt(results.substring(55,57)+results.substring(53,55),16)/10\nif (num > 32767)\n{num = num - 65536\n    num = num *-1\n}\n\n\nmsg.payload = num\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":420,"wires":[["d00c4739.6cc638"]]},{"id":"de211b7f.952fa8","type":"function","z":"bfcf1ef4.6b3da","name":"Solar Rücklauf","func":"var results = msg.payload\n\nvar num = parseInt(results.substring(59,61)+results.substring(57,59),16)/10\nif (num > 32767)\n{num = num - 65536\n    num = num *-1\n}\n\n\nmsg.payload = num\nreturn msg;","outputs":1,"noerr":0,"x":420,"y":460,"wires":[["1ca859dd.bc8ff6"]]},{"id":"d00c4739.6cc638","type":"ui_gauge","z":"bfcf1ef4.6b3da","name":"","group":"d11d2982.29e7a8","order":2,"width":0,"height":0,"gtype":"gage","title":"Solar Vorlauf","label":"Grad","format":"{{value}}","min":"0","max":"150","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1250,"y":420,"wires":[]},{"id":"1ca859dd.bc8ff6","type":"ui_gauge","z":"bfcf1ef4.6b3da","name":"","group":"d11d2982.29e7a8","order":3,"width":0,"height":0,"gtype":"gage","title":"Solar Rücklauf","label":"Grad","format":"{{value}}","min":"0","max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1260,"y":460,"wires":[]},{"id":"ed2f0c38.d12c7","type":"function","z":"bfcf1ef4.6b3da","name":"Puffer unten","func":"var results = msg.payload\n\nvar num = parseInt(results.substring(71,73)+results.substring(69,71),16)/10\nif (num > 32767)\n{num = num - 65536\n    num = num *-1\n}\n\n\nmsg.payload = num\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":520,"wires":[["caad8c37.97e06"]]},{"id":"caad8c37.97e06","type":"ui_gauge","z":"bfcf1ef4.6b3da","name":"","group":"d11d2982.29e7a8","order":5,"width":0,"height":0,"gtype":"gage","title":"Puffertemperatur unten","label":"Grad","format":"{{value}}","min":"0","max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1290,"y":520,"wires":[]},{"id":"b2392a38.ccc5d8","type":"function","z":"bfcf1ef4.6b3da","name":"Heizung Vorlauf","func":"var results = msg.payload\n\nvar num = parseInt(results.substring(83,85)+results.substring(81,83),16)/10\nif (num > 32767)\n{num = num - 65536\n    num = num *-1\n}\n\n\nmsg.payload = num\nreturn msg;","outputs":1,"noerr":0,"x":420,"y":580,"wires":[["e799055a.1de8c8"]]},{"id":"e799055a.1de8c8","type":"ui_gauge","z":"bfcf1ef4.6b3da","name":"","group":"d11d2982.29e7a8","order":4,"width":0,"height":0,"gtype":"gage","title":"Heizung Vorlauf","label":"Grad","format":"{{value}}","min":"0","max":"70","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1260,"y":580,"wires":[]},{"id":"4f7f67d0.ecd8e8","type":"function","z":"bfcf1ef4.6b3da","name":"Error","func":"var night = flow.get(\"night\")\n\nif (msg.payload.substring(0, 5)!= \"Error\")\n{\n\nreturn msg;\n\n}","outputs":1,"noerr":0,"x":870,"y":720,"wires":[["834624af.ff1dc8"]]},{"id":"64e456e3.c10dc8","type":"debug","z":"bfcf1ef4.6b3da","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":940,"y":120,"wires":[]},{"id":"f80d8629.7db0e8","type":"mqtt-broker","z":"","name":"Controlberry","broker":"192.168.2.40","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"d11d2982.29e7a8","type":"ui_group","z":"","name":"Temperatur","tab":"cdcbf2bf.b1403","order":1,"disp":true,"width":"6","collapse":false},{"id":"73178ce2.40eb64","type":"ui_group","z":"","name":"Solar","tab":"cdcbf2bf.b1403","order":2,"disp":true,"width":"6","collapse":false},{"id":"cdcbf2bf.b1403","type":"ui_tab","z":"","name":"Solvis","icon":"dashboard","disabled":false,"hidden":false}]
jrtimmerman
Posts: 3
Joined: Thursday 11 June 2020 9:32
Target OS: -
Domoticz version:
Contact:

Re: Data From Solvis SC2 and Remote

Post by jrtimmerman »

Thanks, the code is working..... can you explain a bit of the function and how you convert the values? you first grab text 75-77 and then 73-75 ? can you explain why?

Can I relate this to the modbus fields as given by solvis?

Many thanks in advance.
thomasbaetge
Posts: 153
Joined: Wednesday 02 October 2019 11:47
Target OS: Linux
Domoticz version: 2023.1
Location: DE / BY / LT
Contact:

Re: Data From Solvis SC2 and Remote

Post by thomasbaetge »

actually I took the parsing logic from an older thread in a different forum and simply adopted it to javascript.
The original thread (German) can be found here:

https://homematic-forum.de/forum/viewto ... 19&t=33085

I also took the field values (offsets) from there, but they are not all correct for my newer version of the SC2, possibly due to changes in the software over time. so I had to find a few by myself by trial and error.

as for modbus, sorry, I can not help with that, as I am not familiar.
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest