Guten Abend
Ich habe in fhem eine Anwesenheit über HANDY drin.
Jetzt möchte jetzt versuchen das wenn ich zuhause bin nicht mehr alarmiert werden wenn eine Tür oder Fenster aufgemacht wird. Wenn ich dann nicht mehr zuhause bin soll alles wieder reagieren.
Gibt es da ne Möglichkeit?
Nicht nur eine, sondern tausende.
Z.B. an deine Tür/Fenster Alarmierung schrauben: zusätzliche Bedingung abhängig von Anwesenheit.
Ok.
Dann suche ich nochmal.
Hast du ein Tipp wo darüber was steht?
Ist doch (wie amenomade geschrieben hat) ganz einfach: in das was du ja (vielleicht/offenbar) schon hast (Info/list dazu/davon würde helfen) eine Bedingung "einbauen":
Wenn "anwesend" dann mach nix/keine Meldung...
Oder eben andersrum: Meldung nur, wenn nicht anwesend...
Also z.B. du hast/hättest (wie ich) ein notify was auf Tür/Fenster auf "reagiert" einfach: if(Anwesenheit ist abwesend) {schicke Nachricht}
Oder du nimmst DOIF...
Oder...
Oder...
Gruß, Joachim
zB
defmod Alarm_BWM_1 DOIF ([HM_3E0547] eq "motion" and [HomeStatus] eq "KurzWeg") (set teleBot _msg Bewegung Haustür erkannt!) (get Haustuer image) (set teleBot sendImage /tmp/Haustuer_snapshot_1.jpg) (set teleBot sendImage /tmp/Haustuer_snapshot_2.jpg)
attr Alarm_BWM_1 alias Alarm_BWM_Haustür
attr Alarm_BWM_1 wait 0,0,0,2,2
Ok
So sieht mein notify aus
DEF
Balkontuer:on.* set pushmsg msg 'Balkontuer' 'Balkontuer offen' 'sebastian' 0 'bike'
Dann muss ich wo das if (Abwesend) einfügen?
Bei Abwesend seht bei mir handy_sebastian Abwesend
Besser wäre auch ein list der Anwesenheit gewesen bzw. lost generell (auch beim notify) UND: code-Tags beim Posten (das '#' im "Menü" du hast doch nun auch schon einige Posts: das könntest du mittlerweile wissen ;) )...
Evtl. so:
Balkontuer:on.* {if(ReadingsVal("handy_sebastian","state","n.a.") eq "Abwesend"){fhem("set pushmsg msg 'Balkontuer' 'Balkontuer offen' 'sebastian' 0 'bike' ")}}
EDIT: du musst evtl. das Leerzeichen vor den schließenden Anführungszeichen nach 'bike' rausnehmen. Wenn ich das hier tue wird immer was "verschluckt", kann es also nur so posten...
Sofern die Angaben stimmen und die An-/Abwesenheit im Reading "state" steht und auch "Anwesend"/"Abwesend" heißt (verm. aber nicht ;) -> list fehlt)...
Ansonsten eben anpassen...
Gruß, Joachim
Sorry so steht das bei mir
Internals:
ADDRESS 192.168.0.107
DEF lan-ping 192.168.0.107 60
FUUID 5ecab806-f33f-b383-7dc6-8d81b875ebaea5e5
INTERVAL_NORMAL 60
INTERVAL_PRESENT 60
MODE lan-ping
NAME handy_sebastian
NOTIFYDEV global
NR 96
NTFY_ORDER 50-handy_sebastian
STATE Abwesend
TYPE PRESENCE
READINGS:
2020-08-29 04:00:24 model lan-ping
2020-09-02 07:51:26 presence absent
2020-09-02 07:51:26 state absent
helper:
CURRENT_STATE present
Attributes:
eventMap absent:Abwesend present:Zuhause
group Anwesenheit
room 8_Zuhause
userattr presence presence_map structexclude
Danke schon mal
Dann müsste der Notify von dir ja so gehen.
Zitat von: Sebastian84 am 02 September 2020, 09:31:08
Danke schon mal
Dann müsste der Notify von dir ja so gehen.
Bestimmt ;)
Also wenn du es verändert/angepasst hast, weil: absent != Abwesend ;)
Du kannst entweder auf "state" lassen oder auf "presence" als Reading gehen...
Gruß, Joachim
Das hat super geklappt.
Ich wollte jetzt noch 2 Personen aufnehmen
Einmal handy_patricia und handy_oma
Geht das in ein notify oder muss ich mehrere machen.
Zitat von: Sebastian84 am 02 September 2020, 21:22:19
Das hat super geklappt.
Ich wollte jetzt noch 2 Personen aufnehmen
Einmal handy_patricia und handy_oma
Geht das in ein notify oder muss ich mehrere machen.
Geht bestimmt.
Müsstest halt nur erläutern was denn passieren soll!?
Bzw. wann/welche Bedingungen zu was führen sollen...
Also nur Nachricht, wenn KEINER der genannten Zuhause ist oder welche "Konstellation" soll es denn sein!?
Ausgehend von meinem Beispiel (deines was funktioniert kenne ich ja nicht ;) ) wäre das dann so:
Balkontuer:on.* {if(ReadingsVal("handy_sebastian","state","n.a.") eq "Abwesend" && ReadingsVal("handy_patricia","state","n.a.") eq "Abwesend" && ReadingsVal("handy_oma","state","n.a.") eq "Abwesend" ){fhem("set pushmsg msg 'Balkontuer' 'Balkontuer offen' 'sebastian' 0 'bike' ")}}
Wenn das Notify auf zusätzlich andere Dinge "reagieren" soll, dann eben die "Trigger-RegEx" anpassen...
Es wäre auch nett (für andere die suchen) zu posten was du nun genau hast... :)
Gruß, Joachim
Hi,
kleiner Tipp: Baue Strukturen (structure) und verwende diese in den Abfragen. Das macht sich einfacher in der Pflege.
Ich habe das irgendwann mal mehrstufig gemacht (https://heinz-otto.blogspot.com/2016/01/anwesenheitserkennung.html): Gerät(e)->Person->EinerDa(AlleWeg)
Ja es gibt auch Module dafür - war mir immer zu kompliziert und an meinem Aufbau habe ich gelernt :)
Gruß Otto
...bekenne mich schuldig: Ich gehöre auch zu denen, die immer dachten RESIDENTS sei irgendwie "komisch" und dann mit structure gearbeitet haben.
Zwischenzeitlich würde ich aber behaupten, dass sich dieser ganze Bereich sehr viel einfacher mit dieser Modulfamilie "abfackeln" läßt (structure hat auch seine Berechtigung und gute Anwendungsgebiete, man sollte das daher nicht von der "sollte man kennen"-Liste streichen).
Am einfachsten ein RESIDENTS-Device generieren (das ist eine Art structure), und dann darüber die ROOMMATES bzw. GUESTS. In denen dann die PRESENCE-Devices (es gibt ein spezielles Attribut) eintragen => fertig die Laube ;) .
Supper klappt perfekt
mit den Notify
Balkontuer: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("set pushmsg msg 'Balkontür' 'Balkontür offen' 'sebastian' 0 'bike' ")}}
Wenn Keiner Da ist wird eine Pushnaricht geschickt wenn die Tür aufgeht