Community
OpenEnergyMonitor

Community

A example of EmonCMS sending data to be used in Grafana

Tags: #<Tag:0x00007fdb6b1f7040> #<Tag:0x00007fdb6b1f6ed8> #<Tag:0x00007fdb6b1f6d98> #<Tag:0x00007fdb6b1f6c58>

Hello all, I’m here to share with you my beta dashboard, build in grafana and with data from EmonCMS. I’m using nodered to write the data from EmonCMS to a Influxdb DataBase, and then build the dashboard in grafana! The result is a pleasing dashboard that I display in a tablet!

The system is new, so the data is still small.

Hope that this can inspire others to think in new implementations :wink:

Best Regards to you all.

3 Likes

Maybe u can show us how u send the data to influxdb??

Hello @mauriciosti, at the moment I’m using NodeRed as a relay to duplicate the data to InfluxDB and then use it in Grafana!

I’m using the NodeRed node node-red-node-emoncms, but I’ll be changing it only to use MQTT.

Hello!
Nice dashboard you have. Can you please share the NodeRed Node used to relay to InfluxDb? This would be a good starting point to replicate something similar.

Thanks!

Hi,
I’m also interrested for a short explanation about this node

This is my nodes in nodered. Probably not the best solution, but it works well to me. In short I read the voltage, watt and kwh (that I did not need, I could calculate in grafana, but its easier) and send it to a InfluxDB. Then I use this data to display in grafana.

