attiny85 powered kWh-meter-meter and 1-wire host

At Revelation Space we wanted some insight into our powerusage. After a few prototypes on arduino’s I ended up building a small board powered by an attiny85.

In later revisions I added a Dallas/Maxim 1-Wire bus that will read out DS18B20 temperature sensors, so I could monitor the temperature of the server that was logging the data (it didn’t have any supported sensors).

The schema shows the attiny85, the programming header (non-standard pinout ISP header) and used parts.

The LED will blink for every received pulse, so you can verify this with the original meter. I made the connection to the LDR as a 2-pin jumper-block, so I could easily disconnect the LDR, which is connected to a long cable so it can reach the led on the kWh-meter.

JP1 on the schema is the 1-Wire bus. I ended up using just the 2-pin version. On my board I terminated this on a 8×2 pin female header.

The final board:

The kWh-meter I am monitoring blinks a led a number of times per kW used. In this case it blinks 1000 times per kW, but I have seen other meters that blink 400, 480, 600 and 1000 times. This is usually documented somewhere on the meter itself.

It looks somewhat like this one:

The trick is to attach an LDR in front of the LED on the meter, and then read out the data using an analog port on the attiny. Make sure to blank out any outside light that can hit the LDR using black tape.

The code for the attiny can be found on my Github

The last components are rrdtool to make graphs and a perl script to log data from the (serial) attiny and pipe the data to rrdtool. Rrdtool and perl code can also be found on github.

After a few days of logging you should have a good insight into your power usage:

If your kWh-Meter uses a rotating disc, Juerd has a nice design that works with those meters. It’s based on an arduino and uses 7-segment displays to give a live insight into the used wattage.