Pilotage intelligent d’un chauffe-eau avec Shelly + Home Assistant

:bullseye: 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.

:gear: 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.

  • :puzzle_piece: Fonctionnement général

    1. Le Shelly Plus 1 reçoit le signal HP/HC sur son entrée SW.

    2. Il pilote la bobine du contacteur, qui alimente ou coupe le chauffe-eau.

    3. Le module Add-on (branché sur le Shelly) lit la température via la sonde DS18B20 placée dans le puits du ballon.

    4. 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.

        :thermometer: Sécurité température

        Une 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
    
    

:sun: 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

:stopwatch: 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

:electric_plug: 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.

:backhand_index_pointing_right: 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 ^^

Bonjour,

J’ai un projet équivalent, après l’installation de 2kw de panneau l’année dernière, et un chauffe eau thermor 300l aci hybride…

J’ai commencé par l’installation d’un Shelly pro 3em pour suivre la consommation et l’injection.

Je pensais commander le relais du chauffe eau en mettant en parallèle la commande HC EDF et un contact Shelly 1 mjni gen3.

Ainsi le relais est déclenché par EDF ou home assistant.

J’ai prévu d’ajouter 2 panneaux pour avoir 3kw au total, mais je me pose la question du déclenchement par le home assistant.

A quelle puissance de reinjection devrais-je déclencher le relais ?

A 1500 w ? 2000 W

Merci par avance