[Gelöst]BenaricHtung wenn man aus dem Haus geht das noch eine Tür oder Fenster

Begonnen von Sebastian84, 14 September 2020, 12:17:47

Vorheriges Thema - Nächstes Thema

laberlaib

Zitat von: KyleK am 20 September 2020, 13:38:02
Zum DOELSEIF:
Wenn eine Änderung des Status der structure nicht auslöst, dann bekommst du keine Info wenn ein Fenster geöffnet wird, obwohl niemand zuhause ist.
So wie die DEF oben steht löst cmd_2 nur aus, wenn rgr_Familie den Status auf absent oder gone ändert, und zu diesem Zeitpunkt ein Fenster offen ist.
Stimmt, ich muss da das Fragezeichen an die Familie bappen! Oder gar kein Fragezeichen - falls man die Audioansage überhört, will man ja wenigstens später gewarnt werden.
Danke, gleich erledigt.
(Ist ein bisschen wie der Bundeswarntag - wird nie genutzt, drum merkt man nicht, dass was nicht stimmt und zack - keine einzige Sirene heult.)
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Sebastian84

Eingangstuer:on.* {if(ReadingsVal("handy_sebastian","state","present") eq "absent" && ReadingsVal("handy_patricia","state","present") eq "absent" && ReadingsVal("handy_oma","state","present") eq "absent" ){fhem("set pushmsg msg 'Alarmanlage' 'Eingangstür unbefugt offen' 'sebastian' 2 'siren' 30 3600 ")}}

Der erste Notify klappt an der Balkontür super. Da habe ich auch immer wlan.
habe das Problemm das an der Eingangstür  die presens zu spät kommt so dass, ich ein Alarm bekomme wenn ich ins Haus gehe. kann man da noch ne Zeit einbauen, damit die Presens angezeigt wird.

Ein anderer Ansatz den ich versucht habe
  define Grosse_Garage_Alarmanlage notify Grosse_Garage:off.* {if(ReadingsVal("handy_sebastian","state","n.a.") eq "absent" && ReadingsVal("handy_oma","state","n.a.") eq "absent" && ReadingsVal("Eingangstuer","state","off") eq "on") {fhem("set pushmsg msg 'Alarmanlage' 'Eingangstür unbefugt offen' 'sebastian' 2 'siren' 30 3600 ")}}


MadMax-FHEM

Ja, du kannst nat. verzögern.

Ich nehme ein at und prüfe einfach nach x Zeit (erneut) bzgl. Anwesenheit...

ABER: jetzt bist du ja wieder bei "Tür auf und wenn nicht anwesend eine Meldung"

Ich dachte du willst/wolltest: wenn ich gehe/gegangen bin, dann soll gemeldet werden, wenn noch was offen...


DAS SIND 2 KOMPLETT UNTERSCHIEDLICHE DINGE!

Wie wäre es sich (mal) zu entscheiden!

Hast du die gemachten Beispiele und Hinweise mal "durchgearbeitet"!?

(wobei die meisten davon nat. in Richtung: "Meldung bei Verlassen" waren)

EDIT: Verwendung von code-Tags (das '#' im "Menü") wäre auch schön... So wie das 2te notify ;)

EDIT: das 2te notify reagiert doch auf geschlossen!? Oder funktionieren die 2 Türen unterschiedlich bzgl. offen/zu - on/off!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

Habe jetzt mal über event Monitor crate

   Internals:
   CFGFN     
   DEF        handy_sebastian:presence:.Abwesend && handy_oma:presence:.Abwesend && handy_patricia:presence:.Abwesend
   FUUID      5f6af34f-f33f-cdd4-ac73-9a6e81bae3853155
   NAME       handy_sebastian_notify_1
   NOTIFYDEV  handy_sebastian
   NR         169592
   NTFY_ORDER 50-handy_sebastian_notify_1
   REGEXP     handy_sebastian:presence:.Abwesend
   STATE      2020-09-23 09:57:01
   TRIGGERTIME 1600847821.64074
   TYPE       notify
   READINGS:
     2020-09-23 09:51:15   state           active
Attributes: 


Jetzt würde ich gerne noch

    if(ReadingsVal("Haus","state","closed") eq "open")     

Da stehen alle Fenster und Türen drin .
Die würde ich da gerne noch reingekommen.
Es soll ein notify sein der nur auslöst wenn sebastian,  Oma und Patricia nicht da sind und dann über Haus eine Tür oder Fenster auf gemacht wird auslösen.
Am besten müsste noch eine Zeit drin stehen die nach Ablauf die Presence nochmal abfragt da es mal vorkommt das das wlan erst um Haus erkannt wird und dann fehlalarme gibt.

MadMax-FHEM

Das mag ja teils mit EventMonitor erstellt sein...

ABER: du kannst in den Regex-Teil des notify KEIN && irgendwas prüfen!! Da ist NICHT Perl!! Da ist Regex!!!

Ich würde empfehlen mal Wiki/commandref bzgl. notify zu LESEN!

