Zonen-basierte Anwesenheitserkennung und -steuerung

Begonnen von KernSani, 15 März 2019, 19:06:04

Vorheriges Thema - Nächstes Thema

KernSani

Hi,
tatsächlich habe ich mir kürzlich überlegt, ob ich das Modul mal SVN-ready machen und einchecken soll. Mit anderen Worten: Wenn es Bedarf gibt wird es weiter entwickelt. Kannst du ein bisschen genauer erläutern, was bei dir nicht funktioniert, dann schaue ich mir das mal an...


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

FunkOdyssey

Ich fange mal ganz vorne an, weil ich scheinbar noch ein Verständnisproblem habe.

Mein Anliegen ist es mit homezone:
- Lampe an, wenn dunkel und anwesend
- Lampe an, wenn dunkel und abwesend und Bewegung erkannt
- Lampe anbleiben, wenn Taster gedrückt wurde

Ich habe aktuell folgende Versuchszeilen:

defmod homezone_diele homezone
attr homezone_diele userattr hz_cmd_present:textField-long hz_lumiThreshold_present hz_cmd_likely:textField-long hz_lumiThreshold_likely hz_cmd_unlikely:textField-long hz_lumiThreshold_unlikely hz_cmd_absent:textField-long hz_lumiThreshold_absent hz_decay_morning hz_decay_day hz_decay_afternoon hz_decay_evening hz_decay_night
attr homezone_diele cmdIcon closed:radio_checked@blue occupied100:rc_dot@blue open:radio_checked@lightgreen occupied0:rc_dot@red
attr homezone_diele devStateIcon present:user_available@green likely:user_available@lightgreen unlikely:user_unknown@yellow absent:user_away
attr homezone_diele hz_absenceEvent rgr_Residents:presence:.absent
attr homezone_diele hz_cmd_absent set diele_lampe off
attr homezone_diele hz_cmd_likely set diele_lampe on
attr homezone_diele hz_dayTimes 05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night
attr homezone_diele hz_decay 300
attr homezone_diele hz_lumiThreshold_likely 0:30000
attr homezone_diele hz_luminanceReading lightsensor:lightlevel
attr homezone_diele hz_occupancyEvent rgr_Residents:presence:.present,pir_diele:motion:.on
attr homezone_diele hz_state 100:present 50:likely 1:unlikely 0:absent


Ich vermute aber mal, dass ich rgr_Residents nicht für absence/occupance nutzen darf, sondern eher als Close-Argument, oder?

Kann man mit eine Einschaltung über einen Taster das Ganze irgendwie übersteuern?

Danke.

KernSani

Sorry, komme erst jetzt dazu zu antworten.
Grundsätzlich ist das Ziel von Homezone NICHT das Schalten von Lampen (dass das geht ist quasi ein Abfallprodukt). Das eigentliche Ziel von Homezone ist es Anwesenheit in einem Raum (oder allgemeiner einer Zone) zu erkennen. Sowas wie "Lampe anbleiben, wenn Taster gedrückt wurde" ist also in Homezone generell nicht vorgesehen. Auch PRESENCE eignet sich nicht unbedingt als Trigger (höchstens in einem 1-Personen-Haushalt), da PRESENCE ja in der Regel die An-/Abwesenheit eines bestimmten Gerätes in einem Haushalt beschreibt.   
Die von dir beschriebenen Fälle wirken mir alle nicht so, als würden sie in das o.g. Schema passen (ausser vielleicht der Teil "Bewegung erkannt"). 





RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

slor

Zitat von: KernSani am 13 Mai 2020, 07:12:32
Hi,
tatsächlich habe ich mir kürzlich überlegt, ob ich das Modul mal SVN-ready machen und einchecken soll.

Würde ich gut finden, dann bekommt man es leichter auf sein system ohne hin und her zu kopieren. oder via Github und "update add"
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

slor

So, ich hab das mal manuell eingebunden...

Ich habe einen Raum, bei dem ich beim Betreten via Bewegungsmelder das Licht einschalte und nach Abwesenheit wieder aus. Das funktioniert soweit auch zuverlässig.

Mir ist aufgefallen, dass das DoIf, das ich vorher dafür genutzt hatte wesentlich schneller war. Gefühlt habe ich jetzt 500ms Verzögerung. Das ist schon auffällig. Kann man an der Performance des Moduls noch etwas drehen? Oder ist Doif komplett anders aufgebaut und daher schneller?
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

KernSani

Eigentlich dürfte performancemäßig kein spürbarer Unterschied zu einem DOIF bestehen. Kannst du andere Effekte (Bewegungsmelder anders positioniert o.ä.) ausschließen?


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

