Utilisation fonctionnalité présence via LANmanager

Bonjour,
Après avoir cherché et fait plusieurs tests je n’ai pas trouvé, je voudrais savoir si avec l’intégration LAN Manager, quelle est la valeur renvoyée la fonctionnalité présence, et si il est possible de l’utiliser avec « continuer seulement si » dans les scènes.

Merci d’avance

Salut,

Dans les scènes tu as ce déclencheur
image

Oui c’est possible mais je n’ai jamais testé.

Et si tu veux connaitre la valeur que renvoie une variable tu peux utiliser de renvoyer la variable pas message
image

1 « J'aime »

Merci @_Will_71 pour ta réponse, bien vu j’ai oublier l’envoie de message pour la variable.
Pour le déclencheur Ok c’est ce que j’avais bien fait pour dire si vu à la maison.
Par contre pour l’utilisation de la variable dans les scènes c’est ce que j’avais aussi testé, mais malheureusement pas fonctionnelle car la valeur de la fonction présence de LANmanager est toujours 1 même si téléphone non connecté au LAN.

@AlexTrovato je ne pas retrouvé sur les différents sujet, mais est-ce bien le comportement prévu?

Merci

j’ai mes appareils vu sur le LAN

image

j’ai cette imprimante

je crée une scène « Si MF8040CN absent LAN éteint la lumière »

je crée une scène « Si MF8040CN présent LAN allume la lumière »

En utilisant « présent » comme dans la capture

image

Cela devrait fonctionner mais le problème est de savoir comment ou avec quelle valeur l’appareil est marqué présent

En regardant dans le code du gihtub https://github.com/GladysAssistant/Gladys/blob/master/server/services/lan-manager/lib/lan-manager.constants.js
j’ai trouvé
const PRESENCE_STATUS = {
ENABLED: ‹ enabled ›,
DISABLED: ‹ disabled ›,
};

j’ai essayé avec ‹ enabled › 'disabled" mais cela marches pas…

Par contre en lancant les scène la prise s’allume ou s’éteint en fonction de la scène appelée… :thinking:

Si tu peut aider je crois que c’est toi qui a développé cette intégration @AlexTrovato

1 « J'aime »

Je remarque 2 choses :

  • tu nas pas de Déclencheur dans ta scène (c’est peut être prévu, je le dis au cas où)
  • je pense qu’il faut mettre soit la valeur 1 pour « présent » soit 0 pour « absent »

oui je n’en ai pas mis pour l’instant je déclenche la scène à la mano ca va plus vite pour « débuger » la partie d’en dessous :wink:

j’ai essayé ca aussi et ca marches pas :sob: :sob: :sob: :sob: :sob:

2 « J'aime »

Comme @cce66 j’ai aussi essayer mais çà ne marche pas, et puis en m’envoyant la variable j’ai toujours « 1 » en retour mais si non connecté.

1 « J'aime »

Je viens de tester et je confirme que la valeur est toujours == 1

@AlexTrovato en regardant le code

je pense que la valeur state est pas mise à 0 si le périphérique est pas trouvé

