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

1 « J'aime »