slor

Der hm Präsenz Melder ist fest verbaut.
Ich habe nur das doif deaktiviert.
Dafür die Homezone eingerichtet.
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

slor

Ich habe heute noch mal ein wenig geforscht, Fhem Update gemacht und Fhhm neu gestartet.
Das Delay ist nun geringer und kaum noch wahrnehmbar.

Keine Ahnung wo es dran lag. Der Weg ist: Melder - CCU - Fhem - Conbee - Lampe (Conbee steckt im Fhem Rechner)

Ich beobachte das mal weiter.
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

binford6000

Hallo Oli,
ich teste gerade mit dem Box-Mode, da ich keine Türkontakte für die present-Erkennung habe.
Mir ist da was merkwürdiges aufgefallen:

Gegeben ist der Flur mit BWM und das Gästeklo mit BWM (beide HUE Motion). Die Gästeklo-Zone ist im Boxmode, die Flur-Zone nicht.
Gästeklo-Zone mit hz_adjacent fl_zone.

Jetzt gehe ich ins Gästeklo:
- Die Gästeklo-Zone geht sofort auf present. OK.
- Aber dann geht die Gästeklo-Zone auf likely, wenn der Flur-BWM auf nomotion wechselt!
- Geht der Gästeklo-BWM auf nomotion, geht die Gästeklo-Zone brav wieder in present.

Warum wird denn auf nomotion in der angrenzenden Zone getriggert und damit die box-Zone wieder auf likely geschaltet?
In Summe funktioniert das zwar auch, aber es wird unschön (und mMn. unnötig) zwischen present und likely gewechselt.
Ist das so gewollt? Mir erschließt sich der Grund jedenfalls nicht...

Bei mir aüßert sich das konkret darin dass wenn ich das Licht im Gästeklo manuell ausschalte, wird es durch das unnötige
erneute wechseln in present wieder eingeschaltet.

Falls du noch weitere Infos brauchst melde dich! Hier mal die beiden Zonen:

Flur:
defmod fl_zone homezone
attr fl_zone userattr hz_decay_afternoon hz_decay_day hz_decay_evening hz_decay_morning hz_decay_night         hz_decay_sr hz_decay_ss hz_decay_sr hz_decay_ss  :textField-long    :textField-long    :textField-long    :textField-long   hz_cmd_present:textField-long hz_lumiThreshold_present hz_cmd_likely:textField-long hz_lumiThreshold_likely hz_cmd_unlikely:textField-long hz_lumiThreshold_unlikely hz_cmd_absent:textField-long hz_lumiThreshold_absent
attr fl_zone hz_absenceEvent Wohnung:presence:.absent
attr fl_zone hz_cmd_absent setscene fl.hgr abwesend;;\
set fully:FILTER=STATE!=off off;;
attr fl_zone hz_cmd_likely IF ([Wohnung] eq "asleep") (setscene fl.hgr schlafen);;\
IF ([Wohnung] ne "asleep" && [fl_zone:lux] <= [fl_zone:targetlux] && [Daemmerung:light] <= 5) (setscene fl.hgr abend);;\
IF ([Wohnung] ne "asleep" && [fl_zone:lux] <= [fl_zone:targetlux] && [Daemmerung:light] > 5) (setscene fl.hgr tag);;\
IF ([Wohnung] ne "asleep") (set fully:FILTER=STATE!=on on-for-timer 180);;
attr fl_zone hz_dayTimes 05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night
attr fl_zone hz_decay 300
attr fl_zone hz_decay_evening 600
attr fl_zone hz_decay_night 90
attr fl_zone hz_luminanceReading fl_huesens_light:lux
attr fl_zone hz_occupancyEvent fl_bwm:motion
attr fl_zone hz_state 100:present 50:likely 1:unlikely 0:absent
attr fl_zone userReadings lux {ReadingsNum('fl_huesens_light','lux',50);;;;},\
targetlux


Gästeklo:
defmod wc_zone homezone
attr wc_zone userattr hz_decay_afternoon hz_decay_day hz_decay_evening hz_decay_morning hz_decay_night             hz_decay_sr hz_decay_ss hz_decay_sr hz_decay_ss  :textField-long    :textField-long    :textField-long    :textField-long   hz_cmd_present:textField-long hz_lumiThreshold_present hz_cmd_likely:textField-long hz_lumiThreshold_likely hz_cmd_unlikely:textField-long hz_lumiThreshold_unlikely hz_cmd_absent:textField-long hz_lumiThreshold_absent
attr wc_zone hz_absenceEvent Wohnung:presence:.absent
attr wc_zone hz_adjacent fl_zone
attr wc_zone hz_boxMode 1
attr wc_zone hz_cmd_absent setscene wc.hgr abwesend
attr wc_zone hz_cmd_present IF ([Wohnung] =~ /sleep/) (setscene wc.hgr schlafen)\
ELSE (setscene wc.hgr anwesend)
attr wc_zone hz_dayTimes 05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night
attr wc_zone hz_decay 180
attr wc_zone hz_lumiThreshold_present 0:300
attr wc_zone hz_luminanceReading wc_huesens_light:lux
attr wc_zone hz_occupancyEvent wc_bwm:motion
attr wc_zone hz_state 100:present 50:likely 1:unlikely 0:absent
attr wc_zone userReadings lux {ReadingsNum('wc_huesens_light','lux',50);;;;},\
targetlux


VG Sebastian

Prof. Dr. Peter Henning

Ich finde die bisherige Entwicklung interessant und hänge mich jetzt mal ein. Erstes Anliegen: Ich würde die ganze Heuristik gerne aus der FHEM-Hauptinstallation auslagern, und dieser nur die Aufgabe geben, bei Auftreten bestimmter Events eine andere FHEM-Installation zu benachrichtigen. So à la: "In Raum X manueller Event  detektiert" (z.B. Schalter gedrückt), oder "In Raum Y Bewegung festgestellt".

Das ganze Modul ist ein guter Einstieg in Ambience Assisted Living, um z.B. aus der Entfernung den Gesundheitszustand von pflegebedürftigen Personen zu überwachen.

LG

pah

binford6000

Zitat von: binford6000 am 05 Juni 2020, 11:16:33
Hallo Oli,
ich teste gerade mit dem Box-Mode, da ich keine Türkontakte für die present-Erkennung habe.
Mir ist da was merkwürdiges aufgefallen:

Gegeben ist der Flur mit BWM und das Gästeklo mit BWM (beide HUE Motion). Die Gästeklo-Zone ist im Boxmode, die Flur-Zone nicht.
Gästeklo-Zone mit hz_adjacent fl_zone.

Jetzt gehe ich ins Gästeklo:
- Die Gästeklo-Zone geht sofort auf present. OK.
- Aber dann geht die Gästeklo-Zone auf likely, wenn der Flur-BWM auf nomotion wechselt!
- Geht der Gästeklo-BWM auf nomotion, geht die Gästeklo-Zone brav wieder in present.

Warum wird denn auf nomotion in der angrenzenden Zone getriggert und damit die box-Zone wieder auf likely geschaltet?
In Summe funktioniert das zwar auch, aber es wird unschön (und mMn. unnötig) zwischen present und likely gewechselt.
Ist das so gewollt? Mir erschließt sich der Grund jedenfalls nicht...

Bei mir aüßert sich das konkret darin dass wenn ich das Licht im Gästeklo manuell ausschalte, wird es durch das unnötige
erneute wechseln in present wieder eingeschaltet.

VG Sebastian

Hallo Oli,
ich habe die Lösung für mein Problem mit Box-Mode gefunden:
Anstatt
attr wc_zone hz_occupancyEvent wc_bwm:motion
habe ich - wie in deiner Beschreibung - folgendes eingefügt:
attr wc_zone hz_occupancyEvent wc_bwm:state:.motion

Damit klappt es dann wie gewünscht ohne hin- und herschalten.  8)
VG Sebastian

rakete123

#146
Hallo,
ich hab mir das Module auch mal angesehen und überlegt, ob ich damit folgendes "Problem" lösen kann.
Aktuell nutze ich Fibaro BWM, diese melden per Event, dass eine Bewegung stattgefunden hat und wenn nach x Sekunden keine Bewegung mehr da ist, kommt auch ein Event.
Nun sitze ich im Keller, bewege mich nicht und das Licht geht aus. Doof :/

Jetzt hab ich mal dein Module ausprobiert und zwei Zonen angelegt, in denen ich meine BWM habe.
Die Zone Keller und eine zweite Zone "Ankleide". Die Räumen liegen nebeneinander. Aber wenn ich jetzt vom Keller zur Ankleide gehe, gehen beide Zonen auf likely und gehen irgendwann "aus".

Edit: Im Keller bleibt der BWM 60 sekunden auf "open" wenn keine Bewegung mehr erkannt wird. Das sollte vermutlich deutlich unter der Decay Zeit liegen oder?


