Bonjour,
perso j'ai un bouton pour activer/désactiver l'automatisation du chauffe eau.
Une jauge pour régler le temps de chauffe minimum qui doit être atteint ( 
déduction du temps de chauffe du routage ) .
Une heure pour régler l'heure de démarrage.
Une automatisation pour le lancement en fonction des paramètres.
Exemple ici, activation à 00:00 pour 3.5h de chauffe.
Les éléments pour refaire la même chose :
Création d'une entrée :
 - input number "CE_TempsChauffe" type curseur, pas 0.25, unité h, mini 1, maxi 5.
dashboard Yaml première ligne (info triac, bouton, heure) : 
Code :
square: false
type: grid
cards:
  - graph: line
    type: sensor
    detail: 1
    entity: sensor.routeur_rms_routeur_rms_duree_triac
    name: H
  - graph: line
    type: sensor
    detail: 1
    entity: sensor.routeur_rms_routeur_rms_ouverture_triac
    name: Triac
  - show_name: true
    show_icon: true
    type: button
    tap_action:
      action: none
    entity: automation.rms_ce
    name: CE nuit
    hold_action:
      action: toggle
    icon: mdi:water-boiler
    show_state: true
  - type: tile
    entity: input_datetime.heurece
    show_entity_picture: false
    vertical: true
    hide_state: false
    icon: mdi:clock-time-eight
    name: Démarrer
grid_options:
  columns: full
  rows: 2
columns: 4
dashboard yaml temps chauffe : 
Code :
type: custom:mushroom-number-card
entity: input_number.ce_tempschauffe
icon_color: light-blue
layout: horizontal
fill_container: true
secondary_info: state
display_mode: slider
name: Tps Chauffe CE
primary_info: name
visibility:
  - condition: state
    entity: automation.rms_ce
    state: "on"
grid_options:
  columns: full
Automatisation : 
Condition supplémentaire ici pour forcer un jour de chauffe complet un jour de semaine choisi, à supprimer pour garder uniquement la chauffe en fonction du paramétrage.
Code :
alias: Rms_ce
description: ""
triggers:
  - at: input_datetime.heurece
    trigger: time
conditions: []
actions:
  - if:
      - condition: template
        value_template: >-
          {{ ( states("input_number.ce_tempschauffe") | float(0) *60 -
          states("sensor.routeur_rms_routeur_rms_duree_triac") | float(0) * 60 )
          | round(0) > 0 }}
      - condition: state
        entity_id: binary_sensor.jourforcagece
        state: "off"
    then:
      - data:
          topic: Triac1
          payload: >-
            {"tOnOff":{{ ( states("input_number.ce_tempschauffe") | float(0) *
            60 - states("sensor.routeur_rms_routeur_rms_duree_triac") | float(0)
            * 60 ) | round(0) }}}
        action: mqtt.publish
    else:
      - if:
          - condition: state
            entity_id: binary_sensor.jourforcagece
            state: "on"
        then:
          - data:
              topic: Triac1
              payload: "{\"tOnOff\": 240 }"
            action: mqtt.publish
mode: single