Du kannst sowas machen:


define nTest notify handy_.*:presence:.Abwesend { }


EDIT: allerdings reagiert dieses notif auf "jedes" Handy (bzw. jedes Device was mit handy_ beginnt und ein Event Names presence mit dem Inhalt Abwesend "feuert")... Wenn du nur willst, dass etwas passiert, wenn alle Handys "weg" sind, dann eben ZUERST prüfen, ob dem so ist. Also ob quasi das jetzt "meldende" Handy das letze noch anwesende war... Und dann halt tun was dann passieren soll (oder weitere Dinge prüfen)... Es gibt für das was du willst glaub ich auch was "von" DOIF (aggregats-irgendwas glaube ich). Nutze aber kein DOIF, daher nur soviel dazu...

In den geschweiften Klammern ist dann Perl!

Da kannst du z.B. mit if etc. Bedingungen prüfen...
Und mittels:


fhem("set irgendwas auf was")


auch fhem-Befehle nutzen...

So, wenn wieder "Blödsinn" kommt wo man (ich für mich) denke/merke: nix gelesen (wollen) bzw. nix "verstehen" (wollen)...

Dann bin ich hier (leider) raus...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Beta-User

Von meiner Seite auch nochmal ein letzter Versuch zum Mitmeißeln: notify besteht immer aus zwei Teilen:

- einer devspec mit dem auslösenden Event (die potentiellen Auslöser hast du hier nicht mit der richtigen Syntax verbunden, _falls_ das gemeint war...), im Wiki nennt sich das "Suchmuster" und kann z.B. mit www.regex101.com geprüft werden, und

- einer Reaktion, einem <command>. _Falls_ das Auslöser sein sollten, die du da versucht hast logisch zu kombinieren, fehlt der <command>, falls der hintere Teil als command zu verstehen sein sollte, paßt die Syntax nicht...

Bevor du dir nicht klar bist, was 
- Auslösebedingungen (Events),
- abzufragende Zustandsbedingungen (ReadingsVal()&Co, das gehört bei notify in den command-Teil) und was
- abzusetzender Befehl sein soll (ggf. einschließlich darin enthaltener Verzögerung),
wird es mit keiner Lösung was, weder mit notify, noch mit irgendwas anderem.



Generell solltest du überlegen, Zustände mehrerere Devices ggf. irgendwie zu konsolidieren. Für die Handy's (PRESENCE?) ginge das z.B. mit structure, aber an sich ist dir das auch wurst, denn eigentlich geht es um den Bewohnerstatus, und dafür würde ich empfehlen, das mit RESIDENTS abzubilden.

Setzt aber voraus, dass du dir erst mal über die Bedeutung von EVENTS in FHEM (v.a. im Unterschied zu Readings) im Klaren bist, da scheinen mir noch deutliche Verständnislücken zu bestehen.

Just my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Sebastian84

Sorry
Hab mich versucht einzulesen
Hab da was hinbekommen
  handy_.* presence:.Abwesend {if(ReadingsVal("handy_sebastian","state","n.a.") eq "absent" && ReadingsVal("handy_patricia","state","n.a.") eq "absent" && ReadingsVal("handy_oma","state","n.a.") eq "absent" && ReadingsVal("Haus","state","closed") eq "open") {fhem("set pushmsg msg 'Alarmanlage' 'Tür oder Fenster unbefugt offen' 'sebastian' 2 'siren' 30 3600 ")} }

Leider kommen zwischendurch Fehlalarme
Wenn das Wlan mit fhem zu spät auf present geht.
Wenn ich ca. 5 Sekunden an der Eingangstuer warte und dann erst aufmache gibts keine Fehlalarme mehr. Weil er dann auf present steht. Kann man da was mit einer Zeit oder was anderes machen?

Beta-User

 :) Das sieht jedenfalls deutlich besser aus als die letzten Versuche.

Zu der Zeitfrage ist es wie immer: für sowas gibt es viele Möglichkeiten.

Vorab mal, was ich _nicht_ empfehlen würde: zu versuchen, an der polling-Zeit für die Anwesenheitserkennung was zu ändern...

Meine Empfehlung wäre, das ggf. mit einem watchdog zu lösen, der "kann" die Zeitkomponente und ist der "Prototyp" dieser Art Funktionalität.

Also 1. Trigger wie hier, der 2. trigger (auf den erfolglos zu warten wäre) wäre dann das "present-Event, und erst, wenn das z.B. 10 Sekunden ausbleibt (oder wie lange auch immer man warten muss, um Fehlalarme auszuschließen), wird dann der Befehl abgesendet und am Ende dann der watchdog wieder aktiviert (die "komische" Sache mit dem "Punkt" in der Commandref zu watchdog...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MadMax-FHEM

Der Fehlalarm hat aber nichts mit dem zu letzt geposteten notify zu tun, das triggert ja auf "Handy geht weg"...

Und ich hatte zuvor (selbe Frage) schon mal geantwortet ;) : statt gleich die Nachricht schicken ein at und im at dann noch mal prüfen.

