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