Nutzung der Präsenzfunktion über LANmanager

Hallo,
Nach einigen Recherchen und Tests habe ich nichts gefunden. Ich möchte wissen, ob mit der LAN Manager-Integration, welcher Wert von der Präsenzfunktion zurückgegeben wird und ob es möglich ist, diese mit „Nur fortsetzen, wenn“ in den Szenen zu verwenden.

Vielen Dank im Voraus

Hallo,

In den Szenen hast du diesen Auslöser

Ja, das ist möglich, aber ich habe es noch nie getestet.

Und wenn du den Wert einer Variable kennen möchtest, kannst du die Variable per Nachricht zurückgeben

Danke @Will_71 für deine Antwort, gut beobachtet, ich habe das Senden der Nachricht für die Variable vergessen.
Für den Auslöser Ok, das habe ich richtig gemacht, um zu sagen, ob zu Hause gesehen wurde.
Aber für die Verwendung der Variable in den Szenen ist das, was ich auch getestet habe, aber leider nicht funktionell, da der Wert der Funktion Präsenz von LANmanager immer 1 ist, selbst wenn das Telefon nicht mit dem LAN verbunden ist.

@AlexTrovato ich habe es in den verschiedenen Themen nicht gefunden, aber ist das das erwartete Verhalten?

Danke

ich habe meine Geräte im LAN gesehen

habe ich diesen Drucker

ich erstelle eine Szene « Wenn MF8040CN LAN abwesend ist, schalte das Licht aus »

ich erstelle eine Szene « Wenn MF8040CN LAN anwesend ist, schalte das Licht ein »

unter Verwendung von « anwesend » wie im Screenshot

Das sollte funktionieren, aber das Problem ist, wie oder mit welchem Wert das Gerät als anwesend markiert wird

Beim Durchsuchen des Codes auf GitHub Gladys/server/services/lan-manager/lib/lan-manager.constants.js at master · GladysAssistant/Gladys · GitHub
fand ich
const PRESENCE_STATUS = {
ENABLED: ‹ enabled ›,
DISABLED: ‹ disabled ›,
};

ich habe es mit ‹ enabled › ‹ disabled › versucht, aber es funktioniert nicht…

Aber beim Ausführen der Szenen schaltet die Steckdose ein oder aus, je nach aufgerufener Szene… :thinking:

Falls du helfen kannst, glaube ich, dass du diese Integration entwickelt hast @AlexTrovato

Ich bemerke zwei Dinge:

  • du hast keinen Auslöser in deiner Szene (vielleicht ist das geplant, ich sage es nur für den Fall)
  • ich denke, du solltest entweder den Wert 1 für « anwesend » oder 0 für « abwesend » einsetzen

ja, ich habe noch keinen gesetzt. Ich löse die Szene manuell aus, das geht schneller, um den unteren Teil zu „debuggen“ :wink:

das habe ich auch versucht und es funktioniert nicht :sob: :sob: :sob: :sob: :sob:

Wie @cce66 habe ich es auch versucht, aber es funktioniert nicht. Und wenn ich die Variable sende, erhalte ich immer « 1 » zurück, aber wenn nicht verbunden.

Ich habe es gerade getestet und bestätige, dass der Wert immer noch == 1 ist

@AlexTrovato beim Betrachten des Codes

https://github.com/GladysAssistant/Gladys/blob/master/server/services/lan-manager/lib/lan-manager.scanPresence.js

Ich glaube, der Wert state wird nicht auf 0 gesetzt, wenn das Gerät nicht gefunden wird

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

Wenn ich mich nicht irre, sollte der Code so aussehen

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,
    });
}

Ich bin mir nicht sicher bei meinem Vorschlag :thinking: also bitte nicht lustig machen :blush:

Hallo,

Ich stelle dasselbe fest. Mein Telefon verschwindet vom WLAN und trotz der vergehenden Minuten (mit einem Standard-Scan von 2 Minuten) bleibt die Anwesenheit meines Telefons bei 1 Ad Vitam…

Allerdings mache ich es vielleicht falsch.
Ich verwende den LANManager, um die Anwesenheit der Geräte zu verwalten, und habe zwei Szenen erstellt