[{"id":"545e66fb.ae5378","type":"subflow","name":"Devices / Persistance Service","info":"","category":"","in":[{"x":80,"y":60,"wires":[{"id":"3c28ab26.4612a4"}]}],"out":[]},{"id":"3c28ab26.4612a4","type":"influxdb out","z":"545e66fb.ae5378","influxdb":"723857d4.0da4e8","name":"","measurement":"","precision":"","retentionPolicy":"","x":200,"y":60,"wires":[]},{"id":"723857d4.0da4e8","type":"influxdb","z":"","hostname":"databases.myhome","port":"8086","protocol":"http","database":"nodered","name":"NodeRed","usetls":false,"tls":""},{"id":"19ebdfde.b83ae","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo Casa W","emonServer":"548ec955.705858","feedid":"11","x":730,"y":100,"wires":[["78a3ea47.67c544"]]},{"id":"e7756bbe.f19918","type":"subflow:545e66fb.ae5378","z":"169b9f58.fe0fa1","name":"","x":1830,"y":280,"wires":[]},{"id":"6fb596.43f90a6c","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo Casa KWh","emonServer":"548ec955.705858","feedid":"12","x":740,"y":140,"wires":[["78a3ea47.67c544"]]},{"id":"78a3ea47.67c544","type":"join","z":"169b9f58.fe0fa1","name":"","mode":"auto","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":970,"y":120,"wires":[["f1a952b6.99cb7"]]},{"id":"7ea56c8b.df0b64","type":"change","z":"169b9f58.fe0fa1","name":"parts","rules":[{"t":"set","p":"parts.id","pt":"msg","to":"_msgid","tot":"msg"},{"t":"set","p":"parts.count","pt":"msg","to":"2","tot":"num"},{"t":"set","p":"voltage","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":280,"wires":[["32591fd7.c1deb","4baf3a0c.e1af34"]]},{"id":"32591fd7.c1deb","type":"change","z":"169b9f58.fe0fa1","name":"parts","rules":[{"t":"set","p":"parts.index","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":260,"wires":[["19ebdfde.b83ae","c24b8f37.a826b","a661e74b.a90008","7bc1e1e8.89627","c7fd01d1.f9876","1da03542.d3290b","c11a1977.e612e8"]]},{"id":"4baf3a0c.e1af34","type":"change","z":"169b9f58.fe0fa1","name":"parts","rules":[{"t":"set","p":"parts.index","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":300,"wires":[["6fb596.43f90a6c","2fd5aca4.fd7024","d08de5b6.7ee8f8","ef94d2e9.33c9e","472d4ec8.41074","5552cbe5.2235d4","657b7532.71ee0c"]]},{"id":"c24b8f37.a826b","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo AC W","emonServer":"548ec955.705858","feedid":"21","x":720,"y":200,"wires":[["9b172eed.77e04"]]},{"id":"2fd5aca4.fd7024","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo AC KWh","emonServer":"548ec955.705858","feedid":"22","x":730,"y":240,"wires":[["9b172eed.77e04"]]},{"id":"9b172eed.77e04","type":"join","z":"169b9f58.fe0fa1","name":"","mode":"auto","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":970,"y":220,"wires":[["36959a61.b67136"]]},{"id":"f1a952b6.99cb7","type":"change","z":"169b9f58.fe0fa1","name":"Device","rules":[{"t":"set","p":"deviceId","pt":"msg","to":"main","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":120,"wires":[["bedfb4ac.91df48"]]},{"id":"36959a61.b67136","type":"change","z":"169b9f58.fe0fa1","name":"Device","rules":[{"t":"set","p":"deviceId","pt":"msg","to":"air_conditioner","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":220,"wires":[["bedfb4ac.91df48"]]},{"id":"a661e74b.a90008","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo Maquina Roupa W","emonServer":"548ec955.705858","feedid":"23","x":760,"y":300,"wires":[["6c9ad83c.b17788"]]},{"id":"d08de5b6.7ee8f8","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo Maquina Roupa KWh","emonServer":"548ec955.705858","feedid":"24","x":770,"y":340,"wires":[["6c9ad83c.b17788"]]},{"id":"6c9ad83c.b17788","type":"join","z":"169b9f58.fe0fa1","name":"","mode":"auto","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":970,"y":320,"wires":[["6f07e5dc.71a1bc"]]},{"id":"6f07e5dc.71a1bc","type":"change","z":"169b9f58.fe0fa1","name":"Device","rules":[{"t":"set","p":"deviceId","pt":"msg","to":"washing_machine","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":320,"wires":[["bedfb4ac.91df48"]]},{"id":"7bc1e1e8.89627","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo Maquina Loiça W","emonServer":"548ec955.705858","feedid":"25","x":760,"y":400,"wires":[["86829a26.2943c8"]]},{"id":"86829a26.2943c8","type":"join","z":"169b9f58.fe0fa1","name":"","mode":"auto","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":970,"y":420,"wires":[["d01bac9.228b95"]]},{"id":"d01bac9.228b95","type":"change","z":"169b9f58.fe0fa1","name":"Device","rules":[{"t":"set","p":"deviceId","pt":"msg","to":"dishwasher","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1090,"y":420,"wires":[["bedfb4ac.91df48"]]},{"id":"bedfb4ac.91df48","type":"function","z":"169b9f58.fe0fa1","name":"Range","func":"var range_arr = [['00:00','08:00'],['22:00','23:59']];\n\nif(msg.time !== undefined)\n    var time = new Date(msg.time);\nelse\n    var time = new Date();\n\nfor(var i=0;i<range_arr.length;i++){\n    if(isInRange(time, range_arr[i])){\n        return [msg,null];\n    }\n}\n\n\nreturn [null,msg];\n\n\nfunction isInRange(value, range) {\n  \n  var time = new Date(value.getTime());\n  time.setSeconds(0);\n  \n  var time_in = new Date(value.getTime());\n  \n  time_in.setHours(range[0].split(':')[0]);\n  time_in.setMinutes(range[0].split(':')[1]);\n  time_in.setSeconds(0);\n  \n  var time_out = new Date(value.getTime());\n  time_out.setHours(range[1].split(':')[0]);\n  time_out.setMinutes(range[1].split(':')[1]);\n  time_out.setSeconds(0);\n  \n  \n  return time.getTime()>=time_in.getTime() && time.getTime()<=time_out.getTime();\n}","outputs":2,"noerr":0,"x":1250,"y":280,"wires":[["518c34d8.5e092c"],["62366904.0b3d58"]]},{"id":"62366904.0b3d58","type":"change","z":"169b9f58.fe0fa1","name":"Set Range","rules":[{"t":"set","p":"trange","pt":"msg","to":"FVZ","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1430,"y":320,"wires":[["683d76b7.a627d8"]]},{"id":"518c34d8.5e092c","type":"change","z":"169b9f58.fe0fa1","name":"Set Range","rules":[{"t":"set","p":"trange","pt":"msg","to":"VZ","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1430,"y":260,"wires":[["683d76b7.a627d8"]]},{"id":"683d76b7.a627d8","type":"function","z":"169b9f58.fe0fa1","name":"InnoDB","func":"var newMsg = {};\nvar data = {};\nvar tags = {};\n\nif(msg.power !== undefined && msg.kwh !== undefined){\n    var power = msg.power;\n    var kwh   = msg.kwh;\n}\nelse if(msg.payload !== undefined && Array.isArray(msg.payload)){\n    if(msg.payload.length != 2)\n        return null;\n    \n    var power = msg.payload[0];\n    var kwh   = msg.payload[1];\n}\n\nif(power === undefined || kwh === undefined)\n    return null;\n\nnewMsg.measurement = (msg.measurement) || 'power';\n\nif(msg.voltage === undefined)\n    msg.voltage = 24000;\n\ndata = {\n    'power': parseFloat(power),\n    'kwh'  : parseFloat(kwh),\n    'volt' : parseFloat(msg.voltage/100),\n    'amp'  : parseFloat(parseFloat(power) / (msg.voltage/100)),\n}\n\n\nif(msg.time !== undefined)\n    data.time = msg.time;\n\ndata.trange = msg.trange || msg.payload.trange || \"\";\n\ntags.deviceId = msg.deviceId || msg.payload.deviceId;\n\nnewMsg.payload = [data,tags];\n\nreturn newMsg;","outputs":1,"noerr":0,"x":1600,"y":280,"wires":[["e7756bbe.f19918"]]},{"id":"180009d6.24d7a6","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Voltage","emonServer":"548ec955.705858","feedid":"31","x":220,"y":280,"wires":[["7ea56c8b.df0b64"]]},{"id":"3126f0e4.395a4","type":"inject","z":"169b9f58.fe0fa1","name":"Start","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":true,"onceDelay":"60","x":70,"y":280,"wires":[["180009d6.24d7a6"]]},{"id":"ef94d2e9.33c9e","type":"emoncms in","z":"169b9f58.fe0fa1","name":"Consumo Maquina Loiça KWh","emonServer":"548ec955.705858","feedid":"26","x":770,"y":460,"wires":[["86829a26.2943c8"]]},{"id":"548ec955.705858","type":"emoncms-server","z":"","server":"http://debian.myhome/emoncms","name":"EmonCMS Read"}]