Modulfamilie für Bewohner / 10_RESIDENTS 20_ROOMMATE 20_GUEST

Begonnen von Loredo, 19 Januar 2014, 23:12:34

Vorheriges Thema - Nächstes Thema

RoBra81

Hallo,

ich bin FHEM-Einsteiger und habe zugegebenermaßen vermutlich eine Anfängerfrage. Da diese sich jedoch auf die Roommates bezieht, stelle ich sie einmal hier in der Hoffnung, nicht zu sehr beschimpft zu werden. Zunächst möchte ich jedoch einmal meinen Respekt für die Arbeit an den Modulen für Bewohne und dem GEOFANCY-Modul zum ausdruck bringen: Vielen Dank für die Arbeit, ich werde darauf wohl meine Anweisenheitsauswertung aufbauen.

Nun zu meiner Frage: Ich möchte jeweils eine andere Aktion ausführen, wenn ein ROOMMATE (z.B. rr_Ronny) home (oder einen anderen Ort) erreicht bzw. verlässt. Aktuell habe ich Notifies auf mein Handy, welches die Positionsänderung meldet:

define nf.Ronny.Abwesend notify geofancy.*HandyRonny.*left.home.* "wget -O /dev/nul -q 'adresse1'"
attr nf.Ronny.Abwesend room Handys
define nf.Ronny.Anwesend notify geofancy.*HandyRonny.*arrived.home.* set Test Anwesend;;"wget -O /dev/nul -q 'adresse2'"


Da das GEOFANCY-Modul auch den ROOMMATE rr_Ronny auf home bzw. absent setzt, würde ich das Notify lieber darauf setzen, um auch auf Änderungen der location von rr_Ronny zu reagieren, die nicht von GEOFANCY kommen. Irgendwie bekomme ich das aber nicht hin :-(

Könnte mir jemand auf die Sprünge helfen, wie die Notifies für nach Hause kommen und zu Hause verlassen für einen ROOMMATE auszusehen haben?

Viele Dank
Ronny


[EDIT:] Ich hab's hinbekommen :-)

Loredo

Mit Verweis auf den Thread
Zeitdauern der RESIDENTS-Module in der Form HH:MM:ss plotten

habe ich gerade eine neue Version eingecheckt.

# -- new readings in computer readable format (*_cr)
# -- format of readings durTimer readings changes from minutes to HH:MM:ss


Neue Readings:
durTimerAbsence_cr
durTimerPresence_cr
durTimerSleep_cr
lastDurAbsence_cr
lastDurPresence_cr
lastDurSleep_cr

Die neuen Readings geben die Dauer in Minuten an (Sekunden erschien mir für's Plotten dann doch zu fein).Wie man sieht habe ich auch die DurationTimer angepasst. Um die Benennung einheitlich zu haben, musste deshalb das Format der vorhandenen Readings durTimerAbsence und durTimerPresence von Minuten auf HH:MM:ss umgeändert werden.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

RoBra81

Hallo,

ich möchte gerade mein FHEM ein bisschen erweitern und für die neue "Funktion" die Modulfamilie für Bewohner nutzen:

Wenn wir unseren Sohn ins Bett gebracht haben, möchte ich dessen Status auf asleep setzen und damit eine Art Babyalarm scharfschalten: wenn der Bewegungsmelder auf dem Flur vor dem Kinderzimmer eine Bewegung erfasst, wollen wir solange wir nicht schlafen im Wohnzimmer und wenn wir dann schlafen im Schlafzimmer durch eine blinkende Lampe benachrichtigt werden.

Soweit zur Rahmengeschichte. Mein Problem ist nun, dass der Status der Residents auf asleep gesetzt wird, sobald der erste Bewohner (unser Sohn) schläft. Mir wäre es lieber, wenn der Status der Residents asleep wird, sobald alle schlafen - gibt es da eine Möglichkeit?


Vielen Dank
Ronny

Loredo

Zitat von: RoBra81 am 11 April 2014, 10:47:21
ich möchte gerade mein FHEM ein bisschen erweitern und für die neue "Funktion" die Modulfamilie für Bewohner nutzen:

Wenn wir unseren Sohn ins Bett gebracht haben, möchte ich dessen Status auf asleep setzen und damit eine Art Babyalarm scharfschalten: wenn der Bewegungsmelder auf dem Flur vor dem Kinderzimmer eine Bewegung erfasst, wollen wir solange wir nicht schlafen im Wohnzimmer und wenn wir dann schlafen im Schlafzimmer durch eine blinkende Lampe benachrichtigt werden.

Soweit zur Rahmengeschichte. Mein Problem ist nun, dass der Status der Residents auf asleep gesetzt wird, sobald der erste Bewohner (unser Sohn) schläft. Mir wäre es lieber, wenn der Status der Residents asleep wird, sobald alle schlafen - gibt es da eine Möglichkeit?



Genau so sollte auch das Standardverhalten sein (wird in der Doku ja auch so beschrieben).
Ich kann es gerade nicht nachvollziehen, aber hast du mal geschaut, ob das bei dir wirklich so ist oder ob nicht andere Umstände dazu führen?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

RoBra81

Kompliment: Das ging ja schnell!

Ich habe den "Fehler" (meinen) gefunden und muss noch ein Kompliment aussprechen: Du hast bei der Logik ja wirklich an alles gedacht: Ich bin zur Zeit nicht zu Hause und test remote. Da meine Frau auch nicht zu Hause ist, sind wir beide absent und nur unser Sohn ist virtuell zu Hause. Und wenn der einzige anwesende Bewohner auf asleep geht, geht auch Residents auf asleep. Ist noch jemand anderes zu Hause, bleibt der Status auf home.

Super!!

Vielen Dank

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

der-Lolo

Hallo Loredo,
ich spiele gerade mit einem nagelneuem feature welches Andre heute nacht Programmiert hat.
Das ganze nennt sich readingsHistory der thread dazu ist hier http://forum.fhem.de/index.php/topic,23148.0.html

Ich möchte nun gerne in diesem Monitor eine Ausgabe haben wenn niemand mehr zuhause ist.
Ich habe auf das Residents Modul gesetzt und versucht per
define EventAnwesend notify XXXXX IF ([XXXXX] eq "home") (set Events add es ist jemand zuhause...)
ELSE (set Events add es ist niemand mehr zuhause...)

einen sinnvollen Eintrag zu bekommen. IF triggert wenn nichts weiter angegeben ist auf das Internal STATE. Ausserdem habe ich schon versucht auf das Reading presence zu triggern - beide male bekomme ich eine menge an einträgen in den Monitor. 

Zitat13:49:21  Micha ist gegangen...
13:49:21  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:49:20  es ist niemand mehr zuhause...
13:41:56  Micha ist nach Hause gekommen...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:41:56  es ist jemand zuhause...
13:39:19  Micha ist gegangen...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:19  es ist niemand mehr zuhause...
13:39:18  es ist niemand mehr zuhause...
13:39:18  es ist niemand mehr zuhause...
13:39:18  es ist niemand mehr zuhause...

event-on-change-reading have ich aug .* gesetzt.

Was kann ich tun um nur einen Eintrag zu bekommen?

fhainz


der-Lolo

Danke fhainz - gerade versucht... Es hilft nicht...
Zitat14:05:38  Micha ist nach Hause gekommen...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...
14:05:38  es ist jemand zuhause...

fhainz

Ok komisch.. *.* funktioniert bei mir bei einigen devices problemlos.

Loredo

*.* hat aber nix mit Regex zu tun, da kommt wohl noch die DOS Erinnerung bei dir hoch ;-)

Die Module lösen kein Event aus, ohne dass sich ein Status tatsächlich ändert. Demnach wird die Notify Schleife auch nur dann entsprechend aufgerufen. Was aktualisiert wird, ist das Reading für den An-/Abwesenheitscounter.

Leider hast du den entscheidenden Part deines Notify verstümmelt. ich kann daher nur vermuten, dass du dein Notify nicht auf das Reading "state" beschränkt hast und es daher dauernd auslöst.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

der-Lolo

Danke Loredo - fhainz und Andre haben mir gerade gewaltig auf die Sprünge geholfen, nun habe ich schon fast ein Jahr FHEM aktiv - aber REGEX und wie man sauber in ein notify hineintriggert hatte ich nie verstanden...
Jetzt gerade in der letzten viertel Stunde habe ich deutlich mehr verstanden als im ganzem letztem Jahr...
Das ist mir schon fast peinlich.

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

fhainz