[{"id":"18a88015.fc78e","type":"tab","label":"Mbus","disabled":false,"info":""},{"id":"6df22243.06b84c","type":"mbus-out","z":"18a88015.fc78e","name":"","client":"cf6e1602.540698","x":490,"y":200,"wires":[["ffa42367.bc6f3"]]},{"id":"ffa42367.bc6f3","type":"debug","z":"18a88015.fc78e","name":"","active":false,"console":false,"complete":"false","x":709,"y":200,"wires":[]},{"id":"d6e19c89.98c7d","type":"mbus-controller","z":"18a88015.fc78e","name":"","client":"cf6e1602.540698","x":530,"y":300,"wires":[["2a3380ba.0db42","a3d8272d.559d88","407dec51.dc7d54","4dc5fcec.c20da4","6eec815f.d07b2","a06975f4.77df98","d302b10e.748","15ff27ad.430248"]]},{"id":"e3451b94.1e1cb8","type":"inject","z":"18a88015.fc78e","name":"scan","repeat":"","crontab":"","once":false,"topic":"scan","payload":"","payloadType":"str","x":150,"y":100,"wires":[["d6e19c89.98c7d"]]},{"id":"a3d8272d.559d88","type":"debug","z":"18a88015.fc78e","name":"","active":false,"console":false,"complete":"false","x":730,"y":340,"wires":[]},{"id":"964765ae.1eab78","type":"inject","z":"18a88015.fc78e","name":"Read ID 1","repeat":"","crontab":"","once":false,"topic":"getDevice","payload":"{\"address\": 1}","payloadType":"json","x":160,"y":180,"wires":[["d6e19c89.98c7d"]]},{"id":"e0ef2daa.fffc5","type":"inject","z":"18a88015.fc78e","name":"Get Devices","repeat":"60","crontab":"","once":true,"onceDelay":"","topic":"getDevices","payload":"","payloadType":"str","x":180,"y":260,"wires":[["d6e19c89.98c7d"]]},{"id":"2a3380ba.0db42","type":"ui_template","z":"18a88015.fc78e","group":"b5ab1cc6.77b5f","name":"mbus-table","order":0,"width":"14","height":"10","format":"<table>\n <tr>\n <th>ID</th>\n <th>Primary ID</th>\n <th>Info</th>\n <th>Data</th>\n <th>Last Update</th>\n <th>Status</th>\n </tr>\n <tr style=\"cursor:pointer;\" ng-click=\"showData(device)\" ng-repeat=\"(id, device) in devices\">\n <td>{{ device.secondaryID }}</td>\n <td>{{ device.primaryID }}</td>\n <td ng-bind-html=\"getInfo(device)\"></td>\n <td>{{ device.DataRecord.length }}</td>\n <td>{{ device.lastUpdate }}</td>\n <td>\n <div class=\"online\" ng-style=\"{background: !device.error ? '#4CAF50' : '#f44336'}\">\n <md-tooltip md-direction=\"bottom\">{{ device.error ? device.error : 'OK' }}</md-tooltip>\n </div>\n </td>\n </tr>\n</table>\n\n<style>\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\nth, td{\n text-align: left;\n padding: 8px;\n background-color: #f2f2f2;\n color: black;\n}\n\nth {\n background-color: #4CAF50;\n color: white;\n}\n\n.online {\n\tbackground:#ff3333;\n\twidth:20px;\n\theight:20px;\n\tmargin:0 auto;\n\t-webkit-border-radius:50%;\n\t-moz-border-radius:50%;\n\tborder-radius:50%;\n}\n</style>\n\n<script>\n\n\n(function(scope) {\n \n scope.send({topic: 'getDevices'});\n scope.devices = [];\n \n scope.showData = function(device){\n scope.send({topic: 'deviceData', payload: device});\n }\n \n scope.getInfo = function(device){\n var text = '';\n var info = device.SlaveInformation;\n \n for(key in info){\n text += `<p><b>${key}</b>: ${info[key]}</p>`;\n }\n \n return text;\n }\n\n scope.$watch('msg', function(data) {\n if(data && data.topic){\n switch(data.topic){\n case \"getDevices\":\n if(data.payload && data.payload.devices)\n scope.devices = data.payload.devices;\n break;\n }\n }\n });\n \n})(scope);\n\n</script>\n","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":730,"y":300,"wires":[["a71eedd2.bde5e"]]},{"id":"14d223bd.09056c","type":"inject","z":"18a88015.fc78e","name":"restart","repeat":"","crontab":"","once":false,"topic":"restart","payload":"","payloadType":"num","x":150,"y":140,"wires":[["d6e19c89.98c7d"]]},{"id":"a71eedd2.bde5e","type":"ui_template","z":"18a88015.fc78e","group":"675ebc3b.cfb8a4","name":"data-table","order":0,"width":"14","height":"10","format":"<p><b>Device ID:</b> {{ID}} </p>\n\n<br>\n<br>\n\n<table>\n <tr>\n <th>ID</th>\n <th>Function</th>\n <th>Unit</th>\n <th>Value</th>\n <th>Timestamp</th>\n </tr>\n <tr ng-repeat=\"(key, data) in deviceData\">\n <td>{{ data.id }}</td>\n <td>{{ data.Function }}</td>\n <td>{{ data.Unit }}</td>\n <td>{{ data.Value }}</td>\n <td>{{ data.Timestamp }}</td>\n </tr>\n</table>\n\n<style>\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\nth, td{\n text-align: left;\n padding: 8px;\n background-color: #f2f2f2;\n color: black;\n}\n\nth {\n background-color: #4CAF50;\n color: white;\n}\n\n.online {\n\tbackground:#ff3333;\n\twidth:20px;\n\theight:20px;\n\tmargin:0 auto;\n\t-webkit-border-radius:50%;\n\t-moz-border-radius:50%;\n\tborder-radius:50%;\n}\n</style>\n\n<script>\n\n\n(function(scope) {\n \n scope.deviceData = [];\n scope.ID = '';\n\n scope.$watch('msg', function(data) {\n if(data && data.topic){\n switch(data.topic){\n case \"deviceData\":\n if(data.payload){\n scope.deviceData = data.payload.DataRecord;\n scope.ID = data.payload.SlaveInformation.Id;\n }\n break;\n }\n }\n });\n \n})(scope);\n\n</script>\n","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":900,"y":300,"wires":[[]]},{"id":"e546fe57.1017","type":"inject","z":"18a88015.fc78e","name":"Read ID 2","repeat":"","crontab":"","once":false,"topic":"getDevice","payload":"{\"address\": 2}","payloadType":"json","x":160,"y":220,"wires":[["d6e19c89.98c7d"]]},{"id":"60cae445.c4e2bc","type":"ui_button","z":"18a88015.fc78e","name":"Scan","group":"841a82ae.5a7be","order":3,"width":"2","height":"1","passthru":false,"label":"Scan","color":"","bgcolor":"","icon":"location_searching","payload":"","payloadType":"str","topic":"scan","x":130,"y":340,"wires":[["d6e19c89.98c7d"]]},{"id":"f5dd8ee0.adcec","type":"ui_button","z":"18a88015.fc78e","name":"Restart","group":"841a82ae.5a7be","order":4,"width":"3","height":"1","passthru":false,"label":"Restart","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"restart","x":140,"y":380,"wires":[["d6e19c89.98c7d"]]},{"id":"624895ef.5d235c","type":"ui_button","z":"18a88015.fc78e","name":"GetDevices","group":"841a82ae.5a7be","order":5,"width":"3","height":"1","passthru":false,"label":"Update Devices","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"getDevices","x":150,"y":420,"wires":[["d6e19c89.98c7d"]]},{"id":"cbe596b9.15a728","type":"ui_button","z":"18a88015.fc78e","name":"readAddress","group":"841a82ae.5a7be","order":2,"width":"3","height":"1","passthru":false,"label":"Read Device","color":"","bgcolor":"","icon":"","payload":"deviceID","payloadType":"flow","topic":"getDevice","x":151,"y":457,"wires":[["80803e0d.74f2e"]]},{"id":"9622ba7f.89b8d8","type":"ui_text_input","z":"18a88015.fc78e","name":"Device_ID","label":"ID: ","group":"841a82ae.5a7be","order":1,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":149,"y":618,"wires":[["10d87e9b.2e20b1"]]},{"id":"10d87e9b.2e20b1","type":"function","z":"18a88015.fc78e","name":"storeID","func":"\nflow.set('deviceID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":325,"y":618,"wires":[]},{"id":"80803e0d.74f2e","type":"function","z":"18a88015.fc78e","name":"readAddr","func":"var data = {address: msg.payload}\n\nmsg.payload = data;\n\nreturn msg;","outputs":1,"noerr":0,"x":309,"y":457,"wires":[["d6e19c89.98c7d"]]},{"id":"e5adecec.061af","type":"status","z":"18a88015.fc78e","name":"controller_status","scope":["d6e19c89.98c7d"],"x":420,"y":60,"wires":[["c8a9ec85.ae84e"]]},{"id":"6fbfd215.b4a4dc","type":"status","z":"18a88015.fc78e","name":"mbus_status","scope":["6df22243.06b84c"],"x":413,"y":105,"wires":[["4877ffdf.7aade"]]},{"id":"c8a9ec85.ae84e","type":"ui_text","z":"18a88015.fc78e","group":"bbf75ab1.aa33e8","order":0,"width":0,"height":0,"name":"controller_status","label":"Controller","format":"{{msg.status.text}}","layout":"row-spread","x":632,"y":60,"wires":[]},{"id":"4877ffdf.7aade","type":"ui_text","z":"18a88015.fc78e","group":"bbf75ab1.aa33e8","order":0,"width":0,"height":0,"name":"mbus_status","label":"M-Bus","format":"{{msg.status.text}}","layout":"row-spread","x":622,"y":105,"wires":[]},{"id":"f10da0e3.b6d9e","type":"inject","z":"18a88015.fc78e","name":"setPrimary","repeat":"","crontab":"","once":false,"topic":"setPrimary","payload":"{\"newAddr\":3,\"oldAddr\":2}","payloadType":"json","x":160,"y":60,"wires":[["d6e19c89.98c7d"]]},{"id":"74c8799b.f02bc8","type":"ui_text_input","z":"18a88015.fc78e","name":"Old_ID","label":"Old ID","group":"841a82ae.5a7be","order":6,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":140,"y":660,"wires":[["c946fc99.3d873"]]},{"id":"c946fc99.3d873","type":"function","z":"18a88015.fc78e","name":"storeID","func":"\nflow.set('oldID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":323,"y":658,"wires":[]},{"id":"f8c2248a.a13cc8","type":"ui_text_input","z":"18a88015.fc78e","name":"New_ID","label":"New ID","group":"841a82ae.5a7be","order":7,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":140,"y":700,"wires":[["c6cda7ee.cc0058"]]},{"id":"c6cda7ee.cc0058","type":"function","z":"18a88015.fc78e","name":"storeID","func":"\nflow.set('newID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":321,"y":698,"wires":[]},{"id":"195ee44f.89914c","type":"ui_button","z":"18a88015.fc78e","name":"SetPrimary","group":"841a82ae.5a7be","order":8,"width":"3","height":"1","passthru":false,"label":"Set Primary ID","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"setPrimary","x":150,"y":498,"wires":[["dc733407.e3bd98"]]},{"id":"dc733407.e3bd98","type":"function","z":"18a88015.fc78e","name":"setPrimary","func":"var data = {\n oldAddr: flow.get('oldID'), \n newAddr:flow.get('newID')\n }\n\nmsg.payload = data;\n\nreturn msg;","outputs":1,"noerr":0,"x":319,"y":498,"wires":[["d6e19c89.98c7d"]]},{"id":"df9f8e35.84da2","type":"inject","z":"18a88015.fc78e","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"30","crontab":"","once":false,"onceDelay":"","topic":"getDevice","payload":"counter","payloadType":"flow","x":169,"y":558,"wires":[["2006d248.b4cc8e"]]},{"id":"2006d248.b4cc8e","type":"function","z":"18a88015.fc78e","name":"scanPrimary","func":"\nif(msg.payload == null) msg.payload = 1;\n\nif(msg.payload >= 76) msg.payload = 1;\n\nmsg.payload++;\n\nflow.set(\"counter\",msg.payload);\n\nmsg.payload = {address: msg.payload};\n\nreturn msg;","outputs":1,"noerr":0,"x":349,"y":558,"wires":[[]]},{"id":"70684120.725d1","type":"inject","z":"18a88015.fc78e","name":"setDevices","repeat":"","crontab":"","once":false,"topic":"setDevices","payload":"","payloadType":"date","x":159,"y":298,"wires":[["189be492.d223db"]]},{"id":"189be492.d223db","type":"function","z":"18a88015.fc78e","name":"devices","func":"var devices = [\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\",\"13\",\"14\",\"15\",\"16\",\"17\",\"18\",\"19\",\"20\",\"21\",\"22\",\"23\",\"24\",\"25\",\"26\",\"27\",\"28\",\"29\",\"30\",\"31\",\"32\",\"33\",\"34\",\"35\",\"36\",\"37\",\"38\",\"39\",\"40\",\"41\",\"42\",\"43\",\"44\",\"45\",\"46\",\"47\",\"48\",\"49\",\"50\",\"51\",\"52\",\"53\",\"54\",\"55\",\"56\",\"57\",\"58\",\"59\",\"60\",\"61\",\"62\",\"63\",\"64\",\"65\",\"66\",\"67\",\"68\",\"69\",\"70\",\"71\",\"72\",\"73\",\"74\",\"75\",\"76\"];\n\nmsg.payload = devices;\n\nreturn msg;","outputs":1,"noerr":0,"x":297,"y":298,"wires":[["d6e19c89.98c7d"]]},{"id":"407dec51.dc7d54","type":"function","z":"18a88015.fc78e","name":"Extract + Format Kamstrup 302","func":"let TotalHeatEnergy = msg.payload.devices[\"67525649\"].DataRecord[1].Value; \nlet TotalCoolEnergy = msg.payload.devices[\"67525649\"].DataRecord[2].Value;\nlet FlowTemperature = msg.payload.devices[\"67525649\"].DataRecord[8].Value /100;\nlet ReturnTemperature = msg.payload.devices[\"67525649\"].DataRecord[9].Value /100;\nlet DiffTemperature = msg.payload.devices[\"67525649\"].DataRecord[10].Value /100;\nvar PowerInstValue = Math.round((msg.payload.devices[\"67525649\"].DataRecord[11].Value *100)*1)/1;\nlet FlowInstValue = msg.payload.devices[\"67525649\"].DataRecord[13].Value;\nvar FlowValuelm = Number((FlowInstValue/60).toFixed(2));\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"HeatEnergy\",\n\t\tfields: {\n\t\t\ttotalheatenergy: TotalHeatEnergy,\t\t\t\n\t\t\ttotalcoolenergy: TotalCoolEnergy,\t\n\t\t\tflowtemperature: FlowTemperature,\t\n\t\t returntemperature: ReturnTemperature,\t\n\t\t difftemperature: DiffTemperature,\n\t\t power: PowerInstValue,\n\t\t\tflow: FlowInstValue,\n flowlm: FlowValuelm, \n\n\t\t},\n\t\ttags:{\n\t\t device: \"Kamstrup\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":610,"y":420,"wires":[["76d3228f.0d1fac","3b81b908.fdd3b6"]]},{"id":"92575395.d0971","type":"debug","z":"18a88015.fc78e","name":"","active":false,"console":false,"complete":"false","x":1130,"y":460,"wires":[]},{"id":"76d3228f.0d1fac","type":"join","z":"18a88015.fc78e","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"8","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":850,"y":420,"wires":[["92575395.d0971","b3f673f6.ef65a"]]},{"id":"b3f673f6.ef65a","type":"influxdb batch","z":"18a88015.fc78e","influxdb":"a0b0c36c.f222b","precision":"","retentionPolicy":"","name":"","x":1160,"y":420,"wires":[]},{"id":"4a5fcda.16e4e34","type":"comment","z":"18a88015.fc78e","name":"Change the device ID number","info":"","x":600,"y":380,"wires":[]},{"id":"b8349f9.ce79b6","type":"comment","z":"18a88015.fc78e","name":"Change to your own influxdb server","info":"","x":1160,"y":380,"wires":[]},{"id":"a990c502.c303f8","type":"comment","z":"18a88015.fc78e","name":"Change the adapter's serial port","info":"","x":570,"y":160,"wires":[]},{"id":"b8812309.9ea07","type":"comment","z":"18a88015.fc78e","name":"Change the adapter's serial port","info":"","x":570,"y":260,"wires":[]},{"id":"4dc5fcec.c20da4","type":"function","z":"18a88015.fc78e","name":"Extract + Format Kamstrup 302","func":"var TotalHeatEnergy = msg.payload.devices[\"67525649\"].DataRecord[1].Value; \nvar TotalCoolEnergy = msg.payload.devices[\"67525649\"].DataRecord[2].Value;\nvar FlowTemperature = msg.payload.devices[\"67525649\"].DataRecord[8].Value /100;\nvar ReturnTemperature = msg.payload.devices[\"67525649\"].DataRecord[9].Value /100;\nvar DiffTemperature = msg.payload.devices[\"67525649\"].DataRecord[10].Value /100;\nvar PowerInstValue = Math.round((msg.payload.devices[\"67525649\"].DataRecord[11].Value *100)*1)/1;\nvar FlowInstValue = msg.payload.devices[\"67525649\"].DataRecord[13].Value;\n\nvar msg1 = {payload:{\"idx\": 15, \"nvalue\": 0, \"svalue\": String(TotalHeatEnergy)}};\nvar msg2 = {payload:{\"idx\": 16, \"nvalue\": 0, \"svalue\": String(TotalCoolEnergy)}};\nvar msg3 = {payload:{\"idx\": 12, \"nvalue\": 0, \"svalue\": String(FlowTemperature)}};\nvar msg4 = {payload:{\"idx\": 13, \"nvalue\": 0, \"svalue\": String(ReturnTemperature)}};\nvar msg5 = {payload:{\"idx\": 14, \"nvalue\": 0, \"svalue\": String(DiffTemperature)}};\nvar msg6 = {payload:{\"idx\": 533, \"nvalue\": 0, \"svalue\": String(PowerInstValue)}};\n//var msg6 = msg.url = \"192.168.2.10:8084/json.htm?type=command¶m=udevice&idx=40&nvalue=0&svalue=\"+String(PowerInstValue) +\";\" + String(TotalHeatEnergy);\nvar msg7 = {payload:{\"idx\": 17, \"nvalue\": 0, \"svalue\": String(FlowInstValue)}};\n\nreturn [ msg1, msg2, msg3, msg4, msg5, msg6, msg7 ];\n\n//Math.round((msg.payload.devices[\"21\"].DataRecord[17].Value /10)*1)/1;","outputs":7,"noerr":0,"x":610,"y":580,"wires":[["b38f12b7.1be85","6eb2429c.c4bc8c"],["b38f12b7.1be85","6eb2429c.c4bc8c"],["b38f12b7.1be85","6eb2429c.c4bc8c"],["b38f12b7.1be85","6eb2429c.c4bc8c"],["b38f12b7.1be85","6eb2429c.c4bc8c"],["b38f12b7.1be85","6eb2429c.c4bc8c"],["b38f12b7.1be85","6eb2429c.c4bc8c"]]},{"id":"6eb2429c.c4bc8c","type":"mqtt out","z":"18a88015.fc78e","name":"","topic":"domoticz/in","qos":"","retain":"","broker":"f935c11c.41462","x":950,"y":560,"wires":[]},{"id":"b38f12b7.1be85","type":"debug","z":"18a88015.fc78e","name":"","active":false,"console":false,"complete":"false","x":950,"y":620,"wires":[]},{"id":"b5b82e08.ebcfc","type":"comment","z":"18a88015.fc78e","name":"Change the device ID number","info":"","x":600,"y":500,"wires":[]},{"id":"6eec815f.d07b2","type":"function","z":"18a88015.fc78e","name":"Extract + Format Finder","func":"//var VoltL1 = msg.payload.devices[\"21\"].DataRecord[4].Value /1000;\n//var VoltL2 = msg.payload.devices[\"21\"].DataRecord[5].Value /1000;\n//var VoltL3 = msg.payload.devices[\"21\"].DataRecord[6].Value /1000;\n//var VoltLN = msg.payload.devices[\"21\"].DataRecord[7].Value /1000;\n//var PowerL1 = msg.payload.devices[\"21\"].DataRecord[0].Value /1000;\n//var PowerL2 = msg.payload.devices[\"21\"].DataRecord[1].Value /1000;\n//var PowerL3 = msg.payload.devices[\"21\"].DataRecord[2].Value /1000;\nvar Powertot = Math.round(((msg.payload.devices[\"21\"].DataRecord[3].Value /1000))*1)/1;\n//var EnergyL1 = msg.payload.devices[\"21\"].DataRecord[14].Value /1000;\n//var EnergyL2 = msg.payload.devices[\"21\"].DataRecord[15].Value /1000;\n//var EnergyL3 = msg.payload.devices[\"21\"].DataRecord[16].Value /1000;\nvar Energytot = Math.round((msg.payload.devices[\"21\"].DataRecord[17].Value /1000)*1)/1;\n\nvar _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"Finder_Mitsu\",\n\t\tfields: {\n//\t\t\tvoltl1: VoltL1,\t\t\t\n//\t\t\tvoltl2: VoltL2,\t\t\t\n//\t\t\tvoltl3: VoltL3,\t\t\t\n//\t\t\tvoltln: VoltLN,\t\t\t\n//\t\t\tpowerl1: PowerL1,\t\n//\t\t\tpowerl2: PowerL2,\t\n//\t\t\tpowerl3: PowerL3,\t\n \t\tpowertot: Powertot,\t\n//\t\t energyl1: EnergyL1,\t\n//\t\t energyl2: EnergyL2,\t\n//\t\t energyl3: EnergyL3,\t\n\t\t energytot: Energytot,\t\n\t\t},\n\t\ttags:{\n\t\t device: \"finder_mitsu\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":590,"y":720,"wires":[["ffa6eb6b.e70788"]]},{"id":"24b9182a.18ec08","type":"debug","z":"18a88015.fc78e","name":"","active":false,"console":false,"complete":"false","x":1150,"y":720,"wires":[]},{"id":"ffa6eb6b.e70788","type":"join","z":"18a88015.fc78e","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"8","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":850,"y":720,"wires":[["24b9182a.18ec08"]]},{"id":"9f5d7a88.e66b78","type":"influxdb batch","z":"18a88015.fc78e","influxdb":"a0b0c36c.f222b","precision":"","retentionPolicy":"","name":"","x":1180,"y":680,"wires":[]},{"id":"a06975f4.77df98","type":"json","z":"18a88015.fc78e","name":"","property":"payload","action":"obj","pretty":false,"x":530,"y":780,"wires":[["60e8be21.9ab4d","b84d5541.f4fb98"]]},{"id":"d0fc3d61.6531c","type":"debug","z":"18a88015.fc78e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":990,"y":800,"wires":[]},{"id":"60e8be21.9ab4d","type":"function","z":"18a88015.fc78e","name":"Extract + Format Finder","func":"\nnode.log (\"Power and Energy to Domoticz HTTP\");\nvar power = JSON.parse(msg.payload.devices[\"21\"].DataRecord[3].Value)/1000;\nvar energy = JSON.parse(msg.payload.devices[\"21\"].DataRecord[17].Value)/10;\nmsg.url = \"127.0.0.1:8084/json.htm?type=command¶m=udevice&idx=529&nvalue=0&svalue=\"+power +\";\"+energy ;\n\nreturn msg;","outputs":1,"noerr":0,"x":730,"y":780,"wires":[["d0fc3d61.6531c","6f5101bf.1c64d"]]},{"id":"6f5101bf.1c64d","type":"http request","z":"18a88015.fc78e","name":"Domoticz","method":"use","ret":"txt","url":"","tls":"","x":980,"y":760,"wires":[[]]},{"id":"2dd8c2f6.45f43e","type":"comment","z":"18a88015.fc78e","name":"WP-Verbruik","info":"","x":550,"y":680,"wires":[]},{"id":"d302b10e.748","type":"function","z":"18a88015.fc78e","name":"Extract + Format Finder","func":"let VoltL1 = msg.payload.devices[\"100\"].DataRecord[4].Value /1000;\nlet VoltL2 = msg.payload.devices[\"100\"].DataRecord[5].Value /1000;\nlet VoltL3 = msg.payload.devices[\"100\"].DataRecord[6].Value /1000;\nlet VoltLN = msg.payload.devices[\"100\"].DataRecord[7].Value /1000;\nlet PowerL1 = msg.payload.devices[\"100\"].DataRecord[0].Value /1000;\nlet PowerL2 = msg.payload.devices[\"100\"].DataRecord[1].Value /1000;\nlet PowerL3 = msg.payload.devices[\"100\"].DataRecord[2].Value /1000;\nlet Powertot = msg.payload.devices[\"100\"].DataRecord[3].Value /1000;\nlet EnergyL1 = msg.payload.devices[\"100\"].DataRecord[14].Value /1000;\nlet EnergyL2 = msg.payload.devices[\"100\"].DataRecord[15].Value /1000;\nlet EnergyL3 = msg.payload.devices[\"100\"].DataRecord[16].Value /1000;\nlet Energytot = msg.payload.devices[\"100\"].DataRecord[17].Value /1000;\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"Finder2\",\n\t\tfields: {\n\t\t\tvoltl1: VoltL1,\t\t\t\n\t\t\tvoltl2: VoltL2,\t\t\t\n\t\t\tvoltl3: VoltL3,\t\t\t\n\t\t\tvoltln: VoltLN,\t\t\t\n\t\t\tpowerl1: PowerL1,\t\n\t\t\tpowerl2: PowerL2,\t\n\t\t\tpowerl3: PowerL3,\t\n\t\t\tpowertot: Powertot,\t\n\t\t energyl1: EnergyL1,\t\n\t\t energyl2: EnergyL2,\t\n\t\t energyl3: EnergyL3,\t\n\t\t energytot: Energytot,\t\n\t\t},\n\t\ttags:{\n\t\t device: \"warmtepomp2\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":590,"y":960,"wires":[["791538bb.2a2128"]]},{"id":"f746009f.662db","type":"debug","z":"18a88015.fc78e","name":"","active":false,"console":false,"complete":"false","x":1050,"y":980,"wires":[]},{"id":"791538bb.2a2128","type":"join","z":"18a88015.fc78e","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"8","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":850,"y":960,"wires":[["f746009f.662db"]]},{"id":"bac6fe69.703bf","type":"influxdb batch","z":"18a88015.fc78e","influxdb":"a0b0c36c.f222b","precision":"","retentionPolicy":"","name":"","x":1200,"y":820,"wires":[]},{"id":"15ff27ad.430248","type":"json","z":"18a88015.fc78e","name":"","property":"payload","action":"obj","pretty":false,"x":530,"y":1020,"wires":[["88cc3e3c.e910e"]]},{"id":"830bbc58.e1584","type":"debug","z":"18a88015.fc78e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1010,"y":1080,"wires":[]},{"id":"88cc3e3c.e910e","type":"function","z":"18a88015.fc78e","name":"Extract + Format Finder","func":"\nnode.log (\"Power and Energy to Domoticz HTTP\");\nvar power = JSON.parse(msg.payload.devices[\"100\"].DataRecord[3].Value)/1000;\nvar energy = JSON.parse(msg.payload.devices[\"100\"].DataRecord[17].Value/10);\nmsg.url = \"127.0.0.1:8084/json.htm?type=command¶m=udevice&idx=530&nvalue=0&svalue=\"+power +\";\"+energy ;\n\nreturn msg;","outputs":1,"noerr":0,"x":750,"y":1060,"wires":[["830bbc58.e1584","cd7af58d.ad6958"]]},{"id":"cd7af58d.ad6958","type":"http request","z":"18a88015.fc78e","name":"Domoticz","method":"use","ret":"txt","url":"","tls":"","x":1000,"y":1040,"wires":[[]]},{"id":"c8e83d1a.f4c04","type":"comment","z":"18a88015.fc78e","name":"Finder2","info":"","x":530,"y":840,"wires":[]},{"id":"b84d5541.f4fb98","type":"function","z":"18a88015.fc78e","name":"SCop","func":"\nnode.log (\"Power and Energy to Domoticz HTTP\");\nvar FPower = Math.round((msg.payload.devices[\"21\"].DataRecord[3].Value/1000)*1)/1;\nvar PowerInstValue = msg.payload.devices[\"67525649\"].DataRecord[11].Value *100;\nvar Cop = Math.round((PowerInstValue / FPower)*100)/100;\n//var FEnergy = JSON.parse(msg.payload.devices[\"21\"].DataRecord[17].Value)/10000;\nvar FEnergy = Math.round(((msg.payload.devices[\"21\"].DataRecord[17].Value)/10000)*100)/100;\n\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"HeatEnergy\",\n\t\tfields: {\n\t\t fpower: FPower,\n\t\t fenergy: FEnergy,\n powerInstValue: PowerInstValue,\n cop: Cop,\n\n\t\t },\n\t\ttags:{\n\t\t device: \"Kamstrup\",\n\t\t },\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;\n\n//Math.round(((PowerInstValue / Power))*10)/10;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":670,"y":820,"wires":[["1174ab9b.331e64","22c9470d.b19238","2972aba8.125804"]]},{"id":"1174ab9b.331e64","type":"debug","z":"18a88015.fc78e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1050,"y":940,"wires":[]},{"id":"22c9470d.b19238","type":"join","z":"18a88015.fc78e","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"8","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":850,"y":820,"wires":[["bac6fe69.703bf"]]},{"id":"a9fec91a.d93008","type":"mqtt out","z":"18a88015.fc78e","name":"","topic":"","qos":"","retain":"","broker":"f935c11c.41462","x":1170,"y":500,"wires":[]},{"id":"fecbb531.0abf38","type":"mqtt in","z":"18a88015.fc78e","name":"kamstrup","topic":"kamstrup","qos":"2","datatype":"json","broker":"f935c11c.41462","x":1100,"y":580,"wires":[["1b76d099.6b974f"]]},{"id":"1b76d099.6b974f","type":"debug","z":"18a88015.fc78e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1270,"y":580,"wires":[]},{"id":"b4afa47.7a36858","type":"join","z":"18a88015.fc78e","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"8","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1030,"y":500,"wires":[["a9fec91a.d93008"]]},{"id":"3b81b908.fdd3b6","type":"change","z":"18a88015.fc78e","name":"move to msg","rules":[{"t":"move","p":"payload.fields","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"kamstrup","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":890,"y":500,"wires":[["b4afa47.7a36858"]]},{"id":"60ae88aa.c04238","type":"mqtt out","z":"18a88015.fc78e","name":"","topic":"","qos":"","retain":"","broker":"f935c11c.41462","x":1230,"y":880,"wires":[]},{"id":"9a41bb03.2e6698","type":"join","z":"18a88015.fc78e","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"8","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1090,"y":880,"wires":[["60ae88aa.c04238"]]},{"id":"2972aba8.125804","type":"change","z":"18a88015.fc78e","name":"move to msg","rules":[{"t":"move","p":"payload.fields","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"finder","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":950,"y":880,"wires":[["9a41bb03.2e6698"]]},{"id":"48766138.0b6c4","type":"mqtt in","z":"18a88015.fc78e","name":"finder","topic":"finder","qos":"2","datatype":"json","broker":"f935c11c.41462","x":1210,"y":940,"wires":[["911fef9.516141"]]},{"id":"911fef9.516141","type":"debug","z":"18a88015.fc78e","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1290,"y":1020,"wires":[]},{"id":"cf6e1602.540698","type":"mbus-client","name":"","clienttype":"serial","tcpHost":"127.0.0.1","tcpPort":"10001","tcpTimeout":"4000","serialPort":"/dev/ttyUSB1","serialBaudrate":"2400","reconnectTimeout":"10000","autoScan":true,"storeDevices":true,"disableLogs":true},{"id":"b5ab1cc6.77b5f","type":"ui_group","name":"M-Bus Devices","tab":"a9d5432c.c7349","order":3,"disp":true,"width":"14"},{"id":"675ebc3b.cfb8a4","type":"ui_group","name":"Data","tab":"a9d5432c.c7349","order":4,"disp":true,"width":"14"},{"id":"841a82ae.5a7be","type":"ui_group","name":"Commands","tab":"a9d5432c.c7349","order":2,"disp":true,"width":"14"},{"id":"bbf75ab1.aa33e8","type":"ui_group","name":"Status","tab":"a9d5432c.c7349","order":1,"disp":true,"width":"14"},{"id":"a0b0c36c.f222b","type":"influxdb","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"energy","name":"","usetls":false,"tls":""},{"id":"f935c11c.41462","type":"mqtt-broker","name":"MQTT","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"a9d5432c.c7349","type":"ui_tab","name":"M-Bus","icon":"plug","order":1}]