Auslöser:

  • Zustandsänderung des Telefons

Aktionen:

  • Letzten Zustand des Geräts abrufen
  • Nur wenn Zustand = 1 fortfahren
  • Zu Hause gesehen

Die zweite ist das Gegenteil mit einem Nur wenn = 0 und Benutzer weg

Gibt es Ihrer Meinung nach eine bessere Möglichkeit, dies zu tun?

Ich glaube nicht, dass du es falsch machst. Meiner Meinung nach gibt es einen Bug, der behoben werden muss! :+1:

Bei mir funktioniert es seit Anfang an!
Die beiden Szenen:

  • Intervall 8 Minuten (Auslöser)
  • Prüfen, ob der Nutzer anwesend ist (Gerät gesehen vor weniger als 3 Minuten)
  • Letzten Zustand abrufen (vom Telefon)
  • Nur fortfahren, wenn Telefon = 1
  • Nutzer VERLASSEN das Haus

Zweite Szene:

In LANmanager ist der Scan auf 2 Minuten eingestellt
Ich habe sehr wenige Fehlauslösungen, außer nachts, wenn die Telefone in den Energiesparmodus gehen und sich vom Wi-Fi trennen.
Die Scan- und Auslösezeiten sind wahrscheinlich noch anzupassen, aber da es bisher so lief…



(Ja, sie schlafen noch :innocent:, die beiden)

Der Trigger für die Änderung des Geräts Telefon erfolgt also nur, wenn das Telefon vorhanden wird. Und nicht, wenn es nicht vorhanden ist. Das sollte verbessert werden, um Szenen zu erleichtern (wie z. B. einen Öffnungssensor).

Hallo,
Wenn Anwesenheit = 1, bedeutet das, dass das Telefon gesehen wurde, also muss man im Haus gesehen worden sein und nicht das Haus verlassen haben, oder?

Ich weiß genau, dass das nicht logisch ist, aber es funktioniert. Wenn ich 0 eintrage, werde ich immer als anwesend gewertet.

Hallo @francois :slight_smile:

Ich empfehle dir, das Bluetooth-Integrations-Tutorial für die Anwesenheitsverwaltung zu lesen (Gérer la présence avec la détection Bluetooth | Gladys Assistant)

Es funktioniert genauso mit LAN Manager.

Kurz gesagt, was du beachten musst, sind 2 Szenen:

  • Eine Szene « Gerätezustandsänderung » → « Wenn das Gerät erkannt wird », die deinen Benutzer als « zu Hause gesehen » setzt. Offensichtlich hast du diese Szene bereits.

  • Eine Szene « Programmierte Auslösung », z. B. alle 5 Minuten, die die Szenenaktion « Präsenz prüfen » verwendet.

Der Sinn der Aktion « Präsenz prüfen » ist, das letzte Mal zu überprüfen, wann dein/ deine Geräte zu Hause gesehen wurden. Wenn das vor mehr als XX Minuten war, wird Gladys dich als abwesend markieren.

Hallo @pierre-gilles

Zusammengefasst, um das Vorhandensein oder Nicht-Vorhandensein zu erkennen, ist es:

Man prüft das Vorhandensein, indem man überprüft, ob es gleich = 1 ist

Man prüft das Nicht-Vorhandensein, indem man überprüft, ob es verschieden <> 1 ist (und nicht, ob es = 0 ist)

Das sollte auf dieser Seite klarer gemacht werden, denn sie lässt vermuten, dass man in den Szenen, um den letzten Zustand eines Geräts abzurufen, den Wert ‹ anwesend › (was ich vergeblich versucht habe und offensichtlich nicht der Einzige :woozy_face:) oder true/false, 0/1 verwenden muss oder den Code so ändern muss, dass er 0 oder 1 zurückgibt.

Genau das ist falsch

Man testet die Abwesenheit, wenn das letzte Mal, als das Gerät gesehen wurde, mehr als X Minuten her ist.

