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