- id: '1749315801894' alias: "\U0001F4C5 Notif - Calendrier" description: Envoie une notification Gotify à chaque déclenchement d'un événement calendrier (bestioles, maison, poubelles, jardin). triggers: - entity_id: - calendar.bestioles - calendar.mashome - calendar.garbage - calendar.garden to: 'on' trigger: state conditions: [] actions: - action: script.notif_gotify data: title: "\U0001F4C5 {{ state_attr(trigger.entity_id, 'friendly_name') }}" message: '{{ state_attr(trigger.entity_id, ''message'') }}' priority: 5 mode: single - id: '1751221338548' alias: "\U0001F680 Système - Home Assistant (MAJ + démarrage + arrêt)" description: Notifie les mises à jour disponibles (Core, OS, Supervisor) et les événements de cycle de vie de HA (démarrage / arrêt). triggers: - entity_id: - update.home_assistant_core_update - update.home_assistant_operating_system_update - update.home_assistant_supervisor_update to: 'on' id: update trigger: state - event: start id: start trigger: homeassistant - event: shutdown id: stop trigger: homeassistant actions: - choose: - conditions: - condition: trigger id: update sequence: - data: title: "\U0001F680 MAJ {{ trigger.to_state.name }}" message: Version {{ trigger.to_state.attributes.latest_version }} disponible priority: 5 action: script.notif_gotify - conditions: - condition: trigger id: start sequence: - data: title: ✅ Gérald message: Démarrage réussi priority: 4 action: script.notif_gotify - conditions: - condition: trigger id: stop sequence: - data: title: ⏹️ Gérald message: Arrêt en cours priority: 4 action: script.notif_gotify mode: single - id: '1752652068313' alias: "\U0001F3D6️ Simulation Présence" description: 'Simule une présence réaliste pendant les vacances : ouverture progressive des volets le matin, fermeture au coucher du soleil, allumage/extinction aléatoire des lumières en soirée.' triggers: - minutes: /30 trigger: time_pattern conditions: - condition: state entity_id: input_boolean.vacance state: 'on' actions: - choose: - conditions: - condition: sun after: sunrise after_offset: +00:30:00 - condition: time before: '10:00:00' sequence: - action: cover.set_cover_position target: entity_id: - cover.bibliotheque - cover.cuisine - cover.salle_a_manger - cover.salon data: position: '{{ range(80, 100) | random }}' - choose: - conditions: - condition: sun after: sunset after_offset: -00:30:00 sequence: - action: cover.close_cover target: entity_id: - cover.bibliotheque - cover.cuisine - cover.salle_a_manger - cover.salon data: {} - choose: - conditions: - condition: time after: '18:00:00' before: '23:30:00' - condition: sun after: sunset sequence: - action: light.turn_on target: entity_id: '{{ [''light.interrupteur_veranda_l1'', ''light.bar'', ''light.plafonnier'', ''light.halogene''] | random }}' data: brightness_pct: '{{ range(40, 80) | random }}' transition: 2 - delay: minutes: '{{ range(15, 45) | random }}' - action: light.turn_off target: entity_id: '{{ expand(''light.lumieres'') | selectattr(''state'', ''eq'', ''on'') | map(attribute=''entity_id'') | list | random }}' data: transition: 2 mode: queued max: 3 - id: '1755537503205' alias: "\U0001FA9F Volets - Gestion complète" description: Ferme les volets en mode canicule (temp >24°C, hors 20h-6h, si volets ouverts). Ouvre les volets au lever du soleil si le mode maison est 'absent'. triggers: - entity_id: input_select.maison_mode trigger: state id: mode_change - entity_id: sensor.mont_cauvaire_temperature above: 24 trigger: numeric_state id: temp_canicule - trigger: sun event: sunrise id: sunrise conditions: [] actions: - choose: - conditions: - condition: trigger id: temp_canicule - condition: not conditions: - condition: time after: '20:00:00' before: 06:00:00 - condition: numeric_state entity_id: sensor.mont_cauvaire_temperature above: 24 - condition: state entity_id: cover.volets state: open sequence: - action: scene.turn_on target: entity_id: scene.volets_chaleur - conditions: - condition: trigger id: sunrise - condition: state entity_id: input_select.maison_mode state: absent sequence: - action: cover.open_cover target: entity_id: cover.volets mode: restart - id: '1755633804919' alias: "\U0001F9F9 Doris - Gestion complète" description: Rappel de vidage du réservoir si ≥5 cycles (11h et 19h). Incrémente le compteur et notifie à chaque fin de nettoyage. triggers: - trigger: time at: '11:00:00' id: notification_matin - trigger: time at: '19:00:00' id: notification_soir - trigger: state entity_id: - vacuum.doris from: - returning to: - docked id: nettoyage_termine conditions: [] actions: - choose: - conditions: - condition: trigger id: - notification_matin - notification_soir - condition: numeric_state entity_id: counter.cycle_doris above: 5 sequence: - action: script.notif_gotify data: title: "\U0001F9F9 Doris" message: 'Réservoir à vider : {{ states(''counter.cycle_doris'') }} cycles effectués' priority: 6 - conditions: - condition: trigger id: nettoyage_termine sequence: - action: counter.increment target: entity_id: counter.cycle_doris - action: script.notif_gotify data: title: "\U0001F9F9 Doris" message: Nettoyage terminé ({{ states('counter.cycle_doris') }} cycles) priority: 3 mode: queued max: 3 - id: '1755637169948' alias: ⏱️ Timer Unifié - TV Chambre et Home Cinéma description: 'Gestion centralisée des timers d''extinction : TV chambre (durée configurable via input_number) et home cinéma (fixe 1h30). Notifie au démarrage, à l''extinction et en cas d''annulation.' triggers: - entity_id: input_boolean.etat_minuteur_chambre to: 'on' trigger: state id: timer_chambre - entity_id: input_boolean.minuteur_salon to: 'on' trigger: state id: timer_salon - trigger: state entity_id: - input_boolean.etat_minuteur_chambre to: - 'off' id: cancel_chambre conditions: [] actions: - choose: - conditions: - condition: trigger id: - timer_chambre sequence: - variables: delay_minutes: '{{ states(''input_number.timer_ch'') | int(30) }}' - action: script.notif_gotify data: title: ⏱️ Timer TV Chambre message: Extinction dans {{ delay_minutes }} minutes priority: 3 - delay: minutes: '{{ delay_minutes }}' - condition: state entity_id: input_boolean.etat_minuteur_chambre state: 'on' - action: switch.turn_off target: entity_id: - switch.tele_chambre - action: input_boolean.turn_off target: entity_id: input_boolean.etat_minuteur_chambre - action: script.notif_gotify data: title: ✅ Timer terminé message: TV chambre éteinte priority: 2 - conditions: - condition: trigger id: - timer_salon sequence: - action: script.notif_gotify data: title: ⏱️ Timer Home Cinéma message: Extinction dans 1h30 priority: 3 - delay: hours: 1 minutes: 30 - condition: state entity_id: input_boolean.minuteur_salon state: 'on' - action: switch.turn_off target: entity_id: switch.home_cinema_prise - action: input_boolean.turn_off target: entity_id: input_boolean.minuteur_salon - action: script.notif_gotify data: title: ✅ Timer terminé message: Home cinéma éteint priority: 2 - conditions: - condition: trigger id: - cancel_chambre sequence: - action: script.notif_gotify data: title: ❌ Timer annulé message: Timer chambre annulé priority: 2 mode: parallel max: 2 - id: '1758057240516' alias: "\U0001F4FA Home Cinéma - Gestion complète" description: Synchronise la Bbox, la prise home cinéma et le plafonnier. Gère l'allumage/extinction de nuit (lumière ambiante) et adapte le comportement selon l'origine du déclenchement (prise ou Bbox). triggers: - entity_id: switch.home_cinema_prise trigger: state to: 'on' for: seconds: 3 id: TVON - entity_id: switch.home_cinema_prise trigger: state to: 'off' id: TVOFF - type: turned_on device_id: 3b837fd4e120ab9b973f31ce99017ef5 entity_id: 34b78481039c1e06821015a0e6bed72d domain: remote trigger: device for: seconds: 3 id: bbox_on - trigger: sun event: sunset id: Coucher_soleil conditions: [] actions: - choose: - conditions: - condition: trigger id: TVON - condition: sun after: sunset before: sunrise sequence: - action: remote.turn_on target: entity_id: remote.bboxtv - action: light.turn_on data: color_temp_kelvin: 2000 brightness_pct: 50 target: entity_id: light.plafonnier - conditions: - condition: trigger id: TVON - condition: sun before: sunset after: sunrise sequence: - action: remote.turn_on target: entity_id: remote.bboxtv - conditions: - condition: trigger id: bbox_on - condition: sun after: sunset before: sunrise sequence: - action: switch.turn_on target: entity_id: switch.home_cinema_prise - action: light.turn_on data: color_temp_kelvin: 2000 brightness_pct: 50 target: entity_id: light.plafonnier - conditions: - condition: trigger id: bbox_on - condition: sun before: sunset after: sunrise sequence: - action: switch.turn_on target: entity_id: switch.home_cinema_prise - conditions: - condition: trigger id: Coucher_soleil - condition: state entity_id: switch.home_cinema_prise state: 'on' sequence: - action: light.turn_on data: color_temp_kelvin: 2000 brightness_pct: 50 target: entity_id: light.plafonnier - conditions: - condition: trigger id: TVOFF sequence: - action: remote.turn_off target: entity_id: remote.bboxtv device_id: - 3b837fd4e120ab9b973f31ce99017ef5 - e40a5194622be081af6b905eaa6675c6 area_id: salon data: {} - action: light.turn_off target: entity_id: light.plafonnier mode: restart - id: '1763205350889' alias: "\U0001FA9F Radiateurs + Fenêtres" description: Coupe le radiateur chambre si la fenêtre reste ouverte >10s, le rallume 2min après fermeture. Même logique pour le radiateur bureau via le capteur de verrou. triggers: - entity_id: - binary_sensor.fenetre_chambre - binary_sensor.verrou_fenetre_bureau trigger: state for: seconds: 10 conditions: [] actions: - choose: - conditions: - condition: template value_template: '{{ trigger.entity_id == ''binary_sensor.fenetre_chambre'' }}' - condition: state entity_id: binary_sensor.fenetre_chambre state: 'on' - condition: template value_template: '{{ states(''climate.radiateur_chambre'') != ''off'' }}' sequence: - action: climate.set_hvac_mode target: device_id: f8576af3693e3b54af895631c64538fb data: hvac_mode: 'off' - action: script.notif_gotify data: title: "\U0001FA9F Fenêtre chambre" message: Radiateur coupé (fenêtre ouverte) priority: 4 enabled: false - conditions: - condition: template value_template: '{{ trigger.entity_id == ''binary_sensor.fenetre_chambre'' }}' - condition: state entity_id: binary_sensor.fenetre_chambre state: 'off' for: seconds: 5 - condition: template value_template: '{{ states(''climate.radiateur_chambre'') == ''off'' }}' sequence: - delay: minutes: 2 - condition: state entity_id: binary_sensor.fenetre_chambre state: 'off' - condition: template value_template: '{{ states(''climate.radiateur_chambre'') == ''off'' }}' - action: climate.set_hvac_mode target: device_id: f8576af3693e3b54af895631c64538fb data: hvac_mode: heat - action: script.notif_gotify data: title: "\U0001FA9F Fenêtre chambre" message: Radiateur rallumé (fenêtre fermée) priority: 3 enabled: false - choose: - conditions: - condition: template value_template: '{{ trigger.entity_id == ''binary_sensor.verrou_fenetre_bureau'' }}' - condition: state entity_id: binary_sensor.verrou_fenetre_bureau state: 'on' - condition: state entity_id: switch.radiateur_bureau state: 'on' sequence: - action: switch.turn_off target: entity_id: switch.radiateur_bureau - action: script.notif_gotify data: title: "\U0001FA9F Fenêtre bureau" message: Radiateur coupé (fenêtre ouverte) priority: 4 enabled: false - conditions: - condition: template value_template: '{{ trigger.entity_id == ''binary_sensor.verrou_fenetre_bureau'' }}' - condition: state entity_id: binary_sensor.verrou_fenetre_bureau state: 'off' for: seconds: 5 - condition: state entity_id: switch.radiateur_bureau state: 'off' sequence: - delay: minutes: 2 - condition: state entity_id: binary_sensor.verrou_fenetre_bureau state: 'off' - condition: state entity_id: switch.radiateur_bureau state: 'off' - action: switch.turn_on target: entity_id: switch.radiateur_bureau - action: script.notif_gotify data: title: "\U0001FA9F Fenêtre bureau" message: Radiateur rallumé (fenêtre fermée) priority: 3 enabled: false mode: queued max: 5 - id: '1766170300000' alias: "\U0001F527 Maintenance et Surveillance" description: Surveille les appareils hors ligne (10min), les erreurs Doris (5min), les batteries critiques (<10%, heure ouvrable). Rapport batteries faibles (<20%) tous les dimanches à 10h. triggers: - entity_id: - vacuum.doris - switch.radiateur_bureau - switch.home_cinema_prise - cover.volets - climate.radiateur_chambre to: unavailable trigger: state for: minutes: 10 id: appareil_offline - entity_id: vacuum.doris to: error trigger: state for: minutes: 5 id: doris_erreur - trigger: numeric_state entity_id: - sensor.doris_battery_level - sensor.porte_bibliotheque - sensor.porte_veranda - sensor.fenetre_chambre - sensor.verrou_fenetre_bureau below: 10 id: batterie_critique for: hours: 1 - trigger: state entity_id: sensor.litiere_etat_batterie to: low id: batterie_litiere for: hours: 1 - trigger: time at: '10:00:00' id: rappel_hebdo conditions: [] actions: - choose: - conditions: - condition: trigger id: appareil_offline sequence: - action: script.notif_gotify data: title: "\U0001F50C Appareil hors ligne" message: '{{ trigger.to_state.attributes.friendly_name }} indisponible' priority: 8 - conditions: - condition: trigger id: doris_erreur sequence: - action: script.notif_gotify data: title: "\U0001F9F9 Doris - Erreur" message: Doris en erreur depuis 5min priority: 8 - conditions: - condition: trigger id: batterie_critique - condition: template value_template: '{{ now().hour >= 8 and now().hour < 22 }}' sequence: - action: script.notif_gotify data: title: "\U0001F50B Batterie critique" message: '{{ trigger.to_state.attributes.friendly_name }} à {{ trigger.to_state.state }}%' priority: 8 - conditions: - condition: trigger id: batterie_litiere sequence: - action: script.notif_gotify data: title: "\U0001F50B Batterie litière" message: Batterie du capteur PIR litière faible priority: 8 - conditions: - condition: trigger id: rappel_hebdo - condition: time weekday: - sun sequence: - variables: batteries_faibles: "{% set ns = namespace(liste=[]) %} {% for entity in [\n 'sensor.doris_battery_level',\n 'sensor.porte_veranda',\n 'sensor.porte_bibliotheque',\n \ 'sensor.fenetre_chambre',\n 'sensor.verrou_fenetre_bureau'\n] %}\n \ {% set niveau = states(entity) | int(100) %}\n {% if niveau < 20 %}\n \ {% set nom = state_attr(entity, 'friendly_name') %}\n {% set ns.liste = ns.liste + [nom ~ ' (' ~ niveau ~ '%)'] %}\n {% endif %}\n{% endfor %} {{ ns.liste | join(', ') }}" - condition: template value_template: '{{ batteries_faibles != "" }}' - action: script.notif_gotify data: title: "\U0001F50B Rappel batteries" message: 'À surveiller : {{ batteries_faibles }}' priority: 5 mode: queued max: 5 - id: '1766170300001' alias: "\U0001F326️ Météo - Gestion complète" description: Alerte en cas de pluie, orage ou neige (après 15min de stabilisation). Alerte gel entre 17h et 21h si température <3°C depuis 15min. triggers: - entity_id: - sensor.mont_cauvaire_original_condition trigger: state id: condition_change for: hours: 0 minutes: 15 seconds: 0 - entity_id: - sensor.mont_cauvaire_temperature below: 3 trigger: numeric_state id: risque_gel for: hours: 0 minutes: 15 seconds: 0 conditions: [] actions: - choose: - conditions: - condition: trigger id: - condition_change - condition: template value_template: '{{ trigger.to_state.state in [''pluie'', ''orage'', ''neige''] }}' - condition: template value_template: '{{ trigger.from_state.state not in [''pluie'', ''orage'', ''neige''] }}' sequence: - choose: - conditions: - condition: template value_template: '{{ trigger.to_state.state == ''orage'' }}' sequence: - action: script.notif_gotify data: title: ⛈️ Alerte orage message: Rentrer mobilier jardin et fermer fenêtres ! priority: 8 default: - action: script.notif_gotify data: title: "\U0001F326️ Alerte météo" message: '{{ trigger.to_state.state | capitalize }}' priority: 6 - conditions: - condition: trigger id: - risque_gel - condition: time after: '17:00:00' before: '21:00:00' sequence: - action: script.notif_gotify data: title: "\U0001F331 Protection plantes" message: Gel prévu ({{ states('sensor.mont_cauvaire_temperature') }}°C) - Protéger plantes ! priority: 7 mode: queued max: 3 - id: '1766573335939' alias: "\U0001F431 Litière - Utilisation et notifications" description: Détecte chaque passage de Mojo (filtre 15s), incrémente le compteur et notifie sur mobile. Déclenche un rappel nettoyage au seuil configuré, et un rappel grand nettoyage au seuil de nettoyages cumulés. Reset manuel via input_button. triggers: - entity_id: - binary_sensor.litiere_mouvement to: - 'on' trigger: state id: utilisation for: seconds: '{{ states(''input_number.duree_detection_litiere'') | int(15) }}' - entity_id: counter.compteur_litiere trigger: state id: check_nettoyage - entity_id: counter.nettoyages_litiere trigger: state id: check_gros_nettoyage - entity_id: input_button.litiere_reset trigger: state id: reset conditions: [] actions: - choose: - conditions: - condition: trigger id: - utilisation sequence: - action: counter.increment target: entity_id: counter.compteur_litiere - action: notify.mobile_app_arthas data: title: "\U0001F431 Litière" message: Mojo a chié. - conditions: - condition: trigger id: - check_nettoyage - condition: template value_template: "{{ states('counter.compteur_litiere') | int >= \n states('input_number.seuil_nettoyage_litiere') | int }}" sequence: - action: script.notif_gotify data: title: "\U0001F9F9 Litière à nettoyer" message: Mojo a utilisé la litière {{ states('counter.compteur_litiere') }} fois. Il est temps de retirer les crottes ! priority: 6 - action: counter.reset target: entity_id: counter.compteur_litiere - conditions: - condition: trigger id: - check_gros_nettoyage - condition: template value_template: "{{ states('counter.nettoyages_litiere') | int >= \n states('input_number.seuil_gros_nettoyage') | int }}" sequence: - action: script.notif_gotify data: title: "\U0001F9FC GROS NETTOYAGE litière" message: '{{ states(''counter.nettoyages_litiere'') }} nettoyages effectués ! Il est temps de faire le gros nettoyage complet de la litière (changement total).' priority: 8 - action: counter.reset target: entity_id: counter.nettoyages_litiere - action: counter.reset target: entity_id: counter.compteur_litiere - conditions: - condition: trigger id: - reset sequence: - action: counter.reset target: entity_id: counter.compteur_litiere mode: queued max: 3 - id: '1771693177609' alias: "\U0001F4A1 Lumières - Gestion complète" description: Allume la véranda et le bar à l'arrivée d'un habitant après le coucher du soleil (extinction véranda après 5min). Allume l'allée si une ouverture est détectée de nuit. triggers: - entity_id: - person.morgane - person.seb zone: zone.home event: enter id: arrivee trigger: zone - entity_id: - binary_sensor.fenetre_bibliotheque - binary_sensor.porte_veranda to: 'on' id: ouverture trigger: state conditions: [] actions: - choose: - conditions: - condition: trigger id: arrivee - condition: sun after: sunset sequence: - target: entity_id: - light.bar - light.interrupteur_veranda_l1 data: brightness_pct: 100 action: light.turn_on - delay: 00:05:00 - target: entity_id: light.interrupteur_veranda_l1 action: light.turn_off data: {} - conditions: - condition: trigger id: ouverture - condition: state entity_id: sun.sun state: below_horizon sequence: - target: entity_id: switch.allee action: switch.turn_on data: {} - delay: 00:05:00 - target: entity_id: switch.allee action: switch.turn_off data: {} mode: restart - id: '1777000000001' alias: "\U0001F3E0 Mode Maison - Gestion complète" description: Met à jour input_select.maison_mode selon la présence de Morgane et Seb et l'état du mode vacances. Désactive automatiquement les vacances au retour d'un habitant. triggers: - entity_id: person.morgane zone: zone.home event: enter trigger: zone id: morgane_enter - entity_id: person.morgane zone: zone.home event: leave trigger: zone id: morgane_leave - entity_id: person.seb zone: zone.home event: enter trigger: zone id: seb_enter - entity_id: person.seb zone: zone.home event: leave trigger: zone id: seb_leave - entity_id: input_boolean.vacance trigger: state id: vacance_toggle conditions: [] actions: - choose: - alias: Retour maison pendant vacances → désactive vacances conditions: - condition: or conditions: - condition: trigger id: morgane_enter - condition: trigger id: seb_enter - condition: state entity_id: input_boolean.vacance state: 'on' sequence: - action: input_boolean.turn_off target: entity_id: input_boolean.vacance - action: alarmo.disarm data: code: '4212' - alias: Vacances activées → mode vacances + armer Alarmo conditions: - condition: trigger id: vacance_toggle - condition: state entity_id: input_boolean.vacance state: 'on' sequence: - action: input_select.select_option target: entity_id: input_select.maison_mode data: option: vacances - action: alarmo.arm data: mode: vacation code: '4212' - alias: Vacances OFF + quelqu'un à la maison → mode maison + désarmer conditions: - condition: or conditions: - condition: trigger id: morgane_enter - condition: trigger id: seb_enter - condition: state entity_id: input_boolean.vacance state: 'off' - condition: template value_template: '{{ is_state(''person.morgane'', ''home'') or is_state(''person.seb'', ''home'') }}' sequence: - action: input_select.select_option target: entity_id: input_select.maison_mode data: option: maison - action: alarmo.disarm data: code: '4212' - alias: Vacances OFF + tout le monde absent → mode absent + armer conditions: - condition: or conditions: - condition: trigger id: morgane_leave - condition: trigger id: seb_leave - condition: state entity_id: input_boolean.vacance state: 'off' - condition: template value_template: '{{ is_state(''person.morgane'', ''not_home'') and is_state(''person.seb'', ''not_home'') }}' sequence: - action: input_select.select_option target: entity_id: input_select.maison_mode data: option: absent - action: alarmo.arm data: mode: away code: '4212' mode: restart - id: '1781010467486' alias: "\U0001F33F Marcelino - Gestion complète" description: 'Notifie les erreurs, la batterie faible et le bilan du soir (19h15 : retour en cours, erreur ou non en charge). Confirme le retour en base après 19h15.' triggers: - id: erreur_change entity_id: sensor.marcelino_erreur trigger: state - id: batterie_basse entity_id: - sensor.marcelino_batterie below: 3 trigger: numeric_state - id: soir at: '19:15:00' trigger: time - id: docked entity_id: lawn_mower.marcelino from: returning to: docked for: seconds: 15 trigger: state actions: - choose: - conditions: - condition: trigger id: erreur_change - condition: template value_template: '{{ erreur != ''no_error'' }}' sequence: - data: title: "\U0001F33F Marcelino" message: '❌ Erreur : {{ erreur }}' priority: 9 action: script.notif_gotify - conditions: - condition: trigger id: batterie_basse sequence: - data: title: "\U0001F33F Marcelino" message: "\U0001F50B Batterie faible : {{ states('sensor.marcelino_batterie') }}%" priority: 7 action: script.notif_gotify - conditions: - condition: trigger id: soir - condition: not conditions: - condition: state entity_id: lawn_mower.marcelino state: docked sequence: - choose: - conditions: - condition: state entity_id: lawn_mower.marcelino state: returning sequence: - data: title: "\U0001F33F Marcelino" message: "\U0001F3E0 Marcelino est sur le chemin du retour" priority: 5 action: script.notif_gotify - conditions: - condition: template value_template: '{{ erreur != ''no_error'' }}' sequence: - data: title: "\U0001F33F Marcelino" message: '❌ Erreur soir : {{ erreur }}' priority: 9 action: script.notif_gotify - conditions: - condition: template value_template: '{{ tension < 25 }}' sequence: - data: title: "\U0001F33F Marcelino" message: ⚠️ Non en charge priority: 7 action: script.notif_gotify - conditions: - condition: trigger id: docked - condition: time after: '19:15:00' sequence: - data: title: "\U0001F33F Marcelino" message: ✅ Marcelino est rentré à la maison priority: 5 action: script.notif_gotify variables: erreur: '{{ states(''sensor.marcelino_erreur'') }}' tension: '{{ states(''sensor.marcelino_batterie'') | float(0) }}' mode: restart - id: '1781032426339' alias: "\U0001F37D️ Mealie - Sync menus semaine" description: Synchronise les menus Mealie — utilise la date de référence si définie triggers: - trigger: time at: 06:00:00 - trigger: homeassistant event: start - trigger: state entity_id: input_datetime.mealie_semaine_ref conditions: [] actions: - variables: ref_date: "{% set ref = states('input_datetime.mealie_semaine_ref') %} {% if ref not in ['unknown','unavailable',''] %}\n {% set d = strptime(ref, '%Y-%m-%d') %}\n {{ (d.date() - timedelta(days=d.weekday())).strftime('%Y-%m-%d') }}\n{% else %}\n {{ (now().date() - timedelta(days=now().weekday())).strftime('%Y-%m-%d') }}\n{% endif %}" - repeat: for_each: - nom: lundi offset: 0 - nom: mardi offset: 1 - nom: mercredi offset: 2 - nom: jeudi offset: 3 - nom: vendredi offset: 4 - nom: samedi offset: 5 - nom: dimanche offset: 6 sequence: - variables: jour_nom: '{{ repeat.item.nom }}' jour_date: '{{ (strptime(ref_date, ''%Y-%m-%d'').date() + timedelta(days=repeat.item.offset)).strftime(''%Y-%m-%d'') }}' - repeat: for_each: - nom: petit_dejeuner entity: calendar.mealie_petit_dejeuner - nom: dejeuner entity: calendar.mealie_dejeuner - nom: accompagnement entity: calendar.mealie_accompagnement - nom: collation entity: calendar.mealie_collation - nom: dessert entity: calendar.mealie_dessert - nom: diner entity: calendar.mealie_diner sequence: - action: calendar.get_events target: entity_id: '{{ repeat.item.entity }}' data: start_date_time: '{{ jour_date }}T00:00:00' end_date_time: '{{ jour_date }}T23:59:59' response_variable: events - action: input_text.set_value target: entity_id: input_text.mealie_{{ jour_nom }}_{{ repeat.item.nom }} data: value: "{% set cal = repeat.item.entity %} {% if events[cal] is defined and events[cal].events | length > 0 %}\n {{ events[cal].events[0].summary }}\n{% else %}\n \n{% endif %}\n" mode: single - id: '1781126730091' alias: Alarmo - Alertes Alexa simples triggers: - entity_id: alarm_control_panel.alarmo to: armed_away id: armed trigger: state - entity_id: alarm_control_panel.alarmo to: disarmed id: disarmed trigger: state - entity_id: alarm_control_panel.alarmo to: triggered id: triggered trigger: state actions: - choose: - conditions: - condition: trigger id: armed sequence: - data: target: - media_player.echo_chambre - media_player.echo_bureau - media_player.echo_salon message: Système armé. data: type: announce action: notify.alexa_media - conditions: - condition: trigger id: disarmed sequence: - data: target: - media_player.echo_chambre - media_player.echo_bureau - media_player.echo_salon message: Système désarmé. data: type: announce action: notify.alexa_media - conditions: - condition: trigger id: triggered sequence: - data: target: - media_player.echo_chambre - media_player.echo_bureau - media_player.echo_salon message: Alerte intrusion. Alarme déclenchée. data: type: announce action: notify.alexa_media enabled: true - action: notify.mobile_app_tablette metadata: {} data: message: Intrusion détectée title: "\U0001F6A8 Alarme" mode: single - id: '1781519588436' alias: "\U0001F514 Michelle - Gestion minuteur" description: Capture la source et notifie en boucle jusqu'à confirmation triggers: - event_type: assist_pipeline_run id: capture_source trigger: event - event_type: timer.finished id: timer_fini trigger: event actions: - choose: - conditions: - condition: trigger id: capture_source sequence: - action: input_text.set_value target: entity_id: input_text.timer_source_device data: value: '{{ trigger.event.data.device_id }}' - conditions: - condition: trigger id: timer_fini sequence: - action: input_boolean.turn_on target: entity_id: input_boolean.timer_actif - repeat: while: - condition: state entity_id: input_boolean.timer_actif state: 'on' sequence: - action: 'notify.{{ states(''input_text.timer_source_device'') }} ' data: title: ⏰ Minuteur terminé ! message: Dis Okay Nabu, arrête le minuteur data: channel: timer importance: high ttl: 0 priority: high persistent: true tag: timer_alert - delay: seconds: 30