Detection entrée/sortie de zone géographique (lat/long)

Merci pour le post!

Est-ce que tu peux me parler exactement de ton cas d’usage? Pour quoi en as-tu besoin?

J’ai mis à jour mon post d’origine

ah ok donc là tu parles vraiment d’une gestion des zones Owntracks.

Je pensais que tu voulais parler des zones native Gladys.

Pourquoi les zones Owntracks vs les zones natives Gladys?

Et quel est ton cas d’usage à toi pour l’utilisation des zones de manière générale?

Peut importe le but est d’avoir une évent

C’est dans mon post.

Owntrack envoi la localisation, si j’entre dans la zone alors un évent est émis, je peux déclencher une scène ( me marquer at home, allumer les lumières extérieures etc…)

Ou même ouvrir le portail électrique.

Ok merci pour les précisions!

Pour moi, il faut développer ça en natif, comme ça si Owntrack disparait ou qu’on veut utiliser une autre app de localisation, on pourra toujours faire des scènes :slight_smile:

Il faut re-développer toute la stack de la v3.

Spécification fonctionnelle:

  • Créer une zone dans la vue “plan” avec un nom, une couleur et un rayon
  • Editer une zone dans la vue plan
  • Supprimer une zone dans la vue plan
  • Dans les scènes, je peux sélectionner un trigger “quand l’utilisateur XX rentre dans la zone YY”
  • Dans les scènes, je peux sélectionner un trigger “quand l’utilisateur XX sort de la zone YY”
1 « J'aime »

Hello,

Je rebondis sur ce post si ça intéresse quelqu’un, j’avais commencé sur le sujet Handle_Owntracks_MQTT_messages et j’ai digressé :slight_smile:

Donc pour le moment j’en suis à :

  • Maj de la position de l’utilisateur en se basant sur un Topic MQTT
  • Afficher les Zones qui sont en bdd
  • Créer une zone dans la vue “plan” (uniquement en front)
  • Editer une zone dans la vue plan (uniquement en front)
  • Supprimer une zone dans la vue plan (uniquement en front)

ToDo

  • Should create an “Owntracks” service in the UI explaining how the service works (With Gladys Plus/or with MQTT) (comme demandé dans le ticket)
  • Impacter la bdd avec les events area (create, edit, delete)
  • Moyen de mettre un nom, une couleur et un rayon (en cours avec une popup)
  • Dans les scènes, je peux sélectionner un trigger “quand l’utilisateur XX rentre dans la zone YY”
  • Dans les scènes, je peux sélectionner un trigger “quand l’utilisateur XX sort de la zone YY”

Techniquement :

  • Maj de Leaflet en 1.7
  • Utilisation de Leaflet-draw pour gérer la création des markers&co

J’ai une branche ici.

Je ne suis pas hyper à l’aise donc c’est pas un sujet qui avance vite. Dites moi si c’est à jeter ou si quelqu’un veut donner un coup de main ou encore reprendre le sujet pour avancer plus vite.

3 « J'aime »

Génial ! Top si tu nous donnes un coup de main sur ces fonctionnalités.

N’hésite pas si tu as des questions en cours de route :slight_smile:

Salut à tous!

Je viens de finir de développer cette fonctionnalité, qui est en cours de build sur l’image Docker dev :ok_hand:

Pour vous montrer, ça ressemble à ça.

L’onglet Map est désormais en full-screen, avec les zones affichées:

On peut cliquer sur “Créer une zone” pour afficher cet écran:

Et il est possible d’éditer une zone en cliquant sur la zone à éditer (tout simplement):

Ensuite, dans les scènes, il est possible de créer 2 types de déclencheurs.

Utilisateur entre dans la zone:

Utilisateur quitte la zone:

La PR: Add the ability to create / edit a zone in the map + create scene based on zone change by Pierre-Gilles · Pull Request #1208 · GladysAssistant/Gladys · GitHub

