Introduction: Domotize Your Water Heater With Shelly1pm

Hello everyone,

First of all, I will explain my motivation for home automation of my water heater. Following an analysis of its operation, I observed a longer operating time than necessary. In addition, my water heater also works even if we are on vacation. There were therefore savings to be made. For information, my water heater has a capacity of 300 liters, and a 3000 watts of power.

Step 1: Current Operation of the Water Heater

My water heater is currently wired on a contactor which is powered by a 20A circuit breaker. This contactor is controlled by my off-peak information which is triggered by my electricity supplier (EDF). My off-peak hours are from 10:30 p.m. to 6:30 a.m.

Step 2: Necessary Material

This domotization requires very little equipment. Shelly 1 PM, a DS18B20 probe, and for my part my jeedom home automation box (Raspberry pi 4b) to which my DS18B20 probe will be connected. It is also possible to use a Temperature Sensor Addon for Shelly 1 / 1PM to interpret the temperature of the water heater.

Step 3: Installation of the DS18B20 Probe

I simply inserted my probe into the insulating part of my water heater, as close as possible to the thermostat.

Step 4: SHELLY 1 PM Wiring

0: phase water heater power supply

SW: off-peak contact (for information)

L: Shelly1pm phase power supply

L1: nothing

N: Shelly1pm neutral power supply

IMPORTANT, it is 220volts, these operations are to be performed with the circuit breaker.

Once stalled, you can restore the electrical current. You can now include the Shelly 1 PM in your Wifi network via the Shelly mobile application (I do not detail this operation, the Shelly application is very easy to use).

Step 5: MQTT Setting

Once this is done, I would use the MQTT to control my Shelly, just access the Shelly interface with its IP address, go to Internet & Security / ADVANCED - DEVELOPER SETTINGS, then check Enable action execution via MQTT. Fill Username, Password and Server with the correct port (1883 normally).

Step 6: Creation of the Shelly Under Jeedom.

For the interpretation of Mqtt on my Jeedom, I use the Jmqtt plugin, so I create my Shelly1pm under it with its topic corresponding to its serial number (information found under DEVICE INFO with the Shelly web interface) .

Step 7: Creation of on and OFF Commands

I create both On and Off commands to control my Shelly1pm.

We will turn on my heating, Off will turn it off. As simple ...

Step 8: Analysis of Operation Before Home Automation

As a reminder, the basic operation of my water heater is to turn on at 10:30 p.m. with the off-peak contact and to turn off at 6:30 a.m. at the end of it.

After having wired my DS18B20 probe and my SHELLY 1 PM I monitored my temperature rise and the time necessary for a complete heating of my water heater. Analysis carried out for a week, thanks to the SHELLY 1PM power control. I noticed that my balloon heated from 10:30 p.m. to 3:30 a.m., then 3 times 30 minutes (to maintain the heating instruction) until 6:30 a.m. A total of 6 hours.

So I have 1 hour and a half of unnecessary daily heating, because the real need for heating is 4 hours and 30 minutes.

Step 9: Domotization of My Water Heater

Now that everything is wired and that I have the necessary information, I can create a heating agenda which will start at 1:30 am (I left 30 minutes of security from 6:00 am to 6:30 am). With this I save 1 hour 30 minutes of heating at 3000 watts per day, which represents a gain of 200 € annually for my part ...

Our presence being managed by my Jeedom box, I have a scenario which manages the triggering of the water heater, if in Absent mode, no need to heat up. Then it is also possible with other scenarios to manage the heating time depending on the temperature ... the possibilities are endless.