-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathpersistence.flow
1 lines (1 loc) · 5.29 KB
/
persistence.flow
1
[{"id":"daac457c.677b1","type":"inject","z":"4cabf541.635b8c","name":"At startup","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":130,"y":80,"wires":[["6f4d6306.3f6fc4"]]},{"id":"6f4d6306.3f6fc4","type":"function","z":"4cabf541.635b8c","name":"Set location name","func":"flow.set(\"location\",\"Pak Kong Au\")\nreturn msg;","outputs":1,"noerr":0,"x":420,"y":80,"wires":[[]]},{"id":"559277bb.6313f8","type":"mqtt in","z":"4cabf541.635b8c","name":"","topic":"grid/power","qos":"2","broker":"3256e0e9.783578","x":130,"y":300,"wires":[["66d747e0.bdee38"]]},{"id":"66d747e0.bdee38","type":"function","z":"4cabf541.635b8c","name":"Add fields and tags","func":"const parts = msg.topic.split(\"/\")\nconst value = parseFloat(msg.payload)\nconst type = parts[0]\nif( parts.length > 1 ){\n const measurement = parts[parts.length-1]\n \n const tags = {\n type: type,\n location: flow.get(\"location\") || \"Unknown\"\n }\n \n if(parts.length > 2){\n tags.subType = parts[1]\n }\n \n if(!isNaN(value) && value<25000 && value>-10000){\n const data = [\n {\n value: value\n },\n tags\n ];\n msg.measurement = measurement.length > 1 ? measurement : null\n msg.payload = data\n return msg;\n }\n}\n\n","outputs":1,"noerr":0,"x":590,"y":300,"wires":[["54ff8672.cfec5","4f870d47.9c213c"]]},{"id":"54ff8672.cfec5","type":"debug","z":"4cabf541.635b8c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":780,"y":240,"wires":[]},{"id":"d3338422.fde16","type":"mqtt in","z":"4cabf541.635b8c","name":"","topic":"solar/power","qos":"2","broker":"3256e0e9.783578","x":140,"y":400,"wires":[["c59bee52.3bc32","e8ad57d1.ba0d78"]]},{"id":"c59bee52.3bc32","type":"delay","z":"4cabf541.635b8c","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"3","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":360,"y":380,"wires":[["66d747e0.bdee38"]]},{"id":"8163606b.089238","type":"mqtt in","z":"4cabf541.635b8c","name":"","topic":"solar/power_metered","qos":"2","broker":"3256e0e9.783578","x":170,"y":560,"wires":[["7c131a9.f2d2fe4"]]},{"id":"e8ad57d1.ba0d78","type":"function","z":"4cabf541.635b8c","name":"Store solar/power","func":"const value = parseFloat(msg.payload)\nflow.set(msg.topic, {\"value\": isNaN(value) ? 0 : value, \"timestamp\": new Date()})\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":460,"wires":[[]]},{"id":"7c131a9.f2d2fe4","type":"function","z":"4cabf541.635b8c","name":"Calculate delta","func":"const inverter_p_data = flow.get(\"solar/power\") || null\nconst meter_p = isNaN(parseFloat(msg.payload)) ? 0 : parseFloat(msg.payload)\nconst inverter_p = inverter_p_data ? inverter_p_data.value : 0\nconst now = new Date().getTime()\nconst then = inverter_p_data.timestamp.getTime()\nconst passedTimeSeconds = (now - then)/1000\n\nif(passedTimeSeconds<1.5){\n const delta = meter_p - inverter_p\n msg.payload = delta\n const relative_d = meter_p === 0 ? 0 : delta / meter_p\n \n return [msg,{payload: relative_d}];\n}else{\n return null;\n}\n","outputs":2,"noerr":0,"x":440,"y":560,"wires":[["51a7509b.15d988","c405788e.1c7ba8"],["c7f9842d.50d618"]]},{"id":"51a7509b.15d988","type":"debug","z":"4cabf541.635b8c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":880,"y":500,"wires":[]},{"id":"4f870d47.9c213c","type":"influxdb out","z":"4cabf541.635b8c","influxdb":"c8fa082e.6cc9f","name":"Power","measurement":"power","precision":"","retentionPolicy":"","x":860,"y":300,"wires":[]},{"id":"c405788e.1c7ba8","type":"influxdb out","z":"4cabf541.635b8c","influxdb":"1799b198.dddc8e","name":"Meter Delta","measurement":"inverter_meter_delta","precision":"","retentionPolicy":"","x":980,"y":440,"wires":[]},{"id":"c7f9842d.50d618","type":"influxdb out","z":"4cabf541.635b8c","influxdb":"1799b198.dddc8e","name":"Meter Delta Rel","measurement":"inverter_meter_delta_rel","precision":"","retentionPolicy":"","x":1000,"y":560,"wires":[]},{"id":"ed4a9c52.d8ca28","type":"mqtt in","z":"4cabf541.635b8c","name":"","topic":"consumption/#","qos":"2","broker":"3256e0e9.783578","x":160,"y":200,"wires":[[]]},{"id":"3256e0e9.783578","type":"mqtt-broker","z":"","name":"local_mqtt","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""},{"id":"c8fa082e.6cc9f","type":"influxdb","z":"4cabf541.635b8c","hostname":"insert.your.influx.server.com","port":"8443","protocol":"http","database":"energy","name":"Gateway Cloud Power","usetls":true,"tls":"3fca94fc.e432b4"},{"id":"1799b198.dddc8e","type":"influxdb","z":"4cabf541.635b8c","hostname":"insert.your.influx.server.com","port":"8443","protocol":"http","database":"solar_system","name":"Gateway Cloud Solar Sys","usetls":true,"tls":"3fca94fc.e432b4"},{"id":"3fca94fc.e432b4","type":"tls-config","z":"","name":"insert.your.influx.server.com","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","verifyservercert":false}]