/watz

✅ A WiFi smart meter / pulse counter built upon a Particle Photon.

Primary LanguageC++GNU General Public License v2.0GPL-2.0

watz energy monitor

watz

About

watz is a WiFi smart meter / pulse counter. It mounts to the LED on your electricity meter and measures the number of pulses in a given time period. This is used to generate real time power information. This data is periodically pushed to the Particle cloud and can be subscribed to via server-sent events.

The events are:

  • watz - pushed every 10 minutes, contains a kW reading and a pulse count
  • watzup - pushed every time 1000 pulses are detected to allow tracking of the meter total
  • watzbatt - pushed every 10 minutes and uses the official power shield to grab batter information

To log the data I am using the hosted emoncms service. I relay the data via Node-RED on a Raspberry Pi using the Particle and emoncms nodes:

watz node red

When the kW data arrives with emoncms you will need to multiply it by 1000 to get the current watts value. After a bit of tweaking your electricity dashboard should looks something like this:

watz data in a graph

Issues/Problems/Questions? Open a GitHub issue. You can also contact me via scott.ee or twitter (@scottsweb).

Hardware

Circuit

watz breadboard made with Fritzing

The included watz.fzz file can be opened in Fritzing. Replace the transistor with the TSL251R-LF. Version 2.0 of the code the board requires the Photon and the TSL251R-LF to be attached to the WKP pin to bring the board out of deep sleep.

Installation

Copy the contents of watz.ino into the Particle Build IDE and flash your Photon.

Further Reading

Changelog

2.0

  • Upgraded to Photon board
  • Added support for Power Shield
  • Battery life monitoring
  • Deep sleeping to improve battery performance
  • SEMI_AUTOMATTIC to have better control over cloud connection

1.0

  • Initial release