Géré la présence de un ou plusieurs utilisateur
Salut, on a une idée de comment procéder ?
-
Le plus utilisé dans la v3 c’était la présence Bluetooth (via un scénario “Quand ce device est détecté en bluetooth, alors je suis à la maison”. “Quand ce device n’est plus détecté pendant plus de X minutes, alors je ne suis plus à la maison”)
-
Ensuite peut-être la présence “estimée” via Owntracks (via 2 scènes, genre “quand je rentre dans ce périmètre géographique, alors je suis à la maison”, “quand je sors de ce périmètre, je suis hors de la maison”
-
Enfin, il y a la présence via détection sur le réseau Wi-Fi, qui fait de moins en moins sens maintenant que iOS et Android font tourner leur adresse mac pour éviter justement ce genre de tracking sur les réseaux publiques
Mais on compte faire comme dans la v3, lier un device à un utilisateur ? (pas fan)
Ou faire ça à travers une scène ? Ou carrément faire un nouveau service UI dédié ?
Ou le sujet est encore à discuter ?
Et pour quoi pas avec la caméra à reconnaissance de visages comme la Welcome de Netatmo?
Ou un bouton sur le dashbord de Gladys avec déclenchement de scène (mais cette solution implique aussi qu’il faut recliquer sur le bouton lorsque l’on part).
Des pistes trouvées sur le Net :
IFTTT à l’air d’être la plus adaptée, mais c’est devenu payant, sauf pour un usage très limité.
Moi j’ai trouvé ça.
Mais cette solution semble remplacer Gladys en partie.
Non surtout pas, je suis d’accord ! C’était horrible à comprendre et pas logique du tout.
Moi je pense soit dans une scène, ou soit dans un service dédié, à voir ce qui fait le plus de sens.
En y réfléchissant je pense qu’une scène c’est ce qui est le plus flexible et ce qui marche pour le plus de monde car chacun pourra ajouter les conditions qu’il veut.
Du coup, à mon avis il faut créer les triggers/actions nécessaires.
Dans le cas du bluetooth, il faut trouver un moyen de faire ça:
en scène.
- Donc une action « changer présence utilisateur » dans les scènes permet de passer un utilisateur à « à la maison » ou « plus à la maison »
- Faire en sorte que le scan des périphériques Bluetooth déclenche bien un event quand un device bluetooth est vu après ne pas avoir été vu pendant un moment, et voir la façon la plus logique de catcher cette event dans les scène (via le trigger « device state changed » ? Ou un nouveau trigger?)
- Faire en sorte qu’il y ait une action dans les scènes qui permettent de récupérer la dernière date de détection d’un périphérique. A mon avis la box « récupérer le dernière état » fait déjà le job, il faut juste être sur que cette box stocke le datetime du dernier event dans les variables de scènes, et qu’ensuite on est capable de comparer cette date dans l’action « continuer seulement si ».
Avec cette action, l’utilisateur peut faire une scène qui tourne toutes les 10 minutes, et qui vérifie « est-ce que le device XXX a été vu il y a moins de 10 minutes ? ». SI oui, continuer seulement si, et faire le bloc d’action « changer présence utilisateur » à « hors de la maison ».
Tu en penses quoi @AlexTrovato ?
Merci @gaetanb76 pour tes recherches !
Je suis du même avis, à voir encore comment “stocker / récupérer la dernière date de détection d’un périphérique” (ajouter une colonne “last_seen_date” sur device ?).
Il faudra alors aussi, depuis la scène, identifier les appareils qui peuvent être utilisés comme détection de présence, afin d’implémenter correctement la recherche côté service (ajouter une colonne “user_presence” sur device ? et la fonction qui va bien côté service “lookForDevice” ?).
Le problème de ça c’est qu’on a pas l’historique. ça pourrait être un device_feature non, qui aurait donc des states ?
Je pense qu’il y a pas forcément d’adaptation à faire en fait, ça peut juste être un device_feature spécifique à la détection à la maison
En effet, device_feature peut faire l’affaire.
Pour info, mon porte-clé nut mini est détecté dans les périphériques Bluetooth.
Pense à le rajouter dans la liste des divices géré par Gladys.
Il faut le rajouter uniquement si il est géré pour sa fonction, la gestion de la présence, ce qui n’est pas le cas là.
Attention, la liste des périphériques que Gladys gère est une liste qui recense les périphériques “vraiment gérée et testée par un utilisateur”, pas les périphériques que Gladys “voit” mais ne gère pas vraiment.
En effet, c’est exactement ce que je pensais et voulais mettre en commentaire hier avant d’être sans réseau (15 000 foyers à cause d’une pelle mécanique).
Mon nut est seulement reconnu. Je ne peux rien faire avec pour le moment.
C’est aussi le cas pour mes modules Qubino et Fibaro en Z-wave qui ne sont que On/Off. Pas de réglage de position sur mes volets roulants, pas de modes différents pour mon chauffage (confort, éco, hors gel), pas de retour d’info.
C’est pour ça que je ne les ai pas mis dans la liste.
Bon j’ai mergé une première feature, la possibilité de faire une action dans les scènes qui dit “l’utilisateur est à la maison” ou “l’utilisateur n’est plus à la maison”.
@AlexTrovato Next step: Comment on pourrait faire un trigger dans les scènes “Périphérique vu” ? (qui marcherait avec potentiellement le bluetooth, du wifi, ou autre techno)
L’objectif est d’être capable de faire une scène :
- QUAND “un périphérique est vu: Nut bluetooth”
- ALORS "Utilisateur “john” vu à la maison “ma maison”
Potentiellement ça pourrait être juste un trigger “device.state-changed” mais avec une deviceFeature spécial “détection” ? Tu en pense quoi ?
Je pense que la feature “detection” ou “human” ou “presence” est le moyen le plus simple de gerer le truc, et ça sous entend également que c’est une feature spéciale. Pour le Bluetooth on peut faire un scan régulier, si on voit la présence du device, on met a jour cette feature.
Il faudra juste tenter de ne pas spamer les events, mais de bien filtrer les devices ayant cette feature.
En revanche ce ne sera pas le service Bluetooth qui pourra dire que le device Nut est un device de présence, mais le service nut qui pourra creer un device avec cette feature.
Ou sinon permettre cette feature sur tous les devices, avec une option lors de sa création.
Je serais plus pour « detection » ou « presence ».
C’est peut-être le plus pratique, Nut ça reste une marque parmi des centaines d’autres, si on doit faire un service par marque on sera pas rendu ^^
De toute façon c’est juste une checkbox à rajouter dans le formulaire de création de device bluetooth, qui va rajouter la feature, et ensuite l’utilisateur pourra faire sa scène « quand le device XXX a été vu » ALORS « marquer XXX à la maison XXX ».
T’en pense quoi ?
J’achète !
Je suis plutot pour “presence”, “detection” me fait penser à “motion”.
En revanche, il me semble qu’on a déjà une feature “presence” (de mémoire).
Je vérifierai si elle n’est pas utilisée pour autre chose.
Sinon je me planifie ça pour le Bluetooth
Ajouté à la liste de TODO