- alias: HMIGarage - all-in-one automation description: '- Interprète les events en provenance du HMI - Regénère la liste de station radio (à chaque fois que l''automatisation est déclenchée) - Augmente/diminue la luminosité de l''écran selon détection de présence - Éxécute le LCD antiburn à tous les jours.' triggers: - trigger: state entity_id: - event.hmi_garage_media_events id: trigger_id_button_pressed - trigger: state entity_id: - binary_sensor.ademcointerposer_garage id: trigger_id_presence_increase_backlight_brightness to: 'on' - trigger: state entity_id: - binary_sensor.ademcointerposer_garage id: trigger_id_presence_decrease_backlight_brightness to: 'off' for: hours: 0 minutes: 5 seconds: 0 - trigger: time at: 04:00:00 id: trigger_id_lcd_antiburn_daily alias: Lancer le LCD Antiburn tous les matin à 4h00 conditions: [] actions: - action: script.turn_on metadata: {} data: {} target: entity_id: script.generate_station_list alias: Regénérer la liste de stations radio - alias: Si un bouton a été actionné sur le HMI if: - condition: trigger id: - trigger_id_button_pressed then: - choose: - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_radio sequence: - if: - condition: state entity_id: binary_sensor.hmigarage_radio_is_currently_playing state: 'on' then: - action: input_select.select_next metadata: {} data: cycle: true target: entity_id: input_select.mass_radio_station_list alias: Si le lecteur est déjà en train de jouer une radio, passer à la prochaine station. - action: music_assistant.play_media metadata: {} data: media_type: radio enqueue: play media_id: '{{ states(''input_select.mass_radio_station_list'') }}' target: entity_id: media_player.mass_garage alias: Lire la station sélectionnée dans la liste alias: Si Bouton Radio est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_next_track sequence: - if: - condition: state entity_id: binary_sensor.hmigarage_radio_is_currently_playing state: 'on' then: - action: input_select.select_next metadata: {} data: cycle: true target: entity_id: input_select.mass_radio_station_list - action: music_assistant.play_media metadata: {} data: media_type: radio enqueue: play media_id: '{{ states(''input_select.mass_radio_station_list'') }}' target: entity_id: media_player.mass_garage alias: Lire la station sélectionnée dans la liste else: - action: media_player.media_next_track metadata: {} data: {} target: entity_id: media_player.mass_garage alias: Si une station de radio est en train de jouer, jouer la prochaine station dans la liste. Sinon, jouer la prochaine piste audio. alias: Si Bouton "piste suivante" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_previous_track sequence: - alias: Si une station de radio est en train de jouer, jouer la précédente station dans la liste. Sinon, jouer la précédente piste audio. if: - condition: state entity_id: binary_sensor.hmigarage_radio_is_currently_playing state: 'on' then: - action: input_select.select_previous metadata: {} data: cycle: true target: entity_id: input_select.mass_radio_station_list - action: music_assistant.play_media metadata: {} data: media_type: radio enqueue: play media_id: '{{ states(''input_select.mass_radio_station_list'') }}' target: entity_id: media_player.mass_garage alias: Lire la station sélectionnée dans la liste else: - action: media_player.media_previous_track metadata: {} data: {} target: entity_id: media_player.mass_garage alias: Si Bouton "piste précédente" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist1 sequence: [] alias: Si Bouton "playlist1" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist2 sequence: [] alias: Si Bouton "playlist2" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist3 sequence: [] alias: Si Bouton "playlist3" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist4 sequence: [] alias: Si Bouton "playlist4" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_mute sequence: - alias: Basculer l'état sourdine selon l'état actuel du lecteur if: - alias: Si le lecteur n'est pas présentement en sourdine condition: state entity_id: media_player.mass_garage attribute: is_volume_muted state: false then: - action: media_player.volume_mute metadata: {} data: is_volume_muted: true target: entity_id: media_player.mass_garage alias: Mettre en sourdine le lecteur else: - action: media_player.volume_mute metadata: {} data: is_volume_muted: false target: entity_id: media_player.mass_garage alias: Retirer la sourdine du lecteur alias: Si Bouton Mute est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_play_pause sequence: - action: media_player.media_play_pause metadata: {} data: {} target: entity_id: media_player.mass_garage alias: Si Bouton "Play/Pause" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_repeat sequence: - choose: - conditions: - condition: state entity_id: media_player.mass_garage attribute: repeat state: 'off' sequence: - action: media_player.repeat_set metadata: {} data: repeat: one target: entity_id: media_player.mass_garage alias: Définir "Répéter une fois" alias: Si Répéter est "off", activer le mode "Répéter une fois" - conditions: - condition: state entity_id: media_player.mass_garage attribute: repeat state: one sequence: - alias: Définir "Répéter une fois" action: media_player.repeat_set metadata: {} data: repeat: all target: entity_id: media_player.mass_garage alias: Si Répéter est "Répéter une fois", activer le mode "Répéter tout" - conditions: - condition: state entity_id: media_player.mass_garage attribute: repeat state: all sequence: - alias: Définir "Répéter une fois" action: media_player.repeat_set metadata: {} data: repeat: 'off' target: entity_id: media_player.mass_garage alias: Si Répéter est "Répéter tout", désactiver le mode "Répéter" alias: Si Bouton "Repeat" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_shuffle sequence: - alias: Basculer l'état "shuffle" selon l'état actuel du lecteur if: - condition: state entity_id: media_player.mass_garage attribute: shuffle state: false then: - action: media_player.shuffle_set metadata: {} data: shuffle: true target: entity_id: media_player.mass_garage else: - action: media_player.shuffle_set metadata: {} data: shuffle: false target: entity_id: media_player.mass_garage alias: Si Bouton "Aléatoire" est actionné sur le HMI - alias: Augmenter la luminostié de l'écran quand une présence est détectée. Désactiver LCD Antiburn pré-emptivement. if: - condition: trigger id: - trigger_id_presence_increase_backlight_brightness then: - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.hmigarage_lcd_antiburn - action: light.turn_on metadata: {} data: brightness_pct: 100 target: entity_id: light.hmigarage_backlight_brightness alias: Luminosité de l'écran à 100% - alias: Réduire la luminostié de l'écran quand aucune présence n'est détectée if: - condition: trigger id: - trigger_id_presence_decrease_backlight_brightness then: - alias: Luminosité de l'écran à 20% action: light.turn_on metadata: {} data: brightness_pct: 20 target: entity_id: light.hmigarage_backlight_brightness - alias: Éxécuter le LCD Antiburn pour 10 minutes if: - condition: trigger id: - trigger_id_lcd_antiburn_daily then: - action: switch.turn_on metadata: {} data: {} target: entity_id: switch.hmigarage_lcd_antiburn - delay: hours: 0 minutes: 10 seconds: 0 milliseconds: 0 - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.hmigarage_lcd_antiburn mode: single - alias: Garage - Démarrer timer de figer l'état des lumières description: '' triggers: - trigger: state entity_id: - input_boolean.figer_l_etat_des_lumieres_du_garage id: trigger_id_start_stop - trigger: state entity_id: - timer.timer_de_figer_les_lumieres_du_garage to: idle id: trigger_id_timer_expired - trigger: state entity_id: - input_button.figer_les_lumieres_garage_ajouter_1_heure - input_button.figer_les_lumieres_garage_soustraire_1_heure - input_button.figer_les_lumieres_garage_ajouter_10_minutes - input_button.figer_les_lumieres_garage_soustraire_10_minutes alias: Lorsqu'on ajoute/soustrait du temps durant l'éxécution id: trigger_id_add_sub_time conditions: [] actions: - choose: - conditions: - condition: trigger id: - trigger_id_start_stop alias: Si déclenché par un changement de l'activation du mode "figer". sequence: - alias: Activer le timer si le mode "figer" est actif. Sinon désactiver le timer. if: - condition: state entity_id: input_boolean.figer_l_etat_des_lumieres_du_garage state: 'on' then: - action: timer.start metadata: {} data: duration: '{{ state_attr(''input_datetime.temps_pour_figer_les_lumieres_du_garage'', ''timestamp'' ) | int }}' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage else: - action: timer.finish metadata: {} data: {} target: entity_id: timer.timer_de_figer_les_lumieres_du_garage - conditions: - alias: Si le timer est maintenant inactif condition: trigger id: - trigger_id_timer_expired sequence: - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.figer_l_etat_des_lumieres_du_garage alias: Désactiver le mode figer - conditions: - condition: trigger id: - trigger_id_add_sub_time sequence: - alias: Modifier le temps d'éxécution si le timer est actif. Sinon modifier le temps total d'éxécution. if: - condition: state entity_id: timer.timer_de_figer_les_lumieres_du_garage state: active enabled: true then: - choose: - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_1_heure'' }}' alias: Le bouton "Ajouter 1 heure" à été activé. sequence: - action: timer.start metadata: {} data: duration: '{{ (state_attr(''timer.timer_de_figer_les_lumieres_du_garage'', ''finishes_at'') | as_datetime - now() + timedelta(hours=1)).total_seconds() | round(0) }}' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut ajouter 1 heure - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_1_heure'' }}' alias: Le bouton soustraire 1 heure à été activé. sequence: - action: timer.change metadata: {} data: duration: '-3600' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut soustraire 1 heure - conditions: - alias: Le bouton "Ajouter 10 minutes" à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_10_minutes'' }}' sequence: - action: timer.start metadata: {} data: duration: '{{ (state_attr(''timer.timer_de_figer_les_lumieres_du_garage'', ''finishes_at'') | as_datetime - now() + timedelta(minutes=10)).total_seconds() | round(0) }}' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut ajouter 10 minutes - conditions: - alias: Le bouton soustraire 10 minutes à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_10_minutes'' }}' sequence: - action: timer.change metadata: {} data: duration: '-600' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut soustraire 10 minutes else: - choose: - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_1_heure'' }}' alias: Le bouton "Ajouter 1 heure" à été activé. sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) + timedelta(hours=1)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut ajouter 1 heure - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_1_heure'' }}' alias: Le bouton soustraire 1 heure à été activé. sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) - timedelta(hours=1)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut soustraire 1 heure - conditions: - alias: Le bouton "Ajouter 10 minutes" à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_10_minutes'' }}' sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) + timedelta(minutes=10)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut ajouter 10 minutes - conditions: - alias: Le bouton soustraire 10 minutes à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_10_minutes'' }}' sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) - timedelta(minutes=10)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut soustraire 10 minutes alias: Si on ajoute/soustrait du temps pendant que le timer est actif mode: single - alias: HMIGarage - all-in-one automation description: '- Interprète les events en provenance du HMI - Regénère la liste de station radio (à chaque fois que l''automatisation est déclenchée) - Augmente/diminue la luminosité de l''écran selon détection de présence - Éxécute le LCD antiburn à tous les jours.' triggers: - trigger: state entity_id: - event.hmi_garage_media_events id: trigger_id_button_pressed - trigger: state entity_id: - binary_sensor.ademcointerposer_garage id: trigger_id_presence_increase_backlight_brightness to: 'on' - trigger: state entity_id: - binary_sensor.ademcointerposer_garage id: trigger_id_presence_decrease_backlight_brightness to: 'off' for: hours: 0 minutes: 5 seconds: 0 - trigger: time at: 04:00:00 id: trigger_id_lcd_antiburn_daily alias: Lancer le LCD Antiburn tous les matin à 4h00 conditions: [] actions: - action: script.turn_on metadata: {} data: {} target: entity_id: script.generate_station_list alias: Regénérer la liste de stations radio - alias: Si un bouton a été actionné sur le HMI if: - condition: trigger id: - trigger_id_button_pressed then: - choose: - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_radio sequence: - if: - condition: state entity_id: binary_sensor.hmigarage_radio_is_currently_playing state: 'on' then: - action: input_select.select_next metadata: {} data: cycle: true target: entity_id: input_select.mass_radio_station_list alias: Si le lecteur est déjà en train de jouer une radio, passer à la prochaine station. - action: music_assistant.play_media metadata: {} data: media_type: radio enqueue: play media_id: '{{ states(''input_select.mass_radio_station_list'') }}' target: entity_id: media_player.mass_garage alias: Lire la station sélectionnée dans la liste alias: Si Bouton Radio est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_next_track sequence: - if: - condition: state entity_id: binary_sensor.hmigarage_radio_is_currently_playing state: 'on' then: - action: input_select.select_next metadata: {} data: cycle: true target: entity_id: input_select.mass_radio_station_list - action: music_assistant.play_media metadata: {} data: media_type: radio enqueue: play media_id: '{{ states(''input_select.mass_radio_station_list'') }}' target: entity_id: media_player.mass_garage alias: Lire la station sélectionnée dans la liste else: - action: media_player.media_next_track metadata: {} data: {} target: entity_id: media_player.mass_garage alias: Si une station de radio est en train de jouer, jouer la prochaine station dans la liste. Sinon, jouer la prochaine piste audio. alias: Si Bouton "piste suivante" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_previous_track sequence: - alias: Si une station de radio est en train de jouer, jouer la précédente station dans la liste. Sinon, jouer la précédente piste audio. if: - condition: state entity_id: binary_sensor.hmigarage_radio_is_currently_playing state: 'on' then: - action: input_select.select_previous metadata: {} data: cycle: true target: entity_id: input_select.mass_radio_station_list - action: music_assistant.play_media metadata: {} data: media_type: radio enqueue: play media_id: '{{ states(''input_select.mass_radio_station_list'') }}' target: entity_id: media_player.mass_garage alias: Lire la station sélectionnée dans la liste else: - action: media_player.media_previous_track metadata: {} data: {} target: entity_id: media_player.mass_garage alias: Si Bouton "piste précédente" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist1 sequence: [] alias: Si Bouton "playlist1" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist2 sequence: [] alias: Si Bouton "playlist2" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist3 sequence: [] alias: Si Bouton "playlist3" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_playlist4 sequence: [] alias: Si Bouton "playlist4" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_mute sequence: - alias: Basculer l'état sourdine selon l'état actuel du lecteur if: - alias: Si le lecteur n'est pas présentement en sourdine condition: state entity_id: media_player.mass_garage attribute: is_volume_muted state: false then: - action: media_player.volume_mute metadata: {} data: is_volume_muted: true target: entity_id: media_player.mass_garage alias: Mettre en sourdine le lecteur else: - action: media_player.volume_mute metadata: {} data: is_volume_muted: false target: entity_id: media_player.mass_garage alias: Retirer la sourdine du lecteur alias: Si Bouton Mute est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_play_pause sequence: - action: media_player.media_play_pause metadata: {} data: {} target: entity_id: media_player.mass_garage alias: Si Bouton "Play/Pause" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_repeat sequence: - choose: - conditions: - condition: state entity_id: media_player.mass_garage attribute: repeat state: 'off' sequence: - action: media_player.repeat_set metadata: {} data: repeat: one target: entity_id: media_player.mass_garage alias: Définir "Répéter une fois" alias: Si Répéter est "off", activer le mode "Répéter une fois" - conditions: - condition: state entity_id: media_player.mass_garage attribute: repeat state: one sequence: - alias: Définir "Répéter une fois" action: media_player.repeat_set metadata: {} data: repeat: all target: entity_id: media_player.mass_garage alias: Si Répéter est "Répéter une fois", activer le mode "Répéter tout" - conditions: - condition: state entity_id: media_player.mass_garage attribute: repeat state: all sequence: - alias: Définir "Répéter une fois" action: media_player.repeat_set metadata: {} data: repeat: 'off' target: entity_id: media_player.mass_garage alias: Si Répéter est "Répéter tout", désactiver le mode "Répéter" alias: Si Bouton "Repeat" est actionné sur le HMI - conditions: - condition: state entity_id: event.hmi_garage_media_events attribute: event_type state: button_shuffle sequence: - alias: Basculer l'état "shuffle" selon l'état actuel du lecteur if: - condition: state entity_id: media_player.mass_garage attribute: shuffle state: false then: - action: media_player.shuffle_set metadata: {} data: shuffle: true target: entity_id: media_player.mass_garage else: - action: media_player.shuffle_set metadata: {} data: shuffle: false target: entity_id: media_player.mass_garage alias: Si Bouton "Aléatoire" est actionné sur le HMI - alias: Augmenter la luminostié de l'écran quand une présence est détectée. Désactiver LCD Antiburn pré-emptivement. if: - condition: trigger id: - trigger_id_presence_increase_backlight_brightness then: - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.hmigarage_lcd_antiburn - action: light.turn_on metadata: {} data: brightness_pct: 100 target: entity_id: light.hmigarage_backlight_brightness alias: Luminosité de l'écran à 100% - alias: Réduire la luminostié de l'écran quand aucune présence n'est détectée if: - condition: trigger id: - trigger_id_presence_decrease_backlight_brightness then: - alias: Luminosité de l'écran à 20% action: light.turn_on metadata: {} data: brightness_pct: 20 target: entity_id: light.hmigarage_backlight_brightness - alias: Éxécuter le LCD Antiburn pour 10 minutes if: - condition: trigger id: - trigger_id_lcd_antiburn_daily then: - action: switch.turn_on metadata: {} data: {} target: entity_id: switch.hmigarage_lcd_antiburn - delay: hours: 0 minutes: 10 seconds: 0 milliseconds: 0 - action: switch.turn_off metadata: {} data: {} target: entity_id: switch.hmigarage_lcd_antiburn mode: single - alias: Garage - Démarrer timer de figer l'état des lumières description: '' triggers: - trigger: state entity_id: - input_boolean.figer_l_etat_des_lumieres_du_garage id: trigger_id_start_stop - trigger: state entity_id: - timer.timer_de_figer_les_lumieres_du_garage to: idle id: trigger_id_timer_expired - trigger: state entity_id: - input_button.figer_les_lumieres_garage_ajouter_1_heure - input_button.figer_les_lumieres_garage_soustraire_1_heure - input_button.figer_les_lumieres_garage_ajouter_10_minutes - input_button.figer_les_lumieres_garage_soustraire_10_minutes alias: Lorsqu'on ajoute/soustrait du temps durant l'éxécution id: trigger_id_add_sub_time conditions: [] actions: - choose: - conditions: - condition: trigger id: - trigger_id_start_stop alias: Si déclenché par un changement de l'activation du mode "figer". sequence: - alias: Activer le timer si le mode "figer" est actif. Sinon désactiver le timer. if: - condition: state entity_id: input_boolean.figer_l_etat_des_lumieres_du_garage state: 'on' then: - action: timer.start metadata: {} data: duration: '{{ state_attr(''input_datetime.temps_pour_figer_les_lumieres_du_garage'', ''timestamp'' ) | int }}' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage else: - action: timer.finish metadata: {} data: {} target: entity_id: timer.timer_de_figer_les_lumieres_du_garage - conditions: - alias: Si le timer est maintenant inactif condition: trigger id: - trigger_id_timer_expired sequence: - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.figer_l_etat_des_lumieres_du_garage alias: Désactiver le mode figer - conditions: - condition: trigger id: - trigger_id_add_sub_time sequence: - alias: Modifier le temps d'éxécution si le timer est actif. Sinon modifier le temps total d'éxécution. if: - condition: state entity_id: timer.timer_de_figer_les_lumieres_du_garage state: active enabled: true then: - choose: - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_1_heure'' }}' alias: Le bouton "Ajouter 1 heure" à été activé. sequence: - action: timer.start metadata: {} data: duration: '{{ (state_attr(''timer.timer_de_figer_les_lumieres_du_garage'', ''finishes_at'') | as_datetime - now() + timedelta(hours=1)).total_seconds() | round(0) }}' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut ajouter 1 heure - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_1_heure'' }}' alias: Le bouton soustraire 1 heure à été activé. sequence: - action: timer.change metadata: {} data: duration: '-3600' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut soustraire 1 heure - conditions: - alias: Le bouton "Ajouter 10 minutes" à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_10_minutes'' }}' sequence: - action: timer.start metadata: {} data: duration: '{{ (state_attr(''timer.timer_de_figer_les_lumieres_du_garage'', ''finishes_at'') | as_datetime - now() + timedelta(minutes=10)).total_seconds() | round(0) }}' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut ajouter 10 minutes - conditions: - alias: Le bouton soustraire 10 minutes à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_10_minutes'' }}' sequence: - action: timer.change metadata: {} data: duration: '-600' target: entity_id: timer.timer_de_figer_les_lumieres_du_garage alias: Si on veut soustraire 10 minutes else: - choose: - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_1_heure'' }}' alias: Le bouton "Ajouter 1 heure" à été activé. sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) + timedelta(hours=1)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut ajouter 1 heure - conditions: - condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_1_heure'' }}' alias: Le bouton soustraire 1 heure à été activé. sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) - timedelta(hours=1)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut soustraire 1 heure - conditions: - alias: Le bouton "Ajouter 10 minutes" à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_ajouter_10_minutes'' }}' sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) + timedelta(minutes=10)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut ajouter 10 minutes - conditions: - alias: Le bouton soustraire 10 minutes à été activé. condition: template value_template: '{{ trigger.entity_id == ''input_button.figer_les_lumieres_garage_soustraire_10_minutes'' }}' sequence: - action: input_datetime.set_datetime metadata: {} data: time: '{{ (today_at(states(''input_datetime.temps_pour_figer_les_lumieres_du_garage'')) - timedelta(minutes=10)).strftime(''%H:%M'') }} ' target: entity_id: input_datetime.temps_pour_figer_les_lumieres_du_garage alias: Si on veut soustraire 10 minutes alias: Si on ajoute/soustrait du temps pendant que le timer est actif mode: single