Objectif du montage
Ce projet permet d’automatiser complètement la gestion d’un chauffe-eau électrique en combinant :
le Shelly Plus 1 (commande du contacteur),
le module Add-on (mesure de température),
une sonde DS18B20,
et une intégration Home Assistant.
L’objectif : chauffer uniquement quand c’est utile — en heures creuses ou lors d’un surplus solaire — et éviter la surchauffe grâce à une coupure automatique à 64 °C.
Matériel utilisé
-
Shelly Plus 1 : commande le contacteur 20 A du chauffe-eau (bornes A1/A2).
-
Shelly Plus Add-on : module d’extension connecté au Shelly pour accueillir des capteurs.
-
Sonde DS18B20 : mesure la température réelle de l’eau dans le ballon.
-
Contacteur jour/nuit 20 A : intercale la puissance du chauffe-eau.
-
Entrée HP/HC EDF : signal venant du compteur, branché sur l’entrée SW du Shelly.
-
Home Assistant : centralise la logique d’automatisation.
-
Fonctionnement général-
Le Shelly Plus 1 reçoit le signal HP/HC sur son entrée SW.
-
Il pilote la bobine du contacteur, qui alimente ou coupe le chauffe-eau.
-
Le module Add-on (branché sur le Shelly) lit la température via la sonde DS18B20 placée dans le puits du ballon.
-
Home Assistant supervise le tout et décide :
-
d’activer le chauffe-eau pendant les Heures Creuses,
-
ou de lancer la chauffe en cas de surplus solaire (> 1 kW export réseau),
-
et de couper automatiquement dès que la température atteint 64 °C.
Sécurité températureUne automatisation coupe le chauffe-eau dès que la température reste ≥ 64 °C pendant 5 minutes :
-
-
-
trigger: - platform: numeric_state entity_id: sensor.shellyplus1_temperature above: 64 for: "00:05:00" action: - service: switch.turn_off target: entity_id: switch.chauffe_eau
Gestion solaire
Si la production solaire excède un certain seuil (ex. 3,1 kW export), le chauffe-eau se met en marche :
alias: Chauffe-eau ON si Export>3kWh
description: ""
triggers:
- trigger: time_pattern
seconds: "1"
conditions:
- condition: state
entity_id: switch.shellyplus1_xxxxxxxxxxxxxxxxxxx_switch_0
state: "off"
- condition: numeric_state
entity_id: sensor.grid_export_power
above: 3.1
actions:
- action: notify.mobile_app_iphone
metadata: {}
data:
message: Allumage Chauffe eau !
- action: switch.turn_on
metadata: {}
data: {}
target:
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
mode: single
Et il s’arrête automatiquement si :
-
le surplus retombe sous 0,05 kW, ou
-
la température atteint 64 °C (avec la 1er automatisation faite)
alias: Chauffe-eau OFF si Export<0,5kWh
description: ""
triggers:
- trigger: time_pattern
seconds: "59"
conditions:
- condition: state
entity_id: switch.shellyplus1_xxxxxxxxxxxx_switch_0
state: "on"
- condition: numeric_state
entity_id: sensor.grid_export_power
below: 0.05
actions:
- action: notify.mobile_app_iphone
metadata: {}
data:
message: Extinction Chauffe Eau !
- action: switch.turn_off
metadata: {}
data: {}
target:
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
mode: single
Gestion Heures Creuses / Pleines
Le signal EDF (borne C1/C2 du compteur) est relié à l’entrée SW du Shelly.
Un capteur virtuel traduit cet état :
template:
- sensor:
- name: "Heures EDF"
state: >
{% if is_state('binary_sensor.shellyplus1_input_0','on') %}
Heures Creuses
{% else %}
Heures Pleines
{% endif %}
alias: C001 - Active Chauffe eau HC booléen
description: ""
triggers:
- type: temperature
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
entity_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
domain: sensor
trigger: device
below: 25
conditions:
- condition: state
entity_id: input_boolean.chauffe_eau_hc
state: "off"
actions:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.chauffe_eau_hc
- action: notify.mobile_app_iphone
metadata: {}
data:
message: Activation Chauffe eau HC !
mode: single
alias: C002 - Désactive eau forcé HC
description: ""
triggers:
- type: temperature
device_id: 108e83bfb270bfd47111198bb86b1b81
entity_id: cbb7152d52eb1c62496576543197e367
domain: sensor
trigger: device
above: 50
conditions:
- condition: state
entity_id: input_boolean.chauffe_eau_hc
state: "on"
actions:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.chauffe_eau_hc
- action: notify.mobile_app_iphone
metadata: {}
data:
message: Arret mode chauffe HC !
mode: single
alias: C003 - Chauffe eau HC
description: ""
triggers:
- trigger: state
entity_id:
- input_boolean.chauffe_eau_hc
from: null
to: "on"
conditions:
- condition: state
entity_id: binary_sensor.shellyplus1_xxxxxxxxxxxxxxxxxxx_input_0
state: "on"
- condition: sun
before: sunrise
after: sunset
actions:
- type: turn_on
device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
entity_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
domain: switch
- action: notify.mobile_app_iphone
metadata: {}
data:
message: Allumage du Chauffe eau en HC !!
mode: single
Le module Add-on : la clé de la mesure
Le Shelly Plus Add-on se clipse directement sur le Shelly Plus 1 et ajoute :
-
3 entrées pour sondes DS18B20,
-
une sortie de référence pour capteurs analogiques,
-
et une lecture native dans l’interface Shelly et Home Assistant.
C’est ce module qui permet de mesurer la température réelle de l’eau sans matériel supplémentaire.
Note : J’ai positionné la sonde dans le “puit” avec la sonde thermostatique de sécurité du chauffe eau (ATTENTION OPPERATION A FAIRE AVEC SOIN)
Sans lui, le Shelly Plus 1 ne pourrait pas lire la sonde DS18B20.
Branchement typique :
| Fils sonde | Add-on |
|---|---|
| Rouge | VCC |
| Jaune | DATA |
| Noir | GND |
Mon rendu visuel dans home assistant pour contrôler que tout fonctionne bien.
Si vous avez des questions n’hésitez pas !
J’espère que ce tuto vous sera utile ^^

