[{"id":"b0bb63dea1066d9a","type":"tab","label":"Heizung UGSK","disabled":false,"info":""},{"id":"f13ab5d76a5be045","type":"junction","z":"b0bb63dea1066d9a","x":800,"y":620,"wires":[["01b8ec68d52fb401","078b9bfe95e61d6a"]]},{"id":"29cce3e7a40793b0","type":"junction","z":"b0bb63dea1066d9a","x":800,"y":740,"wires":[["dd50324e.f8be3","0a31da18217c489f"]]},{"id":"1f2a75c5f4f55304","type":"junction","z":"b0bb63dea1066d9a","x":800,"y":840,"wires":[["eab8220914537d11","02d6977cf2f2b5bc"]]},{"id":"4acdc5f1f026015e","type":"junction","z":"b0bb63dea1066d9a","x":500,"y":740,"wires":[["29cce3e7a40793b0"]]},{"id":"ffaa4f82c115eaac","type":"junction","z":"b0bb63dea1066d9a","x":280,"y":620,"wires":[["f7c0de4d13294557"]]},{"id":"4dcddbccabaa9a24","type":"junction","z":"b0bb63dea1066d9a","x":1460,"y":680,"wires":[["64061b51736623f4","4abe526ae6f4c0b1"]]},{"id":"fade62f995f19033","type":"junction","z":"b0bb63dea1066d9a","x":740,"y":800,"wires":[["1f2a75c5f4f55304"]]},{"id":"4743102b797e2044","type":"junction","z":"b0bb63dea1066d9a","x":2260,"y":300,"wires":[["41119eca3cb92aec"]]},{"id":"398927f7e31c4757","type":"junction","z":"b0bb63dea1066d9a","x":980,"y":360,"wires":[["c3ec85c524df8a5d","afc03e7539f0c167"]]},{"id":"5ec2b097bdf3d8c7","type":"cronplus","z":"b0bb63dea1066d9a","name":"soll temp","outputField":"payload","timeZone":"","storeName":"","commandResponseMsgOutput":"output2","defaultLocation":"","defaultLocationType":"default","outputs":2,"options":[{"name":"schedule1","topic":"temp SK1","payloadType":"json","payload":"{\"room\":\"UGGYM\",\"type\":\"soll\",\"value\":\"16\"}","expressionType":"cron","expression":"0 */2 0-6 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"},{"name":"schedule2","topic":"temp SK2","payloadType":"json","payload":"{\"room\":\"UGGYM\",\"type\":\"soll\",\"value\":\"18\"}","expressionType":"cron","expression":"0 */2 7-8 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"},{"name":"schedule3","topic":"temp SK3","payloadType":"json","payload":"{\"room\":\"UGGYM\",\"type\":\"soll\",\"value\":\"16\"}","expressionType":"cron","expression":"0 */2 9-23 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":400,"y":280,"wires":[["e8bdad8e628ad292"],["4fec987f.72b318"]]},{"id":"6a6f18551589f7cd","type":"function","z":"b0bb63dea1066d9a","name":"two-level controller","func":"let topic = msg.topic;\nlet payload = parseFloat(msg.payload);\n\nif (topic === \"soll\"){\n context.set('soll',payload);\n context.set('switch_on', (payload - global.get('lowpoint')));\n context.set('switch_off', (payload + global.get('highpoint')));\n node.status({ fill: \"black\", shape: \"dot\", text: \"soll:\" + payload + \" \" + time_string() }); \n let status = regler(context.get('switch_on'), context.get('switch_off'), context.get('temp'), context.get('soll'));\n if (status !== 'deadband') {\n msg.payload = status;\n return msg;\n }\n else {\n return null;\n }\n}\nelse if (topic === \"temp\"){\n context.set('temp',payload);\n let status = regler(context.get('switch_on'), context.get('switch_off'), payload, context.get('soll'));\n if (status !== 'deadband'){\n msg.payload = status; \n return msg;\n }\n else{\n return null;\n } \n}\n\n//-----------------------------------------------------------------------------------------\n\nfunction regler(a,b,t,s){\n if (t < a ) {\n node.status({fill: \"red\", shape: \"dot\", text:\"soll:\" + s + \" ist:\" + t + \" switched on \" + time_string() });\n return \"on\";\n }\n else if (t > b){\n node.status({ fill: \"blue\", shape: \"dot\", text: \"soll:\" + s + \" ist:\" + t + \" switched off \" + time_string() });\n return \"off\"; \n }\n else {\n node.status({ fill: \"green\", shape: \"dot\", text: \"soll:\" + s + \" ist:\" + t + \" deadband \" + time_string() });\n return \"deadband\";\n }\n}\n\n//-----------------------------------------------------------------------------------------\n\nfunction time_string() {\n const date = new Date(Date.now());\n const hours = (\"0\" + date.getHours()).slice(-2);\n const minutes = (\"0\" + date.getMinutes()).slice(-2);\n const seconds = (\"0\" + date.getSeconds()).slice(-2);\n return(\"/ \" + hours + ':' + minutes + ':' + seconds);\n}\n\n//-----------------------------------------------------------------------------------------","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1330,"y":680,"wires":[["4dcddbccabaa9a24"]]},{"id":"c3c55025.500b2","type":"mqtt in","z":"b0bb63dea1066d9a","name":"enocean/UGSK-HT/Temperature","topic":"enocean/UGSK-HT/Temperature","qos":"0","datatype":"auto","broker":"4d127d7585f20d02","nl":false,"rap":true,"rh":0,"inputs":0,"x":190,"y":740,"wires":[["4acdc5f1f026015e"]]},{"id":"dd50324e.f8be3","type":"function","z":"b0bb63dea1066d9a","name":"EGWZ ist temp","func":"flow.set(\"ist\", msg.payload);\nreturn { topic: \"temp\", payload: (parseFloat(msg.payload).toFixed(2))};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1060,"y":740,"wires":[["6a6f18551589f7cd","106e89838fdced57","61d1af347f8d61ce","659404bb98f6084d"]]},{"id":"61d7cf317cdae492","type":"change","z":"b0bb63dea1066d9a","name":"init global hysteresis (high & low)","rules":[{"t":"set","p":"highpoint","pt":"global","to":"0.0","tot":"num"},{"t":"set","p":"lowpoint","pt":"global","to":"0.1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":460,"wires":[[]]},{"id":"01b8ec68d52fb401","type":"function","z":"b0bb63dea1066d9a","name":"EGWZ soll temp","func":"flow.set(\"soll\",msg.payload);\nreturn{topic:\"soll\", payload:msg.payload};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1060,"y":620,"wires":[["6a6f18551589f7cd","72be5fbecc93b01c","61d1af347f8d61ce","21ae7a096448b3cb"]]},{"id":"fe62b92cc5236fc1","type":"ui_numeric","z":"b0bb63dea1066d9a","name":"","label":"","tooltip":"","group":"de247c21e8835e78","order":3,"width":2,"height":1,"wrap":false,"passthru":true,"topic":"topic","topicType":"msg","format":"{{value}}","min":"10","max":"25","step":1,"className":"","x":560,"y":660,"wires":[["02b5e67006c2f3c0"]]},{"id":"f7c0de4d13294557","type":"switch","z":"b0bb63dea1066d9a","name":"auto true","property":"auto","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":560,"y":620,"wires":[["fe62b92cc5236fc1","f13ab5d76a5be045"]]},{"id":"38c406e9e5d37c54","type":"function","z":"b0bb63dea1066d9a","name":"soll temp","func":"delete msg.cronplus;\nreturn [\n {payload:msg.payload.value, topic:msg.payload.type},\n {payload:msg.payload.room}\n]; ","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":180,"y":640,"wires":[["ffaa4f82c115eaac"],["6b47f753041361ed"]]},{"id":"64b0bb3a8bb18010","type":"change","z":"b0bb63dea1066d9a","name":"","rules":[{"t":"set","p":"auto","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":500,"wires":[[]]},{"id":"02b5e67006c2f3c0","type":"switch","z":"b0bb63dea1066d9a","name":"auto false","property":"auto","propertyType":"flow","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":700,"y":660,"wires":[["f13ab5d76a5be045"]]},{"id":"72be5fbecc93b01c","type":"ui_gauge","z":"b0bb63dea1066d9a","name":"soll Temp","group":"de247c21e8835e78","order":4,"width":2,"height":2,"gtype":"gage","title":"{{topic}}","label":"°C","format":"{{value}}","min":"10","max":"25","colors":["#19bcf5","#26e600","#f22c2c"],"seg1":"16","seg2":"21","diff":false,"className":"","x":1300,"y":580,"wires":[]},{"id":"106e89838fdced57","type":"ui_gauge","z":"b0bb63dea1066d9a","name":"ist Temp","group":"de247c21e8835e78","order":5,"width":2,"height":2,"gtype":"gage","title":"{{topic}}","label":"°C","format":"{{value}}","min":"10","max":"25","colors":["#19bcf5","#26e600","#f23838"],"seg1":"16","seg2":"21","diff":false,"className":"","x":1300,"y":780,"wires":[]},{"id":"cfab4cdde6c19f61","type":"ui_gauge","z":"b0bb63dea1066d9a","name":"","group":"de247c21e8835e78","order":6,"width":2,"height":2,"gtype":"gage","title":"delta","label":"°C","format":"{{value}}","min":"-10","max":10,"colors":["#04fbeb","#04e600","#ca3838"],"seg1":"-1","seg2":"1","diff":false,"className":"","x":1090,"y":680,"wires":[]},{"id":"61d1af347f8d61ce","type":"function","z":"b0bb63dea1066d9a","name":"function 42","func":"let soll = flow.get('soll');\nlet ist = flow.get('ist');\nmsg.payload = parseFloat(ist - soll).toFixed(2);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":950,"y":680,"wires":[["cfab4cdde6c19f61"]]},{"id":"204bdb80a96e7cbf","type":"mqtt in","z":"b0bb63dea1066d9a","name":"enocean/UGSK-HT/Humidity","topic":"enocean/UGSK-HT/Humidity","qos":"0","datatype":"auto","broker":"4d127d7585f20d02","nl":false,"rap":true,"rh":0,"inputs":0,"x":180,"y":840,"wires":[["1f2a75c5f4f55304"]]},{"id":"ca542649fbfc06cb","type":"ui_gauge","z":"b0bb63dea1066d9a","name":"ist HUM","group":"de247c21e8835e78","order":7,"width":2,"height":2,"gtype":"gage","title":"{{topic}}","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#f20b2f","#26e600","#f23838"],"seg1":"30","seg2":"70","diff":false,"className":"","x":1300,"y":860,"wires":[]},{"id":"eab8220914537d11","type":"function","z":"b0bb63dea1066d9a","name":"Humidity","func":"return { topic: \"hum\", payload: (parseFloat(msg.payload).toFixed(2))};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1080,"y":840,"wires":[["ca542649fbfc06cb","8154d22036b8310e"]]},{"id":"6b47f753041361ed","type":"ui_text","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","order":1,"width":2,"height":2,"name":"room","label":"","format":"{{payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":330,"y":660,"wires":[]},{"id":"3d313762.1572a8","type":"ui_switch","z":"b0bb63dea1066d9a","name":"EGWZ auto","label":"","tooltip":"","group":"de247c21e8835e78","order":2,"width":1,"height":2,"passthru":true,"decouple":"false","topic":"","topicType":"str","style":"","onvalue":"true","onvalueType":"bool","onicon":"fa-1 fa-clock-o","oncolor":"yellow","offvalue":"false","offvalueType":"bool","officon":"fa-1 fa-hand-pointer-o","offcolor":"yellow","animate":true,"className":"","x":370,"y":500,"wires":[["64b0bb3a8bb18010"]]},{"id":"71a4dd49597248f5","type":"inject","z":"b0bb63dea1066d9a","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":130,"y":500,"wires":[["3d313762.1572a8","951c55800bdb5997","61d7cf317cdae492"]]},{"id":"272b99b4ebf33d63","type":"change","z":"b0bb63dea1066d9a","name":"init soll","rules":[{"t":"set","p":"payload","pt":"msg","to":"16","tot":"num"},{"t":"set","p":"topic","pt":"msg","to":"soll","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":350,"y":580,"wires":[["f7c0de4d13294557","4acdc5f1f026015e","943e5a90487c6ca2"]]},{"id":"951c55800bdb5997","type":"delay","z":"b0bb63dea1066d9a","name":"","pauseType":"delay","timeout":"3","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":190,"y":580,"wires":[["272b99b4ebf33d63"]]},{"id":"078b9bfe95e61d6a","type":"change","z":"b0bb63dea1066d9a","name":"HH:mm","rules":[{"t":"set","p":"time","pt":"msg","to":"$moment().format(\"HH:mm\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":580,"wires":[["37a8d8059b2d452a"]]},{"id":"0a31da18217c489f","type":"change","z":"b0bb63dea1066d9a","name":"HH:mm","rules":[{"t":"set","p":"time","pt":"msg","to":"$moment().format(\"HH:mm\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":780,"wires":[["adb26f13bca2f442"]]},{"id":"37a8d8059b2d452a","type":"function","z":"b0bb63dea1066d9a","name":"function 43","func":"msg.topic = \"soll \" + msg.time;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1070,"y":580,"wires":[["72be5fbecc93b01c"]]},{"id":"adb26f13bca2f442","type":"function","z":"b0bb63dea1066d9a","name":"function 44","func":"return{topic: (\"ist \" + msg.time)};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1070,"y":780,"wires":[["106e89838fdced57"]]},{"id":"02d6977cf2f2b5bc","type":"change","z":"b0bb63dea1066d9a","name":"HH:mm","rules":[{"t":"set","p":"time","pt":"msg","to":"$moment().format(\"HH:mm\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":880,"wires":[["2670da09fc304eff"]]},{"id":"2670da09fc304eff","type":"function","z":"b0bb63dea1066d9a","name":"function 45","func":"return { topic: (\"hum \" + msg.time) };","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1070,"y":880,"wires":[["ca542649fbfc06cb"]]},{"id":"452cb162.7e6d","type":"ui_template","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","name":"Status","order":8,"width":1,"height":2,"format":"
\n \n \n \n
\n\n","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":true,"templateScope":"local","className":"","x":1710,"y":720,"wires":[[]]},{"id":"4abe526ae6f4c0b1","type":"function","z":"b0bb63dea1066d9a","name":"function 46","func":"msg.payload = (msg.payload === \"on\") ? \"red\" : \"grey\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1570,"y":720,"wires":[["452cb162.7e6d"]]},{"id":"be95831c.56938","type":"inject","z":"b0bb63dea1066d9a","name":"at 00:02","props":[{"p":"payload"}],"repeat":"","crontab":"01 00 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":280,"wires":[["ce186cd3.00ed4"]]},{"id":"ce186cd3.00ed4","type":"function","z":"b0bb63dea1066d9a","name":"solarEvents","func":"msg.payload = {\"command\":\"describe\",\n \"expressionType\":\"solar\",\n \"location\":\"48.38157356491496 10.437845885753632\",\n \"solarType\":\"selected\",\n \"solarEvents\":\"sunrise,sunset\",\n \"timeZone\":\"Europe/Berlin\"\n };\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":250,"y":280,"wires":[["5ec2b097bdf3d8c7"]]},{"id":"e8bdad8e628ad292","type":"link out","z":"b0bb63dea1066d9a","name":"link out 126","mode":"link","links":["81caa854a65b5d8e"],"x":515,"y":260,"wires":[]},{"id":"81caa854a65b5d8e","type":"link in","z":"b0bb63dea1066d9a","name":"cronplus input","links":["e8bdad8e628ad292"],"x":75,"y":640,"wires":[["38c406e9e5d37c54"]]},{"id":"5355c793.e8c0b8","type":"ui_template","z":"b0bb63dea1066d9a","group":"8784088a.4ec318","name":"","order":8,"width":16,"height":22,"format":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n\n \n
CRON Schedules
NameExpressionPayloadDescriptionNext runState
{{item.config.name}}{{item.config.expression}}{{item.config.payload}}{{item.status.description}}{{item.status.nextDescription}}
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":false,"templateScope":"local","x":1080,"y":460,"wires":[[]]},{"id":"3b9c3e39.b0eaf2","type":"function","z":"b0bb63dea1066d9a","name":"status-all","func":"if(!msg.payload || !msg.payload.result || !msg.payload.result.length){\n msg.payload = [];\n return msg;\n}\nmsg.payload = msg.payload.result;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":840,"y":460,"wires":[["5355c793.e8c0b8"]]},{"id":"4fec987f.72b318","type":"switch","z":"b0bb63dea1066d9a","name":"","property":"payload.command.command","propertyType":"msg","rules":[{"t":"eq","v":"describe","vt":"str"},{"t":"eq","v":"status-all","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":670,"y":280,"wires":[["8cf018fb.860648"],["3b9c3e39.b0eaf2"]]},{"id":"8cf018fb.860648","type":"function","z":"b0bb63dea1066d9a","name":"get sr + ss items","func":"\nvar sunrise = msg.payload.result.eventTimes.find(e => {\n return e.event == \"sunrise\"\n})\n\nvar sunset = msg.payload.result.eventTimes.find(e => {\n return e.event == \"sunset\"\n})\n\nmsg.payload = {\n sunrise : sunrise.time,\n sunset : sunset.time\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":860,"y":140,"wires":[["ee44abb6ddb654f2","d7dc178406cca37f","24c7204af80a292c","e9b811fc3785e054","f5b6ab6f20dc57ce","69fc9cec8a1a30d2","d979e893426fdca7","8f1ba36ac202bfae"]]},{"id":"d7dc178406cca37f","type":"change","z":"b0bb63dea1066d9a","name":"sunset DD-MM-YYYY HH:mm:ss","rules":[{"t":"set","p":"payload","pt":"msg","to":"$moment(payload.sunset).format(\"DD-MM-YYYY HH:mm:ss\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1180,"y":100,"wires":[["f8c3ddbf3a91d37a"]]},{"id":"f8c3ddbf3a91d37a","type":"debug","z":"b0bb63dea1066d9a","name":"debug 160","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1450,"y":100,"wires":[]},{"id":"ee44abb6ddb654f2","type":"change","z":"b0bb63dea1066d9a","name":"sunrise DD-MM-YYYY HH:mm:ss","rules":[{"t":"set","p":"payload","pt":"msg","to":"$moment(payload.sunrise).format(\"DD-MM-YYYY HH:mm:ss\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1180,"y":60,"wires":[["9ebc2fdfb4f8025b"]]},{"id":"9ebc2fdfb4f8025b","type":"debug","z":"b0bb63dea1066d9a","name":"debug 162","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1450,"y":60,"wires":[]},{"id":"712e3b7bb41c9d39","type":"function","z":"b0bb63dea1066d9a","name":"Step soll","func":"let topic = \"soll °C\";\nlet value = msg.payload;\nlet prev_value = context.get ('prev_value');\n\nmsg.topic = topic;\nmsg.payload = prev_value;\nnode.send(msg);\n\ncontext.set('prev_value', value);\nmsg.topic = topic;\nmsg.payload = value;\nreturn(msg);","outputs":1,"noerr":0,"initialize":"// Code added here will be run once\n// whenever the node is started.\nif (context.get(\"prev_value\") === undefined) {\n context.set(\"prev_value\", 0)\n}","finalize":"","libs":[],"x":1080,"y":980,"wires":[["6aea766332e1702e"]]},{"id":"6aea766332e1702e","type":"ui_chart","z":"b0bb63dea1066d9a","name":"soll-ist Temp","group":"de247c21e8835e78","order":10,"width":0,"height":0,"label":"","chartType":"line","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"30","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#f5f90b","#ff0a3b","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":1310,"y":1000,"wires":[[]]},{"id":"21ae7a096448b3cb","type":"link out","z":"b0bb63dea1066d9a","name":"soll_chart","mode":"link","links":["a07e9a3c01f060d9"],"x":1255,"y":620,"wires":[]},{"id":"659404bb98f6084d","type":"link out","z":"b0bb63dea1066d9a","name":"ist_chart","mode":"link","links":["8b2f09820306db2b"],"x":1255,"y":740,"wires":[]},{"id":"a07e9a3c01f060d9","type":"link in","z":"b0bb63dea1066d9a","name":"link in 56","links":["21ae7a096448b3cb"],"x":955,"y":980,"wires":[["712e3b7bb41c9d39"]]},{"id":"8b2f09820306db2b","type":"link in","z":"b0bb63dea1066d9a","name":"link in 57","links":["659404bb98f6084d"],"x":955,"y":1020,"wires":[["2ead6ee6d2492828"]]},{"id":"2ead6ee6d2492828","type":"function","z":"b0bb63dea1066d9a","name":"ist","func":"msg.topic = \"ist °C\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1090,"y":1020,"wires":[["6aea766332e1702e","ae925927aaf4aab4"]]},{"id":"e9c45110ed041a4f","type":"function","z":"b0bb63dea1066d9a","name":"reset chart","func":"return null;","outputs":1,"noerr":0,"initialize":"// Code added here will be run once\n// whenever the node is started.\nnode.send({payload:[]});\nnode.send({ payload: null, topic: \"soll °C\" });\nnode.send({ payload: null, topic: \"ist °C\" });\nnode.send({ payload: null, topic: \"aussen °C\" });","finalize":"","libs":[],"x":1070,"y":940,"wires":[["6aea766332e1702e"]]},{"id":"8154d22036b8310e","type":"link out","z":"b0bb63dea1066d9a","name":"hum_chart","mode":"link","links":["8135aa52f041b503"],"x":1255,"y":820,"wires":[]},{"id":"ae925927aaf4aab4","type":"ui_chart","z":"b0bb63dea1066d9a","name":"ist Temp Hum","group":"de247c21e8835e78","order":11,"width":0,"height":0,"label":"","chartType":"line","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"100","removeOlder":"24","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#0af1f5","#ff0a3b","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":1320,"y":1080,"wires":[[]]},{"id":"8135aa52f041b503","type":"link in","z":"b0bb63dea1066d9a","name":"link in 58","links":["8154d22036b8310e"],"x":955,"y":1100,"wires":[["02e0d257caa39681"]]},{"id":"02e0d257caa39681","type":"function","z":"b0bb63dea1066d9a","name":"hum","func":"msg.topic = \"hum %\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1090,"y":1100,"wires":[["ae925927aaf4aab4"]]},{"id":"23cd7812d5917599","type":"function","z":"b0bb63dea1066d9a","name":"reset chart","func":"return null;","outputs":1,"noerr":0,"initialize":"// Code added here will be run once\n// whenever the node is started.\nnode.send({ payload: [] });\nnode.send({ payload: null, topic: \"hum %\" });\nnode.send({ payload: null, topic: \"ist °C\" });\nnode.send({ payload: null, topic: \"aussen °C\" });","finalize":"","libs":[],"x":1070,"y":1140,"wires":[["ae925927aaf4aab4"]]},{"id":"c9a6648026eb67e1","type":"function","z":"b0bb63dea1066d9a","name":"function 47","func":"if (msg.payload === \"on\"){\n status(msg.payload);\n return{\"url\":\"http://10.0.0.165/relay/0?turn=on\"};\n}\nelse if (msg.payload === \"off\"){\n status(msg.payload); \n return{\"url\":\"http://10.0.0.165/relay/0?turn=off\"};\n} \nreturn null;\n\n//-------------------------------------------------------------------------------\n\nfunction status(stat){\n let t = date_time_string(\"dayhm\") + \" | \" + \" \" + stat;\n node.status({fill:\"red\",shape:\"dot\",text:t}); \n return; \n}\n\n//-------------------------------------------------------------------------------\n\nfunction date_time_string(type){\n let date = new Date(Date.now());\n let year = date.getFullYear();\n let month = (\"0\" + (date.getMonth() + 1)).slice(-2);\n let day = (\"0\" + date.getDate()).slice(-2);\n let hours = (\"0\" + date.getHours()).slice(-2);\n let minutes = (\"0\" + date.getMinutes()).slice(-2);\n let seconds = (\"0\" + date.getSeconds()).slice(-2);\n let datetimestring = \"\";\n switch(type) {\n case \"full\":\n datetimestring = day + \"-\" + month + \"-\" + year + \" \" + hours + ':' + minutes + ':' + seconds; \n break\n case \"dayhm\":\n datetimestring = day + \".\" + month + \" @ \" + hours + ':' + minutes; \n break \n case \"hm\": \n datetimestring = hours + ':' + minutes; \n break\n case \"hms\":\n datetimestring = hours + ':' + minutes + ':' + seconds; \n break \n case \"ts\":\n datetimestring = Date.now(); \n break\n default:\n datetimestring = null; \n }\n return datetimestring;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1710,"y":640,"wires":[["4e08065a68c3f535"]]},{"id":"36ca24c5a60512a2","type":"switch","z":"b0bb63dea1066d9a","name":"","property":"statusCode","propertyType":"msg","rules":[{"t":"eq","v":"200","vt":"str"},{"t":"neq","v":"200","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":2050,"y":640,"wires":[[],["1c36e9dbddbdc210"]]},{"id":"1c36e9dbddbdc210","type":"change","z":"b0bb63dea1066d9a","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"http Fehler Heizung UGSK","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":2200,"y":640,"wires":[["41119eca3cb92aec"]]},{"id":"41119eca3cb92aec","type":"mqtt out","z":"b0bb63dea1066d9a","name":"","topic":"send-to-Telegram","qos":"0","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"4d127d7585f20d02","x":2430,"y":640,"wires":[]},{"id":"4e08065a68c3f535","type":"link call","z":"b0bb63dea1066d9a","name":"main http request","links":["d59a2325dd14c795"],"linkType":"static","timeout":"30","x":1890,"y":640,"wires":[["36ca24c5a60512a2"]]},{"id":"64061b51736623f4","type":"rbe","z":"b0bb63dea1066d9a","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":false,"property":"payload","topi":"topic","x":1550,"y":640,"wires":[["c9a6648026eb67e1","d32dd0718dd787b0"]]},{"id":"943e5a90487c6ca2","type":"function","z":"b0bb63dea1066d9a","name":"init hum","func":"return{payload:0};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":800,"wires":[["fade62f995f19033"]]},{"id":"75381b5f03466656","type":"ui_text","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","order":9,"width":2,"height":1,"name":"","label":"","format":"{{msg.payload}}","layout":"row-right","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1850,"y":580,"wires":[]},{"id":"d32dd0718dd787b0","type":"function","z":"b0bb63dea1066d9a","name":"Run Time","func":"let d;\nlet s = context.get('s');\n// let s = context.get('s',\"file\");\n\nif(msg.payload === \"on\"){\n context.get('s');\n// context.get('s',\"file\"); \n context.set('myInterval', setInterval(myTimer, 999));\n return null;\n}\nelse if (msg.payload === \"off\"){\n clearInterval(context.get('myInterval'));\n context.set('s',s);\n //context.set('s',s,\"file\");\n return null; \n}\nelse if (msg.payload === \"reset\") {\n clearInterval(context.get('myInterval'));\n s = 0;\n d = hms(s);\n node.send({ payload: d });\n node.status({ fill: \"blue\", shape: \"ring\", text: d });\n context.set('s', s);\n// context.set('s',s,\"file\");\n return null;\n}\n\n//--------------------------------------------------------------------\n\nfunction myTimer() {\n s = context.get('s') + 1;\n// s = context.get('s',\"file\") + 1; \n d = hms(s);\n node.send({payload:d});\n node.status({ fill: \"blue\", shape: \"ring\", text: d });\n context.set('s', s);\n// context.set('s',s,\"file\"); \n}\n\n//--------------------------------------------------------------------\n\nfunction hms(ms) {\n //let t = Math.round(ms / 1000);\n let t = Math.round(ms); \n let h = (Math.floor(t / 3600)).toString();\n let m = (Math.floor(t % 3600 / 60)).toString();\n let s = (Math.floor(t % 3600 % 60)).toString();\n let r = h + \":\" + (\"0\" + m).slice(-2) + \":\" + (\"0\" + s).slice(-2);\n return r;\n}\nreturn msg;\n\n//--------------------------------------------------------------------","outputs":1,"noerr":0,"initialize":"// Code added here will be run once\n// whenever the node is started.\nlet s = context.get('s') || 0;\n//let s = context.get('s',\"file\") || 0;\nif (s === 0) {\n context.set('s',0); \n// context.set('s',0, \"file\");\n}","finalize":"","libs":[],"x":1720,"y":580,"wires":[["75381b5f03466656"]]},{"id":"abd535af1b0e6363","type":"inject","z":"b0bb63dea1066d9a","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":"1","topic":"","payload":"reset","payloadType":"str","x":1550,"y":580,"wires":[["d32dd0718dd787b0"]]},{"id":"f5b6ab6f20dc57ce","type":"change","z":"b0bb63dea1066d9a","name":"sunrise-sunset difference","rules":[{"t":"set","p":"payload","pt":"msg","to":" $moment($$.payload.sunset).diff($moment($$.payload.sunrise), \"seconds\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1150,"y":300,"wires":[["4cdee8ee56e9a9c0","398927f7e31c4757"]]},{"id":"c3ec85c524df8a5d","type":"function","z":"b0bb63dea1066d9a","name":"day & night duration","func":"let day = 60*60*24;\nlet tag = msg.payload;\nlet nacht = day - tag;\nlet nacht_total = duration_str(nacht);\nlet tag_total = duration_str(tag);\nmsg.payload = \"Tag: \" + tag_total + \" / \" + \"Nacht: \" + nacht_total;\nreturn msg;\n\nfunction duration_str(sec) {\n let t = sec;\n let h = (Math.floor(t / 3600)).toString();\n let m = (Math.floor(t % 3600 / 60)).toString();\n// let s = (Math.floor(t % 3600 % 60)).toString();\n// let r = h + \":\" + (\"0\" + m).slice(-2) + \":\" + (\"0\" + s).slice(-2);\n let r = h + \":\" + (\"0\" + m).slice(-2);\n return r;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1140,"y":360,"wires":[["f1df25ceb28d4b30"]]},{"id":"f1df25ceb28d4b30","type":"debug","z":"b0bb63dea1066d9a","name":"debug 2470","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1450,"y":340,"wires":[]},{"id":"4cdee8ee56e9a9c0","type":"debug","z":"b0bb63dea1066d9a","name":"debug 2474","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1450,"y":300,"wires":[]},{"id":"e9b811fc3785e054","type":"change","z":"b0bb63dea1066d9a","name":"sunset HH:mm","rules":[{"t":"set","p":"payload","pt":"msg","to":" $moment(payload.sunset).format(\"HH:mm\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1120,"y":180,"wires":[["7f2145e223eb678e"]]},{"id":"24c7204af80a292c","type":"change","z":"b0bb63dea1066d9a","name":"sunrise HH:mm","rules":[{"t":"set","p":"payload","pt":"msg","to":" $moment(payload.sunrise).format(\"HH:mm\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1120,"y":140,"wires":[["89b5443ba4b5797e"]]},{"id":"e39fbd0b68945209","type":"debug","z":"b0bb63dea1066d9a","name":"debug 2480","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1450,"y":220,"wires":[]},{"id":"89423b49b2a93387","type":"debug","z":"b0bb63dea1066d9a","name":"debug 2481","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1450,"y":260,"wires":[]},{"id":"69fc9cec8a1a30d2","type":"function","z":"b0bb63dea1066d9a","name":"sunrise timestamp ","func":"return {payload : new Date(msg.payload.sunrise).getTime()};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1130,"y":220,"wires":[["e39fbd0b68945209"]]},{"id":"d979e893426fdca7","type":"function","z":"b0bb63dea1066d9a","name":"sunset timestamp ","func":"return {payload : new Date(msg.payload.sunset).getTime()};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1130,"y":260,"wires":[["89423b49b2a93387"]]},{"id":"afc03e7539f0c167","type":"function","z":"b0bb63dea1066d9a","name":"day & night duration","func":"let day = 60*60*24;\nlet tag = msg.payload;\nlet nacht = day - tag;\nlet nacht_total = duration_str(nacht);\nlet tag_total = duration_str(tag);\n//msg.payload = \"Tag: \" + tag_total + \" / \" + \"Nacht: \" + nacht_total;\nreturn [{payload: tag_total},{payload:nacht_total}];\n\nfunction duration_str(sec) {\n let t = sec;\n let h = (Math.floor(t / 3600)).toString();\n let m = (Math.floor(t % 3600 / 60)).toString();\n// let s = (Math.floor(t % 3600 % 60)).toString();\n// let r = h + \":\" + (\"0\" + m).slice(-2) + \":\" + (\"0\" + s).slice(-2);\n let r = h + \":\" + (\"0\" + m).slice(-2);\n return r;\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1140,"y":400,"wires":[["aa301d28ebc25493"],["a027e253d04a6489"]]},{"id":"01b670ca9506664f","type":"function","z":"b0bb63dea1066d9a","name":"aussen","func":"msg.topic = \"aussen °C\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1080,"y":1060,"wires":[["6aea766332e1702e","ae925927aaf4aab4"]]},{"id":"aa36456651cbdf47","type":"mqtt in","z":"b0bb63dea1066d9a","name":"","topic":"enocean/AUSSEN-HT/Temperature","qos":"0","datatype":"auto","broker":"4d127d7585f20d02","nl":false,"rap":true,"rh":0,"inputs":0,"x":200,"y":1060,"wires":[["01b670ca9506664f"]]},{"id":"8f1ba36ac202bfae","type":"change","z":"b0bb63dea1066d9a","name":"DD-MM-YYYY","rules":[{"t":"set","p":"payload","pt":"msg","to":"$moment().format(\"DD-MM-YYYY\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1120,"y":20,"wires":[["85d91ed729d865cd"]]},{"id":"85d91ed729d865cd","type":"ui_text","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","order":12,"width":4,"height":1,"name":"Datum","label":"date:","format":"{{msg.payload}}","layout":"row-center","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1430,"y":20,"wires":[]},{"id":"89b5443ba4b5797e","type":"ui_text","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","order":13,"width":3,"height":1,"name":"sunrise","label":"sunrise:","format":"{{msg.payload}}","layout":"row-center","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1440,"y":140,"wires":[]},{"id":"7f2145e223eb678e","type":"ui_text","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","order":14,"width":3,"height":1,"name":"sunset","label":"sunset:","format":"{{msg.payload}}","layout":"row-center","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1430,"y":180,"wires":[]},{"id":"aa301d28ebc25493","type":"ui_text","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","order":15,"width":2,"height":1,"name":"","label":"day:","format":"{{msg.payload}}","layout":"row-center","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1430,"y":380,"wires":[]},{"id":"a027e253d04a6489","type":"ui_text","z":"b0bb63dea1066d9a","group":"de247c21e8835e78","order":16,"width":2,"height":1,"name":"","label":"night:","format":"{{msg.payload}}","layout":"row-center","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1430,"y":420,"wires":[]},{"id":"4d127d7585f20d02","type":"mqtt-broker","name":"","broker":"10.0.0.43","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"MQTT/Development","birthQos":"0","birthRetain":"true","birthPayload":"online","birthMsg":{},"closeTopic":"MQTT/Development","closeQos":"0","closeRetain":"true","closePayload":"offline","closeMsg":{},"willTopic":"MQTT/Development","willQos":"0","willRetain":"true","willPayload":"disconnected","willMsg":{},"sessionExpiry":""},{"id":"de247c21e8835e78","type":"ui_group","name":"SW-Thermostat","tab":"17f5a0e97cf61446","order":1,"disp":true,"width":"14","collapse":false,"className":""},{"id":"8784088a.4ec318","type":"ui_group","name":"CRON","tab":"9920c734.9de2a8","order":3,"disp":false,"width":"16","collapse":false},{"id":"17f5a0e97cf61446","type":"ui_tab","name":"Heating","icon":"dashboard","order":12,"disabled":false,"hidden":false},{"id":"9920c734.9de2a8","type":"ui_tab","name":"CRON Plus","icon":"dashboard","order":22,"disabled":false,"hidden":false}]