Comment envoyer des notifications que quand on est pas à la maison et seulement à la personne la plus proche du domicile

Bonjour,

Je dispose des plusieurs notifications que ce soit via HA ou le bot Telegram qui me notifient des certains événement dans la maison, cela marche plutôt pas mal du tout mais j’aimerais aller plus loin, en effet, je cherche à n’envoyer les notification qu’en fonction de l’emplacement des habitants de la maison; en somme si l’un de nous est à la maison pas d’envoi de notification, par contre si personne n’est à la maison, ca sera la personne la plus proche de la maison qui serait notifiée de l’événement.

j’essai de construire la logique dans ma tête avant de modifier mes actuelles automatisations/notifications mais je n’y arrive pas.

J’ai tenté d’utiliser le sensor de proximité qui me semble nécessaire pour mettre en place ce que je souhaite mais comme indiqué précédemment la logique à suivre m’échappe.

Si quelqu’un à une idée, je suis preneur, merci d’avance

__

Salut,
Je ne l’ai pas encore mis en place, mais lorsque je me posais la même réflexion que toi, j’étais tombé sur cette vidéo qui j’espère pourra t’aider dans ton raisonnement.
https://youtu.be/chJylIK0ASo?si=W8cOXDYrBLMk6ydw

Salut Julhid,

Merci pour ta réponse, j’étais moi aussi tombé sur la vidéo d’Horizon Domotique, je sais aussi qu’il est dans ce forum si je ne me trompe pas (d’ailleurs dommage qu’il ne fasse plus des vidéos, elles étaient très sympas et complètes). J’essayer de voir s’il était possible de le faire en natif sans devoir passer par Python du coup je n’ai pas approfondi la chose, mais si c’est la seule manière, va falloir que je m’y mette car c’est exactement ce que je voudrais mettre en place.

Encore merci pour ta réponse.

1 « J'aime »

Je l’ai installé et ça fonctionne super bien. Effectivement le seul pb c’est que j’ai dû installer appdaemon juste pour ça mais honnêtement ça vaux le coup.
Une intégration serai la bienvenue mais je n’y connais rien :slight_smile:
Un jour peut-être

Hello

Il s’agit de JLO qui a rejoint l’équipe Nabu Casa depuis

@+

Salut,

Je viens justement de me lancer mais malheureusement l’app n’est plus dispo dans son repo, le lien qu’il a laissé dans sa vidéo a été retiré et donne une erreur 404, ‹ page not found › :slightly_frowning_face:

Si ca te deranges pas, tu peux partager le code ici, en masquant toute info perso bien entendu??

Merci d’avance

Salut,

Content pour lui, j’étais abonné à sa chaine youtube pendant un temps mais comme il n’y avait plus des vidéos, je ne le suivait plus, il avait apporté (je trouve) une peu de fraicheur dans le milieu youtube francophone pour HA, tout comme Thomas (Le Journal de Thomas), il y a d’autres aussi mais là n’est pas le sujet; je comprends mieux pourquoi il ne faisait plus des vidéos et des réunions mais que son repo était quand même mis à jour assez fréquemment.

C’est par ici :

1 « J'aime »

Top, merci infiniment!!

1 « J'aime »

Fouille son git il à changé l’architecture :slight_smile:
Je suis pas spécialiste mais n’hésite pas si besoin.
C’est vrai que ses vidéos etait toujours top. Ça reviendra peut être!!!

C’est gentil merci, @Krull56 m’a déjà envoyé le lien et j’ai pu trouver, en effet son archi a bien changé; merci à vous 2 et je reviendrais demander de l’aide si je m’en sors pas! :grimacing:

2 « J'aime »

Ca serait tres simple avec simplement Proximity et un template qui compare les valeurs des sensors distance et prend la plus petite.

x : personne 1
y : personne 2

Dans action, je mettrais « si » puis un template qui renvoie « true » si valeur du sensor distance de x inferieure a valeur du sensor distance de y : notif a x, sinon notif a y

Ou bien 3 choix, le 3e serait « si egal » : notif a tout le monde (notify.notify)

Salut tu ferais comment le templates ?

1 « J'aime »
          {% if states('sensor.distance_alex_domicile')|float(0) < states('sensor.distance_aurel_domicile')|float(0) %}
            true
          {% endif %}
          {% if states('sensor.distance_aurel_domicile')|float(0) < states('sensor.distance_alex_domicile')|float(0) %}
            true
          {% endif %}
          {% if states('sensor.distance_alex_domicile')|float(0) == states('sensor.distance_aurel_domicile')|float(0) %}
            true
          {% endif %}

