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

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

Vorheriges Thema - Nächstes Thema

Per

Obwohl es auch ne allgemeine RegEx-Frage, stelle ich sie mal gezielt hier ein:
Mit attr rr_noDuration 1 stelle ich die ganze Duration-Geschichte auf aus.
Könnte ich event-on-change-reading so einstellen, dass ich zwar die Zeiten abfragen kann, aber dennoch keine Events generiere?
"event-on-change-reading durTimer.*"geht ja nicht, man bräuchte das "Gegenteil".

Zweite Frage: ich habe das Glück, im Normalfall keinen Wecker zu brauchen. Funktioniert der Resetswitcher dafür auch, oder muss ich mir einfach eine einzelne Weckzeit definieren? Denn dann würde ich ja auch auf die integrierten Prozesse verzichten müssen, oder?

Loredo

Zitat von: Per am 31 Januar 2016, 22:10:59
Mit attr rr_noDuration 1 stelle ich die ganze Duration-Geschichte auf aus.
Könnte ich event-on-change-reading so einstellen, dass ich zwar die Zeiten abfragen kann, aber dennoch keine Events generiere?
"event-on-change-reading durTimer.*"geht ja nicht, man bräuchte das "Gegenteil".


Das ist in der Tat keine Frage für diesen Thread hier.
Vielleicht mit sowas hier (ungetestet):



event-on-change-reading ^(?!(?:durTimer.*)).*$



Zitat von: Per am 31 Januar 2016, 22:10:59
Zweite Frage: ich habe das Glück, im Normalfall keinen Wecker zu brauchen. Funktioniert der Resetswitcher dafür auch, oder muss ich mir einfach eine einzelne Weckzeit definieren? Denn dann würde ich ja auch auf die integrierten Prozesse verzichten müssen, oder?


Sicher, du kannst das Attribut wakeupDefaultTime einfach auf OFF setzen. Dann wird nach einmaligem wecken der Wecker deaktiviert.


Das hat aber mit dem Resetswitcher direkt nichts zu tun, denn der ist nur dafür da, dass man den automatischen Reset schnell ein und aus schalten kann.
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

stromer-12

Zitat von: Loredo am 07 Februar 2016, 14:12:52
Vielleicht mit sowas hier (ungetestet):


event-on-change-reading ^(?!(?:durTimer.*)).*$


lässt fhem abstürzen.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

Loredo

Ich habe gerade den Wakeuptimer dahingehend erweitert, dass wakeupWaitPeriod jetzt nicht mehr den letzten Lauf des jeweiligen Weckers berücksichtigt, sondern generell jeden Wecker, der einem ROOMMATE/GUEST Device zugeordnet ist. Außerdem wird zusätzlich neu geschaut, ob die Person bereits innerhalb der letzten Stunden aufgewacht ist. Das hilft dagegen, dass der Wecker auslöst, wenn man z.B. bereits vor dem Wecker von selbst wach geworden ist und sich manuell auf "awoken" geschaltet hat. Der Zeitraum dafür ist momentan identisch mit wakeupWaitPeriod ansich, da mir gerade kein Grund einfiel dafür ein extra Attribut einzuführen.


Ab morgen dann per Update.




Gruß
Julian
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

knochenmuehle

Hallo,

ich habe hier folgende Konfiguration:

EgiGeoZone mit GPS und Beacons

Eine Work und eine Wayhome Zone ist mit GPS Erkennung eingerichtet.

Meine Home Zone habe ich mit Beacons eingerichtet.
1. Beacon Zone: home Reichweite gesamtes Haus
2. Beacon Zone: Wohnzimmer aktiv nur im Wohnzimmer
3. Beacon Zone: Schlafzimmer aktiv nur im Schlafzimmer

EgiGeoZone meldet zuverlässig ein Verlassen jeder Zone. Das hat aber den Nachteil, wenn ich das Wohnzimmer Beacon verlasse bin ich underway und nicht home obwohl ich die ganze Zeit im Bereich des Home Beacons bin.

im Attribut rr_locationHome habe ich alle Beacon Zonen erfasst.

Gibts dafür eine Lösung ?

Andreas
   

Loredo

Zitat von: knochenmuehle am 14 Februar 2016, 13:01:43
Gibts dafür eine Lösung ?

Ja, du scheinst die Funktion falsch zu nutzen bzw. nicht korrekt eingerichtet zu haben:

1. Das Attribut rr_locationHome ist nur für Lokationen vorgesehen, für die ein kommen/gehen dann auch den tatsächlichen Anwesenheitsstatus verändern soll (siehe Beschreibung in der CommandRef). iBeacons sollte man hier nur eintragen, wenn diese iBeacon ID auch dauerhaft im gesamten Wohnbereich empfangen wird. iBeacons für einzelne Zonen sollte man hier nicht eintragen, da es auch nicht notwendig ist.

2. In der Geofencing App sollte man für iBeacons nur einen Event-Trigger fürs betreten aktivieren, nicht aber fürs verlassen. Dadurch relativiert sich auch die Aussage unter Punkt 1 und man kann unter rr_locationHome genannte iBeacons dafür nutzen sich als "zu Hause" zu schalten, sofern das über Geofencing noch nicht ausgelöst hat. Gleichzeitig wird verhindert, dass man als "abwesend" erkannt wird. Der Wechsel zwischen den Räumen findet dann ausschließlich über das Entering-Event statt. Somit wird auch verhindert, dass man zwar zu Hause ist, aber in FHEM der aktuelle Raum "unbekannt" ist (bzw. das Reading locationPresence auf "absent" steht, was eben gleichbedeutend ist mit "ich weiß grad nicht wo du bist").
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

Loredo

Ich habe gerade einen weiteren Fix für den Wakeuptimer eingecheckt.

Ab morgen werden noch laufende Weckprogramme durch einen Statuswechsel ordnungsgemäß frühzeitig gestoppt. Das war im Code zwar schon drin, hatte bisher aber nicht gegriffen.
Wer also vor Ende des Weckprogrammes auf "awoken" schaltet, beendet damit ab sofort das Weckprogramm auch entsprechend.
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

CoolTux

Na das nenne ich doch mal eine saubere Lösung. Vielen Dank Julian.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Hallo Julian,

Hast Du in letzter Zeit was am Guest Modul gemacht? Irgendwie fehlt mir der Status none für dauerhaft weg. Also kein Guest im Haus.



Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Loredo

Hi Leon,


nein, da gab es keine Änderung in der Richtung.
Ich kann bei mir auch "none" ganz normal auswählen. Hast du die angezeigten Werte mittels Attributen abgeändert? (z.B. widgetOverride oder rg_states)
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

CoolTux

Hallo Julian,

Nein habe nichts geändert. Muss auch erst vor kurzem passiert sein. Kann aber mit meinen Dilemma von gestern zu tun haben, habe bei einem Set Befehl mit FILTER statt = ein : hinter FILTER gemacht und somit alle states auf nextRun gesetzt   ;D

Habe jetzt den Guest gelöscht und neu angelegt und siehe da, none ist wieder da. Hatte da zum Glück noch keine weiteren Verknüpfungen.
Vielen Dank für die floltte Antwort.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Loredo

Zitat von: CoolTux am 18 Februar 2016, 10:55:31
Habe jetzt den Guest gelöscht und neu angelegt und siehe da, none ist wieder da. Hatte da zum Glück noch keine weiteren Verknüpfungen.


Selbst wenn: Löschen und unter dem selben Namen wieder neu anlegen ist überhaupt gar kein Problem :-)
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

wmr72

Hallo,

ich habe bei mir ein notify auf das state-Reading eines RESIDENTS-Device, in dem ich dann per Push den Auslöser der Änderung verschicken möchte:

rgr_residents:state:.(home|absent|gone) {
    my $lastActivity = ReadingsVal("rgr_residents", "lastActivityBy", "unbekannt");
    fhem("set sys_pushbullet message $lastActivity | Homestatus: $EVTPART1", 1);
}


Das funktionierte bei mir nicht (ich bekomme das vorletzte aktive Device und nicht den eigentlichen Auslöser), da im Modul erst der state geändert wird und erst anschließend die entsprechenden Readings gesetzt werden, allerdings in unterschiedlichen Updates. Mit dem folgenden Patch hab ich das mal umgedreht, negative Auswirkungen konnte ich keine feststellen:


--- a/FHEM/10_RESIDENTS.pm
+++ b/FHEM/10_RESIDENTS.pm
@@ -154,20 +154,6 @@ sub RESIDENTS_Notify($$) {
                 Log3 $hash, 5,
                   "RESIDENTS " . $hashName . ": processing change $change";

-                # state changed
-                if (   $change !~ /:/
-                    || $change =~ /wayhome:/
-                    || $change =~ /wakeup:/ )
-                {
-                    Log3 $hash, 4,
-                        "RESIDENTS "
-                      . $hashName . ": "
-                      . $devName
-                      . ": notify about change to $change";
-
-                    RESIDENTS_UpdateReadings($hash);
-                }
-
                 # activity
                 if ( $change !~ /:/ ) {

@@ -205,6 +191,21 @@ sub RESIDENTS_Notify($$) {
                     readingsBulkUpdate( $hash, "lastActivityByDev", $devName );
                     readingsEndUpdate( $hash, 1 );
                 }
+
+                # state changed
+                if (   $change !~ /:/
+                    || $change =~ /wayhome:/
+                    || $change =~ /wakeup:/ )
+                {
+                    Log3 $hash, 4,
+                        "RESIDENTS "
+                      . $hashName . ": "
+                      . $devName
+                      . ": notify about change to $change";
+
+                    RESIDENTS_UpdateReadings($hash);
+                }
+
             }

             return;


Spricht was dagegen das allgemein zu übernehmen, evtl. übersehe ich ja was?

Wolfgang


Loredo

Ich habe gerade eine Erweiterung des Wakeuptimers eingecheckt.
Man kann jetzt bei einem aktiven Wecker dessen Zeit relativ zur bereits gesetzten Weckzeit verändern, also z.B. 10 Minuten früher oder auch später:



set rr_Julian_wakeuptimer1 nextRun +10
set rr_Julian_wakeuptimer1 nextRun -00:10



Man kann die Zeit in Minuten oder im Format HH:MM angeben.


Das kann z.B. dazu verwendet werden, wenn man verkehrsbedingt (Auto oder Bahn) früher geweckt werden möchte. Zusammen mit dem wakeupDefaultTime Attribut wird dann auch sichergestellt, dass die Weckzeit am nächsten Tag wieder zunächst wie gewohnt ist.
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

Loredo

Zitat von: wmr72 am 19 Februar 2016, 20:41:55
Das funktionierte bei mir nicht (ich bekomme das vorletzte aktive Device und nicht den eigentlichen Auslöser), da im Modul erst der state geändert wird und erst anschließend die entsprechenden Readings gesetzt werden, allerdings in unterschiedlichen Updates.


Ich habe den Patch abgewandelt; die Readings werden jetzt allesamt zusammen erzeugt und es wird nur noch ein einziges Event ausgelöst.
Ab morgen dann per Update verfügbar.
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