[Gelöst]Anwesenheit erkennung

Begonnen von Sebastian84, 01 September 2020, 20:28:21

Vorheriges Thema - Nächstes Thema

Sebastian84

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?

amenomade

Nicht nur eine, sondern tausende.

Z.B. an deine Tür/Fenster Alarmierung schrauben: zusätzliche Bedingung abhängig von Anwesenheit.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Sebastian84

Ok.
Dann suche ich nochmal.
Hast du ein Tipp wo darüber was steht?

MadMax-FHEM

#3
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
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)

MiKn

#4
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

Sebastian84

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

MadMax-FHEM

#6
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
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

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

Sebastian84

Danke schon mal


Dann müsste der Notify von dir ja so gehen.


MadMax-FHEM

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
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

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.

MadMax-FHEM

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
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)

Otto123

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: 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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

...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 ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Sebastian84

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