(oder im notify gleich nur ein at und nur im at prüfen)

Aber wie geschrieben: muss eigentlich ein anderes notify sein, dass den geschilderten Fehlalarm hervorruft...

EDIT: mit meiner WLAN-Anwesenheitserkennung habe ich auch so ein at (spätere [erneute] Prüfung) gebraucht. Und: ich habe im Sommer bei geöffnetem Fenster auch ab und an Fehlalarme, wenn das Handy in "sleep" ging (alles Versucht, inkl. "hping3-Methode" [gibt einen Thread dazu]). Bin letztlich auf BT-Dongels umgestiegen: (kein at mehr und) keine Fehlalarme im Sommer ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

  handy_.*:presence:.Abwesend at 00:00:05 {if(ReadingsVal("handy_sebastian","state","n.a.") eq "absent" && ReadingsVal("handy_patricia","state","n.a.") eq "absent" && ReadingsVal("handy_oma","state","n.a.") eq "absent" && ReadingsVal("Haus","state","closed") eq "open") {fhem("set pushmsg msg 'Alarmanlage' 'Tür oder Fenster unbefugt offen' 'sebastian' 2 'siren' 30 3600 ")} }   
Ich glaube das ich ein Fehler mit at mache.
Es soll wenn ich ins Haus gehe eine Verzögerung geben. Das wenn dann das wlan die Presence erkennt nicht auslöst.
Aber dann auch anders rum das wenn ein unbefugten rein geht und die Tür direckt schließt dass dann nach 5 Sekunden der alarm losgeht da die Presence Abwesend ist.


Beta-User

Der Fehler liegt weniger in at, sondern in dem Ausführungsteil von deinem notify. "at" ist mWn. kein gültiger FHEM-Befehl...

(Hier würde ich mal "defmod" als FHEM-Befehl ins Rennen werfen und auch nochmal einen Blick auf die Syntax von at empfehlen, die Zeit kommt mir seltsam vor...).

Und schau dir das mit watchdog nochmal an. Ist am Anfang eher schwer zu verstehen, aber du solltest diese Art Programmierlogik verstehen lernen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MadMax-FHEM

Jep, wenn du bei at bleibst, dann defmod, weil at ist kein Befehl sondern ein Device-Type.

EDIT: ergänzt zu Device-Type... ;)

Genau wie notify, DOIF, dummy, ...

Und bei der Zeit muss ein + davor für: "relativ ab jetzt"...

Ich hatte auch mal 5Sek hat aber nicht immer gereicht...

Und mal prüfen, ob die Handys stabil anwesend bleiben, gerade über Nacht.
Z.B. mit einem FileLog...

Weil wie geschrieben: ich hatte bei offenem Fenster im Sommer schon mal den einen oder anderen Fehlalarm...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Beta-User

Zitat von: MadMax-FHEM am 24 September 2020, 15:14:29
weil at ist kein Befehl sondern ein Device.
?

Wenn du's schon erklärst, wäre etwas "genauer" mMn. an dieser Stelle angebracht. "at" ist erst mal eine Modulbezeichnung, oder meinetwegen ein TYPE, aber für sich genommen jedenfalls _noch_ kein Device ;) .

(Ansonsten wäre es hier mMn. angebracht, den TE erst mal noch etwas über der Doku sitzen zu lassen, dann fällt vielleicht eher der Groschen und/oder wir bekommen wieder eine qualifizierte Rückfrage - hoffentlich auch zu der Andeutung mit structure bzw. RESIDENTS...?)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MadMax-FHEM

Zitat von: Beta-User am 24 September 2020, 15:25:50
(Ansonsten wäre es hier mMn. angebracht, den TE erst mal noch etwas über der Doku sitzen zu lassen, dann fällt vielleicht eher der Groschen und/oder wir bekommen wieder eine qualifizierte Rückfrage - hoffentlich auch zu der Andeutung mit structure bzw. RESIDENTS...?)

Drum hab ich bislang ja noch nicht mit fertigen Dingen aufgewartet (wie so manch anderer "Kollege" hier...), sondern immer (versucht zu) erklärt und Stichworte genannt (bzw. versucht zu korrigieren, wenn es "übelst" missverstanden wurde)...

...mal sehen wie der TE sich zurückmeldet...

Vielleicht fallen die Groschen ja... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Sebastian84

   define Uberwachung watchdog Handys_anwesend:absent 00:15 Handys_anwesend:present and if(ReadingsVal("Haus","state","closed") eq "open {fhem("set pushmsg msg 'Alarmanlage' 'Tür oder Fenster unbefugt offen' 'sebastian' 2 'siren' 30 3600 ")}
   
Würde doch heißen wenn 15 Minuten abwesend und haus open sende die Naricht.
Und wenn in 15 Minuten von abwesend zu present gewechselt wird das es keine narichten gibt.
Und dann noch autoreset:1 das der Befehl in ausgangszustand gebracht wird.
Weiß aber nicht ob ich einfach and und if einbinden kann.