37      if (discoveredDevicesByMAC[deviceMAC]) {
38       this.gladys.event.emit(EVENTS.DEVICE.NEW_STATE, {
39          device_feature_external_id: externalId,
40         state: 1,
 41      });

si je me trompe pas il faudrait que le code soit cela

if (discoveredDevicesByMAC[deviceMAC]) {
    this.gladys.event.emit(EVENTS.DEVICE.NEW_STATE, {
        device_feature_external_id: externalId,
        state: 1,
    });
} else {
    this.gladys.event.emit(EVENTS.DEVICE.NEW_STATE, {
        device_feature_external_id: externalId,
        state: 0,
    });
}

je suis pas sur de ma proposition :thinking: donc on se moques pas :blush:

Salut,

Je constate la même chose. Mon téléphone disparait du wifi et malgré les minutes qui passent (avec un scan par défaut de 2 min), la présence de mon tel reste à 1 Ad Vitam…

En revanche je m’y prends peut-être très mal.
Je gère la présence des appareils avec le LANManager et j’ai fait 2 scènes

Déclencheur :

  • Changement d’état du téléphone

Actions :

  • récupérer le dernier Etat de l’appareil
  • Continuer si seulement Etat = 1
  • Vu à la maison

La seconde est son opposée avec un si seulement = 0 et Utilisateur parti

Il y a une meilleure façon de faire selon vous ?

Je ne pense pas que tu t’y prennes mal. A mon avis il y a un bug à résoudre ! :+1:

1 « J'aime »

Chez moi, ça fonctionne depuis le début!
Les deux scènes:

  • Intervalle 8 minutes (déclencheur)
  • Vérifier la présence de l’utilisateur (appareil vu il y a moins de 3 minutes)
  • Récupérer le dernier état (du téléphone)
  • Continuer seulement si téléphone = 1
  • Utilisateur PARTI de la maison

Deuxième scène:

Dans LANmanager, le scan est défini sur 2 minutes
J’ai très peu de faux départs, sauf la nuit ou les téléphones se mettent en économie d’énergie donc déconnectés du Wi-Fi évidemment.
Les temps de scan et déclenchements sont certainement à revoir mais vu que ça allait comme ça…



(Oui, ils dorment encore :innocent:, eux)

Donc le déclencheur sur Changement d’appareil Téléphone ne se fait que quand le téléphone devient présent. Et pas absent. Ce serait à améliorer pour faciliter les scènes (comme un capteur d’ouverture par exemple).

Salut,
Si présence = 1, c’est que le téléphone est vu, donc on doit être vu dans la maison et non parti de la maison, non ?

Je sais très bien que ce n’est pas logique mais ça fonctionne. Si je mets 0, je suis noté comme présent tout le temps.

Salut @francois :slight_smile:

Je te conseille de lire le tutoriel de l’intégration Bluetooth pour la gestion de la présence ( Gérer la présence avec la détection Bluetooth | Gladys Assistant )

C’est le même fonctionnement avec LAN Manager.

En gros, ce qu’il faut retenir, il te faut 2 scènes:

  • Une scène « changement d’état de l’appareil » → « Si l’appareil est détecté » qui passe ton utilisateur comme « vu à la maison ». Visiblement tu as déjà cette scène.

  • Une scène « Déclenchement programmé », toutes les 5 minutes par exemple, qui utiliser l’action de scène « Vérifier la présence ».

Le principe de l’action « Vérifier la présence », c’est d’aller chercher la dernière fois où ton/tes appareils ont été vu à la maison. Si c’était il y a plus de XX minutes, alors Gladys te marquera comme absent.

Bonjour @pierre-gilles

En somme donc pour détecter la présence ou non-présence c’est :

On teste la présence en checkant si c’est égal = 1

On teste l’absence en checkant si c’est différent <> 1 (et non pas si = 0)

Faudrait que ce soit précisé dans cette page car elle laisse à penser qu’il faut utiliser dans les scènes pour récupérer le dernier état d’un appareil la valeur ‹ présent › (ce que j’ai fait en vain et visiblement pas le seul :woozy_face:, true/false, 0/1) ou modifier le code pour qu’il renvoie 0 ou 1.

Justement, non

On teste l’absence si la dernière fois que l’appareil a été vu était il y a plus de X minutes.

Excuse moi de faire le lourd mais je vois pas comment utiliser cette fonctionnalité dans la création de scène et je pense qu’il y a une confusion pas que pour moi !
Je comprends que X minutes est déterminé par le scan qu’on a paramétré dans le module lan-manager mais je comprends pas ce qu’il faut pour tester la présence ou tester l’absence (qui est une non-présence depuis X minutes à détecter pour le coup)

Pourras tu joindre une capture de ce qu’il faudrait mettre pour tester la présence
d’un appareil car la je suis dans la confusion totale sur ça si ce que j’ai mis au -dessus n’est pas bon !

Peut tu joindre une capture de ce qu’il faudrait mettre pour tester la non-présence depuis X-minutes (donc l’absence au moment ou on teste)

Car le problème c’est que l’on peut vouloir avoir une scène pour tester la présence d’un appareil sur le réseau

  • utilisateur rentré donc coupure de l’alarme,allumage de lumière etc
  • caméra fonctionnelle donc envoi d’une image
  • box qui réponds tout va bien

Ou on peut vouloir avoir une scène pour tester l’absence d’un appareil sur le réseau

  • utilisateur absent donc activation alarme si maison vide, extinction de lumière etc
  • caméra dysfonctionnelle envoi d’un message etc
  • box qui réponds plus donc si branché sur une prise commandé reboot de la prise etc

Je pense que tu pense qu’on parles de ca qui lie utilisateur et appareil (avec vu X minutes)

Alors que là on parles juste de présence d’appareil lié à aucun utilisateur

Et que pour le coup on sait pas trop comment utiliser cette fonctionnalité et surtout quelle valeurs utiliser. De même, pour injecter une variable il faut chercher sur le forum pour savoir qu’il faut mettre un espace derrière les 2 accolades pour avoir la liste des variable alors que c’est mentionné ‹ {{ › sans espace :
image
Donc ou c’est pas l’effet voulu ou il y a un bug mais je me met à la place d’un nouvel utilisateur qui veut tester Gladys avant de l’adopter, il essaie des trucs et ça marches pas : 2 solutions il cherche sur le forum pourquoi ça marches pas comme indiqué ou il considère le produit pas stable ou fonctionnel et il passe à une autre solution de domotique ce qui est dommage quand c’est sur des détails de ce type !
J’aimerais comprendre comme ça après il est possible de faire des mini-tutos d’exemples utilisations concrètes de fonctionnalités et qui peuvent faire adhérer à Gladys. :slight_smile: car je pense qu’un mini-tuto d’exemple concret c’est parlant et ça vaut des fois mieux qu’une doc !

Salut @pierre-gilles,

Je dois t’avouer que détecter la présence via le LAN, plutôt que passer par le Bluetooth ou le OwnsTracks, me parait plus simple dans ma situation.

Le but est ne pas à avoir à toucher les téléphones de mes filles qui passent leur temps à couper tous les services « inutiles » à leur yeux. la géoloc fait partie des services inutiles.
Et la probalité de voir un porte clé NUT finir au fond d’un placard me parait plus que très élevée…

Comme le téléphone et le wifi sont la base de leur pyramide de Maslow, je sais que j’aurai les bonnes infos en me basant sur le wifi …

On choisit ses amis mais rarement sa famille :slightly_smiling_face:

PS : mais je ne rends compte que j’ai mal lu ta réponse et que le lien que tu proposes parle bien des deux scènes. merci :slight_smile:

1 « J'aime »