Anwesenheit über das Vorhandensein oder das Ausbleiben von Events - wie?

Begonnen von devil77, 21 Februar 2026, 22:08:07

Vorheriges Thema - Nächstes Thema

devil77

Hallo,
steh gerade auf dem Schlauch. Ich spiele gerade mit einem ESP32 und ESPresence und Anwesenheitserkennung meiner G-Tags.
ESPresence selber sendet ja kein direktes Event mit abwesend oder anwesend.
Jetzt kam mir die Idee das über das Vorhandensein bzw. das Ausbleiben von Änderungen zu bewerkstelligen.
Also ist ein G-Tag in Reichweite dann ändern sich die Werte alle 30 Sekunden. Ist ein G-Tag außerhalb der Reichweite so ändern sich quasi ab 31 Sekunden die Werte nicht mehr.
Jetzt weiß ich aber nicht wie ich das am "galantesten" umsetze.
Wenn alle 30 Sekunden ein Wert sich ändert dann einmalig anwesend und wenn nicht aller 30 Sekunden eine Änderung dann abwesend.
Vermutlich wird es doif aber ich habe gerade keine Ahnung wie am Besten.
Hat jemand einen Ansatz oder einen Tip wie ich das umsetzen kann?

rabehd

Eine Sekunde Differenz erscheint mir als zu riskant. Für Abwesenheit kann man sich mehr Zeit nehmen.
Ein DOIF-Zweig mit wait wird (wenn so konfiguriert) mit jedem Event neu gestartet.
Wenn Du also nach 2 Minuten nach Anwesenheit auf Abwesend setzen willst dann startet der Zweig immer wieder neu mit dem Timer. Heißt auch da läuft ständig ein Timer.
Auch funktionierende Lösungen kann man hinterfragen.

Gisbert

Hallo devil77,

es gibt mehrere Möglichkeiten auf ausbleibende Readings zu triggern. Schau dir mal die Module watchdog und readingsWatcher an.

Bei watchdog müsstest du, falls ich es richtig verstanden hab, für jeden G-Tag ein Device anlegen. Bei readingsWatcher reicht ein Device.

Beide Module arbeiten damit, dass eine vordefinierte Zeit vergangen sein muss, bevor sie triggern. Im Device gibt es für beide - Korrektur s. unten, nur watchdog - Module einen Ausführungsanteil, z.B. kann man sich benachrichtigen lassen, sofern in Fhem definiert wurde, oder irgendeinen Befehl ausführen.

Falls es weitere Unterstützung bedarf, dann melde dich gerne wieder, an besten mit einem list des Devices einer deiner G-Tags - dann ist es direkt konkret.

Viele Grüße Gisbert


Korrektur: Bei readingsWatcher gibt es keinen Ausführungsteil, s. commandref:
ZitatreadingsWatcher
The module monitors readings in other modules that its readings or their times change at certain intervals and
if necessary, triggers events that can be processed further with other modules (for example, notify, DOIF).
Forum : https://forum.fhem.de/index.php/topic,49408.0.html
Proxmox | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon

DeeSPe

Wenn es nicht um ESPresence sondern um ESPresense geht, dann gibt es bereits eine Lösung dafür.
Das habe ich gerade vor ein paar Tagen sehr erfolgreich umgesetzt. Falls du Fragen dazu hast, gerne.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe