FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wolliballa73 am 07 Oktober 2020, 14:27:44

Titel: abwesend-Schaltung
Beitrag von: wolliballa73 am 07 Oktober 2020, 14:27:44
Hallo allerseits,

ich möchte gerne mit meinem Riegelkontakt und dem Bewegungsmelder feststellen, ob die Haustür von außen oder von innen abgeschlossen wurde. Allerdings habe ich momentan keine Idee, wie ich das in FHEM umgesetzt bekomme (DOIF oder notify oder....):

- der Riegelkontakt schaltet auf "geschlossen"
- innerhalb von 10 Sekunden meldet der BWM "Bewegung" im Flur -> zugesperrt von innen
- keine Bewegung im Zeitfenster: zugesperrt von außen

Ich hab das momentan noch auf meinem Wiregate als Funktion umgesetzt, die über beiden Ereignisse als Trigger mehrfach aufgerufen wird und mit zwischengespeicherten Werten arbeitet. Ich habe aber das Gefühl, dass das mit FHEM irgendwie eleganter zu lösen sein könnte.

Für sachdienliche Hinweise wäre ich dankbar! 8)
Titel: Antw:abwesend-Schaltung
Beitrag von: MadMax-FHEM am 07 Oktober 2020, 14:39:33
Geht bestimmt mit/in fhem...

Sowohl notify als auch DOIF... ;)

Je nachdem was dir "liegt"...

Aber ich bin nicht sicher, ob deine Logik 100% funktionieren wird...

Angenommen du gehst raus und sperrst zu: BWM ist verm. noch auf "motion" also: innen oder außen zugesperrt!? ;)

Gut, man kann noch abfragen wann motion ausgelöst hat: ReadingsAge z.B.

Aber es gibt bestimmt noch (einige) andere Fälle, die so nicht genau erfassen, ob nun innen oder außen...

Mit notify eben ein notify auf Zuschließen und dann eben prüfen, ob bzw. wann der BWM ausgelöst hat...

Allerdings: du kommst rein -> BWM löst aus und du schließt ab... Frage: innen, weil schon rein und zugeschlossen ODER aussen, weil BWM motion, du bist ja eben erst raus und hast zugeschlossen...

EDIT: außer der BWM meldet SOFORT noMotion nachdem sich 1s nichts mehr bewegt hat... ;)

EDIT: was ist mit 2 Personen? Gut, da sperrst du verm. nicht zu, wenn innen noch jemand ist (der Motion macht ;)  )...

Also wie geschrieben (und oft diskutiert) glaube ich nicht, dass das in der Art zuverlässig geht (ohne sich jede Menge "Hilfskonstrukte" zu "basteln")... Such mal nach Anwesemheit und Bewegungsmelder im Forum, da wirst du einige Diskussionen finden... ;)

DOIF: keine Ahnung, nutze ich nicht...

Gruß, Joachim
Titel: Antw:abwesend-Schaltung
Beitrag von: wolliballa73 am 07 Oktober 2020, 15:07:13
Hallo Joachim,

mein BWM (KNX) schickt periodisch Telegramme, solange er Bewegung erkennt (ich glaub, ich habs auf 1 Telegramm/Sekunde eingeschränkt). Ich hab damit also praktisch einen Live-Status.
Titel: Antw:abwesend-Schaltung
Beitrag von: Beta-User am 07 Oktober 2020, 15:10:18
Du solltest ein paar mehr Infos liefern: https://forum.fhem.de/index.php/topic,71806.0.html

Was mich speziell interessieren würde: Die genaue Anfolge der Events in beide Richtungen. Mein Verdacht: das ist nicht ganz so akkurat wie du das schreibst...
Wenn der Bewegungsmelder beim Reinkommen tatsächlich immer nach dem Riegel triggert, könnte man ein einfaches notify machen und dann mit einem ReadingsAge() auf den Bewegungsmelder abfragen, ob der schon eine Weile nichts mehr gesehen hat (10 sek. wären dann wohl schon "eine Weile").
define n_TK_notify notify Tuerriegel:geschlossen { ReadingsAge("BWM","Bewegung",1000) < 10 ? fhem("setreading Tuerriegel Richtung innen") : fhem("setreading Tuerriegel Richtung aussen") }
Kann aber sein, dass die Zeiten nicht passen bzw. ggf. auch nochmal ein notify für den Bewegungsmelder Sinn macht, der das auf "innen" setzt...
Titel: Antw:abwesend-Schaltung
Beitrag von: MadMax-FHEM am 07 Oktober 2020, 15:23:10
Es geht aber (erst mal) nicht um's Heimkommen, sondern abschließen...

D.h. er kommt rein, macht die Tür zu und schließt ab, da hat der BWM bestimmt schon ausgelöst (wenn tatsächlich bereits mehrfach!? -> ReadingsAge fragwürdig)...

Oder er geht raus BWM hat bestimmt ausgelöst und sperrt ab aber der BWM-Zustand inkl. ReadingsAge ist wohl schwer (wenn überhaupt) von dem Reinkommen-Fall zu unterscheiden...

;)

Aber klar: Eventfolgen per Eventmonitor würden helfen!

Und von da aus (Eventmonitor) kann man wunderbar notify/DOIF etc. erzeugen lassen...

https://wiki.fhem.de/wiki/Event_monitor

EDIT: bzw. kann man das nat. "2-Stufig" machen, erst mal (versuchen zu) erkennen, ob nachhause gekommen oder weggegangen und das dann "festhalten" und beim Abschließen eben kucken, ob gekommen/gegangen... Bleibe aber dabei: es wird so einfach nicht "stabil" funktionieren...

