Skip to content
frtz13 edited this page Mar 27, 2023 · 19 revisions

Energy Router

How it works

The energy meter is supposed to make power consumption information available via an MQTT broker or, as a Sensor in Home Assistant.

The Energy Router, a script running in the background, monitors power measured by the energy meter. When power is injected into the public power grid (i.e. power measurement becomes negative), the Energy Router communicates with a Dimmer device, which gradually sends power to a water heater, thus reducing the power injected into the public power grid. A closed regulation loop keeps the injected power as low as possible, reacting permanently to the fluctuations in power consumption and power production.

The Energy Router is a python script...

  • either running inside the Home Assistant AppDaemon environment.

  • or running as a standalone program, typically running in the background on your home automation computer (which probably also runs the MQTT broker and your Home Assistant instance).

Which one to choose?

  • If you run Home Assistant on top of Home Assistant OS, AppDaemon will be your friend.

  • If you are using Home Assistant Supervised, both options are possible.

  • If you are using some other kind or home automation system, the standalone version is the only choice.

The Dimmer device is composed of a ESP8266 micro controller and a RobotDyn dimmer. The micro controller receives commands from the Energy Router via the MQTT broker.

Grid power measurement

The energy meter should send the measurement of the consumed/injected power as a payload to the MQTT broker, or should make it available as a Sensor in Home Assistant.

If this task is performed by a Shelly EM, it should be configured to send measurements to the MQTT broker. On the web page of the Shelly EM, go to Internet and Security, Advanced - Developer settings.

The power reading should be positive for consumed power, negative for injected power.

The Dimmer device

Choose a RobotDyn AC dimmer board which can handle the amount of current consumed by the water heater (recommended: the 600V / 24A version).

The ESPHome code for the ESP8266 micro controller (waterheater-dimmer.yaml) and the wiring diagram (dimmer-wiring.pdf) are available in this repository.

The ESPHome code includes a watchdog, which will switch off the dimmer if the Router is not running, i.e. the ESP8266 does not regularly receive a new payload on the "power" topic.

Behind the dimmer, you can see the 5V power supply board, salvaged from an old telephone charger.

A note about heat dissipation: if you have a water heater load of 2kW, there will be about 10W of heat generated by the triac. The radiator mounted on the board will be too small to dissipate this amount of heat on its own. Either add a small 5V fan switched on by a bi-metal switch, or mount the triac on a bigger heat sink.