L’intégration Proximity intègre déjà un sensor avec « appareil le plus proche »

Bonjour,

En effet, c’est un bon et simple moyen de le faire, merci.

Jusqu’à présent j’utilisais NOTIFIER mais j’ai eu quelques problèmes avec.
Et je galère pour trouver ou et comment modifier le fichier dans l’appdeamon, qui ne m’est plus accessible depuis HA

J’ai donc décidé d’essayer de m’en passer en utilisant les outils présents dans home assistant directement.

J’utilise pour cela l’option répéter avec comme condition « pour chaque »

Voici ma proposition avec un exemple lorsque l’on quitte la maison et que l’on souhaite s’assurer qu’aucune lumière ou store n’est encore ouvert :

En pré-requis j’ai mis en place un capteur de proximité maison avec l’intégration Proximity, qui me permet de récupérer la ou les personnes les plus proches de la maison.

alias: Notification- Global - Lumières et stores- allumée ou ouvert sans présence
description: "Notif Lumière allumée ou store ouvert quand on quitte la maison "
trigger:
  - platform: state
    entity_id:
      - binary_sensor.home_occupied
    to: "off"
condition:
  - condition: or
    conditions:
      - condition: template
        value_template: >-
          {{ states.light|selectattr('state','equalto','on')|
          rejectattr('entity_id', 'in', ['light.ecran'] )|list|length > 0 }}
      - condition: template
        value_template: >-
          {{ states.cover|selectattr('state','equalto','open') |list|length > 0
          }}
action:
  - repeat:
      sequence:
        - if:
            - condition: template
              value_template: >-
                {{ states.light|selectattr('state','equalto','on')|
                rejectattr('entity_id', 'in', ['light.ecran'] )|list|length > 0
                }}
          then:
            - data:
                message: >-
                  Ces lumières sont allumées,
                  {{states.light|selectattr('state','equalto','on')|
                  rejectattr('entity_id', 'in', ['light.ecran']
                  )|map(attribute='name')|list|join(', ')  }} alors que personne
                  n'est présent
                data:
                  actions:
                    - action: lumiereoff
                      title: Close
              action: "{{ repeat.item }}"
        - if:
            - condition: template
              value_template: >-
                {{ states.cover|selectattr('state','equalto','open')
                |list|length > 0 }}
          then:
            - data:
                message: >-
                  Ces stores sont ouverts, {{
                  states.cover|selectattr('state','equalto','open')
                  |map(attribute='name')|list|join(', ')  }} alors que personne
                  n'est présent
                data:
                  actions:
                    - action: storeclose
                      title: Fermer les stores
              action: "{{ repeat.item }}"
      for_each: |
        {% set device = namespace(items=[]) %}
          {% for personne in states.person -%} 
          {% if (states('sensor.maison_appareil_le_plus_proche')) | contains(personne.name) -%} 
          {% set nom= personne.name-%} 
            {% set title = state_attr('person.'+nom,'device_trackers')[0].replace("device_tracker.","notify.mobile_app_") %}
          {% set device.items = device.items + [title] %}
            {% endif %} 
            {%- endfor %}
         {{ device.items }}
mode: single

Il y quand même quelques différences avec NOTIFIER :
Je ne gère pas la notion de tag , mais c’est peut être possible avec l’option de data dans message ?
Je n’ai pas essayé :slight_smile:
Quelque chose comme ça :

action: notify.notify
metadata: {}
data:
  title: ⚡️ EDF TEMPO {{ states('sensor.rte_tempo_couleur_actuelle') }}
  message: >-
    La couleur EDF TEMPO a changé. Aujourd'hui {{
    states('sensor.rte_tempo_couleur_actuelle') }}{{
    states('sensor.rte_tempo_couleur_actuelle_visuel') }}, demain {{
    states('sensor.rte_tempo_prochaine_couleur')
    }}{{states('sensor.rte_tempo_prochaine_couleur_visuel') }}
  data:
    icon: mdi:flash-outline
    click_url: /lovelace/chauffage
    tag: couleur_tempo_edf

il me manque aussi la fonction « until » : effacer la notification dès que quelqu’un rentre à la maison ou agit directement sur les lumières / stores

Si vous avez des idées, je suis preneur