Grüß euch
Ich versuche mich gerade am Residenzmodul und stoße hier auf einige Schwierigkeiten:
define res RESIDENTS
attr res alias Residents
attr res devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home .*:user_unknown:home
attr res group Home State
attr res icon control_building_filled
attr res room Residenz
attr res webCmd state
attr res event-on-change-reading state
define res_log FileLog ./log/res-%Y.log res
attr res_log logtype text
attr res_log room X_Logs
define rr_per00 ROOMMATE res
attr rr_per00 alias Ich
attr rr_per00 devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_per00 group per00
attr rr_per00 icon people_sensor
attr rr_per00 room Personen
attr rr_per00 rr_realname alias
attr rr_per00 sortby 1
attr rr_per00 webCmd state
attr rr_per00 event-on-change-reading state
define rr_per00_log FileLog ./log/rr_per00-%Y.log rr_per00:home.*|rr_per00:absent.*
attr rr_per00_log logtype text
attr rr_per00_log room X_Logs
define rr_per01 ROOMMATE res
attr rr_per01 alias Freundin
attr rr_per01 devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_per01 group per01
attr rr_per01 icon people_sensor
attr rr_per01 room Personen
attr rr_per01 rr_realname alias
attr rr_per01 sortby 1
attr rr_per01 webCmd state
attr rr_per01 event-on-change-reading state
define anw_check at +*00:01:00 {\
if (ReadingsVal("rr_per00", "state", "") eq "home" || ReadingsVal("rr_per01", "state", "") eq "home") {\
fhem("set res home");;\
}\
else {\
fhem("set res absent");;\
}\
}
Ein Watchdog kombiniert mir Presence setzt mir meine zwei ROOMMATES soweit einmal ganz korrekt. Ist einer dieser beiden(!) Roommates zuhause soll mir der Status meines Hauses auf "home" gesetzt werden (Code unten). Nun passiert es aber, dass in dem Moment wo der Hausstatus auf "home" gesetzt wird, mir auch meine beiden Roommates auf "home" gesetzt werden, obwohl einer der beiden gar nicht zu Hause ist.
Das macht doch keinen Sinn, oder habe ich da irgendwo einen Fehler?
Das nächste Problem habe ich beim Plot. Um nicht soviel Müll zu erzeugen habe ich ein "event-on-change-reading state" bei meinen Dummies und sehe dadurch bei meinen Plots immer nur eine Spitze wenn sich der Status ändert. Kann ich dem Plot irgendwie sagen: "Halte den Wert solange und bilde ihn ab, bis sich was ändert?" Umständlich könnte ich ein weiteres Dummy befüllen und mit AT zeitlich immer wieder abbilden, was aber erst recht zu Datenmüll führt.
define anw_check at +*00:01:00 {\
if (ReadingsVal("rr_per00", "state", "") eq "home" || ReadingsVal("rr_per01", "state", "") eq "home") {\
fhem("set res home");;\
}\
else {\
fhem("set res absent");;\
}\
}
Lass den Teil komplett weg.
Wenn dein Watchdog dir entsprechend den Roommate auf Home setzt geht auch automatisch Residents auf Home.
Danke Cobar, das hat geklappt.
Hat noch irgendjemand eine Idee, wie ich die Sache mit dem Plot umsetze? Ist lästig, wenn man längere Zeit "home" aber der Plot erst korrekt dargestellt wird wenn man auf "absent" geht.
Lässt sich mit addlog lösen, falls sonst noch wer dieses problem hat.
Bitte noch [Gelöst] vor das Subject des ersten Post :-)