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.
Data From Solvis SC2 and Remote
Moderator: leecollings
-
- Posts: 153
- Joined: Wednesday 02 October 2019 11:47
- Target OS: Linux
- Domoticz version: 2023.1
- Location: DE / BY / LT
- Contact:
-
- Posts: 3
- Joined: Thursday 11 June 2020 9:32
- Target OS: -
- Domoticz version:
- Contact:
Re: Data From Solvis SC2 and Remote
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
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
-
- 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
cool.... if you need any help, let me know 

-
- Posts: 3
- Joined: Thursday 11 June 2020 9:32
- Target OS: -
- Domoticz version:
- Contact:
Re: Data From Solvis SC2 and Remote
Can you share your flow with me? I have trouble connecting and questioning the rc2.
-
- 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
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.
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}]
-
- Posts: 3
- Joined: Thursday 11 June 2020 9:32
- Target OS: -
- Domoticz version:
- Contact:
Re: Data From Solvis SC2 and Remote
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.
Can I relate this to the modbus fields as given by solvis?
Many thanks in advance.
-
- 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
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.
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.
Who is online
Users browsing this forum: No registered users and 1 guest