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

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

Vorheriges Thema - Nächstes Thema

Zephyr

Verzeih, diesen Schritt hatte ich nicht gepostet, ihn aber durchgeführt. In der FHEM Config ist er eingetragen. Und das RESIDENTS Modul zeigt mir seine Kindobjekte auch an. Das RESIDENTS Modul bekommt auch den Status in Abhängigkeit des Bewohners den Status korrekt gesetzt. Es sieht nur so aus als ob ich ihn nicht auslesen kann.

So sieht es bei mir aus:

FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

Loredo

Ich glaube du möchtest nochmals die Kommando-Referenz für das NOTIFY Modul lesen ;)



define n_rgrBewohner.present notify rgrBewohner:presence:.present set Testdummy "Bewohner sind da!"


oder



define n_rgrBewohner notify rgrBewohner:state:.* set Testdummy $EVTPART1


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

fh168

Hallo Loredo,

darf ich fragen, wo man die iBeacons kaufen kann? Im Code Antwort #60 ist davon die Rede.

LG
/robin
Hue, Lacrosse, PCA301, MySensors, V 1.67 CUL 868 V3.4, Lacrosse-WLAN-Gateway, Tasmota RF-

Zephyr

Hallo Loredo,

ich hatte auch den Wikiartikel zum Notify-Modul "verspeist" und war mir relativ sicher, dass ich das richtig mache.
Leider funktionieren auch Deine beiden Vorschläge nicht. Was ich durch Herumprobieren herausgefunden habe ist, dass zum Beispiel der Status "lastState" sehr wohl an das Dummyobjekt übergeben wird. Wohl aber nicht der "state". Nun bin ich vollends verwirrt. Haut bei mir in der Installation einfach etwas nicht hin?

define n_rgrBewohner notify rgrBewohner:lastState:.* set Testdummy %EVTPART1

Ich bin völlig ratlos.

Zusatz:

Mit einer einfachen ReadingsGroup bekomme ich den Status von rgrBewohner allerdings zuverlässig ausgelesen.

define rgBewohner readingsgroup rgrBewohner:state
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

Spezialtrick

Vielen Dank für dieses geniale Modul! Zu Beginn dachte ich, dass es für mich zu speziell und zu sehr in die Tiefe geht, aber seit gestern weiß ich, dass es fast genau das ich was ich für mich realisieren wollte. ^^

Habe gestern und heute ein wenig rum probiert und es funktioniert wirklich gut. Ich habe die Anwesenheit von 2 Personen per Bluetooth gekloppt und schalte damit die Alarmanlage scharf sobald der Home State von "home" auf "absent" umspringt. Das klappt soweit sehr gut. Ich würde dies jedoch noch ein wenig erweitern. Die Alarmanlage sollte nämlich auch scharf sein, wenn der Status auf "gone" übergeht.

Außerdem sollte sich Abends zu einer bestimmten Uhrzeit der Status automatisch auf "gotosleep" stellen und damit wieder die Alarmanlage scharf stellen.

Hier ist ein Auszug meines Code:

define Alarmanlage dummy
attr Alarmanlage group Status der Alarmanlage
attr Alarmanlage room Alarmanlage
define Alarmanlage_Scharf notify Home:absent.* { fhem ("set Alarmanlage on") if (Value("Alarmanlage") ne "on") }
attr Alarmanlage_Scharf room Alarmanlage
define Alarmanlage_Unscharf notify Home:home.* { fhem ("set Alarmanlage off") }
attr Alarmanlage_Unscharf room Alarmanlage


Muss ich nun für jeden einzelne Status des Home States einen neues Notify anlegen oder lässt sich das irgendwie eleganter lösen?

Kurzer Zusammenfassung der Schaltstände:

home          -   Schaltung per Bluetooth   -   Alarmanlage AUS
gotosleep    -   Schaltung per Uhrzeit       -   Alarmanlage AN
absent        -   Schaltung per Bluetooth   -   Alarmanlage AN
gone           -   Schaltung per Uhrzeit       -   Alarmanlage AN
FHEM - Debmatic - Zigbee2MQTT - Homekit

marvin78

Vorab. Das Modul ist sehr hilfreich und erspart mir einiges an Ärger mit Dummys. Danke dafür.

Aus welchem Grund können Gäste nicht den Status "gone" haben? Es gibt jedoch das AutoGoneAfter Attribut. Schon dass ein Gast nicht "gone" sein kann ist in sich unlogisch, oder verstehe ich das falsch?

Zephyr

Kann es sein, dass der state nicht korrekt gemeldet wird?
Ich habe mal auf der Telnetkonsole ein inform on gemacht und vom Roommate Karsten den Status nach gotosleep, absent und home verändert.

Folgendes wirft inform on aus:

inform on
RESIDENTS rgrBewohner residentsHome: 0
RESIDENTS rgrBewohner residentsGotosleep: 1
RESIDENTS rgrBewohner lastState: home
RESIDENTS rgrBewohner gotosleep
RESIDENTS rgrBewohner lastActivity: gotosleep
RESIDENTS rgrBewohner lastActivityBy: Karsten
ROOMMATE rr_Karsten lastState: home
ROOMMATE rr_Karsten gotosleep
ROOMMATE rr_Karsten lastMood: calm
ROOMMATE rr_Karsten mood: sleepy
dummy Testdummy "Keiner da!"
RESIDENTS rgrBewohner residentsTotalPresent: 0
RESIDENTS rgrBewohner residentsTotalAbsent: 1
RESIDENTS rgrBewohner residentsGotosleep: 0
RESIDENTS rgrBewohner residentsAbsent: 1
RESIDENTS rgrBewohner lastState: gotosleep
RESIDENTS rgrBewohner absent
RESIDENTS rgrBewohner presence: absent
RESIDENTS rgrBewohner lastDeparture: 2014-03-02 20:37:31
RESIDENTS rgrBewohner lastDurPresence: 00:01:35
RESIDENTS rgrBewohner lastActivity: absent
RESIDENTS rgrBewohner lastActivityBy: Karsten
ROOMMATE rr_Karsten lastState: gotosleep
ROOMMATE rr_Karsten absent
ROOMMATE rr_Karsten lastMood: sleepy
ROOMMATE rr_Karsten mood: -
ROOMMATE rr_Karsten presence: absent
ROOMMATE rr_Karsten lastLocation: home
ROOMMATE rr_Karsten location: underway
ROOMMATE rr_Karsten lastDeparture: 2014-03-02 20:37:31
ROOMMATE rr_Karsten lastDurPresence: 00:01:35


Die Zeilen
RESIDENTS rgrBewohner gotosleep
RESIDENTS rgrBewohner absent
ROOMMATE rr_Karsten absent

fallen mir auf.

In allen anderen Zeilen steht immer das Attribut des Objektes vor der Eigenschaft. Ist das so korrekt?


Ich nehme nun statt des Attributes "state" das  Attribut "lastActivity". Das hat die gleichen Werte und tut's auch.

Viele Grüße
Zephyr
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

Loredo

Zitat von: Zephyr am 02 März 2014, 20:45:59
Die Zeilen
RESIDENTS rgrBewohner gotosleep
RESIDENTS rgrBewohner absent
ROOMMATE rr_Karsten absent

fallen mir auf.

In allen anderen Zeilen steht immer das Attribut des Objektes vor der Eigenschaft. Ist das so korrekt?

Ja, ist es. Das ist eine Besonderheit von FHEM selbst, das Reading "state" wird gleichzeitig auch als STATE interpretiert, also der Gesamtstatus, den du oben in den Internals siehst. Keine Ahnung, warum Rudi das so umgesetzt hat, er hat sicher seine Gründe.
Du kannst ein Notify deshalb nicht auf das Reading "state" setzen, sondern nur direkt auf den Objekt-Status. Insofern war mein Beispiel nicht ganz akkurat.
Das ist verwirrend, ich weiß. Kannst das ja mal in einem separaten Thread erfragen.

Zitat von: marvin78 am 02 März 2014, 08:44:24
Aus welchem Grund können Gäste nicht den Status "gone" haben? Es gibt jedoch das AutoGoneAfter Attribut. Schon dass ein Gast nicht "gone" sein kann ist in sich unlogisch, oder verstehe ich das falsch?


Das ist schon logisch. Bei einem Gast macht es keinen Sinn, dass er längere Zeit abwesend ist, denn dann ist er tatsächlich einfach nicht vorhanden.
Ganz im Gegensatz zu einem dauerhaften Bewohner, der irgend wann auch wieder zurück kommt, wird ein Gast nicht notwendigerweise zurück kehren. Vielleicht wird es dir klarer, wenn du einmal die Beschreibung in der Kommando-Referenz für die beiden Stati "absent" und "gone" liest. Das Attribut AutoGoneAfter heißt bei allen Module so, damit es konsistent ist.


Zitat von: Spezialtrick am 01 März 2014, 21:34:14
Habe gestern und heute ein wenig rum probiert und es funktioniert wirklich gut. Ich habe die Anwesenheit von 2 Personen per Bluetooth gekloppt und schalte damit die Alarmanlage scharf sobald der Home State von "home" auf "absent" umspringt. Das klappt soweit sehr gut. Ich würde dies jedoch noch ein wenig erweitern. Die Alarmanlage sollte nämlich auch scharf sein, wenn der Status auf "gone" übergeht.

Außerdem sollte sich Abends zu einer bestimmten Uhrzeit der Status automatisch auf "gotosleep" stellen und damit wieder die Alarmanlage scharf stellen.

Hier ist ein Auszug meines Code:

define Alarmanlage dummy
attr Alarmanlage group Status der Alarmanlage
attr Alarmanlage room Alarmanlage
define Alarmanlage_Scharf notify Home:absent.* { fhem ("set Alarmanlage on") if (Value("Alarmanlage") ne "on") }
attr Alarmanlage_Scharf room Alarmanlage
define Alarmanlage_Unscharf notify Home:home.* { fhem ("set Alarmanlage off") }
attr Alarmanlage_Unscharf room Alarmanlage


Muss ich nun für jeden einzelne Status des Home States einen neues Notify anlegen oder lässt sich das irgendwie eleganter lösen?

Kurzer Zusammenfassung der Schaltstände:

home          -   Schaltung per Bluetooth   -   Alarmanlage AUS
gotosleep    -   Schaltung per Uhrzeit       -   Alarmanlage AN
absent        -   Schaltung per Bluetooth   -   Alarmanlage AN
gone           -   Schaltung per Uhrzeit       -   Alarmanlage AN


Ich bin ehrlich gesagt nicht ganz sicher, ob ich das so sinnvoll fände. Der Sinn dahinter, einfach zu einer bestimmten Uhrzeit auf "gotosleep" zu schalten, nur weil deine Alarmanlage eingeschaltet werden soll, erscheint mir falsch.
Ich fände es prima, wenn du für dieses Thema einen eigenen Thread aufmachst, denn im Grunde geht es hier um eine spezielle Automation, die mit den Modulen nichts zu tun hat.
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: fh168 am 01 März 2014, 17:52:31
darf ich fragen, wo man die iBeacons kaufen kann? Im Code Antwort #60 ist davon die Rede.


Wir haben uns diese hier bestellt:
http://estimote.com
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

marvin78

Zitat von: Loredo am 02 März 2014, 21:55:27
Das ist schon logisch. Bei einem Gast macht es keinen Sinn, dass er längere Zeit abwesend ist, denn dann ist er tatsächlich einfach nicht vorhanden.
Ganz im Gegensatz zu einem dauerhaften Bewohner, der irgend wann auch wieder zurück kommt, wird ein Gast nicht notwendigerweise zurück kehren. Vielleicht wird es dir klarer, wenn du einmal die Beschreibung in der Kommando-Referenz für die beiden Stati "absent" und "gone" liest. Das Attribut AutoGoneAfter heißt bei allen Module so, damit es konsistent ist.


Natürlich habe ich gelesen. Das macht es aber nicht logischer. Das Wort "gone" beschreibst genau das, was der Gast ist, wenn er nicht wieder kommt, nämlich "gone". Sollte er doch wieder kommen, war jedoch der Status "gone" auch richtig. Im Grunde ist es auch egal. Für mich bleibt es jedoch unlogisch und es beinhaltet eine gewisse inkonsistenz. Und logisch wird es nicht, weil man es als logisch definiert ;)

Loredo

Zitat von: marvin78 am 03 März 2014, 06:41:30
Natürlich habe ich gelesen. Das macht es aber nicht logischer. Das Wort "gone" beschreibst genau das, was der Gast ist, wenn er nicht wieder kommt, nämlich "gone". Sollte er doch wieder kommen, war jedoch der Status "gone" auch richtig. Im Grunde ist es auch egal. Für mich bleibt es jedoch unlogisch und es beinhaltet eine gewisse inkonsistenz. Und logisch wird es nicht, weil man es als logisch definiert ;)


Letztendlich eine Frage der Definition. Ich habe sie eben so festgelegt. Dafür musst du meine Logik nicht nachvollziehen können, nur eben akzeptieren  :)
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

Urga

Hallo Loredo,

ich möchte mich auch erst mal für das tolle Modul bedanken, habe aber auch ein Problem mit einem Notify.
Du schreibst als Beispiel:

Zitat

define n_rgrBewohner notify rgrBewohner:state:.* set Testdummy $EVTPART1


Damit funktioniert bei mir das Notify nicht.

Bei mir hatte ich es geändert in

define n_ANWESEND_R notify rgrResidents:presence:.* set ANWESEND_R $EVTPART1


Hinbekommen habe ich es jetzt weniger elegant mit

define n_ANWESEND_R notify rgr_Residents.presence.* {my $temp=ReadingsVal("rgr_Residents", "presence", "unknown");; fhem("set ANWESEND_R $temp") ;;}


Hast du eine Idee, warum das Notify nach deinem Beispiel nicht funktioniert? Zephyr scheint da ja auch ein Problem mit zu haben.

Gruß
Urga

Loredo

Ja, es ist eine Eigenart von FHEM, dass für state kein Trigger ausgelöst wird.
Mein Beispiel war nicht ganz richtig, siehe oben.


Probiert



define n_rgrBewohner notify rgrBewohner:.(absent|gone) set Testdummy $EVTPART1
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

justme1968

state erzeugt sehr wohl events. aber ohne reading namen und somit ohne ':'.

wenn man die regex anpasst kann man sehr wohl notifys darauf definieren. man muss nur aufapssen das diese nicht so generell sind das sie auch auf andere readings matchen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Loredo

Zitat von: justme1968 am 04 März 2014, 21:43:06
state erzeugt sehr wohl events. aber ohne reading namen und somit ohne ':'.

wenn man die regex anpasst kann man sehr wohl notifys darauf definieren. man muss nur aufapssen das diese nicht so generell sind das sie auch auf andere readings matchen.


Das versteht aber kein Mensch, der nicht Modul-Maintainer ist. Das Beispiel gerade macht aber genau das, was du beschreibst :D
Ich für meine Begriffe habe schon oft gedacht, dass es eigentlich so UND so gehen müsste bei State. Weiß wieder nur Rudi, was er sich da gedacht hat.
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