Entschuldige, dass ich nervig bin, aber ich verstehe nicht, wie man diese Funktion bei der Erstellung von Szenen nutzen soll, und ich denke, dass nicht nur ich verwirrt bin!
Ich verstehe, dass X Minuten durch den Scan bestimmt wird, den wir im Lan-Manager-Modul konfiguriert haben, aber ich verstehe nicht, was nötig ist, um die Anwesenheit zu testen oder die Abwesenheit (die eine Nicht-Anwesenheit seit X Minuten ist, die in diesem Fall erkannt werden soll)

Kannst du einen Screenshot davon anhängen, was man für den Test der Anwesenheit eines Geräts eingeben muss, denn im Moment bin ich total verwirrt, wenn das, was ich oben geschrieben habe, nicht richtig ist!

Kannst du einen Screenshot davon anhängen, was man für den Test der Abwesenheit seit X Minuten (also die Abwesenheit zum Zeitpunkt des Tests) eingeben muss

Denn das Problem ist, dass man eine Szene haben möchte, um die Anwesenheit eines Geräts im Netzwerk zu testen

  • Benutzer ist zurückgekehrt, also Alarmanlage ausschalten, Licht einschalten usw.
  • Kamera funktioniert, also Bild senden
  • Box antwortet, alles in Ordnung

Oder man möchte eine Szene haben, um die Abwesenheit eines Geräts im Netzwerk zu testen

  • Benutzer ist abwesend, also Alarmanlage aktivieren, wenn das Haus leer ist, Licht ausschalten usw.
  • Kamera funktioniert nicht, also Nachricht senden usw.
  • Box antwortet nicht, also wenn an eine gesteuerte Steckdose angeschlossen, Neustart der Steckdose usw.

Ich denke, du denkst, dass wir über das sprechen, was Benutzer und Gerät verbindet (mit gesehen X Minuten)

Während wir hier nur über die Anwesenheit eines Geräts sprechen, das mit keinem Benutzer verbunden ist

Und in diesem Fall wissen wir nicht genau, wie man diese Funktion nutzen soll und vor allem, welche Werte man verwenden soll. Ebenso muss man, um eine Variable zu injizieren, im Forum suchen, um zu wissen, dass man einen Leerraum hinter die beiden geschweiften Klammern setzen muss, um die Liste der Variablen zu erhalten, obwohl es als ‹ {{ › ohne Leerraum angegeben ist:
image
Daher ist es entweder nicht der gewünschte Effekt oder es gibt einen Bug, aber ich versetze mich in die Lage eines neuen Benutzers, der Gladys vor der Adoption testen möchte, er probiert Dinge aus und es funktioniert nicht: 2 Lösungen, er sucht im Forum, warum es nicht wie angegeben funktioniert, oder er hält das Produkt für nicht stabil oder funktionsfähig und wendet sich einer anderen Smart-Home-Lösung zu, was schade ist, wenn es um solche Details geht!
Ich würde gerne verstehen, wie man dann Mini-Tutorials mit konkreten Beispielen für die Nutzung von Funktionen erstellen kann, die dazu beitragen, Gladys zu übernehmen. :slight_smile: Denn ich denke, dass ein Mini-Tutorial mit einem konkreten Beispiel anschaulich ist und manchmal besser ist als eine Dokumentation!

Hallo @pierre-gilles,

Ich muss dir gestehen, dass das Erkennen der Anwesenheit über das LAN für mich einfacher ist, als über Bluetooth oder OwnsTracks.

Das Ziel ist es, nicht die Handys meiner Töchter anfassen zu müssen, die alle „unwichtigen“ Dienste, die aus ihrer Sicht unnötig sind, ständig ausschalten. Die Geolokalisierung gehört zu den unnötigen Diensten.
Und die Wahrscheinlichkeit, dass ein NUT-Schlüsselanhänger am Ende eines Schranks landet, erscheint mir sehr hoch…

Da das Telefon und das WLAN die Basis ihrer Maslow-Pyramide sind, weiß ich, dass ich die richtigen Informationen habe, wenn ich mich auf das WLAN stütze …

Man wählt seine Freunde, aber selten seine Familie :slightly_smiling_face:

PS: Aber ich merke, dass ich deine Antwort falsch gelesen habe und der von dir vorgeschlagene Link tatsächlich beide Szenen behandelt. Danke :slight_smile: