[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

MadMax-FHEM

Soll das "spezifizierter" Pseudocode sein!!?

Weil: "und alle" ist KEIN Perl!

Und: ReadingsAge liefert eine Zahl zurück (Sekunden seit letzter Änderung: ReadingsAge -> "Alter des Readings"). Da macht ein Vergleich mit "absent" doch überhaupt keinen Sinn!

Hast du denn den Link von amenomade "verfolgt"!?
Gelesen!?

Und: "else at +3" äh, was soll das tun...

Und keine Ahnung, ob das schon alles war was "nicht passt"...

Das muss doch tausend Fehler im Log erzeugen...

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)

amenomade

Zitat von: Sebastian84 am 19 Oktober 2020, 06:51:51

Meintest du so?

Ja, mit ein bischen Kopf dazu. Die Syntax für at +3 hattest Du schon im vorherigen notify. "Alle" steht natürlich für (ReadingsVal(blabla...) und ReadingsVal(blublbu....) und ReadingsVal(blibli...), das hattest Du auch schon im vorherigen notify. Und ReadingsVal schreibt man nicht readingsVal. Und was Joachim schon geschrieben hat.

Also bitte... Lies mal was Du geschrieben hast! Wie sollte es funktionieren?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

MadMax-FHEM

Was ich ja auch schon mal geschrieben hatte (https://forum.fhem.de/index.php/topic,114240.msg1088070.html#msg1088070):

warum nicht sofort prüfen, wenn alles (noch) passt -> keine Nachricht (also kein Fehlalarm, sofern ein Handy NOCH eingeloggt ist während du aber schon die Garage öffnest)

und wenn es nicht passt, dann eben 3min (oder so) später noch mal prüfen -> keine Nachricht, falls du doch nachhause gekommen bist und das Handy inzwischen eingeloggt ist

Wenn bei sofortiger Prüfung UND später KEIN Handy eingeloggt -> Nachricht


define nUeberwachung notify Kleine_Garage:on {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" ){fhem("defmod atTmp_Kleine_Garage_on at +00:03:00 {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' ){fhem(\"set pushmsg msg 'Alarmanlage' 'Kleine Garage unbefugt offen' 'sebastian' 2 'siren' 30 3600 \")")}}}}


Wobei ich so lange if/else irgendwas-Konstrukte ja in eine Sub in myUtils auslagern würde...

EDIT: also so

notify

define nUeberwachung notify Kleine_Garage:on {myGaragenUeberwachung()}


Sub

sub myGaragenUeberwachung()
{
  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" )
  {
    fhem("defmod atTmp_Kleine_Garage_on at +00:03:00 {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' ){fhem(\"set pushmsg msg 'Alarmanlage' 'Kleine Garage unbefugt offen' 'sebastian' 2 'siren' 30 3600 \")")}}
  }
}


EDIT: bei beiden Varianten ist wichtig (sind ja prinzipeill das gleiche nur anders "verteilt" ;) ), dass statt doppelter Anführungszeichen einfache "müssen" und doppelte, wenn doch notwendig (was ich nicht weiß, da ich nicht weiß was der pushmsg-Aufruf "schluckt", drum hab ich das mal unverändert gelassen, in der Hoffnung, dass der so stimmt und funktioniert) dann müssen diese "escaped" werden: \" statt nur "

EDIT: aber hattest du nicht schon eine structure für deine Handys!? https://forum.fhem.de/index.php/topic,114240.msg1088025.html#msg1088025 Dann wäre die Abfrage-Orgie DEUTLICH kürzer... Aber musst du wissen... Übersichtlich ist anders... Hoffe daher, dass ich mich bzgl. copy/paste etc. nicht "vertan/verzählt" hab bzgl. Klammern und Anführungszeichen... Aber du schaust bestimmt noch mal drüber... Und auch ins Log, ob es Fehler gibt und so weiter...

EDIT: allerdings MUSS es jetzt so sein, dass dein bzw. das letzte Handy noch so lange eingelogged (also present) ist, bis du das kleine_Garage öffnest. Ist dein Handy (bzw. das letzte) da schon ausgelogged, also "absent", dann gibt es 3min später (trotzdem) einen Alarm! Ist dein Hnady (oder das letzte) mal nicht lange genug eingelogged, so bekommst du (nat.) wieder einen "Fehlalarm"... Daher bin ich nicht sicher, ob deine Logik wirklich passt...

EDIT: wenn du das übernehmen solltest und es tatsächlich auch noch (zufriedenstellend) funktionieren sollte, dann hast du zwar nichts gelernt und nachträglich notwendige Anpassungen landen wieder hier (weil eben nichts gelernt) aber das ist mir dann (jetzt) auch egal ;)

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

Guten Abend
Danke der super Hilfe.
Hab jetzt nochmal Überlegt, das du  zu 100% recht hast mit:
    warum nicht sofort prüfen, wenn alles (noch) passt -> keine Nachricht (also kein Fehlalarm, sofern ein Handy NOCH eingeloggt ist während du aber schon die Garage öffnest)

und wenn es nicht passt, dann eben 3min (oder so) später noch mal prüfen -> keine Nachricht, falls du doch nachhause gekommen bist und das Handy inzwischen eingeloggt ist 

Genau wie du sagst macht das nur Sinn!!
Leider bekomme ich bei deinen Notify keine Fhem Ausgabe per pushmsg auch wenn keiner da ist.

MadMax-FHEM

Hast du 1:1 kopiert!?

Poste doch mal ein list von dem notify und ein list von den Handys, wenn es nicht funktioniert aber hätte müssen...

EDIT: nächstes mal dann, wenn wieder was nicht geht. Du darfst ruhig mehr Infos liefern als nur: geht nicht... Weil sonst ist helfen unmöglich...

EDIT: gibt es Fehler im Log?

EDIT: hätte es MÜSSEN! Sorry: hatte ein paar Klammern vergessen. Drum mache ich solche "Konstrukte" lieber in Subs. Und auch der Hinweis der schon gegeben wurde (und wie vermerkt ich auch dachte du hättest es umgesetzt) die Handys in eine structure zu packen macht es deutlich übersichtlicher... (oder zumindest ReadingsVal-/ReadingsNum-Abfragen VORHER in Variablen zu packen. UND: es spricht nichts dagegen auch Klammern zu zählen, sich geposteten Code anzusehen usw.

EDIT: habe es korrigiert...

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

Ich bekomme jetzt noch den Fehler:

Unmatched right curly bracket at (eval 1889668) line 1, at end of line
syntax error at (eval 1889668) line 1, near "}}"
Unmatched right curly bracket at (eval 1889668) line 1, at end of line

Beim bestätigen

MadMax-FHEM

Hast du nun neu kopiert!?

Dann zähl doch bitte mal die Klammern...

Oder pack die Handys in eine structure (dachte das hättest du)...

Oder nimm die Sub-Variante, da ist es übersichtlicher...

Vielleicht hab ich noch mal Lust...

Du musst (schon aus Eigeninteresse) lernen selbst Dinge umzusetzen oder zumindest zu verstehen/nachzuvollziehen...

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 nUeberwachung notify Kleine_Garage:on {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" ) {fhem("defmod atTmp_Kleine-Garage_on at +00:03:00 ) {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' ){fhem(\"set pushmsg msg 'Alarmanlage' 'Kleine Garage unbefugt offen' 'sebastian' 2 'siren' 30 3600 \")}}   

Ich hab nochmal Klammer hinzugefügt hinter at+00:03:00)
und 2 }} hinten entfehrnt. Jetzt nimmt er zwar den Notify an. Aber müsste am Ende nicht eigendlich 4}}}} stehen? aber dann Kommt immer eine Fehlermeldung

MadMax-FHEM

Klar kommt bei dir keine Meldung, weil das hier ein "leeres" at definiert:

fhem("defmod atTmp_Kleine-Garage_on at +00:03:00 )

aber auch das nicht korrekt, weil die schließenden Anführungszeichen fehlen...

Ich hab jetzt dann doch noch mal drüber geschaut.
Probier mal:


define nUeberwachung notify Kleine_Garage:on {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"){fhem("defmod atTmp_Kleine_Garage_on at +00:03:00 {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'){fhem(\"set pushmsg msg 'Alarmanlage' 'Kleine Garage unbefugt offen' 'sebastian' 2 'siren' 30 3600 \")}}")}}


Aber wie geschrieben: mache sowas übersichtlicher! Indem du wie (MEHRFACH!) vorgeschlagen z.B. Anwesenheit über eine structure erzeugst! Oder mindestens die ganzen ReadingsVal-Dinger in eine Variable packen oder oder oder...

Weil so ist Klammern zählen echt übel!!

Und du verstehst es (ja jetzt noch nicht und) in einiger Zeit nicht mehr!

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

Danke.
Es läuft echt super.
Die Funktion ist jetzt genau richtig.
Keine Fehlermeldung mehr da die Zweite Prüfung noch kommt nach 3 Minuten.
:)

MadMax-FHEM

Gratulation...
Hoffentlich was gelernt...
Und hoffentlich verstanden, sonst wird "Wartung" (oder "Erweiterung" oder "Anpassung") schwierig...

Viel Spaß noch, 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)