Internals:
   CFGFN     
   FUUID      5f1e83f5-f33f-2251-d9cd-e0a58aa83db42d14
   NAME       zone.keller
   NR         259462
   NTFY_ORDER 50-zone.keller
   STATE      absent
   TYPE       homezone
   VERSION    0.0.13
   HELPER:
     doors      0
   READINGS:
     2020-07-27 09:48:45   lastDayTime     morning
     2020-07-27 10:23:37   lastZone        timer
     2020-07-27 10:23:37   occupied        0
     2020-07-27 10:23:37   state           absent
   helper:
     TIMER      1595838217
Attributes:
   devStateIcon present:user_available@green likely:user_available@lightgreen unlikely:user_unknown@yellow absent:user_away
   hz_adjacent zone.ankleide
   hz_boxMode 1
   hz_decay   180
   hz_occupancyEvent ke.motion.1:HomeSecurity: Motion Detection
   hz_state   100:present 50:likely 1:unlikely 0:absent
   userattr   hz_cmd_present:textField-long hz_lumiThreshold_present hz_cmd_likely:textField-long hz_lumiThreshold_likely hz_cmd_unlikely:textField-long hz_lumiThreshold_unlikely hz_cmd_absent:textField-long hz_lumiThreshold_absent hz_decay_morning hz_decay_day hz_decay_afternoon hz_decay_evening hz_decay_night



Internals:
   CFGFN     
   FUUID      5f1e83fb-f33f-2251-78d3-f04a481ca885f0e8
   NAME       zone.ankleide
   NR         259464
   NTFY_ORDER 50-zone.ankleide
   STATE      absent
   TYPE       homezone
   VERSION    0.0.13
   HELPER:
     doors      0
   READINGS:
     2020-07-27 09:49:35   lastDayTime     morning
     2020-07-27 10:25:37   lastZone        timer
     2020-07-27 10:25:37   occupied        0
     2020-07-27 10:25:37   state           absent
   helper:
     TIMER      1595838337
Attributes:
   devStateIcon present:user_available@green likely:user_available@lightgreen unlikely:user_unknown@yellow absent:user_away
   hz_adjacent zone.keller
   hz_boxMode 1
   hz_decay   300
   hz_occupancyEvent ak.motion.1:HomeSecurity: Motion Detection
   hz_state   100:present 50:likely 1:unlikely 0:absent
   userattr   hz_cmd_present:textField-long hz_lumiThreshold_present hz_cmd_likely:textField-long hz_lumiThreshold_likely hz_cmd_unlikely:textField-long hz_lumiThreshold_unlikely hz_cmd_absent:textField-long hz_lumiThreshold_absent hz_decay_morning hz_decay_day hz_decay_afternoon hz_decay_evening hz_decay_night
Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

slor

Moin zusammen,

ich versuche folgendes Problem zu lösen:
Ich gehe aus dem Zimmer und schließe die Tür. Tür Kontact meldet Tür zu = Zone closed.
Der Zähler bleibt bei 100 stehen und das Licht geht nie aus.

Gib es die Möglichkeit den Zähler loslaufen zu lassen wenn Tür zu und danach keine Bewegung in der Zone erkannt wurde?
Also Zone closed und keine Bewegung innerhalb von 10 sec, dann timer los laufen lassen.

Boxed Mode macht ja was anderes, wenn ich das richtig verstanden habe?
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

Reinschki

Hallo KernSani,

klasse Modul! Wird von mir intensiv genutzt und ich möchte es nicht mehr missen.
Daher unterstreiche ich hiermit auch noch mal den Wunsch dieses Modul offiziell anzubieten und über updates zu verteilen.

Eine Idee/einen Wunsch habe ich noch zum Modul.
Ein Reading mit der aktuellen Tageszeit wäre hilfreich (curDayTime).
Damit wäre es sehr einfach in Abhängigkeit der in der Zone eingestellten Tageszeit zu steuern.
Aktuell bastele ich mir da immer noch etwas separat, was dann aber entfallen könnte.

Was hälst du davon?

Viele Grüße
Reiner

rcmcronny

Hallo KernSani,

ich nutz es auch intensiv und würde ein einchecken auch sehr begrüßen..

Zudem habe ich ab und an auch das Problem wie    slor, das ich die Tür von aussen zu mache und er auf 100 geht. Wenn ich dann natürlich die Wohnung verlasse nutzt das hz_absenceEvent und schaltet aus. Aber WC / Bad macht man nun in der kalten Jahreszeit öfter mal von Aussen zu und dann wäre das abschalten , wenn keiner drin ist toll :D
Dafür habe ich eine Flur Zone, die das Triggern könnte mit BWM. Oder gibt es eine Andere Idee ?

Ronny