Créer un tracker en fonction d’un sensor

Salutation, j’ai découvert il y a peut l’ESPresence, qui permet de tracker des appareils via le bluetooth.
En gros on utilise un ESP32 pour scanner tous les identifiants bluetooth qui passe et c’est assez réactif, lorsque mon téléphone s’approche suffisamment de l’ESP, la valeur change dans la seconde qui suit et ça c’est top pour me permettre de détecter ma présence rapidement et de désactiver l’alarme automatiquement avant quelle sonne, car avec le wifi c’est un peu lent.

Je ne vais pas t’expliquer comment installer ESPresence car les frères Poulains ont fait ça très bien dans leur vidéo youtube.

Par contre si tu suis leur vidéo tu vas t’apercevoir que l’entité créé est un sensor, le problème est que dans mon cas, pour détecter la présence de quelqu’un (le téléphone en fait) dans la maison il faut une entité device_tracker.

Après un peu de recherche, je suis passé par une automatisation, le trigger sera le sensor de l’ESPresence et l’action va créer le device_tracker, c’est partie.

Dans Paramètres -> Automatisations et scènes on va créer une nouvelle automatisation

On commence par modifier le mode de l’automatisation en allant en haut à droite :

On sélectionne le mode File d’attente qui va permettre de surveiller en permanence l’état du sensor.

Ensuite en trigger on met le sensor créé par ESPresence

Tu remarqueras que je n’ai pas entré de valeur et c’est volontaire ! comme ceci l’action s’exécutera à chaque changement d’état

On ne met pas de condition, par contre en action on va effectuer une Action (avant ça s’appelait un service)

commence à taper device dans le nom de l’action et sélectionne device_tracker.see

à ce moment là je te recommande d’éditer l’action en YAML car on va mettre des conditions

Voici le code à coller dans l’éditeur :

action: device_tracker.see
data:
  dev_id: telephone_tof_ble_tracker
  location_name: |
    {% if trigger.to_state.state == 'bureau' %}
      home
    {% elif trigger.to_state.state == 'not_home' %}
      not_home
    {% else %}
       unknown
    {% endif %}

Il faut personnaliser un peu le code au niveau de dev_id pour mettre l’ID que tu veux
Il faut également modifier ‘bureau’ avec la valeur que peut prendre votre sensor créé par ESPresence (selon le tuto des frères Poulains c’est le nom de la pièce)

je te mets le code complet de l’automatisation :

alias: "[device_tracker] telephone tof ble"
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.telephone_tof_ble
condition: []
action:
  - action: device_tracker.see
    data:
      dev_id: telephone_tof_ble_tracker
      location_name: |
        {% if trigger.to_state.state == 'bureau' %}
          home
        {% elif trigger.to_state.state == 'not_home' %}
          not_home
        {% else %}
           unknown
        {% endif %}
mode: queued
max: 10

Voila, un petit reboot ou un chargement des automatisations et tu devrais avoir un nouveau device_tracker, pour ma part : device_tracker.telephone_tof_ble_tracker qui aura comme état : bureau, not_home ou unknown et ce device_tracker tu peux l’associer à une personne (dans Paramètres -> Personnes)

ainsi l’entité zone.maison s’actualise beaucoup plus rapidement lorsque j’arrive à la maison, par contre pour en sortir l’ESPresence met entre 3 et 4 minutes pour passer à l’état de not_home.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Back to Top