Bonjour à tous,
Voici mon idée du jour :
Quand on appuie sur le bouton d’urgence, voici ce que je voudrais :
- Que je reçoive un message (facile) pour m’en informer
- Que je sache qui a appuyé sur le bouton (ça se complique)
- Que je sache où est celui qui a appuyé sur le bouton (…)
- Que j’envoie ses coordonnées pour afficher un pointeur sur Google maps (…)
Je travaille là dessus…
Je reviens vous dire où j’en suis.
1 « J'aime »
J’utilise PushOver, assez simple, bien foutu, un simple :
service: notify.alerte
data:
message:
Un peu de Jinja et je récupère user (que le prénom) qui est caché dans :
<template TemplateState(
<
state person.moi=home;
editable=True,
id=moi,
latitude=41.1906764,
longitude=2.9988681,
gps_accuracy=17,
source=device_tracker.mobiles21moi,
user_id=d3f2eb149ae34d8286d4ca64ace7efc8,
device_trackers=
['device_tracker.mobiles21moi'],
entity_picture=/api/image/serve/66276d4d0856de3b239bedd3848ef71/512x512,
friendly_name=Moi
@ 2023-06-22T22:06:42.305276+02:00>
)
avec :
message: |
{% set user_id = states.script.bouton_urgence.context.user_id %} {% set
triggered_by = (states.person | selectattr('attributes.user_id','==',
user_id)) | list %} {% set user = "System" if not triggered_by
else state_attr((triggered_by | first).entity_id,
"friendly_name").split()[0] %}
ALARME déclenchée par le téléphone de {{ user }}
latitude et longitude sont encore plus simple à trouver.
{% set latitude = triggered_by[0].attributes.latitude %}
{% set longitude = triggered_by[0].attributes.longitude %}
J’utilise la fonctionnalité url de PushOver :
data:
priority: 2
sound: siren
expire: 200
retry: 60
url: >
{% set user_id = states.script.bouton_urgence.context.user_id %} {% set
triggered_by = (states.person | selectattr('attributes.user_id','==',
user_id)) | list %} {% set latitude = triggered_by[0].attributes.latitude
%} {% set longitude = triggered_by[0].attributes.longitude %}
https://www.google.com/maps/search/?api=1&query={{latitude}}%2C{{longitude}}