Démarrer chauffe-eau pour qu'il ait fini à une heure connue

Bonjour à toutes et à tous,

Mon problème

Mon chauffe-eau (standard, à résistance) tourne actuellement heures creuses, pendant la nuit.
Je voudrais faire en sorte, non pas qu’il démarre dès que les heures creuses sont disponibles, comme c’est le cas actuellement via un automatisme qui se déclenche à l’heure des heures creuses. Mais qu’il démarre de façon à ce qu’il ait fini de chauffer pour la fin des heures creuses.

J’ai une sonde de température dans le chauffe-eau, donc je sais quelle est la température actuelle et la température à laquelle il arrête de chauffer.
Je connais aussi la courbe d’élévation en fonction de la température.

Par contre, pour démarrer la création de l’automatisme, je ne sais pas vraiment par quel bout le prendre.
Je voudrais donc vos conseils.

Salut

Si tu connait la température de départ et celle d’arrivée, tu es donc en moyen de déduire le nombre de kWh nécesaire pour atteindre la valeur cible.

Tu connais également la puissance de la résistance donc les kWh nécessaire / puissance te donne un temps.

Ton trigger sera donc finHC - temps de chauffe

Tu fais le calcul à minuit et tu négliges les pertes entre minuit et le début de la chauffe.

Merci pour le tips.
Je ne savais pas qu’il était possible de créer une entité date qui puisse être utilisé comme un trigger…

Bref, voici ce que j’ai fait.
Toute d’abord, j’ai créé une nouvelle entrée date_time que j’ai nommé Heure début chauffe-eau.

Puis j’ai créé 2 automatismes:

  1. Calcul l’heure de démarrage du chauffe-eau :
    A noter que j’ai d’abord calculé la vitesse de monter en température de mon chauffe-eau (0.15°C/min). Ainsi que vérifier la température cible, à savoir valeur max de ma sonde de température quand le chauffe-eau est chargé (68°C).
alias: HC chauffe-eau - Calcul heure démarrage
description: >-
  Calcul l'heure de démarrage du chauffe-eau pour qu'il ait fini de chauffer à
  6h00
triggers:
  - trigger: time
    at: "00:00:45"
actions:
  - variables:
      temperature_actuelle: "{{ states('sensor.esp_buanderie_temperature_chauffe_eau') | float }}"
      temperature_cible: 66
      minute_monte: 0.2
      minutes_necessaires: "{{ ((temperature_cible - temperature_actuelle) / minute_monte) | int }}"
      heure_cible: 360
      heure_debut_minutes: |
        {% if (heure_cible - minutes_necessaires) < 0 %}
          59  # Ne pas démarrer avant minuit , au moins 59 minutes de chauffe
        {% else %}
          {{ heure_cible - minutes_necessaires }}
        {% endif %}
      heure: "{{ (heure_debut_minutes / 60) | int }}"
      minute: "{{ (heure_debut_minutes % 60) | int }}"
      heure_debut: >
        {{ now().replace(hour=heure|int, minute=minute|int, second=0,
        microsecond=0).isoformat() }}
  - target:
      entity_id: input_datetime.heure_debut_chauffe_eau
    data:
      datetime: "{{ heure_debut }}"
    action: input_datetime.set_datetime
mode: single

  1. Démarre le chauffe-eau à l’heure voulue :
alias: HC chauffe-eau - fin à 6h
description: Mise en route du chauffe-eau, pour avoir fini de chauffer à 6h00
triggers:
  - trigger: time
    at: input_datetime.heure_debut_chauffe_eau
actions:
  - action: switch.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: switch.chauffe_eau
mode: single

A noter que pour l’input_datetime, j’ai choisi de considérer une entité date et heure, afin que cette valeur ne soit valable qu’une seule fois. Ainsi, le chauffe-eau ne démarrera pas tous les jours à la même heure.

1 « J'aime »

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.