Getting Energy Readings from a CurrentCost EnviR Home Energy Monitor

This flow listens to a CurrentCost EnviR that is connected via the USB Serial cable included with the base station. Parses the incoming XML feed and outputs the live energy usage readings from all sensors as they are received by the base station.

[{"id":"5dd2be7.fa22d4","type":"serial-port","z":"","serialport":"/dev/ttyUSB0","serialbaud":"57600","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":false},{"id":"5d9f1647.8da548","type":"serial in","z":"d1767f1.cc1968","name":"CurrentCost Envir","serial":"5dd2be7.fa22d4","x":298,"y":161,"wires":[["2e38cccb.02c6b4"]]},{"id":"1656c54c.43f1eb","type":"function","z":"d1767f1.cc1968","name":"extract watts","func":"/* sample message\n(Object) {\n \"msg\": {\n  \"src\": [\"CC128-v0.11\"],\n  \"dsb\": [\"00600\"],\n  \"time\": [\"19:04:49\"],\n  \"tmpr\": [\"18.3\"],\n  \"sensor\": [\"0\"],\n  \"id\": [\"02902\"],\n  \"type\": [\"1\"],\n  \"ch1\": [{\"watts\": [\"00023\"]}]\n }\n}\n*/\n\nvar reading = msg.payload;\n\n//ignore if history packet\nif(reading.msg.hist){return null;}\n\nmsg.payload = {};  \nmsg.payload.sensor = reading.msg.sensor[0]*1;  \n// This is the temperature of the EnviR base station, not the sensor.\nmsg.payload.temperature = reading.msg.tmpr[0]*1;  \nmsg.payload.watts = reading.msg.ch1[0].watts[0]*1;\n\nreturn msg;  ","outputs":1,"noerr":0,"x":625,"y":161,"wires":[["d8e625b9.46a778"]]},{"id":"d8e625b9.46a778","type":"debug","z":"d1767f1.cc1968","name":"","active":false,"complete":false,"x":805.5,"y":161,"wires":[]},{"id":"2e38cccb.02c6b4","type":"xml","z":"d1767f1.cc1968","name":"","x":466.5,"y":161,"wires":[["1656c54c.43f1eb"]]}]
jpwsutton

Flow Info

created 1 year, 3 months ago

Node Types

Core
  • debug (x1)
  • function (x1)
  • serial in (x1)
  • serial-port (x1)
  • xml (x1)

Tags

  • energy
  • envir
  • currentcost
  • electricity
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option