Non-Invasive Power Meter ======================== .. seo:: :description: Instructions for hacking your power meter at home to measure your power usage. :image: power_meter.jpg So an essential part of making your home smart is knowing how much power it uses over the day. Tracking this can be difficult, often you need to install a completely new power meter which can often cost a bunch of money. However, quite a few power meters have a red LED on the front that blinks every time that one Wh has been used. The simple idea therefore is: Why don't we just abuse that functionality to make the power-meter IoT enabled? We just have to hook up a simple photoresistor in front of that aforementioned LED and track the amount of pulses we receive. Then using ESPHome we can instantly have the power meter show up in Home Assistant 🎉 Hooking it all up is quite easy: Just buy a suitable photoresistor (make sure the wave length approximately matches the one from your power meter). Then connect it using a simple variable resistor divider (see `this article `__ for inspiration). And... that should already be it :) .. figure:: images/power_meter-header.jpg :align: center :width: 80.0% .. note:: Some energy meters have an exposed S0 port (which essentially just is a switch that closes), if that is the case the photodiode can be replaced with the following connection. .. code-block:: S0 ------------ VCC S0 --+-- 10k -- GND . | . +--------- GPIO12 For ESPHome, you can then use the :doc:`pulse counter sensor ` using below configuration: .. code-block:: yaml sensor: - platform: pulse_counter pin: GPIO12 unit_of_measurement: 'kW' name: 'Power Meter' filters: - multiply: 0.06 # (60s/1000 pulses per kWh) Adjust ``GPIO12`` to match your set up of course. The output from the pulse counter sensor is in ``pulses/min`` and we also know that 1000 pulses from the LED should equal 1kWh of power usage. Thus, rearranging the expression yields a proportional factor of ``0.06`` from ``pulses/min`` to ``kW``. And if a technician shows up and he looks confused about what the heck you have done to your power meter, tell them about ESPHome 😉 .. note:: Photoresistors often have a bit of noise during their switching phases. So in certain situations, a single power meter tick can result in many pulses being counted. This effect is especially big on ESP8266s. If you're experiencing this, try enabling the ``internal_filter:`` filter option: .. code-block:: yaml sensor: - platform: pulse_counter # ... internal_filter: 10us See :doc:`/components/sensor/total_daily_energy` for counting up the total daily energy usage with these ``pulse_counter`` power meters. See Also -------- - :doc:`/components/sensor/pulse_counter` - :ghedit:`Edit`