[{"id":"7756da.c2a07928","type":"tab","label":"P1 + SMA Logging","disabled":false,"info":""},{"id":"eec48ef7.1e65a","type":"modbus-getter","z":"7756da.c2a07928","name":"Yield","showStatusActivities":true,"showErrors":true,"logIOActivities":false,"unitid":"3","dataType":"HoldingRegister","adr":"30531","quantity":"2","server":"84430495.b18c58","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":450,"y":220,"wires":[["3adbb600.567eea"],[]]},{"id":"e6de8775.8d10c8","type":"modbus-getter","z":"7756da.c2a07928","name":"DC1 - AC","showStatusActivities":true,"showErrors":true,"logIOActivities":false,"unitid":"","dataType":"HoldingRegister","adr":"30769","quantity":"16","server":"84430495.b18c58","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":467.50000381469727,"y":441.00001335144043,"wires":[["22c97d98.393f42","6301bae2.3f5074"],[]]},{"id":"2667525d.d4587e","type":"modbus-getter","z":"7756da.c2a07928","name":"Temp - DC2 - AC","showStatusActivities":false,"showErrors":false,"logIOActivities":false,"unitid":"","dataType":"HoldingRegister","adr":"30953","quantity":"26","server":"84430495.b18c58","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":490.50000381469727,"y":320.00001335144043,"wires":[["e3742847.b7c648","b7dd203f.2d9fc"],[]]},{"id":"e3742847.b7c648","type":"function","z":"7756da.c2a07928","name":"Extract + Format SMA DC2","func":"let DCCurrent2 = msg.payload[5] / 1000; // 30957\nlet DCVoltage2 = msg.payload[7] / 100; // 30959\nlet DCPower2 = msg.payload[9]; // 30961\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"energy\",\n\t\tfields: {\n\t\t\tcurrent: DCCurrent2,\n\t\t\tvoltage: DCVoltage2,\n\t\t\tpower: DCPower2,\n\t\t},\n\t\ttags:{\n\t\t device: \"SMA 5.0 - MPPT A\",\n\t\t orientation: \"West\",\n\t\t type: \"DC\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":744.0000038146973,"y":282.00001335144043,"wires":[["97880c2a.6eb01"]]},{"id":"3adbb600.567eea","type":"function","z":"7756da.c2a07928","name":"Extract + Format SMA Yield","func":"let TotalYield = msg.payload[1] ; // 30531\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalYield,\n\t\t},\n\t\ttags:{\n\t\t device: \"SMA 5.0 - System\",\n\t\t direction: \"Internal Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":740,"y":220,"wires":[["4b398d0a.a3d4b4"]]},{"id":"290b2fe2.20b1d","type":"debug","z":"7756da.c2a07928","name":"Debug","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1848.5001773834229,"y":361.0000972747803,"wires":[]},{"id":"6301bae2.3f5074","type":"function","z":"7756da.c2a07928","name":"Extract + Format SMA DC1","func":"let DCCurrent1 = msg.payload[1] / 1000; // 30769\nlet DCVoltage1 = msg.payload[3] / 100; // 30771\nlet DCPower1 = msg.payload[5]; // 30773\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"energy\",\n\t\tfields: {\n\t\t\tcurrent: DCCurrent1,\n\t\t\tvoltage: DCVoltage1,\n\t\t\tpower: DCPower1, \n\t\t},\n\t\ttags:{\n\t\t device: \"SMA 5.0 - MPPT B\",\n\t\t orientation: \"East\",\n\t\t type: \"DC\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":760,"y":480,"wires":[["1e17b172.7275df"]]},{"id":"8a66b781.4da878","type":"join","z":"7756da.c2a07928","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":1717.5000381469727,"y":360.0000343322754,"wires":[["290b2fe2.20b1d","af180fcb.2713"]]},{"id":"22c97d98.393f42","type":"function","z":"7756da.c2a07928","name":"Extract SMA AC","func":"let PowerTot = msg.payload[7]; // 30775\nlet GridVoltagePhase1 = msg.payload[15] / 100; // 30783\n\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n\t\t\tsma_ac_power_tot: PowerTot,\n\t\t\tsma_ac_voltage: GridVoltagePhase1,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":760,"y":400,"wires":[["d1e04a8a.16dab8","fc0157c7.890438"]]},{"id":"b7dd203f.2d9fc","type":"function","z":"7756da.c2a07928","name":"Extract SMA AC + Temp","func":"let InternalTemperature = msg.payload[1] /10; // 30953\nlet ACCurrentL1 = msg.payload[25] / 1000; // 30977\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n\t\t\tsma_temperature: InternalTemperature,\n\t\t\tsma_ac_currentL1: ACCurrentL1,\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":733.0000038146973,"y":344.00001335144043,"wires":[["d1e04a8a.16dab8"]]},{"id":"d1e04a8a.16dab8","type":"join","z":"7756da.c2a07928","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"5","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":954.5000534057617,"y":374.0000057220459,"wires":[["43b4944b.cfe70c","9c7ab38.1cb1e5"]]},{"id":"43b4944b.cfe70c","type":"function","z":"7756da.c2a07928","name":"Format SMA AC","func":"let _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"energy\",\n\t\tfields: {\n\t\t\tcurrent: msg.payload.sma_ac_currentL1,\n\t\t\tvoltage: msg.payload.sma_ac_voltage,\n\t\t\tpower: msg.payload.sma_ac_power_tot,\n\t\t},\n\t\ttags:{\n\t\t device: \"SMA 5.0 - System\",\n\t\t type: \"AC\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1140,"y":400,"wires":[["7042bec2.84394"]]},{"id":"9c7ab38.1cb1e5","type":"function","z":"7756da.c2a07928","name":"Format SMA Temp","func":"let _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"temperature\",\n\t\tfields: {\n\t\t\ttemperature: msg.payload.sma_temperature,\n\t\t},\n\t\ttags:{\n\t\t device: \"SMA 5.0 - System\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1150,"y":340,"wires":[["7f250d9c.d6b234"]]},{"id":"af180fcb.2713","type":"influxdb batch","z":"7756da.c2a07928","influxdb":"27e18148.8340de","precision":"","retentionPolicy":"","name":"InfluxDB","x":1858.4999961853027,"y":302.0000743865967,"wires":[]},{"id":"1e17b172.7275df","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":480,"wires":[["8a66b781.4da878"]]},{"id":"7f250d9c.d6b234","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.temperature","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":340,"wires":[["8a66b781.4da878"]]},{"id":"7042bec2.84394","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":400,"wires":[["8a66b781.4da878"]]},{"id":"97880c2a.6eb01","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1340,"y":280,"wires":[["8a66b781.4da878"]]},{"id":"d6aca862.f625e8","type":"function","z":"7756da.c2a07928","name":"Set totalyield filter value","func":"flow.set('totalyield_sma',msg.payload.fields.totalyield);","outputs":1,"noerr":0,"x":1590,"y":180,"wires":[[]]},{"id":"fa879f77.4baf9","type":"switch","z":"7756da.c2a07928","name":"Limit Repeating","property":"payload.fields.totalyield","propertyType":"msg","rules":[{"t":"neq","v":"totalyield_sma","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":1360,"y":220,"wires":[["d6aca862.f625e8","8a66b781.4da878"]]},{"id":"fb9defaf.71ff3","type":"inject","z":"7756da.c2a07928","name":"Reset totalyield filter","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":171.5,"y":58,"wires":[["3453826b.5f907e"]]},{"id":"3453826b.5f907e","type":"function","z":"7756da.c2a07928","name":"Reset totalyield filter value","func":"flow.set('totalyield',0);\nflow.set('gas',0);","outputs":1,"noerr":0,"x":486,"y":58,"wires":[[]]},{"id":"4b398d0a.a3d4b4","type":"switch","z":"7756da.c2a07928","name":"Filter invalid","property":"payload.fields.totalyield","propertyType":"msg","rules":[{"t":"neq","v":"65535","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":990,"y":220,"wires":[["fa879f77.4baf9"]]},{"id":"cb4f0568.7f1c48","type":"exec","z":"7756da.c2a07928","command":"smeterd","addpay":false,"append":"read-meter --serial-baudrate 115200 --show-output consumed current produced voltage --tsv","useSpawn":"false","timer":"5","oldrc":false,"name":"","x":462.99999237060547,"y":552.0000896453857,"wires":[["a5d9004b.b9b74"],[],[]]},{"id":"a5d9004b.b9b74","type":"function","z":"7756da.c2a07928","name":"Extract smeterd","func":"var payload = msg.payload\nvar clean_payload = msg.payload.trim();\n\nvar output = clean_payload.split('\\t');\n\n\nvar consumed_high = output[0];\nvar consumed_low = output[1];\nvar consumed_gas = output[2];\nvar produced_high = output[3];\nvar produced_low = output[4];\nvar current_consumption = output[5];\nvar current_production = output[6];\nvar current_voltage = output[7];\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n consumed_high: consumed_high,\n consumed_low: consumed_low,\n consumed_gas: consumed_gas,\n produced_high: produced_high,\n produced_low: produced_low,\n current_consumption: current_consumption,\n current_production: current_production,\n current_voltage: current_voltage,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":780,"y":740,"wires":[["572cb1c4.d6324","a21b3f99.78007","7582d8e5.0c4718","738333a1.49e76c","1bf75599.c1bb0a","fd89fd27.fb04c","322d7b8a.da34b4","87173f8d.eb97b","2775d582.eea69a","cfe0670a.b415e8","f303e6a6.68dd68"]]},{"id":"a21b3f99.78007","type":"function","z":"7756da.c2a07928","name":"Format P1 Consumption Low","func":"let consumed_low = msg.payload.consumed_low / 1000;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_low,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"Low\",\n\t\t direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":840,"wires":[["8a66b781.4da878"]]},{"id":"7582d8e5.0c4718","type":"function","z":"7756da.c2a07928","name":"Format P1 Consumption High","func":"let consumed_high = msg.payload.consumed_high / 1000;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_high,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"High\",\n\t\t direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1430,"y":880,"wires":[["8a66b781.4da878"]]},{"id":"1bf75599.c1bb0a","type":"function","z":"7756da.c2a07928","name":"Format P1 Production Low","func":"let produced_high = msg.payload.produced_high / 1000;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: produced_high,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"Low\",\n\t\t direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":980,"wires":[["8a66b781.4da878"]]},{"id":"fd89fd27.fb04c","type":"function","z":"7756da.c2a07928","name":"Format P1 Production High","func":"let produced_low = msg.payload.produced_low / 1000;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: produced_low,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"High\",\n\t\t direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":1020,"wires":[["8a66b781.4da878"]]},{"id":"2775d582.eea69a","type":"function","z":"7756da.c2a07928","name":"Extract P1 Power","func":"let current_voltage = msg.payload.current_voltage\nlet current_consumption = msg.payload.current_consumption\nlet current_production = msg.payload.current_production\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n\t\t\tp1_ac_power_usage: Number(current_consumption),\n\t\t\tp1_ac_power_delivery: Number(current_production),\n\t\t\tp1_ac_voltage: Number(current_voltage),\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":778.0002098083496,"y":578.4999980926514,"wires":[["84a802bd.23e6d","c1c79824.373528","89ffe83e.9f1548","fc0157c7.890438"]]},{"id":"84a802bd.23e6d","type":"function","z":"7756da.c2a07928","name":"Format Grid Net Consumption","func":"let _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: msg.payload.p1_ac_power_usage - msg.payload.p1_ac_power_delivery,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t type: \"AC\",\n\t\t direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1230,"y":580,"wires":[["8a66b781.4da878"]]},{"id":"738333a1.49e76c","type":"function","z":"7756da.c2a07928","name":"Format P1 Consumption Total","func":"let consumed_high = msg.payload.consumed_high / 1000;\nlet consumed_low = msg.payload.consumed_low / 1000;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_high + consumed_low,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"Total\",\n\t\t direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1430,"y":920,"wires":[["8a66b781.4da878"]]},{"id":"322d7b8a.da34b4","type":"function","z":"7756da.c2a07928","name":"Format P1 Production Total","func":"let produced_low = msg.payload.produced_low / 1000;\nlet produced_high = msg.payload.produced_high / 1000;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: produced_low + produced_high,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"Total\",\n\t\t direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1420,"y":1060,"wires":[["8a66b781.4da878"]]},{"id":"87173f8d.eb97b","type":"function","z":"7756da.c2a07928","name":"Format P1 Net Consumption Total","func":"let consumed_low = msg.payload.consumed_low / 1000;\nlet consumed_high = msg.payload.consumed_high / 1000;\nlet produced_low = msg.payload.produced_low / 1000;\nlet produced_high = msg.payload.produced_high / 1000;\n\nlet TotalUsage = consumed_low + consumed_high;\nlet TotalDelivery = produced_low + produced_high;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalUsage - TotalDelivery,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"Total\",\n\t\t direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1440,"y":1200,"wires":[["8a66b781.4da878"]]},{"id":"572cb1c4.d6324","type":"function","z":"7756da.c2a07928","name":"Format P1 Gas","func":"let consumed_gas = msg.payload.consumed_gas / 1000;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"gas\",\n\t\tfields: {\n\t\t\ttotalyield: consumed_gas,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1180,"y":740,"wires":[["6cb3edd2.321ea4"]]},{"id":"c1c79824.373528","type":"function","z":"7756da.c2a07928","name":"Format Grid Consumption","func":"let _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: msg.payload.p1_ac_power_usage,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t type: \"AC\",\n\t\t direction: \"Grid Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1210,"y":620,"wires":[["d5c9153c.0cb918"]]},{"id":"89ffe83e.9f1548","type":"function","z":"7756da.c2a07928","name":"Format Grid Production","func":"let _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: msg.payload.p1_ac_power_delivery*-1,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t type: \"AC\",\n\t\t direction: \"Grid Production\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1210,"y":660,"wires":[["224570fd.c5023"]]},{"id":"d5c9153c.0cb918","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1440,"y":620,"wires":[["8a66b781.4da878"]]},{"id":"224570fd.c5023","type":"switch","z":"7756da.c2a07928","name":"Filter null","property":"payload.fields.power","propertyType":"msg","rules":[{"t":"neq","v":"","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":1440,"y":660,"wires":[["8a66b781.4da878"]]},{"id":"a854d0c0.09489","type":"function","z":"7756da.c2a07928","name":"Format Internal Consumption","func":"grid_consumption = msg.payload.p1_ac_power_usage;\ngrid_production = msg.payload.p1_ac_power_delivery;\n\ninternal_production = msg.payload.sma_ac_power_tot;\nif(internal_production == null)\n{\n internal_production = 0;\n}\n\nnet_grid = grid_consumption - grid_production;\nnet_internal_consumption = internal_production + net_grid;\n\n\n\n\n_msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"energy\",\n\t\tfields: {\n\t\t\tvoltage: msg.payload.p1_ac_voltage,\n\t\t\tpower: net_internal_consumption,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t type: \"AC\",\n\t\t direction: \"Internal Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"x":1220,"y":540,"wires":[["8a66b781.4da878"]]},{"id":"fc0157c7.890438","type":"join","z":"7756da.c2a07928","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"5","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1010,"y":540,"wires":[["a854d0c0.09489"]]},{"id":"efe46d48.f4459","type":"function","z":"7756da.c2a07928","name":"Create Timestamp","func":"let _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n\t\ttimestamp: new Date(),\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":190,"y":260,"wires":[["43ea38a0.da2d88"]]},{"id":"43ea38a0.da2d88","type":"change","z":"7756da.c2a07928","name":"Set Timestamp","rules":[{"t":"move","p":"payload.timestamp","pt":"msg","to":"timestamp","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":244.28905487060547,"y":320.3437786102295,"wires":[["eec48ef7.1e65a","2667525d.d4587e","e6de8775.8d10c8","cb4f0568.7f1c48"]]},{"id":"6cb3edd2.321ea4","type":"switch","z":"7756da.c2a07928","name":"Limit Repeating","property":"payload.fields.totalyield","propertyType":"msg","rules":[{"t":"neq","v":"gas","vt":"flow"}],"checkall":"true","repair":false,"outputs":1,"x":1420,"y":740,"wires":[["9cb9e059.073ea","8a66b781.4da878"]]},{"id":"9cb9e059.073ea","type":"function","z":"7756da.c2a07928","name":"Set totalyield filter value","func":"flow.set('gas',msg.payload.fields.totalyield);","outputs":1,"noerr":0,"x":1370,"y":780,"wires":[[]]},{"id":"1680367.9ef68ca","type":"interval","z":"7756da.c2a07928","name":"interval","interval":10,"onstart":false,"msg":"ping","showstatus":true,"unit":"seconds","statusformat":"YYYY-MM-D HH:mm:ss","x":90,"y":200,"wires":[["efe46d48.f4459"]]},{"id":"f303e6a6.68dd68","type":"function","z":"7756da.c2a07928","name":"Format P1 Net Consumption Low","func":"let consumed_low = msg.payload.consumed_low / 1000;\nlet produced_low = msg.payload.produced_low / 1000;\n\nlet TotalUsage = consumed_low;\nlet TotalDelivery = produced_low;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalUsage - TotalDelivery,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"Low\",\n\t\t direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1440,"y":1120,"wires":[["8a66b781.4da878"]]},{"id":"cfe0670a.b415e8","type":"function","z":"7756da.c2a07928","name":"Format P1 Net Consumption High","func":"let consumed_high = msg.payload.consumed_high / 1000;\nlet produced_high = msg.payload.produced_high / 1000;\n\nlet TotalUsage = consumed_high;\nlet TotalDelivery = produced_high;\nlet _msg = {\n payload:[]\n};\n\n_msg.payload=\n {\n measurement: \"yield\",\n\t\tfields: {\n\t\t\ttotalyield: TotalUsage - TotalDelivery,\n\t\t},\n\t\ttags:{\n\t\t device: \"P1\",\n\t\t rate: \"High\",\n\t\t direction: \"Grid Net Consumption\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"x":1440,"y":1160,"wires":[["8a66b781.4da878"]]},{"id":"84430495.b18c58","type":"modbus-client","z":"","name":"SMA","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":true,"tcpHost":"10.5.0.70","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"3","commandDelay":"1","clientTimeout":"1500","reconnectTimeout":"2000"},{"id":"27e18148.8340de","type":"influxdb","z":"","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"SMA","name":"","usetls":false,"tls":"b2a3d022.4f648"},{"id":"b2a3d022.4f648","type":"tls-config","z":"","name":"local-tls","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","verifyservercert":false}]