[{"id":"18a50190d5728c82","type":"grohe sense","z":"3d8bc5187eb93fc0","location":"dd73ac27fcefb839","room":"Wasserkeller","appliance":"SenseGuard","devicetype":"103","description":"","x":570,"y":340,"wires":[["3d5f97c568c4cb42","84f27caf5714dfcb","64d01d21d74b529f"]]},{"id":"ef6e230a25a4f8b8","type":"function","z":"3d8bc5187eb93fc0","name":"data","func":"let end = new Date();\nlet start = new Date();\nstart.setDate(end.getDate() - 1); // last 7 days.\n\nmsg.payload = {\n data : {\n from : start,\n to : end,\n groupBy : 'hour'\n }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":340,"wires":[["18a50190d5728c82"]]},{"id":"475071bbc99ee5e0","type":"inject","z":"3d8bc5187eb93fc0","name":"get data","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":260,"y":340,"wires":[["ef6e230a25a4f8b8"]]},{"id":"fc41aee5ad16e5df","type":"ui_chart","z":"3d8bc5187eb93fc0","name":"","group":"c3c1f58f8122f797","order":3,"width":"0","height":"0","label":"Temperature Sense Guard","chartType":"line","legend":"false","xformat":"auto","interpolate":"step","nodata":"","dot":false,"ymin":"0","ymax":"30","removeOlder":"7","removeOlderPoints":"1000","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#b31e1e","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":980,"y":300,"wires":[[]]},{"id":"3d5f97c568c4cb42","type":"function","z":"3d8bc5187eb93fc0","name":"measurement","func":"if (msg.payload.data){\n let measurement = msg.payload.data.measurement;\n\n let temperatureData = [];\n let pressureData = [];\n let flowrateData = [];\n\n for (const item of measurement) {\n let date = new Date(item.date);\n var timestamp = date; //Math.floor(date.getTime() / 1000); // unix\n\n let temperaturePoint = {\n x : timestamp,\n y: item.temperature_guard\n };\n temperatureData.push(temperaturePoint);\n\n let pressurePoint = {\n x: timestamp,\n y: item.pressure\n };\n pressureData.push(pressurePoint);\n\n let flowratePoint = {\n x: timestamp,\n y: item.flowrate\n };\n flowrateData.push(flowratePoint);\n }\n\n let msg1 = { \n payload : [{\n series: [\"Temperature\"],\n data: [temperatureData],\n labels: [\"SenseGuard\"]\n }]\n };\n\n let msg2 = {\n payload: [{\n series: [\"Pressure\"],\n data: [pressureData],\n labels: [\"SenseGuard\"]\n }]\n };\n\n let msg3 = {\n payload: [{\n series: [\"Flowrate\"],\n data: [flowrateData],\n labels: [\"SenseGuard\"]\n }]\n };\n\n let msgs = [msg1, msg2, msg3];\n return msgs;\n}\n","outputs":3,"noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":340,"wires":[["fc41aee5ad16e5df"],["db2b19b13ea2801f"],["26b85ca823fc464f"]]},{"id":"db2b19b13ea2801f","type":"ui_chart","z":"3d8bc5187eb93fc0","name":"","group":"c3c1f58f8122f797","order":3,"width":"0","height":"0","label":"Pressure Sense Guard","chartType":"line","legend":"false","xformat":"auto","interpolate":"step","nodata":"","dot":false,"ymin":"0","ymax":"10","removeOlder":"24","removeOlderPoints":"1000","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":960,"y":340,"wires":[[]]},{"id":"26b85ca823fc464f","type":"ui_chart","z":"3d8bc5187eb93fc0","name":"","group":"c3c1f58f8122f797","order":3,"width":"0","height":"0","label":"Flowrate Sense Guard","chartType":"line","legend":"false","xformat":"auto","interpolate":"step","nodata":"","dot":false,"ymin":"0","ymax":"20","removeOlder":"24","removeOlderPoints":"1000","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1eb328","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":960,"y":380,"wires":[[]]},{"id":"84f27caf5714dfcb","type":"function","z":"3d8bc5187eb93fc0","name":"withdrawals","func":"if (msg.payload.data){\n let withdrawals = msg.payload.data.withdrawals;\n\n let waterconsumptionData = [];\n // TODO: hotwater_share, water_cost, energy_cost\n\n for (const item of withdrawals) {\n let date = new Date(item.date);\n\n let waterconsumptionPoint = {\n x : date,\n y: item.waterconsumption\n };\n waterconsumptionData.push(waterconsumptionPoint);\n }\n\n let msg1 = { \n payload : [{\n series: [\"Water Consumption\"],\n data: [waterconsumptionData],\n labels: [\"SenseGuard\"]\n }]\n };\n\n let msgs = [msg1];\n return msgs;\n}\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":750,"y":420,"wires":[["00a8f0759410f141"]]},{"id":"00a8f0759410f141","type":"ui_chart","z":"3d8bc5187eb93fc0","name":"","group":"c3c1f58f8122f797","order":3,"width":"0","height":"0","label":"Water Consumption","chartType":"line","legend":"false","xformat":"auto","interpolate":"step","nodata":"","dot":false,"ymin":"0","ymax":"100","removeOlder":"7","removeOlderPoints":"1000","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1e30b3","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":950,"y":420,"wires":[[]]},{"id":"64d01d21d74b529f","type":"debug","z":"3d8bc5187eb93fc0","name":"debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":730,"y":480,"wires":[]},{"id":"dd73ac27fcefb839","type":"grohe location","location":"Haus"},{"id":"c3c1f58f8122f797","type":"ui_group","name":"SenseGuard History","tab":"933900f0656633c1","order":4,"disp":true,"width":"6","collapse":false,"className":""},{"id":"933900f0656633c1","type":"ui_tab","name":"Grohe","icon":"fa-tint","disabled":false,"hidden":false}]