Le build DEV est en cours ici: Add the ability to create a zone in the map + create scene based on zone change (#1208) · GladysAssistant/Gladys@7f55db3 · GitHub

J’ai développé cette fonctionnalité avec des tests frontends sur Cypress, et franchement c’était le feu ! :slight_smile: @AlexTrovato ça dépote vraiment Cypress!!

Je suis preneur de tout retour comme d’habitude! :slight_smile:

5 « J'aime »

Hello :wave:

J’ai pu tester ce soir et voici mes remarques :

  • Quand on crée une zone, ce n’est pas évident qu’il faut cliquer sur la carte (et le message d’erreur si on ne le fait pas n’est pas très parlant)
  • Si je comprends bien, le traitement des events depuis Gladys Plus est développé, mais pas celui depuis MQTT
  • J’ai rapidement codé la récupération des events depuis MQTT (pour tester) et c’est top de voir sa tête sur la carte

  • Le déclenchement de scène fonctionne parfaitement :rocket:
  • La map ne se met pas à jour en temps réel (j’ai l’impression qu’il n’y a pas d’écoute/remontée de la position via websocket). Si ce n’est pas développé, je trouve que c’est une feature sympa et pas très compliquée à développer.

Dernier point, je trouve que ça commence à être compliqué de distinguer ces notions :

  • La maison est vide / La maison n’est plus vide
  • Départ de la maison / Retour à la maison
  • Utilisateur quitte la zone / Utilisateur entre dans la zone

Pour ceux qui sont intéressés par le Owntracks => MQTT, je peux avancer sur cette issue (vu que j’ai déjà quelque chose qui marche). Mais il reste les tests, la configuration, le front, la documentation …

Salut @cicoub13 et merci beaucoup d’avoir pris le temps de tester ! :slight_smile:

Bien vu, c’est vrai que dans la maison on l’indique, je vais le rajouter!

Effectivement !

Génial!

Pas bête, ce développement a été fait bien avant et effectivement il n’y a pas de websockets. ça peut se rajouter facilement, je vais changer ça.

Qu’est ce que tu ne trouve pas clair ?

Je trouve les noms plutôt explicite pourtant.

Après ce qui peut-être confusant, c’est la différence entre la « maison » et les zones. Il faut qu’on arrive à faire comprendre à l’utilisateur que la maison est un « concept » dans Gladys, et que pour faire une scène ou l’utilisateur rentre/sort de la maison via une zones, il faut faire 2 scènes:

  • « quand l’utilisateur rentre dans la zone » => marquer l’utilisateur à la maison
  • « quand l’utilisateur sort de la zone » => marquer l’utilisateur comme sorti de la maison

Les libellés sont faciles à comprendre. C’est plutôt comment ces actions sont déclenchées.
Dans certains cas, ça va être automatique (comme les zones).
Dans d’autres cas, il faut déclencher l’action via une scène (utilisateur présent via un périphérique Bluetooth si j’ai bien compris).
Je n’ai pas beaucoup utilisé la présence utilisateur et la maison vide, je vais tester.

Dans le cas de la détection de la présence dans la maison, c’est au choix de l’utilisateur, absolument tout est possible:

  • Bluetooth
  • MQTT dans un script
  • MQTT sur ton téléphone Android quand ton tel se connecte au Wifi de la maison/déconnecte

Peut-être qu’un lien dans chaque box vers une explication de la doc pourrait être mieux ?

En tout cas tout ça j’essaie de l’expliquer au maximum dans les vidéos que je fais récemment. Après je ne sais pas si on peut faire mieux dans l’UI, les libellés et les descriptions de chaque box me semblent assez clair

@cicoub13 j’ai fais tous les fixes que tu as proposé :slight_smile:

La petite indication “cliquez sur la carte”:

La position des utilisateurs est mise à jour en live désormais avec des websockets :slight_smile:

La PR est là:

Aussi, il y avait un bug que j’ai remarqué en utilisant la feature, le calcul de distance entre un utilisateur et une zone était en kilomètre et pas en mètre, et du coup la sortie de zone fonctionnait pas (gladys comparait des mètres avec des kilomètres… :slight_smile: )

Je merge ça dès que les tests passent, et je refais un build dev !

Edit: c’est merge, build dev en cours: Multiple fixes on zone creation flow + map view (#1210) · GladysAssistant/Gladys@fd9d31e · GitHub

2 « J'aime »

Le build dev corrigé est dispo sur le tag Docker dev :slight_smile:

Super :rocket: Je teste demain

1 « J'aime »

Indication “cliquez sur la carte” :white_check_mark:
Mise à jour en live via websocket sur la carte :white_check_mark:
Test déclenchement sortie de zone :white_check_mark:

Très intuitif et facile à utiliser (que ce soit la carte ou dans les scènes)

1 « J'aime »

Merci d’avoir pris le temps de tester @cicoub13 :pray:

ça part dans la prochaine release !

Cette fonctionnalité est maintenant live dans Gladys v4.4 :slight_smile: