Présentation + [Mon Dashboard] BBE

Quelques automatisations

Note: La plupart du temps (sauf rares exceptions) je continue à générer plusieurs automatisations pour un même sujet plutôt que de les regrouper dans une seule avec un choose sur les triggers.

Il y a quelques conséquences:

Il serait tout à fait possible dans les exemples qui vont suivre de regrouper plusieurs automatisations en une en renommant les triggers et en utilisant un choose. Je ne l’ai pas fait afin d’avoir des automatisations plus simples, mais avec l’inconvenient de ne pas tout avoir dans la même automatisation pour chaque sujet.
Je fais alors attention au nommage afin que mes automations restent ensemble dans la longue liste. J’utilise la nomenclature suivante: Sujet - Piece - Automatisation ou Sujet - Automatisation. ce qui me permet de grouper toutes mes automatisations par Sujets (Lumières, Machines, PAC, Pronote, Surveillance, Tempo, Ventilation, Volets, etc…) puis par Pièce ou par thème.

L’arrivée des labels et des catégories avec la MaJ 2024.4 me conforte dans mon choix, il est devenu très simple de grouper les automatisations pour s’y retrouver…

Gestion de lumières avec détecteur:

Description:

Un exemple d’automatisme pour gérer les lumières de l’escalier avec un détecteur de mouvement, tout en laissant un contrôle manuel.
J’utilise 4 automatisations et un timer (mais la 4ème automatisation est facultative).
Ca peut paraitre compliqué, mais une fois mis en place on n’y touche plus… et la complexité initiale s’oublie…
Le but est de pouvoir fonctionner à la fois en automatique ET en manuel:

  • On doit pouvoir allumer la lumière et l’éteindre manuellement sans que l’automatisme ne vienne gêner (sauf la la 4eme automatisation, qui est une « sécurité », qui éteint s’il n’y a pas de détection depuis 15min).
  • l’automatisme doit allumer la lumière s’il y a une présence, et l’éteindre au bout de 5 minutes en cas d’absence), sans éteindre si quelqu’un est là…
  • les deux doivent être indépendants: l’automatisme ne doit pas éteindre une lumière allumée manuellement, mais on peut éteindre manuellement une lumière allumée par l’automatisme.
  • Pour pouvoir faire ça il me fallait savoir si l’allumage de la lampe a été fait en automatique ou en manuel. Avec des smart light, on peut utiliser une astuce: l’automatisme allume à une puissance fixe (par ex 90%) et on teste l’état de la lampe pour savoir si elle est a 100% ou 90% pour savoir « qui » l’a allumée. Mais ça ne marchait pas pour les micro modules on/off… J’utilise donc un test sur l’état du timer qui me sert de booléen pour savoir si l’allumage a été automatique ou non.
    Tout ceci bien sur suite à d’excellentes suggestions sur le forum comme d’habitude!
Allumage sur détection

En cas de détection dans la bonne plage horaire:

  • si les lampes sont éteintes => on lance le timer et on allume les lampes
  • sinon:
  • si le timer est actif (l’allumage était automatique) => on relance le timer (pour éclairer plus longtemps puisqu’il y a toujours du monde)
  • sinon => on ne fait rien (l’allumage était manuel, on ne lance pas le timer, on ne touche à rien)
alias: Lumières - Escalier - allumage automatique
description: >-
  lorsqu'un mouvement est détecté entre 20h30 et 7h15, l'escalier s'allume
  progressivement jusqu'à 20%, et on (re)lance un timer de 5min
trigger:
  - type: motion
    platform: device
    device_id: 7d6027b34d3c07135a9d64de7b41074e
    entity_id: binary_sensor.0x00124b00246e9df7_occupancy
    domain: binary_sensor
condition:
  - condition: time
    after: "20:30:00"
    before: "07:15:00"
action:
  - if:
      - condition: state
        entity_id: light.0x385b44fffe20eb24
        state: "off"
      - condition: state
        entity_id: light.0x84b4dbfffec93621
        state: "off"
    then:
      - service: timer.start
        data: {}
        target:
          entity_id: timer.alumage_escalier
      - service: light.turn_on
        data: {}
        target:
          entity_id:
            - light.0x84b4dbfffec93621
            - light.0x385b44fffe20eb24
    else: []
  - if:
      - condition: state
        entity_id: timer.alumage_escalier
        state: active
    then:
      - service: timer.start
        data: {}
        target:
          entity_id: timer.alumage_escalier
mode: single
Gestion du Timer - cas de l'extinction manuelle

Si on éteint manuellement les lampes, il faut penser à arrêter le timer (sinon le « mode auto » reste enclenché…

alias: Lumières - Escalier - gestion timer
description: annule le timer quand la lumière est off
trigger:
  - platform: state
    entity_id:
      - light.0x385b44fffe20eb24
    to: "off"
  - platform: state
    entity_id:
      - light.0x84b4dbfffec93621
    to: "off"
condition: []
action:
  - service: timer.cancel
    data: {}
    target:
      entity_id: timer.alumage_escalier
mode: single
Extinction automatique par le Timer

Quand le timer s’arrête, on éteint les lampes (sauf s’il y a toujours une présence, auquel cas on relance le timer).

alias: Lumières - Escalier - extinction auto timer
description: >-
  extinction auto de l'escalier à la fin du timer si inoccupé
trigger:
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.alumage_escalier
condition: []
action:
  - if:
      - condition: state
        entity_id: binary_sensor.0x00124b00246e9df7_occupancy
        state: "on"
    then:
      - service: timer.start
        data: {}
        target:
          entity_id: timer.alumage_escalier
    else:
      - type: turn_off
        device_id: 018e42fdc39d185cce19b42e99393c11
        entity_id: light.0x84b4dbfffec93621
        domain: light
      - type: turn_off
        device_id: aa09ecec8161b872f6cde279c5aae1eb
        entity_id: light.0x385b44fffe20eb24
        domain: light
mode: single
Extinction automatique si pas de mouvement 15min

Lorsque la condition « Lumière allumée ET pas de mouvement » est vraie depuis 15min, les lumières s’éteignent. Ce cas couvre tous les oublis suite à un allumage manuel, et normalement la tempo de 15min est suffisante pour ne pas interférer avec le timer qui lui dure 5min.

alias: Lumières - Escalier - extinction auto inoccupé
description: extinction auto de l'escalier en absence de mouvement 15min si allumé
triggers:
  - alias: Lumière allumée et personne dans la piece depuis longtemps
    trigger: template
    value_template: >-
      {{(states('group.lumieres_escalier') == 'on') and
      (states('binary_sensor.0x00124b00246e9df7_occupancy') == 'off')}}
    for:
      hours: 0
      minutes: 15
      seconds: 0
conditions: []
actions:
  - type: turn_off
    device_id: 018e42fdc39d185cce19b42e99393c11
    entity_id: light.0x84b4dbfffec93621
    domain: light
  - type: turn_off
    device_id: aa09ecec8161b872f6cde279c5aae1eb
    entity_id: light.0x385b44fffe20eb24
    domain: light
mode: single

Gestion du tarif Tempo:

Description:

Nous avons un tarif EDF Tempo qui nécessite d’adapter notre consommation en jours rouge. Ceci implique en particulier de mettre en place des détections de tarif. Nous récupérons les infos de la téléinfo grace à un module Zlinky de Lixee. A partir de là quelques automatisations très basiques sont assez utiles:

Gestion d'un booléen tarif rouge

Ce booléen est plus pratique à utiliser dans les automatisations et le dashboard que des tests sur le tarif en cours. En outre, on peut en modifiant uniquement cette automatisation changer le niveau de tarif dans lequel on veut réduire la consommation pour toutes les automatisations, notifications et le dashboard.

alias: TEMPO - Gestion booléen Tarif Rouge
description: |-
  Gestion du booléen "tarif rouge":
  - Active le booléen tarif rouge lors du passage HPJR
  - Désactive le booléen tarif rouge lorsque HPJR se termine
trigger:
  - platform: state
    entity_id:
      - sensor.0x00158d0005007002_current_tarif
    from: HPJR
    attribute: active_register_tier_delivered
    for:
      hours: 0
      minutes: 0
      seconds: 10
    id: fin
  - platform: state
    entity_id:
      - sensor.0x00158d0005007002_current_tarif
    attribute: active_register_tier_delivered
    for:
      hours: 0
      minutes: 0
      seconds: 10
    id: debut
    to: HPJR
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - fin
          - condition: state
            entity_id: input_boolean.tarif_rouge
            state: "on"
        sequence:
          - service: input_boolean.turn_off
            data: {}
            target:
              entity_id: input_boolean.tarif_rouge
      - conditions:
          - condition: trigger
            id:
              - debut
        sequence:
          - service: input_boolean.turn_on
            data: {}
            target:
              entity_id: input_boolean.tarif_rouge
mode: single
Gestion de la couleur du lendemain

On vient modifier à 20h05 et 6h un input text qui permettra d’afficher en clair la couleur du lendemain quand elle est disponible. Celui ci est alors dispo pour de l’affichage et pour des automatisations. eventuelles. Note, de 0h à 6h, l’info « demain » contient en fait l’info du prochain tarif du jour qui sera actif à 6h…

alias: TEMPO - Gestion couleur lendemain
description: Mise à jour de la couleur du lendemain à 20h05 et 6h00
trigger:
  - platform: time
    at: "20:05:00"
    id: set
  - platform: time
    at: "06:00:00"
    id: reset
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - set
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: sensor.0x00158d0005007002_tomorrow_color
                    state: BLAN
                sequence:
                  - service: input_text.set_value
                    data:
                      value: BLANC
                    target:
                      entity_id: input_text.couleur_demain
              - conditions:
                  - condition: state
                    entity_id: sensor.0x00158d0005007002_tomorrow_color
                    state: ROUG
                sequence:
                  - service: input_text.set_value
                    data:
                      value: ROUGE
                    target:
                      entity_id: input_text.couleur_demain
              - conditions:
                  - condition: state
                    entity_id: sensor.0x00158d0005007002_tomorrow_color
                    state: "----"
                sequence:
                  - service: input_text.set_value
                    data:
                      value: BLEU
                    target:
                      entity_id: input_text.couleur_demain
            default:
              - service: input_text.set_value
                data:
                  value: ERREUR
                target:
                  entity_id: input_text.couleur_demain
      - conditions:
          - condition: trigger
            id:
              - reset
        sequence:
          - service: input_text.set_value
            data:
              value: INCONNU
            target:
              entity_id: input_text.couleur_demain
mode: single

Notification si demain est un jour rouge

Basé sur l’input text présenté juste au dessus, un exemple de notification en cas de tarif rouge le lendemain (donc il faudra penser à rentrer du bois pour le poêle…).

alias: TEMPO - notification demain jour rouge
description: Les Alexas (Salon SdB Cuisine) annoncent que demain sera rouge vers 20h05
trigger:
  - platform: state
    entity_id:
      - input_text.couleur_demain
    to: ROUGE
    for:
      hours: 0
      minutes: 0
      seconds: 5
condition:
  - condition: time
    after: "19:30:00"
    before: "20:30:00"
action:
  - service: notify.alexa_media
    data:
      message: Attention ! Demain sera un jour rouge.
      target:
        - media_player.echo_dot_jeanne
        - media_player.echo_jeanne
        - media_player.jeanne_echo_dot
      data:
        type: tts
      title: Annonce jour rouge
mode: single

Gestion de la PAC:

Description:

C’est un gros morceau, et je m’appuie sur les ressources suivantes:

  • Des booléens:
    • Tarif rouge (voir ci dessus)
    • Mode auto et mode temporaire (pour activer ou désactiver l’automatisme depuis le dashboard)
    • Saison chauffage et saison climatisation (avec une petite automatisation pour ne jamais être dans les deux à la fois)
  • Deux shedulers: planning chauffage et planning climatisation, qui gèrent les plages de fonctionnement durant la semaine
  • Des input number pour les différentes températures cible (ce qui permet de les régler depuis un dashboard, sans avoir à ouvrir l’automatisation)
Gestion du mode été ou hiver

L’activation d’un mode désactive l’autre pour qu’on ne soit jamais dans les deux modes à la fois. On peut par contre n’être ni en clim, ni en chauffage en intersaison.

alias: PAC - gestion mode chauffage vers clim
description: desactive le chauffage lorsqu'on passe en mode clim
trigger:
  - platform: state
    entity_id:
      - input_boolean.saison_climatistion
    from: "off"
    to: "on"
condition: []
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.saison_chauffage
mode: single

alias: PAC - gestion mode clim vers chauffage
description: desactive le mode clim lors du passage en mode chauffage
trigger:
  - platform: state
    entity_id:
      - input_boolean.saison_chauffage
    from: "off"
    to: "on"
condition: []
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.saison_climatistion
mode: single

Gestion du mode temporaire

L’idée de ce mode est de basculer en manuel (donc désactiver la gestion automatique) mais seulement jusqu’au prochain changement d’état du scheduler qui permet alors de repasser en automatique. On peut ainsi couper le chauffage ou l’allumer temporairement pour palier aux défauts du scheduler (présence inhabituelle, télétravail occasionnel, etc…) sans repasser vraiment en manuel. Cette idée est reprise de notre Calybox de Deltadore qui offre la même fonction, à l’usage c’est redoutable d’efficacité !

alias: PAC - reset override temporaire hiver
description: Reset l'override temporaire au changement d'état du planning chauffage
trigger:
  - platform: state
    entity_id:
      - schedule.planning_chauffage
    from: "on"
    to: "off"
  - platform: state
    entity_id:
      - schedule.planning_chauffage
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.saison_chauffage
    state: "on"
action:
  - service: homeassistant.turn_off
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
mode: single


alias: PAC - reset override temporaire été
description: Reset l'override temporaire au changement d'état du planning climatisation
trigger:
  - platform: state
    entity_id:
      - schedule.planning_climatisation
    from: "on"
    to: "off"
  - platform: state
    entity_id:
      - schedule.planning_climatisation
    from: "off"
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.saison_climatistion
    state: "on"
action:
  - service: homeassistant.turn_off
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
mode: single

Gestion auto chauffage

La grosse automatisation, qui vient tester toutes les 10 min l’état des booléens, et en fonction gère le chauffage.

alias: PAC - gestion auto chauffage
description: >-
  En saison de chauffage.

  En mode auto et sans override temporaire.

  => Chauffe à la temperature de consigne si planifié, sinon a la temperature
  réduite ou off. Si tarif rouge => PAC off.
trigger:
  - platform: time_pattern
    minutes: /10
  - platform: state
    entity_id:
      - input_boolean.chauffage_mode_auto
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.chauffage_mode_auto
    state: "on"
  - condition: state
    entity_id: input_boolean.saison_chauffage
    state: "on"
  - condition: state
    entity_id: input_boolean.pac_override_temporaire
    state: "off"
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.tarif_rouge
            state: "off"
        sequence:
          - choose:
              - conditions:
                  - condition: state
                    entity_id: schedule.planning_chauffage
                    state: "on"
                sequence:
                  - device_id: 5b89093e82e42fe555148e26a107faba
                    domain: climate
                    entity_id: fe8907573739d862acee9459abe1c731
                    type: set_hvac_mode
                    hvac_mode: heat
                  - service: climate.set_temperature
                    data:
                      temperature: "{{states('input_number.temperature_confort_hiver')|int}}"
                    target:
                      entity_id: climate.pac
              - conditions:
                  - condition: state
                    entity_id: schedule.planning_chauffage
                    state: "off"
                sequence:
                  - device_id: 5b89093e82e42fe555148e26a107faba
                    domain: climate
                    entity_id: fe8907573739d862acee9459abe1c731
                    type: set_hvac_mode
                    hvac_mode: "off"
      - conditions:
          - condition: state
            entity_id: input_boolean.tarif_rouge
            state: "on"
        sequence:
          - device_id: 5b89093e82e42fe555148e26a107faba
            domain: climate
            entity_id: climate.pac
            type: set_hvac_mode
            hvac_mode: "off"
mode: single

Gestion auto climatisation

La sœur jumelle pour l’été.

alias: PAC - Gestion auto climatisation
description: |
  En saison de climatisation . 
  Si mode auto et si pas d'override temporaire.
  => Climatise à la température de consigne si planifié, sinon PAC OFF.
trigger:
  - platform: time_pattern
    minutes: /10
  - platform: state
    entity_id:
      - input_boolean.chauffage_mode_auto
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.chauffage_mode_auto
    state: "on"
  - condition: state
    entity_id: input_boolean.saison_climatistion
    state: "on"
  - condition: state
    entity_id: input_boolean.pac_override_temporaire
    state: "off"
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: schedule.planning_climatisation
            state: "on"
        sequence:
          - device_id: 5b89093e82e42fe555148e26a107faba
            domain: climate
            entity_id: climate.pac
            type: set_hvac_mode
            hvac_mode: cool
          - service: climate.set_temperature
            data:
              temperature: "{{states('input_number.temperature_cible_climatisation')|int }}"
            target:
              entity_id: climate.pac
      - conditions:
          - condition: state
            entity_id: schedule.planning_climatisation
            state: "off"
        sequence:
          - device_id: 5b89093e82e42fe555148e26a107faba
            domain: climate
            entity_id: climate.pac
            type: set_hvac_mode
            hvac_mode: "off"
mode: single

Les scripts

Pour pouvoir lancer le chauffage ou la climatisation, ou le couper, depuis le dashboard. Au passage on passe en mode « temporaire », donc cet état perdurera jusqu’au prochain changement du scheduler. Comme c’est un script, on peut l’activer à la voix avec Alexa qui identifie les scripts comme des scènes, donc avec une routine on peut dire « Alexa allume le chauffage » pour lancer le script (plus agréable que dire « Alexa allume allumer_chauffage » sans routine…).

Petite mise à jour, j’ai ajouté un timer car j’ai eu quelques allumages « sauvages » par les enfants qui oublient de couper… donc désormais l’allumage/extinction par script s’accompagne du lancement d’un timer qui remet le mode auto (désactivation du booléen override temporaire) au bout d’une durée modifiable directement dans le timer (20min la plupart du temps).

Les scripts:

alias: Allumer_chauffage
sequence:
  - data: {}
    target:
      entity_id: input_boolean.saison_chauffage
    action: homeassistant.turn_on
  - data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
    action: homeassistant.turn_on
  - data:
      hvac_mode: heat
      temperature: 22
    target:
      entity_id: climate.pac
    action: climate.set_temperature
  - data: {}
    target:
      entity_id: timer.minuteur_pac
    action: timer.start
mode: single
icon: mdi:fire


alias: Allumer_climatisation
sequence:
  - data: {}
    target:
      entity_id: input_boolean.saison_climatistion
    action: homeassistant.turn_on
  - data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
    action: homeassistant.turn_on
  - data:
      hvac_mode: cool
      temperature: 24
    target:
      entity_id: climate.pac
    action: climate.set_temperature
  - data: {}
    target:
      entity_id: timer.minuteur_pac
    action: timer.start
mode: single
icon: mdi:snowflake


alias: Eteindre pac
sequence:
  - data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
    action: homeassistant.turn_on
  - device_id: 5b89093e82e42fe555148e26a107faba
    domain: climate
    entity_id: fe8907573739d862acee9459abe1c731
    type: set_hvac_mode
    hvac_mode: "off"
  - data: {}
    target:
      entity_id: timer.minuteur_pac
    action: timer.start
mode: single
icon: mdi:stop-circle-outline

L’ automatisation de gestion du timer:

alias: Timer override temporaire
description: extinction auto  l'override temporaire à la fin du timer de la PAC
trigger:
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.minuteur_pac
condition: []
action:
  - metadata: {}
    data: {}
    target:
      entity_id: input_boolean.pac_override_temporaire
    action: input_boolean.turn_off
mode: single

Suivi des machines et du sèche linge:

Description:

Avec 3 enfants, enchainer les machines demande de bien savoir quand elles se terminent… Avec deux prises connectées pour mesurer la conso du lave linge et du sèche linge, et la création de deux booléens « machine en cour » et « séchage en cours », on peut faire des choses sympa, y compris des notification adaptables en fonction de l’état des machines en cours et de l’heure pour ne pas réveiller toute la maison!

Démarrage lave linge

Active le booléen machine en cours au démarrage du lave linge

alias: MACHINES - Lave linge en cours - init
description: initialise le booléen Machine en cour
trigger:
  - type: power
    platform: device
    device_id: 959e72fb1a31ef1be0f1d1c3de0a3cd0
    entity_id: sensor.0x94deb8fffe6e2623_power
    domain: sensor
    above: 500
    for:
      hours: 0
      minutes: 0
      seconds: 30
condition:
  - condition: state
    entity_id: input_boolean.machine_en_cour
    state: "off"
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.machine_en_cour
mode: single
Démarrage Séche linge

Active le booléen séchage en cours au démarrage du sèche linge

alias: MACHINES - Séchage en cours - init
description: Initialise le booléen Séchage en cours
trigger:
  - type: power
    platform: device
    device_id: c2eb8aeb1c8259c313010a991fe58b25
    entity_id: sensor.0x94deb8fffe6e1c3f_power
    domain: sensor
    above: 500
    for:
      hours: 0
      minutes: 0
      seconds: 10
condition:
  - condition: state
    entity_id: input_boolean.sechage_en_cours
    state: "off"
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.sechage_en_cours
mode: single

Arrêt Sèche Linge

Notification (Alexa et Smartphone) de fin de sèche linge et reset du booléen séchage en cour lorsque la prise connectée détecte la fin du séchage:

alias: "MACHINES - Sèche linge Terminé "
description: >-
  Notification en fin de sèche linge envoyée sur smartphone Doudou et Jeanne et
  echo salon (Alexa chuchote entre 20h et 9h)
trigger:
  - type: power
    platform: device
    device_id: c2eb8aeb1c8259c313010a991fe58b25
    entity_id: sensor.0x94deb8fffe6e1c3f_power
    domain: sensor
    below: 4
    for:
      hours: 0
      minutes: 0
      seconds: 45
condition:
  - condition: state
    entity_id: input_boolean.sechage_en_cours
    state: "on"
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.sechage_en_cours
  - choose:
      - conditions:
          - condition: time
            after: "20:00:00"
            before: "09:00:00"
        sequence:
          - service: notify.mobile_app_smartphone_doudou
            data:
              title: SECHE LINGE
              message: Le séchage est terminé
          - service: notify.alexa_media
            data:
              message: >-
                <amazon:effect name="whispered">Le sèche linge est
                terminé</amazon:effect>
              target:
                - media_player.echo_dot_jeanne
                - media_player.echo_jeanne
                - media_player.jeanne_echo_dot
              data:
                type: tts
              title: Annonce sechage fini chuchotté
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: Le sèchage est terminé
              title: SECHE LINGE
      - conditions:
          - condition: time
            after: "09:00:00"
            before: "20:00:00"
        sequence:
          - service: notify.mobile_app_smartphone_doudou
            data:
              title: SECHE LINGE
              message: Le séchage est terminé
          - service: notify.alexa_media
            data:
              message: <prosody volume="soft">Le sèche linge est terminé</prosody>
              target:
                - media_player.echo_dot_jeanne
                - media_player.echo_jeanne
                - media_player.jeanne_echo_dot
              data:
                type: tts
              title: Annonce fin sechage
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: Le sèchage est terminé
              title: SECHE LINGE
mode: single

Arrêt du Lave linge

Lorsque la prise connectée détecte la fin du lavage:

  • Reset du booléen lavage en cour
  • Notification (Alexa et Smartphone) de fin de lave linge, si le sèche linge est disponible, sinon attente de la fin du sèche linge:
alias: MACHINES - lave linge terminé
description: >-
  Notifie sur smartphones Doudou et Jeanne et Echo salon (chuchotte entre 20h et
  9h) la fin du lave linge. Notification différée pour attendre la fin du
  séchage en cours le cas échéant.
trigger:
  - type: power
    platform: device
    device_id: 959e72fb1a31ef1be0f1d1c3de0a3cd0
    entity_id: sensor.0x94deb8fffe6e2623_power
    domain: sensor
    below: 4
    for:
      hours: 0
      minutes: 1
      seconds: 0
condition:
  - condition: state
    entity_id: input_boolean.machine_en_cour
    state: "on"
action:
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.machine_en_cour
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.sechage_en_cours
            state: "off"
        sequence:
          - service: notify.mobile_app_smartphone_doudou
            data:
              title: LAVE LINGE
              message: La lessive est terminée.
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: La lessive est terminée
              title: LAVE LINGE
          - choose:
              - conditions:
                  - condition: time
                    after: "20:00:00"
                    before: "09:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <amazon:effect name="whispered">La machine à laver est
                        terminée</amazon:effect>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini chuchotté
              - conditions:
                  - condition: time
                    after: "09:00:00"
                    before: "20:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <prosody volume="soft">La machine à laver est termninée,
                        vous pouvez la mettre au sèche linge</prosody>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini
      - conditions:
          - condition: state
            entity_id: input_boolean.sechage_en_cours
            state: "on"
        sequence:
          - wait_for_trigger:
              - platform: state
                entity_id:
                  - input_boolean.sechage_en_cours
                from: "on"
                to: "off"
          - service: notify.mobile_app_smartphone_doudou
            data:
              message: La lessive est terminée
              title: LAVE LINGE
          - service: notify.mobile_app_smartphone_jeanne
            data:
              message: La lessive est terminée
              title: LAVE LINGE
          - choose:
              - conditions:
                  - condition: time
                    after: "20:00:00"
                    before: "09:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <amazon:effect name="whispered">La machine à laver est
                        terminée</amazon:effect>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini chuchotté
              - conditions:
                  - condition: time
                    after: "09:00:00"
                    before: "20:00:00"
                sequence:
                  - service: notify.alexa_media
                    data:
                      message: >-
                        <prosody volume="soft">La machine à laver est termninée,
                        vous pouvez la mettre au sèche linge</prosody>
                      target:
                        - media_player.echo_dot_jeanne
                        - media_player.echo_jeanne
                        - media_player.jeanne_echo_dot
                      data:
                        type: tts
                      title: Annonce lavage fini
mode: single

Notification de nouvelle note sur Pronote:

Description:

En s’appuyant sur l’intégration pronote.

Détail de la notification

Notification sur le smartphone des deux parents et de l’enfant concerné (uniquement) de la nouvelle note dispo:


Notification sous la forme:

  • « Nouvelle Note pour xxxx »
  • « Matière : X/Y (Commentaire) »
    Et direction la sous vue de synthèse pronote (voir ci dessus) en cas de clic sur la notification.
alias: Pronote - notification nouvelle note
description: >-
  Notification smartphone parents en cas de nouvelle note sur le pronote d'un
  enfant. Notification de l'enfant concerné sur son telephone
trigger:
  - platform: event
    event_type: pronote_event
    event_data:
      type: new_grade
action:
  - service: notify.mobile_app_smartphone_doudou
    data:
      message: >-
        {{ trigger.event.data.data.subject }} : {{
        trigger.event.data.data.grade_out_of }} ({{
        trigger.event.data.data.comment }})
      title: Nouvelle note pour {{ trigger.event.data.child_name }}
      data:
        clickAction: /lovelace-smartphone/pronote
        url: /lovelace-smartphone/pronote
  - service: notify.mobile_app_smartphone_jeanne
    data:
      message: >-
        {{ trigger.event.data.data.subject }} : {{
        trigger.event.data.data.grade_out_of }} ({{
        trigger.event.data.data.comment }})
      title: Nouvelle note pour {{ trigger.event.data.child_name }}
      data:
        clickAction: /lovelace-smartphone/pronote
        url: /lovelace-smartphone/pronote
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.event.data.child_name == 'xxx Louise' }}"
        sequence:
          - service: notify.mobile_app_sm_a137f
            data:
              message: >
                {{ trigger.event.data.data.subject }} : {{
                trigger.event.data.data.grade_out_of }} ({{
                trigger.event.data.data.comment }})
              title: Nouvelle note pour {{ trigger.event.data.child_name }}
              data:
                clickAction: /lovelace-smartphone/pronote
                url: /lovelace-smartphone/pronote
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ trigger.event.data.child_name == 'xxx Thibault' }}"
        sequence:
          - service: notify.mobile_app_smartphone_a14_thibault
            data:
              message: >
                {{ trigger.event.data.data.subject }} : {{
                trigger.event.data.data.grade_out_of }} ({{
                trigger.event.data.data.comment }})
              title: Nouvelle note pour {{ trigger.event.data.child_name }}
              data:
                clickAction: /lovelace-smartphone/pronote
                url: /lovelace-smartphone/pronote


2 « J'aime »