diff --git a/flow.json b/flow.json index 51d7280..47daeb3 100644 --- a/flow.json +++ b/flow.json @@ -1 +1 @@ -[{"id":"161f9872.1bc6e8","type":"tab","label":"Measurement Collection","disabled":false,"info":""},{"id":"e4659a9f.3f8658","type":"tab","label":"ModbusMeasurement","disabled":false,"info":""},{"id":"c2d99cfc.d05b9","type":"tab","label":"DatabaseConnection","disabled":false,"info":""},{"id":"15cbc07c.cf074","type":"tab","label":"Temperature Publishing","disabled":false,"info":""},{"id":"63d1c956.3ee9c8","type":"tab","label":"Location","disabled":false,"info":""},{"id":"5f3b2200.77571","type":"tab","label":"Pushover","disabled":false,"info":""},{"id":"f7f94748.f88348","type":"tab","label":"Telegram Alarming","disabled":true,"info":""},{"id":"a7163696.6f4318","type":"mqtt-broker","z":"","name":"","broker":"172.16.2.16","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"64f763bb.19937c","type":"influxdb","z":"","hostname":"influxdb","port":"8086","protocol":"http","database":"smarthome2","name":"","usetls":false,"tls":""},{"id":"9ade7197.41fd7","type":"twitter-credentials","z":"","screen_name":"wollud1969"},{"id":"949da0ae.eef54","type":"telegram bot","z":"","botname":"de.hottis.nodered.telegrambot","usernames":"","chatids":"","baseapiurl":"","updatemode":"polling","pollinterval":"300","usesocks":false,"sockshost":"","socksport":"6667","socksusername":"anonymous","sockspassword":"","bothost":"","localbotport":"8443","publicbotport":"8443","privatekey":"","certificate":"","useselfsignedcertificate":false,"verboselogging":false},{"id":"47e2b918.6ee958","type":"mqtt in","z":"161f9872.1bc6e8","name":"","topic":"IoT/ParsedData/MeterbusHub","qos":"2","broker":"a7163696.6f4318","x":200,"y":340,"wires":[["24fb9c6e.71e374","37e8ad2f.f23a62"]]},{"id":"31ea9a27.6a4fc6","type":"debug","z":"161f9872.1bc6e8","name":"Meterbus","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":380,"y":400,"wires":[]},{"id":"2519cae9.83a656","type":"switch","z":"161f9872.1bc6e8","name":"KindSelector","property":"payload.kind","propertyType":"msg","rules":[{"t":"eq","v":"Temperature","vt":"str"},{"t":"eq","v":"ElectricEnergy","vt":"str"},{"t":"eq","v":"Water","vt":"str"},{"t":"eq","v":"Gas","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":270,"y":480,"wires":[["12a37f1c.96b951"],["5ba7da32.19ad24"],["5bd72a60.ee53f4"],["7b69f4df.bf551c"]]},{"id":"24fb9c6e.71e374","type":"json","z":"161f9872.1bc6e8","name":"","property":"payload","action":"","pretty":false,"x":190,"y":400,"wires":[["31ea9a27.6a4fc6","2519cae9.83a656"]]},{"id":"fea6250f.6ee3f8","type":"template","z":"161f9872.1bc6e8","name":"InfluxPowerPreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.power}},\n \"sv\":{{payload.values.energy}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":1080,"y":720,"wires":[["ba567f4a.7189b"]]},{"id":"5b1b606f.0266e","type":"change","z":"161f9872.1bc6e8","name":"LowPowerCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"LowPower","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":800,"wires":[["fea6250f.6ee3f8"]]},{"id":"e43bf443.5a0798","type":"change","z":"161f9872.1bc6e8","name":"HighPowerCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"HighPower","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":840,"wires":[["fea6250f.6ee3f8"]]},{"id":"e89610fd.77041","type":"change","z":"161f9872.1bc6e8","name":"IndoorCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Indoor","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":700,"wires":[["24408300.280ebe"]]},{"id":"aa911dc7.bfdaf","type":"change","z":"161f9872.1bc6e8","name":"OutdoorCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Outdoor","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":660,"wires":[["24408300.280ebe"]]},{"id":"b543dc5c.f78ee","type":"switch","z":"161f9872.1bc6e8","name":"TemperatureDeviceSelector","property":"payload.name","propertyType":"msg","rules":[{"t":"eq","v":"Hedge","vt":"str"},{"t":"eq","v":"House","vt":"str"},{"t":"eq","v":"Bedroom","vt":"str"},{"t":"eq","v":"DiningRoom","vt":"str"},{"t":"eq","v":"Kitchen","vt":"str"},{"t":"eq","v":"Attic","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":7,"x":540,"y":700,"wires":[["aa911dc7.bfdaf"],["aa911dc7.bfdaf"],["e89610fd.77041","52c8f65b.50e438"],["e89610fd.77041","7ea720a.3c121e"],["e89610fd.77041","b93f273e.e701d8"],["e89610fd.77041","e6e0540a.68ca78"],["6022a80d.129b78"]]},{"id":"5d4d2325.6124fc","type":"change","z":"161f9872.1bc6e8","name":"UnknownCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Unknown","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":920,"wires":[["fea6250f.6ee3f8"]]},{"id":"5ba7da32.19ad24","type":"switch","z":"161f9872.1bc6e8","name":"PowerDeviceSelector","property":"payload.name","propertyType":"msg","rules":[{"t":"eq","v":"Light","vt":"str"},{"t":"eq","v":"Computer","vt":"str"},{"t":"eq","v":"Fridge","vt":"str"},{"t":"eq","v":"Freezer","vt":"str"},{"t":"eq","v":"Laundry","vt":"str"},{"t":"eq","v":"Dryer","vt":"str"},{"t":"eq","v":"Dishwasher","vt":"str"},{"t":"eq","v":"Total","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":9,"x":500,"y":840,"wires":[["5b1b606f.0266e","76caa43a.189d1c"],["5b1b606f.0266e","5e6c821b.1aafcc"],["5b1b606f.0266e","6143841c.604efc"],["5b1b606f.0266e","a12235e5.bba038"],["e43bf443.5a0798","94aa46aa.028448"],["e43bf443.5a0798","b353c7e.6f76638"],["e43bf443.5a0798","ac5fd667.d56718"],["e379acd7.5b501","c20b94cb.004ef8"],["5d4d2325.6124fc"]]},{"id":"24408300.280ebe","type":"template","z":"161f9872.1bc6e8","name":"InfluxTemperaturePreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.temperature}},\n \"sv\":{{payload.values.battery}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":1100,"y":660,"wires":[["a3c2b617.b695e8"]]},{"id":"57f6d1fc.266a6","type":"mqtt in","z":"161f9872.1bc6e8","name":"","topic":"IoT/espThermometer2/measurement","qos":"2","broker":"a7163696.6f4318","x":180,"y":720,"wires":[["c61a7524.40f7f8"]]},{"id":"19fe1878.552c28","type":"debug","z":"161f9872.1bc6e8","name":"EspTherm","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":250,"y":900,"wires":[]},{"id":"c61a7524.40f7f8","type":"json","z":"161f9872.1bc6e8","name":"","property":"payload","action":"","pretty":false,"x":270,"y":780,"wires":[["8f0ce40b.a890c8"]]},{"id":"12a37f1c.96b951","type":"change","z":"161f9872.1bc6e8","name":"SetBattery","rules":[{"t":"set","p":"payload.values.battery","pt":"msg","to":"-1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":620,"wires":[["b543dc5c.f78ee"]]},{"id":"8f0ce40b.a890c8","type":"template","z":"161f9872.1bc6e8","name":"EspThermAdjuster","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\n \"name\":\"{{payload.location}}\",\n \"kind\":\"Temperature\",\n \"values\": {\n \"battery\":{{payload.battery}},\n \"temperature\":{{payload.temperature}}\n }\n}","output":"json","x":230,"y":840,"wires":[["19fe1878.552c28","b543dc5c.f78ee"]]},{"id":"6022a80d.129b78","type":"change","z":"161f9872.1bc6e8","name":"UnknownCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Unknown","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":740,"wires":[["24408300.280ebe"]]},{"id":"e379acd7.5b501","type":"change","z":"161f9872.1bc6e8","name":"TotalPowerCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"TotalPower","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":880,"wires":[["fea6250f.6ee3f8"]]},{"id":"37e8ad2f.f23a62","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":270,"y":280,"wires":[["ff0dcef0.c1cfd"]]},{"id":"ff0dcef0.c1cfd","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Meterbus okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Meterbus failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":260,"y":220,"wires":[["15ac65bb.7d17ea","7c566964.6012d8"]]},{"id":"15ac65bb.7d17ea","type":"e-mail","z":"161f9872.1bc6e8","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"","x":320,"y":160,"wires":[]},{"id":"52c8f65b.50e438","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":600,"wires":[["a54d311e.3d336"]]},{"id":"a54d311e.3d336","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"ESP Bedroom okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"ESP Bedroom failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":600,"wires":[["420f276b.d32858","de5e1488.905cf8"]]},{"id":"420f276b.d32858","type":"e-mail","z":"161f9872.1bc6e8","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"","x":1220,"y":560,"wires":[]},{"id":"7ea720a.3c121e","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":560,"wires":[["d69c9d18.3f2d1"]]},{"id":"d69c9d18.3f2d1","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"ESP Diningroom okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"ESP Diningroom failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":560,"wires":[["420f276b.d32858","de5e1488.905cf8"]]},{"id":"4c2cff9d.77dca","type":"catch","z":"161f9872.1bc6e8","name":"","scope":null,"x":200,"y":1700,"wires":[["6ef3c0ff.cf872"]]},{"id":"bdbb7cc1.47758","type":"e-mail","z":"161f9872.1bc6e8","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"Error message","x":620,"y":1700,"wires":[]},{"id":"26e39dac.99f412","type":"inject","z":"15cbc07c.cf074","name":"Daily at noon","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"00 12 * * *","once":false,"onceDelay":0.1,"x":180,"y":160,"wires":[["d0524503.6384a8","7d3d1673.57e388","e1524efe.856ff","5009f71a.1f24d8"]]},{"id":"d0524503.6384a8","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"avg_temp_hedge_last_15min","query":"select mean(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 15m","rawOutput":false,"precision":"","retentionPolicy":"","x":430,"y":100,"wires":[["c4e40448.5247a8"]]},{"id":"7d3d1673.57e388","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"min_temp_hedge_last_24h","query":"select min(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 24h","rawOutput":false,"precision":"","retentionPolicy":"","x":420,"y":180,"wires":[["d7e3c7a6.698798"]]},{"id":"5009f71a.1f24d8","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"max_temp_hedge_last_24h","query":"select max(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 24h","rawOutput":false,"precision":"","retentionPolicy":"","x":420,"y":220,"wires":[["ebebc5f9.8565c8"]]},{"id":"e1524efe.856ff","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"avg_temp_hedge_last_24h","query":"select mean(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 24h","rawOutput":false,"precision":"","retentionPolicy":"","x":420,"y":140,"wires":[["3298c777.4e34f8"]]},{"id":"c4e40448.5247a8","type":"change","z":"15cbc07c.cf074","name":"set topic: avg15min","rules":[{"t":"set","p":"topic","pt":"msg","to":"avg15min","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":100,"wires":[["4ad2acda.2099c4"]]},{"id":"3298c777.4e34f8","type":"change","z":"15cbc07c.cf074","name":"set topic: avg24h","rules":[{"t":"set","p":"topic","pt":"msg","to":"avg24h","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":140,"wires":[["4ad2acda.2099c4"]]},{"id":"d7e3c7a6.698798","type":"change","z":"15cbc07c.cf074","name":"set topic: min24h","rules":[{"t":"set","p":"topic","pt":"msg","to":"min","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":180,"wires":[["4ad2acda.2099c4"]]},{"id":"ebebc5f9.8565c8","type":"change","z":"15cbc07c.cf074","name":"set topic: max24h","rules":[{"t":"set","p":"topic","pt":"msg","to":"max","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":220,"wires":[["4ad2acda.2099c4"]]},{"id":"4ad2acda.2099c4","type":"join","z":"15cbc07c.cf074","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"4","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":890,"y":160,"wires":[["eaefee46.b7e6"]]},{"id":"eaefee46.b7e6","type":"function","z":"15cbc07c.cf074","name":"TextPreparator","func":"let output = \"\"\noutput += `Die aktuelle Temperatur zuhause ist ${msg.payload.avg15min[0].mean.toFixed(1)}°C.\\n`\noutput += `Die Durchschnittstemperatur der letzten 24 Stunden war ${msg.payload.avg24h[0].mean.toFixed(1)}°C, `\noutput += `die Tiefsttemperatur war ${msg.payload.min[0].min.toFixed(1)}°C um ${msg.payload.min[0].time.getHours()}:${msg.payload.min[0].time.getMinutes()} Uhr und `\noutput += `die Höchsttemperatur war ${msg.payload.max[0].max.toFixed(1)}°C um ${msg.payload.max[0].time.getHours()}:${msg.payload.max[0].time.getMinutes()} Uhr.\\n`\noutput += \"Powered by @NodeRED and @InfluxDB.\"\nmsg.payload = output\nreturn msg;\n","outputs":1,"noerr":0,"x":1060,"y":160,"wires":[["57a41df1.8e7bb4"]]},{"id":"b93f273e.e701d8","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":520,"wires":[["180233c3.f4c66c"]]},{"id":"180233c3.f4c66c","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"ESP Kitchen okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"ESP Kitchen failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":520,"wires":[["420f276b.d32858","de5e1488.905cf8"]]},{"id":"5bd72a60.ee53f4","type":"change","z":"161f9872.1bc6e8","name":"TotalWaterCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"TotalWater","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":1000,"wires":[["1dae2289.1313ed","1e5524e0.e44d7b"]]},{"id":"1dae2289.1313ed","type":"template","z":"161f9872.1bc6e8","name":"InfluxWaterPreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.volume}},\n \"sv\":{{payload.values.flow}},\n \"tv\":{{payload.values.temperature}},\n \"qv\":{{payload.values.optime}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":800,"y":1000,"wires":[["edba769.7203188"]]},{"id":"76caa43a.189d1c","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1180,"wires":[["2410886d.e5da78"]]},{"id":"2410886d.e5da78","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Light okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Light failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1180,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"6e6f9e79.fcc6f","type":"e-mail","z":"161f9872.1bc6e8","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"","x":1240,"y":1220,"wires":[]},{"id":"5304ceae.33839","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Computer okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Computer failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1220,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"a052256f.7fb248","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Fridge okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Fridge failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1260,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"4fba8aaa.f553e4","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Freezer okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Freezer failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1300,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"21a16e3e.263ee2","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Laundry okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Laundry failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1340,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"dd9206d.5108df8","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Dryer okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Dryer failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1380,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"ca316958.80bec8","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Dishwasher okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Dishwasher failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1420,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"15a5a2fe.1555fd","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Power Total okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Power Total failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1460,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"b02e6e45.47185","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Water Total okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Water Total failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1500,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"5e6c821b.1aafcc","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1220,"wires":[["5304ceae.33839"]]},{"id":"6143841c.604efc","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1260,"wires":[["a052256f.7fb248"]]},{"id":"a12235e5.bba038","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1300,"wires":[["4fba8aaa.f553e4"]]},{"id":"94aa46aa.028448","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1340,"wires":[["21a16e3e.263ee2"]]},{"id":"b353c7e.6f76638","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1380,"wires":[["dd9206d.5108df8"]]},{"id":"ac5fd667.d56718","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1420,"wires":[["ca316958.80bec8"]]},{"id":"c20b94cb.004ef8","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1460,"wires":[["15a5a2fe.1555fd"]]},{"id":"1e5524e0.e44d7b","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1500,"wires":[["b02e6e45.47185"]]},{"id":"e6e0540a.68ca78","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":480,"wires":[["ee19751d.1403c8"]]},{"id":"ee19751d.1403c8","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"ESP Attic okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"ESP Attic failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":480,"wires":[["420f276b.d32858","de5e1488.905cf8"]]},{"id":"7b69f4df.bf551c","type":"change","z":"161f9872.1bc6e8","name":"TotalGasCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"TotalGas","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":1040,"wires":[["23113cc1.aedf34","d69d250e.2069f8"]]},{"id":"23113cc1.aedf34","type":"template","z":"161f9872.1bc6e8","name":"InfluxGasPreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.v1}},\n \"sv\":{{payload.values.v2}},\n \"tv\":{{payload.values.v3}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":800,"y":1040,"wires":[["c9f761e.47c18a"]]},{"id":"d69d250e.2069f8","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1540,"wires":[["627b1339.7f79ac"]]},{"id":"627b1339.7f79ac","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Gas Total okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Gas Total failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":1540,"wires":[["6e6f9e79.fcc6f","b080376b.1e2678"]]},{"id":"57a41df1.8e7bb4","type":"twitter out","z":"15cbc07c.cf074","twitter":"9ade7197.41fd7","name":"Tweet","x":1250,"y":160,"wires":[]},{"id":"c3a2e3e9.17cf5","type":"telegram sender","z":"f7f94748.f88348","name":"hottis_bot","bot":"949da0ae.eef54","x":680,"y":420,"wires":[["10d261e9.381fae"]]},{"id":"12eb3d0f.69a043","type":"telegram receiver","z":"f7f94748.f88348","name":"Receiver","bot":"949da0ae.eef54","saveDataDir":"","x":120,"y":260,"wires":[["31d9cb49.1b5c54","5d8c8fab.ad857"],["6febab95.98e214"]]},{"id":"6febab95.98e214","type":"debug","z":"f7f94748.f88348","name":"UnauthorizedAccess","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":180,"y":340,"wires":[]},{"id":"10d261e9.381fae","type":"debug","z":"f7f94748.f88348","name":"TelegramOutput","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":710,"y":360,"wires":[]},{"id":"e3217c9a.a357b","type":"debug","z":"161f9872.1bc6e8","name":"ErrorMessage","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":620,"y":1760,"wires":[]},{"id":"6ef3c0ff.cf872","type":"function","z":"161f9872.1bc6e8","name":"ErrorMessage","func":"// let res = JSON.stringify(msg)\n// msg.payload = res\nreturn msg","outputs":1,"noerr":0,"x":400,"y":1700,"wires":[["bdbb7cc1.47758","e3217c9a.a357b","59301994.0b70e8"]]},{"id":"31d9cb49.1b5c54","type":"function","z":"f7f94748.f88348","name":"TelegramInboundController","func":"if (msg.payload.content.startsWith(\"/\")) {\n msg.tokens = msg.payload.content.split(\" \")\n msg.cmd = msg.tokens.shift().substr(1)\n return [null, msg]\n} else {\n msg.payload.content = \"Start commands with a /, maybe you want to try /help.\"\n return [msg, null]\n}\n\n","outputs":2,"noerr":0,"x":180,"y":420,"wires":[["c3a2e3e9.17cf5"],["192e92a8.2075bd"]]},{"id":"7c566964.6012d8","type":"link out","z":"161f9872.1bc6e8","name":"alarmMeterbus","links":["994c7bcc.36e3a8","a96ab0e9.c738e"],"x":415,"y":220,"wires":[]},{"id":"de5e1488.905cf8","type":"link out","z":"161f9872.1bc6e8","name":"alarmESP","links":["994c7bcc.36e3a8","a96ab0e9.c738e"],"x":1115,"y":500,"wires":[]},{"id":"b080376b.1e2678","type":"link out","z":"161f9872.1bc6e8","name":"alarmX","links":["994c7bcc.36e3a8","a96ab0e9.c738e"],"x":1115,"y":1300,"wires":[]},{"id":"59301994.0b70e8","type":"delay","z":"161f9872.1bc6e8","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":610,"y":1640,"wires":[["3efe4607.e0a6ea"]]},{"id":"3efe4607.e0a6ea","type":"link out","z":"161f9872.1bc6e8","name":"errors","links":["d147891c.b43828","26719762.125ec8"],"x":840,"y":1640,"wires":[]},{"id":"8b8eddd8.8145b","type":"function","z":"f7f94748.f88348","name":"ClearChatDict","func":"const CHAT_DICT_KEY = 'chatKey'\nflow.set(CHAT_DICT_KEY, {})\nnode.warn(\"chatDict cleared\")\nreturn msg;","outputs":1,"noerr":0,"x":400,"y":40,"wires":[[]]},{"id":"8aa25d79.c189c","type":"inject","z":"f7f94748.f88348","name":"Trigger","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":40,"wires":[["8b8eddd8.8145b"]]},{"id":"192e92a8.2075bd","type":"switch","z":"f7f94748.f88348","name":"","property":"cmd","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"},{"t":"eq","v":"stop","vt":"str"},{"t":"eq","v":"help","vt":"str"},{"t":"eq","v":"register","vt":"str"},{"t":"eq","v":"clear","vt":"str"},{"t":"eq","v":"list","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":7,"x":170,"y":520,"wires":[["a283b2cd.cbdf3"],["272e70d9.b49de"],["8aa39a51.1480d8"],["94c6d2ef.aa1e2"],["791bf1ba.0ee4b"],["4e11b20a.53142c"],["82f07dd3.9f2f7"]],"inputLabels":["In"],"outputLabels":["Start","Stop","Help","Register","",null,"Default"]},{"id":"82f07dd3.9f2f7","type":"template","z":"f7f94748.f88348","name":"UnknownCmd","field":"payload.content","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Sorry, the command \"{{cmd}}\" is unknown here.","output":"str","x":420,"y":760,"wires":[["c3a2e3e9.17cf5"]]},{"id":"a283b2cd.cbdf3","type":"function","z":"f7f94748.f88348","name":"StartCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n msg.payload.content = \"You are already known here\"\n} else {\n chatDict[msg.payload.chatId.toString()] = {\n \"errors\": false,\n \"alarms\": false,\n \"geofency\": false,\n \"locative\": false,\n \"time\": false\n }\n msg.payload.content = \"Now you are known here\"\n flow.set(CHAT_DICT_KEY, chatDict)\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":500,"wires":[["c3a2e3e9.17cf5"]]},{"id":"272e70d9.b49de","type":"function","z":"f7f94748.f88348","name":"StopCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n delete chatDict[msg.payload.chatId.toString()]\n msg.payload.content = \"You are known here, but now I forgot you\"\n flow.set(CHAT_DICT_KEY, chatDict)\n} else {\n msg.payload.content = \"You are unknown here\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":540,"wires":[["c3a2e3e9.17cf5"]]},{"id":"8aa39a51.1480d8","type":"template","z":"f7f94748.f88348","name":"HelpCmd","field":"payload.content","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Help for the HottisBot.\n\n/start\n Start your conversation with the bot. ChatId will be stored.\n \n/stop\n End your conversation, chatId will be forgotten.\n\n/help\n This help.\n\n/register token\n Register for information to be send for the particular token.\n\n/clear\n Clear all registrations\n \n/list \n List your registrations\n ","output":"str","x":400,"y":580,"wires":[["c3a2e3e9.17cf5"]]},{"id":"94c6d2ef.aa1e2","type":"function","z":"f7f94748.f88348","name":"RegisterCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n if (msg.tokens[0] == \"help\") {\n let tmpMsg = \"Possible options are \"\n for (let o in chatDict[msg.payload.chatId]) {\n tmpMsg += o + \" \"\n }\n msg.payload.content = tmpMsg\n } else {\n if (msg.tokens[0] in chatDict[msg.payload.chatId]) {\n chatDict[msg.payload.chatId][msg.tokens[0]] = true\n msg.payload.content = `You have been registered for the option ${msg.tokens[0]}`\n flow.set(CHAT_DICT_KEY, chatDict)\n } else {\n msg.payload.content = \"Unknown option\"\n }\n }\n} else {\n msg.payload.content = \"You are unknown here, start with /start\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":410,"y":620,"wires":[["c3a2e3e9.17cf5"]]},{"id":"c4aed737.6b87d8","type":"function","z":"f7f94748.f88348","name":"PrintChatDict","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\nnode.warn(JSON.stringify(chatDict))\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":100,"wires":[[]]},{"id":"e3ab7e28.09718","type":"inject","z":"f7f94748.f88348","name":"Trigger","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":100,"wires":[["c4aed737.6b87d8"]]},{"id":"791bf1ba.0ee4b","type":"function","z":"f7f94748.f88348","name":"ClearCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n for (let o in chatDict[msg.payload.chatId]) {\n chatDict[msg.payload.chatId][o] = false\n }\n msg.payload.content = \"All your registrations have been cleared\"\n flow.set(CHAT_DICT_KEY, chatDict)\n} else {\n msg.payload.content = \"You are unknown here, start with /start\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":660,"wires":[["c3a2e3e9.17cf5"]]},{"id":"4e11b20a.53142c","type":"function","z":"f7f94748.f88348","name":"ListCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n let tmpMsg = \"You are registered for\\n\"\n for (let o in chatDict[msg.payload.chatId]) {\n tmpMsg += o + \": \" + chatDict[msg.payload.chatId][o] + \"\\n\"\n }\n msg.payload.content = tmpMsg\n} else {\n msg.payload.content = \"You are unknown here, start with /start\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":700,"wires":[["c3a2e3e9.17cf5"]]},{"id":"e9de7ec7.cbf71","type":"function","z":"f7f94748.f88348","name":"TelegramMessagePreparator","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\nlet msgs = []\nfor (let chatId in chatDict) {\n node.warn(\"Id: \" + chatId + \", option: \" + msg.option)\n if ((msg.option in chatDict[chatId]) && (chatDict[chatId][msg.option])) {\n node.warn(\"Mark 1\")\n let m = { \"payload\": {\n \"chatId\": chatId,\n \"type\": \"message\",\n \"content\": JSON.stringify(msg, null, 2)\n }\n }\n msgs.push(m)\n }\n}\nnode.warn(JSON.stringify(msgs))\nreturn [msgs];","outputs":1,"noerr":0,"x":460,"y":840,"wires":[["c3a2e3e9.17cf5"]]},{"id":"6aa6322b.0aff5c","type":"mqtt in","z":"f7f94748.f88348","name":"","topic":"IoT/Presence/Geofency","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":140,"y":1060,"wires":[["369d676c.ff2e68"]]},{"id":"4ace0f7a.c48a9","type":"change","z":"f7f94748.f88348","name":"errors","rules":[{"t":"set","p":"option","pt":"msg","to":"errors","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":210,"y":840,"wires":[["e9de7ec7.cbf71"]]},{"id":"d147891c.b43828","type":"link in","z":"f7f94748.f88348","name":"","links":["3efe4607.e0a6ea","cb5cfac1.9c0d88"],"x":115,"y":840,"wires":[["4ace0f7a.c48a9"]]},{"id":"983aafdf.fd28c","type":"change","z":"f7f94748.f88348","name":"time","rules":[{"t":"set","p":"option","pt":"msg","to":"time","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":210,"y":880,"wires":[["e9de7ec7.cbf71"]]},{"id":"efd11e7b.d7a08","type":"inject","z":"f7f94748.f88348","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":940,"wires":[["983aafdf.fd28c"]]},{"id":"a5c806e0.2be3e8","type":"inject","z":"161f9872.1bc6e8","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":200,"y":1640,"wires":[["6ef3c0ff.cf872"]]},{"id":"369d676c.ff2e68","type":"change","z":"f7f94748.f88348","name":"geofency","rules":[{"t":"set","p":"option","pt":"msg","to":"geofency","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":200,"y":1000,"wires":[["e9de7ec7.cbf71"]]},{"id":"96d8fa5c.a13318","type":"mqtt in","z":"f7f94748.f88348","name":"","topic":"IoT/Presence/Locative","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":140,"y":1200,"wires":[["1896fa82.a809f5"]]},{"id":"1896fa82.a809f5","type":"change","z":"f7f94748.f88348","name":"locative","rules":[{"t":"set","p":"option","pt":"msg","to":"locative","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":200,"y":1140,"wires":[["e9de7ec7.cbf71"]]},{"id":"2d7d82a6.d7759e","type":"change","z":"f7f94748.f88348","name":"alarms","rules":[{"t":"set","p":"option","pt":"msg","to":"alarms","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":210,"y":1260,"wires":[["e9de7ec7.cbf71"]]},{"id":"994c7bcc.36e3a8","type":"link in","z":"f7f94748.f88348","name":"","links":["7c566964.6012d8","9786e66c.08f3e8","b080376b.1e2678","de5e1488.905cf8","e44a2b47.10b378","7990f40d.cfc6dc","9be3b04e.3e7b8","619de5cc.60b4fc","80f1ac34.2df46"],"x":115,"y":1260,"wires":[["2d7d82a6.d7759e"]]},{"id":"5d8c8fab.ad857","type":"debug","z":"f7f94748.f88348","name":"ReceivedMsg","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":450,"y":240,"wires":[]},{"id":"e51249cb.ca80a8","type":"pushover","z":"5f3b2200.77571","name":"","device":"","title":"HomeControlAlarm","priority":0,"sound":"pushover","url":"","url_title":"","html":true,"x":890,"y":260,"wires":[]},{"id":"259061c9.8caf6e","type":"inject","z":"5f3b2200.77571","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":360,"y":260,"wires":[["e51249cb.ca80a8"]]},{"id":"26719762.125ec8","type":"link in","z":"5f3b2200.77571","name":"Push Error","links":["3efe4607.e0a6ea","cb5cfac1.9c0d88"],"x":335,"y":360,"wires":[["7bec6469.a3c17c"]]},{"id":"7bec6469.a3c17c","type":"change","z":"5f3b2200.77571","name":"Topic NodeRed Exception","rules":[{"t":"set","p":"topic","pt":"msg","to":"Node-RED Exception","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":360,"wires":[["e51249cb.ca80a8"]]},{"id":"a96ab0e9.c738e","type":"link in","z":"5f3b2200.77571","name":"Push Alarm","links":["7c566964.6012d8","9786e66c.08f3e8","b080376b.1e2678","de5e1488.905cf8","e44a2b47.10b378","7990f40d.cfc6dc","9be3b04e.3e7b8","619de5cc.60b4fc","80f1ac34.2df46"],"x":335,"y":420,"wires":[["ab610711.56b898"]]},{"id":"ab610711.56b898","type":"change","z":"5f3b2200.77571","name":"Topic Device Alarm","rules":[{"t":"set","p":"topic","pt":"msg","to":"Device Alarm","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":420,"wires":[["e51249cb.ca80a8"]]},{"id":"bf0f1a1a.bd15d8","type":"http in","z":"63d1c956.3ee9c8","name":"Location","url":"/location","method":"post","upload":false,"swaggerDoc":"","x":200,"y":180,"wires":[["dea26ac6.83a288","ba0ccdca.996cf"]]},{"id":"dea26ac6.83a288","type":"template","z":"63d1c956.3ee9c8","name":"Prepare Response","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Ok, location service, thank you very much.","output":"str","x":430,"y":180,"wires":[["731db480.aadd9c"]]},{"id":"731db480.aadd9c","type":"http response","z":"63d1c956.3ee9c8","name":"","statusCode":"200","headers":{},"x":660,"y":180,"wires":[]},{"id":"31957024.76a17","type":"function","z":"63d1c956.3ee9c8","name":"Stringify","func":"let m = JSON.stringify(msg.payload, null, 2)\nmsg.payload = m\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":240,"wires":[["bf534da5.e7ae2","ee40dee3.a2715"]]},{"id":"16fa8e82.4283a1","type":"change","z":"5f3b2200.77571","name":"Topic Notification","rules":[{"t":"set","p":"topic","pt":"msg","to":"Notification","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":480,"wires":[["e51249cb.ca80a8"]]},{"id":"c931c70.3beb138","type":"link in","z":"5f3b2200.77571","name":"Push Notification","links":["bf534da5.e7ae2"],"x":335,"y":480,"wires":[["16fa8e82.4283a1"]]},{"id":"bf534da5.e7ae2","type":"link out","z":"63d1c956.3ee9c8","name":"","links":["c931c70.3beb138"],"x":875,"y":240,"wires":[]},{"id":"445f490f.ae7268","type":"debug","z":"63d1c956.3ee9c8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":750,"y":300,"wires":[]},{"id":"ba0ccdca.996cf","type":"function","z":"63d1c956.3ee9c8","name":"Prepare","func":"let content = {\n \"location\": msg.payload.id,\n \"direction\": msg.payload.trigger,\n \"device\": msg.payload.device\n}\nmsg.payload = content\nreturn msg;","outputs":1,"noerr":0,"x":400,"y":300,"wires":[["c528ca13.42f448"]]},{"id":"c528ca13.42f448","type":"function","z":"63d1c956.3ee9c8","name":"SelectPerson","func":"let device = msg.payload.device\nlet persons = {\n \"7DF7374D-83A5-4E56-838B-D3BB26ED4A54\": \"Wolfgang\",\n \"1BAE9B56-D085-4AB9-B461-30030F1579C5\": \"Patty\",\n \"9C4D290A-D0DC-42AB-97F0-9075041512E2\": \"Anna\",\n \"0EF0DB49-234D-469C-9F95-0403ACF599FD\": \"Matthias\"\n}\nlet person = \"Unknown\"\nif (device in persons) {\n person = persons[device]\n} \nmsg.payload.person = person\nreturn msg;","outputs":1,"noerr":0,"x":570,"y":300,"wires":[["445f490f.ae7268","31957024.76a17"]]},{"id":"ee40dee3.a2715","type":"mqtt out","z":"63d1c956.3ee9c8","name":"","topic":"IoT/Presence/Location","qos":"","retain":"","broker":"a7163696.6f4318","x":960,"y":180,"wires":[]},{"id":"46b22e68.24113","type":"function","z":"c2d99cfc.d05b9","name":"EventCounter","func":"let cnt = context.get('EventCounter') || 0\ncnt += 1\ncontext.set('EventCounter', cnt)\nnode.status({fill:\"blue\",shape:\"dot\",text:`${cnt}`})\nreturn msg;","outputs":1,"noerr":0,"x":440,"y":380,"wires":[["8c7fcb5a.cfdf38","4489e91d.4448d8"]]},{"id":"8c7fcb5a.cfdf38","type":"debug","z":"c2d99cfc.d05b9","name":"InfluxReady","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":650,"y":360,"wires":[]},{"id":"4489e91d.4448d8","type":"influxdb out","z":"c2d99cfc.d05b9","influxdb":"64f763bb.19937c","name":"","measurement":"measured","precision":"","retentionPolicy":"","x":730,"y":400,"wires":[]},{"id":"e774ea0a.8c9498","type":"link in","z":"c2d99cfc.d05b9","name":"DatabaseInput","links":["7f786eca.756de","a3c2b617.b695e8","ba567f4a.7189b","edba769.7203188","c9f761e.47c18a","7f24c8d4.78b378","626a4ff4.2659a","e35e483a.8ee6a8","d8654fea.c36b3"],"x":255,"y":380,"wires":[["46b22e68.24113"]]},{"id":"a3c2b617.b695e8","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":1275,"y":660,"wires":[]},{"id":"ba567f4a.7189b","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":1235,"y":720,"wires":[]},{"id":"edba769.7203188","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":975,"y":1000,"wires":[]},{"id":"c9f761e.47c18a","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":975,"y":1040,"wires":[]},{"id":"c7382408.0842f8","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Modbus2 Laundry Temperature okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Modbus2 Laundry Temperature failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":620,"y":120,"wires":[["93de7dae.f1a69","9be3b04e.3e7b8"]]},{"id":"93de7dae.f1a69","type":"e-mail","z":"e4659a9f.3f8658","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"","x":880,"y":80,"wires":[]},{"id":"2ed0bcf5.3ecd54","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":120,"wires":[["c7382408.0842f8"]]},{"id":"9be3b04e.3e7b8","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["994c7bcc.36e3a8","a96ab0e9.c738e"],"x":755,"y":120,"wires":[]},{"id":"26894128.4da4fe","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Laundry/Temperature","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":220,"y":180,"wires":[["2ed0bcf5.3ecd54","d2658ade.4be488"]]},{"id":"d2658ade.4be488","type":"template","z":"e4659a9f.3f8658","name":"Modbus2LaundryTemperature","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Laundry\",\n \"kind\":\"Temperature\",\n \"category\":\"Indoor\"\n }\n]","output":"json","x":490,"y":240,"wires":[["e5491c23.66121","d8654fea.c36b3"]]},{"id":"e5491c23.66121","type":"debug","z":"e4659a9f.3f8658","name":"ModbusLaundryTemperature","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":860,"y":280,"wires":[]},{"id":"5c55b2d7.96294c","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Modbus2 Laundry Humidity okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Modbus2 Laundry Humidity failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":620,"y":420,"wires":[["369f0d1f.d15fd2","619de5cc.60b4fc"]]},{"id":"369f0d1f.d15fd2","type":"e-mail","z":"e4659a9f.3f8658","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"","x":880,"y":380,"wires":[]},{"id":"b2e383b0.9f2ea","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":420,"wires":[["5c55b2d7.96294c"]]},{"id":"619de5cc.60b4fc","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["994c7bcc.36e3a8","a96ab0e9.c738e"],"x":755,"y":420,"wires":[]},{"id":"cc26a43e.e53118","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Laundry/Humidity","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":210,"y":480,"wires":[["b2e383b0.9f2ea","5788c7f5.101908"]]},{"id":"5788c7f5.101908","type":"template","z":"e4659a9f.3f8658","name":"Modbus2LaundryHumidity","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Laundry\",\n \"kind\":\"Humidity\",\n \"category\":\"Indoor\"\n }\n]","output":"json","x":470,"y":540,"wires":[["f04a518b.613c7","626a4ff4.2659a"]]},{"id":"626a4ff4.2659a","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":540,"wires":[]},{"id":"f04a518b.613c7","type":"debug","z":"e4659a9f.3f8658","name":"ModbusLaundryTemperature","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":860,"y":580,"wires":[]},{"id":"10bb547.0703fac","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"1","fromt":"str","to":"Modbus2 Freezer Temperature okay","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"0","fromt":"str","to":"Modbus2 Freezer Temperature failed","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":620,"y":740,"wires":[["8db8089c.93e4d8","80f1ac34.2df46"]]},{"id":"8db8089c.93e4d8","type":"e-mail","z":"e4659a9f.3f8658","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"","x":880,"y":700,"wires":[]},{"id":"149e9b31.462285","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":740,"wires":[["10bb547.0703fac"]]},{"id":"80f1ac34.2df46","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["994c7bcc.36e3a8","a96ab0e9.c738e"],"x":755,"y":740,"wires":[]},{"id":"9f089e17.30bd6","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Freezer","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":180,"y":800,"wires":[["149e9b31.462285","c3a641b8.fb524"]]},{"id":"c3a641b8.fb524","type":"template","z":"e4659a9f.3f8658","name":"Modbus2FreezerTemperature","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Freezer\",\n \"kind\":\"Temperature\",\n \"category\":\"Device\"\n }\n]","output":"json","x":490,"y":860,"wires":[["3dc154c3.a188bc","e35e483a.8ee6a8"]]},{"id":"3dc154c3.a188bc","type":"debug","z":"e4659a9f.3f8658","name":"ModbusFreezerTemperature","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":860,"y":900,"wires":[]},{"id":"e35e483a.8ee6a8","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":860,"wires":[]},{"id":"d8654fea.c36b3","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":240,"wires":[]},{"id":"ac57e5d9.c707e8","type":"catch","z":"e4659a9f.3f8658","name":"","scope":null,"x":100,"y":1080,"wires":[["bf5ed3c7.d7ff7"]]},{"id":"2ff06ca5.070bc4","type":"e-mail","z":"e4659a9f.3f8658","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"Error message","x":520,"y":1080,"wires":[]},{"id":"73653e14.45b7c","type":"debug","z":"e4659a9f.3f8658","name":"ErrorMessage","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":520,"y":1140,"wires":[]},{"id":"bf5ed3c7.d7ff7","type":"function","z":"e4659a9f.3f8658","name":"ErrorMessage","func":"// let res = JSON.stringify(msg)\n// msg.payload = res\nreturn msg","outputs":1,"noerr":0,"x":300,"y":1080,"wires":[["2ff06ca5.070bc4","73653e14.45b7c","14b1c9b1.ffd2d6"]]},{"id":"14b1c9b1.ffd2d6","type":"delay","z":"e4659a9f.3f8658","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":510,"y":1020,"wires":[["cb5cfac1.9c0d88"]]},{"id":"cb5cfac1.9c0d88","type":"link out","z":"e4659a9f.3f8658","name":"errors","links":["d147891c.b43828","26719762.125ec8"],"x":740,"y":1020,"wires":[]},{"id":"218cd9fd.a17db6","type":"inject","z":"e4659a9f.3f8658","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":1020,"wires":[["bf5ed3c7.d7ff7"]]}] \ No newline at end of file +[{"id":"161f9872.1bc6e8","type":"tab","label":"Measurement Collection","disabled":false,"info":""},{"id":"e4659a9f.3f8658","type":"tab","label":"ModbusMeasurement","disabled":false,"info":""},{"id":"c2d99cfc.d05b9","type":"tab","label":"DatabaseConnection","disabled":false,"info":""},{"id":"15cbc07c.cf074","type":"tab","label":"Temperature Publishing","disabled":false,"info":""},{"id":"63d1c956.3ee9c8","type":"tab","label":"Location","disabled":false,"info":""},{"id":"5f3b2200.77571","type":"tab","label":"Pushover","disabled":false,"info":""},{"id":"f7f94748.f88348","type":"tab","label":"Telegram Alarming","disabled":true,"info":""},{"id":"a7163696.6f4318","type":"mqtt-broker","z":"","name":"","broker":"172.16.2.16","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"64f763bb.19937c","type":"influxdb","z":"","hostname":"influxdb","port":"8086","protocol":"http","database":"smarthome2","name":"","usetls":false,"tls":""},{"id":"9ade7197.41fd7","type":"twitter-credentials","z":"","screen_name":"wollud1969"},{"id":"949da0ae.eef54","type":"telegram bot","z":"","botname":"de.hottis.nodered.telegrambot","usernames":"","chatids":"","baseapiurl":"","updatemode":"polling","pollinterval":"300","usesocks":false,"sockshost":"","socksport":"6667","socksusername":"anonymous","sockspassword":"","bothost":"","localbotport":"8443","publicbotport":"8443","privatekey":"","certificate":"","useselfsignedcertificate":false,"verboselogging":false},{"id":"47e2b918.6ee958","type":"mqtt in","z":"161f9872.1bc6e8","name":"","topic":"IoT/ParsedData/MeterbusHub","qos":"2","broker":"a7163696.6f4318","x":200,"y":340,"wires":[["24fb9c6e.71e374","37e8ad2f.f23a62"]]},{"id":"31ea9a27.6a4fc6","type":"debug","z":"161f9872.1bc6e8","name":"Meterbus","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":380,"y":400,"wires":[]},{"id":"2519cae9.83a656","type":"switch","z":"161f9872.1bc6e8","name":"KindSelector","property":"payload.kind","propertyType":"msg","rules":[{"t":"eq","v":"Temperature","vt":"str"},{"t":"eq","v":"ElectricEnergy","vt":"str"},{"t":"eq","v":"Water","vt":"str"},{"t":"eq","v":"Gas","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":270,"y":480,"wires":[["12a37f1c.96b951"],["5ba7da32.19ad24"],["5bd72a60.ee53f4"],["7b69f4df.bf551c"]]},{"id":"24fb9c6e.71e374","type":"json","z":"161f9872.1bc6e8","name":"","property":"payload","action":"","pretty":false,"x":190,"y":400,"wires":[["31ea9a27.6a4fc6","2519cae9.83a656"]]},{"id":"fea6250f.6ee3f8","type":"template","z":"161f9872.1bc6e8","name":"InfluxPowerPreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.power}},\n \"sv\":{{payload.values.energy}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":1080,"y":720,"wires":[["ba567f4a.7189b"]]},{"id":"5b1b606f.0266e","type":"change","z":"161f9872.1bc6e8","name":"LowPowerCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"LowPower","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":800,"wires":[["fea6250f.6ee3f8"]]},{"id":"e43bf443.5a0798","type":"change","z":"161f9872.1bc6e8","name":"HighPowerCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"HighPower","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":840,"wires":[["fea6250f.6ee3f8"]]},{"id":"e89610fd.77041","type":"change","z":"161f9872.1bc6e8","name":"IndoorCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Indoor","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":700,"wires":[["24408300.280ebe"]]},{"id":"aa911dc7.bfdaf","type":"change","z":"161f9872.1bc6e8","name":"OutdoorCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Outdoor","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":660,"wires":[["24408300.280ebe"]]},{"id":"b543dc5c.f78ee","type":"switch","z":"161f9872.1bc6e8","name":"TemperatureDeviceSelector","property":"payload.name","propertyType":"msg","rules":[{"t":"eq","v":"Hedge","vt":"str"},{"t":"eq","v":"House","vt":"str"},{"t":"eq","v":"Bedroom","vt":"str"},{"t":"eq","v":"DiningRoom","vt":"str"},{"t":"eq","v":"Kitchen","vt":"str"},{"t":"eq","v":"Attic","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":7,"x":540,"y":700,"wires":[["aa911dc7.bfdaf"],["aa911dc7.bfdaf"],["e89610fd.77041","52c8f65b.50e438"],["e89610fd.77041","7ea720a.3c121e"],["e89610fd.77041","b93f273e.e701d8"],["e89610fd.77041","e6e0540a.68ca78"],["6022a80d.129b78"]]},{"id":"5d4d2325.6124fc","type":"change","z":"161f9872.1bc6e8","name":"UnknownCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Unknown","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":920,"wires":[["fea6250f.6ee3f8"]]},{"id":"5ba7da32.19ad24","type":"switch","z":"161f9872.1bc6e8","name":"PowerDeviceSelector","property":"payload.name","propertyType":"msg","rules":[{"t":"eq","v":"Light","vt":"str"},{"t":"eq","v":"Computer","vt":"str"},{"t":"eq","v":"Fridge","vt":"str"},{"t":"eq","v":"Freezer","vt":"str"},{"t":"eq","v":"Laundry","vt":"str"},{"t":"eq","v":"Dryer","vt":"str"},{"t":"eq","v":"Dishwasher","vt":"str"},{"t":"eq","v":"Total","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":9,"x":500,"y":840,"wires":[["5b1b606f.0266e","76caa43a.189d1c"],["5b1b606f.0266e","5e6c821b.1aafcc"],["5b1b606f.0266e","6143841c.604efc"],["5b1b606f.0266e","a12235e5.bba038"],["e43bf443.5a0798","94aa46aa.028448"],["e43bf443.5a0798","b353c7e.6f76638"],["e43bf443.5a0798","ac5fd667.d56718"],["e379acd7.5b501","c20b94cb.004ef8"],["5d4d2325.6124fc"]]},{"id":"24408300.280ebe","type":"template","z":"161f9872.1bc6e8","name":"InfluxTemperaturePreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.temperature}},\n \"sv\":{{payload.values.battery}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":1100,"y":660,"wires":[["a3c2b617.b695e8"]]},{"id":"57f6d1fc.266a6","type":"mqtt in","z":"161f9872.1bc6e8","name":"","topic":"IoT/espThermometer2/measurement","qos":"2","broker":"a7163696.6f4318","x":180,"y":720,"wires":[["c61a7524.40f7f8"]]},{"id":"19fe1878.552c28","type":"debug","z":"161f9872.1bc6e8","name":"EspTherm","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":250,"y":900,"wires":[]},{"id":"c61a7524.40f7f8","type":"json","z":"161f9872.1bc6e8","name":"","property":"payload","action":"","pretty":false,"x":270,"y":780,"wires":[["8f0ce40b.a890c8"]]},{"id":"12a37f1c.96b951","type":"change","z":"161f9872.1bc6e8","name":"SetBattery","rules":[{"t":"set","p":"payload.values.battery","pt":"msg","to":"-1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":620,"wires":[["b543dc5c.f78ee"]]},{"id":"8f0ce40b.a890c8","type":"template","z":"161f9872.1bc6e8","name":"EspThermAdjuster","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\n \"name\":\"{{payload.location}}\",\n \"kind\":\"Temperature\",\n \"values\": {\n \"battery\":{{payload.battery}},\n \"temperature\":{{payload.temperature}}\n }\n}","output":"json","x":230,"y":840,"wires":[["19fe1878.552c28","b543dc5c.f78ee"]]},{"id":"6022a80d.129b78","type":"change","z":"161f9872.1bc6e8","name":"UnknownCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"Unknown","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":740,"wires":[["24408300.280ebe"]]},{"id":"e379acd7.5b501","type":"change","z":"161f9872.1bc6e8","name":"TotalPowerCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"TotalPower","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":880,"wires":[["fea6250f.6ee3f8"]]},{"id":"37e8ad2f.f23a62","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":270,"y":280,"wires":[["ff0dcef0.c1cfd"]]},{"id":"ff0dcef0.c1cfd","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Meterbus","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":280,"y":220,"wires":[["7c566964.6012d8"]]},{"id":"52c8f65b.50e438","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":600,"wires":[["a54d311e.3d336"]]},{"id":"a54d311e.3d336","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"ESP_Bedroom","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":600,"wires":[["de5e1488.905cf8"]]},{"id":"7ea720a.3c121e","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":560,"wires":[["d69c9d18.3f2d1"]]},{"id":"d69c9d18.3f2d1","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"ESP_Diningroom","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":560,"wires":[["de5e1488.905cf8"]]},{"id":"4c2cff9d.77dca","type":"catch","z":"161f9872.1bc6e8","name":"","scope":null,"x":200,"y":1700,"wires":[["6ef3c0ff.cf872"]]},{"id":"bdbb7cc1.47758","type":"e-mail","z":"161f9872.1bc6e8","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"Error message","x":620,"y":1700,"wires":[]},{"id":"26e39dac.99f412","type":"inject","z":"15cbc07c.cf074","name":"Daily at noon","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"00 12 * * *","once":false,"onceDelay":0.1,"x":180,"y":160,"wires":[["d0524503.6384a8","7d3d1673.57e388","e1524efe.856ff","5009f71a.1f24d8"]]},{"id":"d0524503.6384a8","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"avg_temp_hedge_last_15min","query":"select mean(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 15m","rawOutput":false,"precision":"","retentionPolicy":"","x":430,"y":100,"wires":[["c4e40448.5247a8"]]},{"id":"7d3d1673.57e388","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"min_temp_hedge_last_24h","query":"select min(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 24h","rawOutput":false,"precision":"","retentionPolicy":"","x":420,"y":180,"wires":[["d7e3c7a6.698798"]]},{"id":"5009f71a.1f24d8","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"max_temp_hedge_last_24h","query":"select max(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 24h","rawOutput":false,"precision":"","retentionPolicy":"","x":420,"y":220,"wires":[["ebebc5f9.8565c8"]]},{"id":"e1524efe.856ff","type":"influxdb in","z":"15cbc07c.cf074","influxdb":"64f763bb.19937c","name":"avg_temp_hedge_last_24h","query":"select mean(pv) from measured where deviceid = 'Hedge' and kind = 'Temperature' and time > now() - 24h","rawOutput":false,"precision":"","retentionPolicy":"","x":420,"y":140,"wires":[["3298c777.4e34f8"]]},{"id":"c4e40448.5247a8","type":"change","z":"15cbc07c.cf074","name":"set topic: avg15min","rules":[{"t":"set","p":"topic","pt":"msg","to":"avg15min","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":100,"wires":[["4ad2acda.2099c4"]]},{"id":"3298c777.4e34f8","type":"change","z":"15cbc07c.cf074","name":"set topic: avg24h","rules":[{"t":"set","p":"topic","pt":"msg","to":"avg24h","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":140,"wires":[["4ad2acda.2099c4"]]},{"id":"d7e3c7a6.698798","type":"change","z":"15cbc07c.cf074","name":"set topic: min24h","rules":[{"t":"set","p":"topic","pt":"msg","to":"min","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":180,"wires":[["4ad2acda.2099c4"]]},{"id":"ebebc5f9.8565c8","type":"change","z":"15cbc07c.cf074","name":"set topic: max24h","rules":[{"t":"set","p":"topic","pt":"msg","to":"max","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":220,"wires":[["4ad2acda.2099c4"]]},{"id":"4ad2acda.2099c4","type":"join","z":"15cbc07c.cf074","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"4","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":890,"y":160,"wires":[["eaefee46.b7e6"]]},{"id":"eaefee46.b7e6","type":"function","z":"15cbc07c.cf074","name":"TextPreparator","func":"let output = \"\"\noutput += `Die aktuelle Temperatur zuhause ist ${msg.payload.avg15min[0].mean.toFixed(1)}°C.\\n`\noutput += `Die Durchschnittstemperatur der letzten 24 Stunden war ${msg.payload.avg24h[0].mean.toFixed(1)}°C, `\noutput += `die Tiefsttemperatur war ${msg.payload.min[0].min.toFixed(1)}°C um ${msg.payload.min[0].time.getHours()}:${msg.payload.min[0].time.getMinutes()} Uhr und `\noutput += `die Höchsttemperatur war ${msg.payload.max[0].max.toFixed(1)}°C um ${msg.payload.max[0].time.getHours()}:${msg.payload.max[0].time.getMinutes()} Uhr.\\n`\noutput += \"Powered by @NodeRED and @InfluxDB.\"\nmsg.payload = output\nreturn msg;\n","outputs":1,"noerr":0,"x":1060,"y":160,"wires":[["57a41df1.8e7bb4"]]},{"id":"b93f273e.e701d8","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":520,"wires":[["180233c3.f4c66c"]]},{"id":"180233c3.f4c66c","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"ESP_Kitchen","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":520,"wires":[["de5e1488.905cf8"]]},{"id":"5bd72a60.ee53f4","type":"change","z":"161f9872.1bc6e8","name":"TotalWaterCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"TotalWater","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":1000,"wires":[["1dae2289.1313ed","1e5524e0.e44d7b"]]},{"id":"1dae2289.1313ed","type":"template","z":"161f9872.1bc6e8","name":"InfluxWaterPreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.volume}},\n \"sv\":{{payload.values.flow}},\n \"tv\":{{payload.values.temperature}},\n \"qv\":{{payload.values.optime}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":800,"y":1000,"wires":[["edba769.7203188"]]},{"id":"76caa43a.189d1c","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1180,"wires":[["2410886d.e5da78"]]},{"id":"2410886d.e5da78","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Light","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1180,"wires":[["b080376b.1e2678"]]},{"id":"5304ceae.33839","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Computer","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1220,"wires":[["b080376b.1e2678"]]},{"id":"a052256f.7fb248","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Fridge","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1260,"wires":[["b080376b.1e2678"]]},{"id":"4fba8aaa.f553e4","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Freezer","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1300,"wires":[["b080376b.1e2678"]]},{"id":"21a16e3e.263ee2","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Laundry","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1340,"wires":[["b080376b.1e2678"]]},{"id":"dd9206d.5108df8","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Dryer","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1380,"wires":[["b080376b.1e2678"]]},{"id":"ca316958.80bec8","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Dishwasher","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1420,"wires":[["b080376b.1e2678"]]},{"id":"15a5a2fe.1555fd","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Power_Total","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1460,"wires":[["b080376b.1e2678"]]},{"id":"b02e6e45.47185","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Water_Total","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1500,"wires":[["b080376b.1e2678"]]},{"id":"5e6c821b.1aafcc","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1220,"wires":[["5304ceae.33839"]]},{"id":"6143841c.604efc","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1260,"wires":[["a052256f.7fb248"]]},{"id":"a12235e5.bba038","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1300,"wires":[["4fba8aaa.f553e4"]]},{"id":"94aa46aa.028448","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1340,"wires":[["21a16e3e.263ee2"]]},{"id":"b353c7e.6f76638","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1380,"wires":[["dd9206d.5108df8"]]},{"id":"ac5fd667.d56718","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1420,"wires":[["ca316958.80bec8"]]},{"id":"c20b94cb.004ef8","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1460,"wires":[["15a5a2fe.1555fd"]]},{"id":"1e5524e0.e44d7b","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1500,"wires":[["b02e6e45.47185"]]},{"id":"e6e0540a.68ca78","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":770,"y":480,"wires":[["ee19751d.1403c8"]]},{"id":"ee19751d.1403c8","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"ESP_Attic","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":480,"wires":[["de5e1488.905cf8"]]},{"id":"7b69f4df.bf551c","type":"change","z":"161f9872.1bc6e8","name":"TotalGasCategorizer","rules":[{"t":"set","p":"payload.category","pt":"msg","to":"TotalGas","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":1040,"wires":[["23113cc1.aedf34","d69d250e.2069f8"]]},{"id":"23113cc1.aedf34","type":"template","z":"161f9872.1bc6e8","name":"InfluxGasPreparator","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"[\n { \n \"pv\":{{payload.values.v1}},\n \"sv\":{{payload.values.v2}},\n \"tv\":{{payload.values.v3}}\n },\n {\n \"deviceid\":\"{{payload.name}}\",\n \"kind\":\"{{payload.kind}}\",\n \"category\":\"{{payload.category}}\"\n }\n]","output":"json","x":800,"y":1040,"wires":[["c9f761e.47c18a"]]},{"id":"d69d250e.2069f8","type":"trigger","z":"161f9872.1bc6e8","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":750,"y":1540,"wires":[["627b1339.7f79ac"]]},{"id":"627b1339.7f79ac","type":"change","z":"161f9872.1bc6e8","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Gas_Total","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":1540,"wires":[["b080376b.1e2678"]]},{"id":"57a41df1.8e7bb4","type":"twitter out","z":"15cbc07c.cf074","twitter":"9ade7197.41fd7","name":"Tweet","x":1250,"y":160,"wires":[]},{"id":"c3a2e3e9.17cf5","type":"telegram sender","z":"f7f94748.f88348","name":"hottis_bot","bot":"949da0ae.eef54","x":680,"y":420,"wires":[["10d261e9.381fae"]]},{"id":"12eb3d0f.69a043","type":"telegram receiver","z":"f7f94748.f88348","name":"Receiver","bot":"949da0ae.eef54","saveDataDir":"","x":120,"y":260,"wires":[["31d9cb49.1b5c54","5d8c8fab.ad857"],["6febab95.98e214"]]},{"id":"6febab95.98e214","type":"debug","z":"f7f94748.f88348","name":"UnauthorizedAccess","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","x":180,"y":340,"wires":[]},{"id":"10d261e9.381fae","type":"debug","z":"f7f94748.f88348","name":"TelegramOutput","active":true,"tosidebar":true,"console":true,"tostatus":false,"complete":"payload","targetType":"msg","x":710,"y":360,"wires":[]},{"id":"e3217c9a.a357b","type":"debug","z":"161f9872.1bc6e8","name":"ErrorMessage","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":620,"y":1760,"wires":[]},{"id":"6ef3c0ff.cf872","type":"function","z":"161f9872.1bc6e8","name":"ErrorMessage","func":"// let res = JSON.stringify(msg)\n// msg.payload = res\nreturn msg","outputs":1,"noerr":0,"x":400,"y":1700,"wires":[["bdbb7cc1.47758","e3217c9a.a357b","59301994.0b70e8"]]},{"id":"31d9cb49.1b5c54","type":"function","z":"f7f94748.f88348","name":"TelegramInboundController","func":"if (msg.payload.content.startsWith(\"/\")) {\n msg.tokens = msg.payload.content.split(\" \")\n msg.cmd = msg.tokens.shift().substr(1)\n return [null, msg]\n} else {\n msg.payload.content = \"Start commands with a /, maybe you want to try /help.\"\n return [msg, null]\n}\n\n","outputs":2,"noerr":0,"x":180,"y":420,"wires":[["c3a2e3e9.17cf5"],["192e92a8.2075bd"]]},{"id":"7c566964.6012d8","type":"link out","z":"161f9872.1bc6e8","name":"alarmMeterbus","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":415,"y":220,"wires":[]},{"id":"de5e1488.905cf8","type":"link out","z":"161f9872.1bc6e8","name":"alarmESP","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":1175,"y":500,"wires":[]},{"id":"b080376b.1e2678","type":"link out","z":"161f9872.1bc6e8","name":"alarmX","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":1155,"y":1300,"wires":[]},{"id":"59301994.0b70e8","type":"delay","z":"161f9872.1bc6e8","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":610,"y":1640,"wires":[["3efe4607.e0a6ea"]]},{"id":"3efe4607.e0a6ea","type":"link out","z":"161f9872.1bc6e8","name":"errors","links":["d147891c.b43828","26719762.125ec8"],"x":840,"y":1640,"wires":[]},{"id":"8b8eddd8.8145b","type":"function","z":"f7f94748.f88348","name":"ClearChatDict","func":"const CHAT_DICT_KEY = 'chatKey'\nflow.set(CHAT_DICT_KEY, {})\nnode.warn(\"chatDict cleared\")\nreturn msg;","outputs":1,"noerr":0,"x":400,"y":40,"wires":[[]]},{"id":"8aa25d79.c189c","type":"inject","z":"f7f94748.f88348","name":"Trigger","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":40,"wires":[["8b8eddd8.8145b"]]},{"id":"192e92a8.2075bd","type":"switch","z":"f7f94748.f88348","name":"","property":"cmd","propertyType":"msg","rules":[{"t":"eq","v":"start","vt":"str"},{"t":"eq","v":"stop","vt":"str"},{"t":"eq","v":"help","vt":"str"},{"t":"eq","v":"register","vt":"str"},{"t":"eq","v":"clear","vt":"str"},{"t":"eq","v":"list","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":7,"x":170,"y":520,"wires":[["a283b2cd.cbdf3"],["272e70d9.b49de"],["8aa39a51.1480d8"],["94c6d2ef.aa1e2"],["791bf1ba.0ee4b"],["4e11b20a.53142c"],["82f07dd3.9f2f7"]],"inputLabels":["In"],"outputLabels":["Start","Stop","Help","Register","",null,"Default"]},{"id":"82f07dd3.9f2f7","type":"template","z":"f7f94748.f88348","name":"UnknownCmd","field":"payload.content","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Sorry, the command \"{{cmd}}\" is unknown here.","output":"str","x":420,"y":760,"wires":[["c3a2e3e9.17cf5"]]},{"id":"a283b2cd.cbdf3","type":"function","z":"f7f94748.f88348","name":"StartCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n msg.payload.content = \"You are already known here\"\n} else {\n chatDict[msg.payload.chatId.toString()] = {\n \"errors\": false,\n \"alarms\": false,\n \"geofency\": false,\n \"locative\": false,\n \"time\": false\n }\n msg.payload.content = \"Now you are known here\"\n flow.set(CHAT_DICT_KEY, chatDict)\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":500,"wires":[["c3a2e3e9.17cf5"]]},{"id":"272e70d9.b49de","type":"function","z":"f7f94748.f88348","name":"StopCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n delete chatDict[msg.payload.chatId.toString()]\n msg.payload.content = \"You are known here, but now I forgot you\"\n flow.set(CHAT_DICT_KEY, chatDict)\n} else {\n msg.payload.content = \"You are unknown here\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":540,"wires":[["c3a2e3e9.17cf5"]]},{"id":"8aa39a51.1480d8","type":"template","z":"f7f94748.f88348","name":"HelpCmd","field":"payload.content","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Help for the HottisBot.\n\n/start\n Start your conversation with the bot. ChatId will be stored.\n \n/stop\n End your conversation, chatId will be forgotten.\n\n/help\n This help.\n\n/register token\n Register for information to be send for the particular token.\n\n/clear\n Clear all registrations\n \n/list \n List your registrations\n ","output":"str","x":400,"y":580,"wires":[["c3a2e3e9.17cf5"]]},{"id":"94c6d2ef.aa1e2","type":"function","z":"f7f94748.f88348","name":"RegisterCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n if (msg.tokens[0] == \"help\") {\n let tmpMsg = \"Possible options are \"\n for (let o in chatDict[msg.payload.chatId]) {\n tmpMsg += o + \" \"\n }\n msg.payload.content = tmpMsg\n } else {\n if (msg.tokens[0] in chatDict[msg.payload.chatId]) {\n chatDict[msg.payload.chatId][msg.tokens[0]] = true\n msg.payload.content = `You have been registered for the option ${msg.tokens[0]}`\n flow.set(CHAT_DICT_KEY, chatDict)\n } else {\n msg.payload.content = \"Unknown option\"\n }\n }\n} else {\n msg.payload.content = \"You are unknown here, start with /start\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":410,"y":620,"wires":[["c3a2e3e9.17cf5"]]},{"id":"c4aed737.6b87d8","type":"function","z":"f7f94748.f88348","name":"PrintChatDict","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\nnode.warn(JSON.stringify(chatDict))\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":100,"wires":[[]]},{"id":"e3ab7e28.09718","type":"inject","z":"f7f94748.f88348","name":"Trigger","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":100,"wires":[["c4aed737.6b87d8"]]},{"id":"791bf1ba.0ee4b","type":"function","z":"f7f94748.f88348","name":"ClearCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n for (let o in chatDict[msg.payload.chatId]) {\n chatDict[msg.payload.chatId][o] = false\n }\n msg.payload.content = \"All your registrations have been cleared\"\n flow.set(CHAT_DICT_KEY, chatDict)\n} else {\n msg.payload.content = \"You are unknown here, start with /start\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":660,"wires":[["c3a2e3e9.17cf5"]]},{"id":"4e11b20a.53142c","type":"function","z":"f7f94748.f88348","name":"ListCmd","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\n//node.warn(JSON.stringify(chatDict))\nlet msgs = []\nif (msg.payload.chatId in chatDict) {\n let tmpMsg = \"You are registered for\\n\"\n for (let o in chatDict[msg.payload.chatId]) {\n tmpMsg += o + \": \" + chatDict[msg.payload.chatId][o] + \"\\n\"\n }\n msg.payload.content = tmpMsg\n} else {\n msg.payload.content = \"You are unknown here, start with /start\"\n}\nreturn msg\n","outputs":1,"noerr":0,"x":400,"y":700,"wires":[["c3a2e3e9.17cf5"]]},{"id":"e9de7ec7.cbf71","type":"function","z":"f7f94748.f88348","name":"TelegramMessagePreparator","func":"const CHAT_DICT_KEY = 'chatKey'\nlet chatDict = flow.get(CHAT_DICT_KEY) || {}\nlet msgs = []\nfor (let chatId in chatDict) {\n node.warn(\"Id: \" + chatId + \", option: \" + msg.option)\n if ((msg.option in chatDict[chatId]) && (chatDict[chatId][msg.option])) {\n node.warn(\"Mark 1\")\n let m = { \"payload\": {\n \"chatId\": chatId,\n \"type\": \"message\",\n \"content\": JSON.stringify(msg, null, 2)\n }\n }\n msgs.push(m)\n }\n}\nnode.warn(JSON.stringify(msgs))\nreturn [msgs];","outputs":1,"noerr":0,"x":460,"y":840,"wires":[["c3a2e3e9.17cf5"]]},{"id":"6aa6322b.0aff5c","type":"mqtt in","z":"f7f94748.f88348","name":"","topic":"IoT/Presence/Geofency","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":140,"y":1060,"wires":[["369d676c.ff2e68"]]},{"id":"4ace0f7a.c48a9","type":"change","z":"f7f94748.f88348","name":"errors","rules":[{"t":"set","p":"option","pt":"msg","to":"errors","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":210,"y":840,"wires":[["e9de7ec7.cbf71"]]},{"id":"d147891c.b43828","type":"link in","z":"f7f94748.f88348","name":"","links":["3efe4607.e0a6ea","cb5cfac1.9c0d88"],"x":115,"y":840,"wires":[["4ace0f7a.c48a9"]]},{"id":"983aafdf.fd28c","type":"change","z":"f7f94748.f88348","name":"time","rules":[{"t":"set","p":"option","pt":"msg","to":"time","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":210,"y":880,"wires":[["e9de7ec7.cbf71"]]},{"id":"efd11e7b.d7a08","type":"inject","z":"f7f94748.f88348","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":940,"wires":[["983aafdf.fd28c"]]},{"id":"a5c806e0.2be3e8","type":"inject","z":"161f9872.1bc6e8","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":200,"y":1640,"wires":[["6ef3c0ff.cf872"]]},{"id":"369d676c.ff2e68","type":"change","z":"f7f94748.f88348","name":"geofency","rules":[{"t":"set","p":"option","pt":"msg","to":"geofency","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":200,"y":1000,"wires":[["e9de7ec7.cbf71"]]},{"id":"96d8fa5c.a13318","type":"mqtt in","z":"f7f94748.f88348","name":"","topic":"IoT/Presence/Locative","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":140,"y":1200,"wires":[["1896fa82.a809f5"]]},{"id":"1896fa82.a809f5","type":"change","z":"f7f94748.f88348","name":"locative","rules":[{"t":"set","p":"option","pt":"msg","to":"locative","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":200,"y":1140,"wires":[["e9de7ec7.cbf71"]]},{"id":"2d7d82a6.d7759e","type":"change","z":"f7f94748.f88348","name":"alarms","rules":[{"t":"set","p":"option","pt":"msg","to":"alarms","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":210,"y":1260,"wires":[["e9de7ec7.cbf71"]]},{"id":"994c7bcc.36e3a8","type":"link in","z":"f7f94748.f88348","name":"","links":["7c566964.6012d8","9786e66c.08f3e8","b080376b.1e2678","de5e1488.905cf8","e44a2b47.10b378","7990f40d.cfc6dc","9be3b04e.3e7b8","619de5cc.60b4fc","80f1ac34.2df46","4a85527.ad86bac","9c093ca3.0e02"],"x":115,"y":1260,"wires":[["2d7d82a6.d7759e"]]},{"id":"5d8c8fab.ad857","type":"debug","z":"f7f94748.f88348","name":"ReceivedMsg","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":450,"y":240,"wires":[]},{"id":"e51249cb.ca80a8","type":"pushover","z":"5f3b2200.77571","name":"","device":"","title":"HomeControlAlarm","priority":0,"sound":"pushover","url":"","url_title":"","html":true,"x":890,"y":260,"wires":[]},{"id":"259061c9.8caf6e","type":"inject","z":"5f3b2200.77571","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":360,"y":260,"wires":[["e51249cb.ca80a8"]]},{"id":"26719762.125ec8","type":"link in","z":"5f3b2200.77571","name":"Push Error","links":["3efe4607.e0a6ea","cb5cfac1.9c0d88"],"x":335,"y":360,"wires":[["7bec6469.a3c17c"]]},{"id":"7bec6469.a3c17c","type":"change","z":"5f3b2200.77571","name":"Topic NodeRed Exception","rules":[{"t":"set","p":"topic","pt":"msg","to":"Node-RED Exception","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":360,"wires":[["e51249cb.ca80a8"]]},{"id":"a96ab0e9.c738e","type":"link in","z":"5f3b2200.77571","name":"Push Alarm","links":["9786e66c.08f3e8","e44a2b47.10b378","7990f40d.cfc6dc"],"x":335,"y":520,"wires":[["ab610711.56b898"]]},{"id":"ab610711.56b898","type":"change","z":"5f3b2200.77571","name":"Topic Device Alarm","rules":[{"t":"set","p":"topic","pt":"msg","to":"Device Alarm","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":520,"wires":[["e51249cb.ca80a8"]]},{"id":"bf0f1a1a.bd15d8","type":"http in","z":"63d1c956.3ee9c8","name":"Location","url":"/location","method":"post","upload":false,"swaggerDoc":"","x":200,"y":180,"wires":[["dea26ac6.83a288","ba0ccdca.996cf"]]},{"id":"dea26ac6.83a288","type":"template","z":"63d1c956.3ee9c8","name":"Prepare Response","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Ok, location service, thank you very much.","output":"str","x":430,"y":180,"wires":[["731db480.aadd9c"]]},{"id":"731db480.aadd9c","type":"http response","z":"63d1c956.3ee9c8","name":"","statusCode":"200","headers":{},"x":660,"y":180,"wires":[]},{"id":"31957024.76a17","type":"function","z":"63d1c956.3ee9c8","name":"Stringify","func":"let m = JSON.stringify(msg.payload, null, 2)\nmsg.payload = m\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":240,"wires":[["ee40dee3.a2715","fc4be7c8.26bd28"]]},{"id":"16fa8e82.4283a1","type":"change","z":"5f3b2200.77571","name":"Topic Notification","rules":[{"t":"set","p":"topic","pt":"msg","to":"Notification","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":580,"wires":[["e51249cb.ca80a8"]]},{"id":"c931c70.3beb138","type":"link in","z":"5f3b2200.77571","name":"Push Notification","links":["bf534da5.e7ae2"],"x":335,"y":580,"wires":[["16fa8e82.4283a1"]]},{"id":"445f490f.ae7268","type":"debug","z":"63d1c956.3ee9c8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":750,"y":300,"wires":[]},{"id":"ba0ccdca.996cf","type":"function","z":"63d1c956.3ee9c8","name":"Prepare","func":"let content = {\n \"location\": msg.payload.id,\n \"direction\": msg.payload.trigger,\n \"device\": msg.payload.device\n}\nmsg.payload = content\nreturn msg;","outputs":1,"noerr":0,"x":400,"y":300,"wires":[["c528ca13.42f448"]]},{"id":"c528ca13.42f448","type":"function","z":"63d1c956.3ee9c8","name":"SelectPerson","func":"let device = msg.payload.device\nlet persons = {\n \"7DF7374D-83A5-4E56-838B-D3BB26ED4A54\": \"Wolfgang\",\n \"01A2B612-060B-47B0-82FA-A8F41328C6D4\": \"Patty\",\n \"9C4D290A-D0DC-42AB-97F0-9075041512E2\": \"Anna\",\n \"E1693F9B-37DE-449C-BF47-AE0227EDD782\": \"Matthias\"\n}\nlet person = \"Unknown\"\nif (device in persons) {\n person = persons[device]\n} \nmsg.payload.person = person\nreturn msg;","outputs":1,"noerr":0,"x":570,"y":300,"wires":[["445f490f.ae7268","31957024.76a17"]]},{"id":"ee40dee3.a2715","type":"mqtt out","z":"63d1c956.3ee9c8","name":"","topic":"IoT/Presence/Location","qos":"","retain":"","broker":"a7163696.6f4318","x":960,"y":180,"wires":[]},{"id":"46b22e68.24113","type":"function","z":"c2d99cfc.d05b9","name":"EventCounter","func":"let cnt = context.get('EventCounter') || 0\ncnt += 1\ncontext.set('EventCounter', cnt)\nnode.status({fill:\"blue\",shape:\"dot\",text:`${cnt}`})\nreturn msg;","outputs":1,"noerr":0,"x":440,"y":380,"wires":[["8c7fcb5a.cfdf38","4489e91d.4448d8"]]},{"id":"8c7fcb5a.cfdf38","type":"debug","z":"c2d99cfc.d05b9","name":"InfluxReady","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":650,"y":360,"wires":[]},{"id":"4489e91d.4448d8","type":"influxdb out","z":"c2d99cfc.d05b9","influxdb":"64f763bb.19937c","name":"","measurement":"measured","precision":"","retentionPolicy":"","x":730,"y":400,"wires":[]},{"id":"e774ea0a.8c9498","type":"link in","z":"c2d99cfc.d05b9","name":"DatabaseInput","links":["7f786eca.756de","a3c2b617.b695e8","ba567f4a.7189b","edba769.7203188","c9f761e.47c18a","7f24c8d4.78b378","626a4ff4.2659a","e35e483a.8ee6a8","d8654fea.c36b3","b1f5ba29.5080d8","89295b26.bf9a78"],"x":255,"y":380,"wires":[["46b22e68.24113"]]},{"id":"a3c2b617.b695e8","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":1275,"y":660,"wires":[]},{"id":"ba567f4a.7189b","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":1235,"y":720,"wires":[]},{"id":"edba769.7203188","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":975,"y":1000,"wires":[]},{"id":"c9f761e.47c18a","type":"link out","z":"161f9872.1bc6e8","name":"","links":["e774ea0a.8c9498"],"x":975,"y":1040,"wires":[]},{"id":"c7382408.0842f8","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Modbus2_Laundry_Temperature","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":120,"wires":[["9be3b04e.3e7b8"]]},{"id":"2ed0bcf5.3ecd54","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":120,"wires":[["c7382408.0842f8"]]},{"id":"9be3b04e.3e7b8","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":815,"y":120,"wires":[]},{"id":"26894128.4da4fe","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Laundry/Temperature","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":220,"y":180,"wires":[["2ed0bcf5.3ecd54","d2658ade.4be488"]]},{"id":"d2658ade.4be488","type":"template","z":"e4659a9f.3f8658","name":"Modbus2LaundryTemperature","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Laundry\",\n \"kind\":\"Temperature\",\n \"category\":\"Indoor\"\n }\n]","output":"json","x":490,"y":240,"wires":[["e5491c23.66121","d8654fea.c36b3"]]},{"id":"e5491c23.66121","type":"debug","z":"e4659a9f.3f8658","name":"ModbusLaundryTemperature","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":860,"y":280,"wires":[]},{"id":"5c55b2d7.96294c","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Modbus2_Laundry_Humidity","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":420,"wires":[["619de5cc.60b4fc"]]},{"id":"b2e383b0.9f2ea","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":420,"wires":[["5c55b2d7.96294c"]]},{"id":"619de5cc.60b4fc","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":815,"y":420,"wires":[]},{"id":"cc26a43e.e53118","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Laundry/Humidity","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":210,"y":480,"wires":[["b2e383b0.9f2ea","5788c7f5.101908"]]},{"id":"5788c7f5.101908","type":"template","z":"e4659a9f.3f8658","name":"Modbus2LaundryHumidity","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Laundry\",\n \"kind\":\"Humidity\",\n \"category\":\"Indoor\"\n }\n]","output":"json","x":470,"y":540,"wires":[["f04a518b.613c7","626a4ff4.2659a"]]},{"id":"626a4ff4.2659a","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":540,"wires":[]},{"id":"f04a518b.613c7","type":"debug","z":"e4659a9f.3f8658","name":"ModbusLaundryHumidity","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":850,"y":580,"wires":[]},{"id":"10bb547.0703fac","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Modbus2_Freezer_Temperature","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":740,"wires":[["80f1ac34.2df46"]]},{"id":"149e9b31.462285","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":740,"wires":[["10bb547.0703fac"]]},{"id":"80f1ac34.2df46","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":835,"y":740,"wires":[]},{"id":"9f089e17.30bd6","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Freezer","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":180,"y":800,"wires":[["149e9b31.462285","c3a641b8.fb524"]]},{"id":"c3a641b8.fb524","type":"template","z":"e4659a9f.3f8658","name":"Modbus2FreezerTemperature","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Freezer\",\n \"kind\":\"Temperature\",\n \"category\":\"Device\"\n }\n]","output":"json","x":490,"y":860,"wires":[["3dc154c3.a188bc","e35e483a.8ee6a8"]]},{"id":"3dc154c3.a188bc","type":"debug","z":"e4659a9f.3f8658","name":"ModbusFreezerTemperature","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":860,"y":900,"wires":[]},{"id":"e35e483a.8ee6a8","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":860,"wires":[]},{"id":"d8654fea.c36b3","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":240,"wires":[]},{"id":"ac57e5d9.c707e8","type":"catch","z":"e4659a9f.3f8658","name":"","scope":null,"x":100,"y":1080,"wires":[["bf5ed3c7.d7ff7"]]},{"id":"2ff06ca5.070bc4","type":"e-mail","z":"e4659a9f.3f8658","server":"mailer","port":"25","secure":false,"name":"wolfgang.hottgenroth@icloud.com","dname":"Error message","x":520,"y":1080,"wires":[]},{"id":"73653e14.45b7c","type":"debug","z":"e4659a9f.3f8658","name":"ErrorMessage","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":520,"y":1140,"wires":[]},{"id":"bf5ed3c7.d7ff7","type":"function","z":"e4659a9f.3f8658","name":"ErrorMessage","func":"// let res = JSON.stringify(msg)\n// msg.payload = res\nreturn msg","outputs":1,"noerr":0,"x":300,"y":1080,"wires":[["2ff06ca5.070bc4","73653e14.45b7c","14b1c9b1.ffd2d6"]]},{"id":"14b1c9b1.ffd2d6","type":"delay","z":"e4659a9f.3f8658","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":510,"y":1020,"wires":[["cb5cfac1.9c0d88"]]},{"id":"cb5cfac1.9c0d88","type":"link out","z":"e4659a9f.3f8658","name":"errors","links":["d147891c.b43828","26719762.125ec8"],"x":740,"y":1020,"wires":[]},{"id":"218cd9fd.a17db6","type":"inject","z":"e4659a9f.3f8658","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":1020,"wires":[["bf5ed3c7.d7ff7"]]},{"id":"9ad916fd.866ff8","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Modbus2_Basement_Temperature","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":1260,"wires":[["4a85527.ad86bac"]]},{"id":"a5cd481a.aacaa8","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":1260,"wires":[["9ad916fd.866ff8"]]},{"id":"4a85527.ad86bac","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":815,"y":1260,"wires":[]},{"id":"e353f884.8a1618","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Basement/Temperature","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":220,"y":1320,"wires":[["a5cd481a.aacaa8","e10cda0e.0cfbf8"]]},{"id":"e10cda0e.0cfbf8","type":"template","z":"e4659a9f.3f8658","name":"Modbus2BasementTemperature","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Basement\",\n \"kind\":\"Basement\",\n \"category\":\"Indoor\"\n }\n]","output":"json","x":490,"y":1380,"wires":[["171eae2b.6bfcb2","89295b26.bf9a78"]]},{"id":"171eae2b.6bfcb2","type":"debug","z":"e4659a9f.3f8658","name":"ModbusBasementTemperature","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":870,"y":1420,"wires":[]},{"id":"1ba519dc.5288c6","type":"change","z":"e4659a9f.3f8658","name":"","rules":[{"t":"set","p":"deviceName","pt":"msg","to":"Modbus2_Basement_Humidity","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":640,"y":1560,"wires":[["9c093ca3.0e02"]]},{"id":"c6c95c4.545f1a","type":"trigger","z":"e4659a9f.3f8658","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"15","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":430,"y":1560,"wires":[["1ba519dc.5288c6"]]},{"id":"9c093ca3.0e02","type":"link out","z":"e4659a9f.3f8658","name":"alarmModbus","links":["331ae160.3b9ace","994c7bcc.36e3a8"],"x":815,"y":1560,"wires":[]},{"id":"5bab7b98.418a44","type":"mqtt in","z":"e4659a9f.3f8658","name":"","topic":"IoT/Measurement/Modbus2/Basement/Humidity","qos":"2","datatype":"auto","broker":"a7163696.6f4318","x":220,"y":1620,"wires":[["c6c95c4.545f1a","fedfa872.fc3958"]]},{"id":"fedfa872.fc3958","type":"template","z":"e4659a9f.3f8658","name":"Modbus2BasementHumidity","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"[\n { \n \"pv\":{{payload}}\n },\n {\n \"deviceid\":\"Basement\",\n \"kind\":\"Humidity\",\n \"category\":\"Indoor\"\n }\n]","output":"json","x":480,"y":1680,"wires":[["abf88dc9.f977c","b1f5ba29.5080d8"]]},{"id":"b1f5ba29.5080d8","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":1680,"wires":[]},{"id":"abf88dc9.f977c","type":"debug","z":"e4659a9f.3f8658","name":"ModbusBasementHumidity","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":860,"y":1720,"wires":[]},{"id":"89295b26.bf9a78","type":"link out","z":"e4659a9f.3f8658","name":"","links":["e774ea0a.8c9498"],"x":755,"y":1380,"wires":[]},{"id":"fc4be7c8.26bd28","type":"pushover","z":"63d1c956.3ee9c8","name":"","device":"","title":"PresenceNotification","priority":0,"sound":"pushover","url":"","url_title":"","html":true,"x":960,"y":240,"wires":[]},{"id":"f18313c3.4aa548","type":"function","z":"5f3b2200.77571","name":"PrepareMessage","func":"let statusText = (msg.payload == '1' ? 'okay' : 'failed')\nmsg.payload = {\n 'device': msg.deviceName,\n 'status': msg.payload,\n 'statusText': statusText,\n 'message': msg.deviceName + \" \" + statusText\n}\nmsg.topic = 'IoT/SensorStatus/' + msg.deviceName\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":440,"wires":[["2d57cf67.04159","674df4cb.2a1f04"]]},{"id":"331ae160.3b9ace","type":"link in","z":"5f3b2200.77571","name":"Push Alarm Raw","links":["7c566964.6012d8","de5e1488.905cf8","b080376b.1e2678","9be3b04e.3e7b8","619de5cc.60b4fc","80f1ac34.2df46","4a85527.ad86bac","9c093ca3.0e02"],"x":335,"y":440,"wires":[["f18313c3.4aa548"]]},{"id":"ec77aa98.476f3","type":"inject","z":"161f9872.1bc6e8","name":"","topic":"","payload":"0","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":120,"wires":[["ff0dcef0.c1cfd"]]},{"id":"2d57cf67.04159","type":"change","z":"5f3b2200.77571","name":"for Pushover","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.message","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":480,"wires":[["ab610711.56b898"]]},{"id":"674df4cb.2a1f04","type":"mqtt out","z":"5f3b2200.77571","name":"SensorStatus","topic":"","qos":"","retain":"true","broker":"a7163696.6f4318","x":880,"y":440,"wires":[]}] \ No newline at end of file diff --git a/flow_cred.json b/flow_cred.json index 8e07225..e378bc6 100644 --- a/flow_cred.json +++ b/flow_cred.json @@ -1 +1 @@ -{"a7163696.6f4318":{},"64f763bb.19937c":{},"15ac65bb.7d17ea":{},"9ade7197.41fd7":{"consumer_key":"d69PJDaoHG5nTcSOmE95DFdHh","consumer_secret":"Mf7ejpW4WJ6rrF5XSqf0kssuQmDfzjTK4rIn6tNyf0OoHSvJYY","access_token":"548450816-I4Ii986kKA2ZUoAtdP1QKswgVjIiBoe5reeDYKco","access_token_secret":"eFfM6QevUrb2STK9h5CBW1DHZweIfeqLaF3HBKQmySlBH"},"949da0ae.eef54":{"token":"744671147:AAHmqiNVIC-c2KuYDylOobJgt16LxUZhsns"},"bdbb7cc1.47758":{},"e51249cb.ca80a8":{"deviceid":"uf4n8bff9ko82nfpermm81yqanibd4","pushkey":"a7dfvhn3ftpb2b5zueqyizsw2m4nx9"}} \ No newline at end of file +{"a7163696.6f4318":{},"64f763bb.19937c":{},"9ade7197.41fd7":{"consumer_key":"d69PJDaoHG5nTcSOmE95DFdHh","consumer_secret":"Mf7ejpW4WJ6rrF5XSqf0kssuQmDfzjTK4rIn6tNyf0OoHSvJYY","access_token":"548450816-I4Ii986kKA2ZUoAtdP1QKswgVjIiBoe5reeDYKco","access_token_secret":"eFfM6QevUrb2STK9h5CBW1DHZweIfeqLaF3HBKQmySlBH"},"949da0ae.eef54":{"token":"744671147:AAHmqiNVIC-c2KuYDylOobJgt16LxUZhsns"},"bdbb7cc1.47758":{},"e51249cb.ca80a8":{"deviceid":"uf4n8bff9ko82nfpermm81yqanibd4","pushkey":"a7dfvhn3ftpb2b5zueqyizsw2m4nx9"},"fc4be7c8.26bd28":{"deviceid":"uf4n8bff9ko82nfpermm81yqanibd4","pushkey":"amkm8xpxtvjgf2grwiv25zjucuez1x"}} \ No newline at end of file