Ceux qui avaient lu mes articles précédents consacrés à Schedy ont du remarquer que j'avais introduit un mode BOOST qui permettait de débrayer la planification pendant n minutes et ainsi forcer le thermostat d'une pièce pensant x minutes à une température choisie. Dans la pratique on s'aperçoit que ce mode n'a d'intérêt que dans la salle de bain si l'on déroge aux horaires habituel. Et c'est particulièrement mon cas car je n'ai pas d'horaires figés et je peux très bien avoir envie de me doucher à 3 heures du mat avant de me coucher après avoir végété sur mon canapé face au dernier épisode de la série du moment...
Ma salle de bain est donc toujours en ECO et j'ai créé une automation basée sur un timer:
qui va faire le déroulé dès lors qu'il sera lancé. Je démarre le timer directement avec un bouton de télécommande via ControllerX, mais il est également possible de configurer ça dans la liste des triggers. La durée du boost est contenue dans un input_nuber:
aqara_button:
module: controllerx
class: WXKG11LMRemoteLightController
controller: 00:15:8d:00:01:e7:d5:24
integration:
name: deconz
listen_to: unique_id
light: light.off
mapping:
1002:
service: timer.finish
entity_id: timer.shower
1004:
service: timer.start
data:
duration: "{{ states('input_number.sdb_boost_time') | int * 60 }}"
entity_id: timer.shower
Ensuite la liste des courses...
timer:
shower:
name: Boost SdB
input_number:
sdb_boost_good:
name: Boost Good
min: 20
max: 25
step: 0.5
unit_of_measurement: °C
sdb_boost_max:
name: Boost Max
min: 23
max: 28
step: 0.5
unit_of_measurement: °C
sdb_boost_time:
name: Boost Time
min: 15
max: 90
step: 5
Et ensuite l'automation avec un choose:
avec des actions conditionnées par les id:
des trigger:
, avec pour objectif de :
- Au démarrage du timer on passe le thermostat du sèche serviette sur BOOST et on allume le radiateur soufflant et on l'annonce.
- Si le timer est démarré et que la température de confort est atteinte on l'annonce sur une enceinte Sonos. A la douche !
- Si la durée du timer est terminée ou que la température maximum est atteinte on éteint le radiateur soufflant et on repasse le sèche serviette en mode ECO.
- id : 'c88f056d-8bbc-40ff-a044-a3b1b733e3c8'
alias: "RC : Boost SdB"
description: "Boost SdB by chooser"
trigger:
- platform: numeric_state
entity_id: sensor.rpi_mi_t_sdb
above: input_number.sdb_boost_good
id: "t_good"
- platform: numeric_state
entity_id: sensor.rpi_mi_t_sdb
above: input_number.sdb_boost_max
id: "tmax"
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.shower
id: "timer.finished"
- platform: event
event_type: timer.started
event_data:
entity_id: timer.shower
id: "timer.started"
condition: []
action:
- choose:
- conditions: # Condition n°1
- condition: trigger
id: "timer.started"
sequence:
- service: climate.set_preset_mode
data:
preset_mode: boost
target:
entity_id: climate.thermostat_salle_de_bain
- service: switch.turn_on
entity_id: switch.plug_bw_01
- service: tts.cloud_say
entity_id: media_player.sonos_cloud_hall
data_template:
message: "Préparation de la salle de bain. Je vous dirait quand vous pourrez vous doucher !"
cache: 'false'
- conditions: # Condition n°2
- condition: and
conditions:
- condition: trigger
id: "timer.started"
- condition: trigger
id: "t_good" # On annonce que la température de confort+ est atteinte
sequence:
- service: tts.cloud_say
entity_id: media_player.sonos_cloud_hall
data_template:
message: "La température de la salle de bain est de {{states('sensor.rpi_mi_t_sdb')}}°, vous pouvez vous doucher !"
cache: 'false'
- conditions: # Condition n°3
- condition: or
conditions:
- condition: trigger
id: "timer.finished" # On arrete de chauffage à la fin du timer
- condition: trigger
id: "t_max" # On arrete le chauffage si la température max est atteinte.
sequence:
- service: switch.turn_off
entity_id: switch.plug_bw_01
- service: climate.set_preset_mode
data:
preset_mode: eco
target:
entity_id: climate.thermostat_salle_de_bain
- service: tts.cloud_say
entity_id: media_player.sonos_cloud_hall
data_template:
message: "Fin du chauffage de la salle de bain. A bientôt !"
cache: 'false'
default:
Rien d'extraordinaire et tout ça reste à affiner selon les besoin de chacun. On peut également ajouter une condition à cette automation pour qu'elle ne s'exécute qu'en hiver en se basant que l'intégration Season. En même temps les saisons ça ne veut plus dire grand chose, donc dans la pratique il vaudra mieux avoir quelque part un input_boolean:
qui globalement autorisera ou non les fonctions liés au chauffage. Pour l'anecdote (vécue) ça évitera, que comme la semaine dernière (fin mai), la condition 2 n'annonce à la femme de ménage qu'elle peut se doucher...
A noter que si comme moi vous comptez remplacer Schedy par une automation du genre de ce dont j'ai parlé ici, il faudra prévoir de débrayer l'automatisme en le passant en manuel dans la condition 1 et en automatique dans la condition 3.
- service: input_select.set_options
data:
options: Automatique
target:
entity_id: input_select.comfort_sdb
Voilà !