Gruß, Joachim
Titel: Antw:abwesend-Schaltung
Beitrag von: Beta-User am 07 Oktober 2020, 15:41:13
Zitat von: MadMax-FHEM am 07 Oktober 2020, 15:23:10
Es geht aber (erst mal) nicht um's Heimkommen, sondern abschließen...
...da hast du auch wieder recht...

Zum Event-Monitor noch: Da kann man wunderbar per devspec (oben auf das ".*" klicken) ggf. auch mal nur die Geräte "arbeiten lassen", die einen im Moment grade interessieren ;) .
Titel: Antw:abwesend-Schaltung
Beitrag von: wolliballa73 am 07 Oktober 2020, 15:44:09
Hallo zusammen,

erstmal vielen Dank für die rege Teilnahme!
Tatsächlich ist es genau so, wie Joachim vermutet: beim Heimkommen ist es ziemlich trivial: Riegel geht auf -> anwesend (der BWM ist dann egal)
Wenn ich von innen zusperre, kommen im Sekundentakt die "Bewegung erkannt"-Telegramme auf dem KNX-Bus, von außen eben nicht.

Ich logge die Events mal mit und liefere sie hier nach, dann sehen wir weiter 8)
Titel: Antw:abwesend-Schaltung
Beitrag von: wolliballa73 am 07 Oktober 2020, 19:03:39
so, hier ein Beispiel für "zuschließen von innen":
2020-10-07 18:53:07 KNX BWM_10 praesenzTuer-get: true
2020-10-07 18:53:10 KNX status_Haustuer getG1: closed
2020-10-07 18:53:10 KNX status_Haustuer last-sender: 1/1/101
2020-10-07 18:53:10 KNX status_Haustuer closed
2020-10-07 18:53:11 KNX BWM_10 praesenzTuer-get: false
2020-10-07 18:53:11 KNX BWM_10 praesenzTuer-get: true
2020-10-07 18:53:15 KNX BWM_10 praesenzTuer-get: false


- Hinlaufen zur Haustür
- Zusperren von innen
- Weglaufen

... und zusperren von außen:
2020-10-07 18:56:14 KNX status_Haustuer getG1: closed
2020-10-07 18:56:14 KNX status_Haustuer last-sender: 1/1/101
2020-10-07 18:56:14 KNX status_Haustuer closed
2020-10-07 18:56:38 KNX status_Haustuer last-sender: 1/1/254
2020-10-07 18:56:38 KNX status_Haustuer last-sender: 1/1/254
2020-10-07 18:56:38 KNX status_Haustuer getG1: open
2020-10-07 18:56:38 KNX status_Haustuer last-sender: 1/1/101
2020-10-07 18:56:38 KNX status_Haustuer open
2020-10-07 18:56:42 KNX BWM_10 praesenzTuer-get: true
2020-10-07 18:56:48 KNX BWM_10 praesenzTuer-get: false


- zusperren 18:56:14
- wieder aufsperren 18:56:38

Wie man sieht, gibt's im zweiten Fall keine Meldungen vom BWM, nachdem die Tür geschlossen wurde. Und damit komme ich wieder zur Ausgangsfrage zurück: wie mache ich das am Elegantesten, dass ich nach dem Zusperren eine kurze Pufferzeit habe, falls ich drinnen bin, bevor ich den "an-/abwesend"-Status ändere?
Titel: Antw:abwesend-Schaltung
Beitrag von: Beta-User am 08 Oktober 2020, 09:02:55
Hmm, _vermutlich_ ginge folgendes:

Für das "zuschließen von innen" könnte man eine sequence nutzten, die Präsenz/Schließen/Präsenz (je mit 4-15 Sek. Wartezeit) abcheckt. Auf den dadurch ausgelösten trigger kann dann ein Eventhandler lauschen.

Für "von außen" wäre es (z.B.) ein watchdog, der durch das schließen angetriggert wird und dann ~5 Sek. auf das Ausbleiben der Bewegung innen wartet?

Dabei würde ich die Wartezeit der sequence auf das 3. Event etwas länger wählen als die watchdog-Spanne, damit - falls man kurz unter der Türe stehen bleibt - zwar erst mal der watchdog auf "von außen" stellt, aber das dann ggf. wieder korrigiert wird, wenn man dann doch rein kommt.

Dabei muß aber wirklich sichergestellt sein, dass der Bewegungsmelder duch die Türe nichts mitbekommt.
Titel: Antw:abwesend-Schaltung
Beitrag von: wolliballa73 am 08 Oktober 2020, 12:03:54
Hi,

Zitat von: Beta-User am 08 Oktober 2020, 09:02:55
Für "von außen" wäre es (z.B.) ein watchdog, der durch das schließen angetriggert wird und dann ~5 Sek. auf das Ausbleiben der Bewegung innen wartet?

bin zwar gerade nicht zu Hause und kann's nicht testen, aber das klingt optimal!

Für "Zuschließen von innen" brauche ich eigentlich keine Auswertung etc.; mir reicht's, wenn ich "von außen" erfasst bekomme und damit den Status auf "abwesend" setzen kann. Beim Aufsperren geht's dann wieder auf "anwesend" über ein einfaches notify.

Ich teste das heute Abend, dann schauen wir mal 8)
Titel: Antw:abwesend-Schaltung
Beitrag von: wolliballa73 am 08 Oktober 2020, 20:50:55
Hallo zusammen,

ich würde sagen, das sieht gut aus - Praxistest bestanden!!!!

defmod wdog_Haustuer watchdog status_Haustuer:closed 00:00:10 .*praesenzTuer-get:\strue set status_anwesend false
attr wdog_Haustuer autoRestart 1


Vielen Dank für die Unterstützung - ich WUSSTE doch, dass das mit FHEM ganz einfach geht 8)