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

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

Vorheriges Thema - Nächstes Thema

Loredo

Aber noch der Nachtrag genereller Natur:


residentsTotalGuestsPresent gibt an wieviele Gäste gerade anwesend sind.
residentsTotalPresent gibt an wieviele Bewohner insgesamt anwesend sind.
Gäste werden auch gastlich behandelt und entsprechend während ihrer Anwesenheit als vollwertige Bewohner gezählt.
;)
Es ist also richtig, dass man über ([rgr_Residents:residentsTotalPresent] eq [rgr_Residents: residentsTotalGuestsPresent]) erkennen kann, wenn nur noch Gäste zu Hause sind.


In meinem DOIF habe ich das allerdings etwas komplexer gelöst. Warum kann man denke ich bei genauerem hinsehen auch verstehen.




EDIT: Ich ergänze bei Gelegenheit mal residentsTotalOwners*.
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

Habe gerade eine aktualisierte Version mit residentsTotalOwners* Readings eingecheckt.
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

MichaelO

Danke für's Einchecken, dann fliegen meine userReadings morgen raus. Es führen sicherlich viele Wege nach Rom und bei der ganzen Programmiererei übersieht man auch einige Möglichkeiten.

Danke nochmal!

ralfix

Hallo
ich bin seit ein paar Wochen begeisterter FHEM-Bastler. Meine ROOMMATE's schalte ich mit 2 IT-Fernbedienungen am Bett (awoken:asleep) und Wohnungstür (home:absent). Zusätzlich habe ich noch einige notifies auf pingbare Geräte zur Plausibilisierung, falls man einen Status nicht schaltet. Funktioniert soweit  ganz gut.  :)

Was mir auffällt:  Bei den automatisch erzeugten Makros fehlt irgendwie Macro_RESIDENTS_absent und Macro_RESIDENTS_home? Ist das Absicht, oder habe ich ausversehen etwas gelöscht?
Grüße Ralf

Loredo

Ich habe gerade eine Änderung beim Reading lastActivity des RESIDENTS Moduls eingecheckt.
Das betrifft diejenigen, die in einem ROOMMATE oder GUEST Device eventMap verwenden. Bisher wurde dann in lastActivity der übersetzte Wert angezeigt statt dem originalen state des Devices. Nun wird in RESIDENTS ebenfalls der originale Wert angezeigt und nicht der durch eventMap übersetzte. Wer also darauf triggert, muss diese ggf. anpassen oder eventMap auch für das RESIDENTS Device definieren.
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: ralfix am 19 November 2015, 22:39:38
Was mir auffällt:  Bei den automatisch erzeugten Makros fehlt irgendwie Macro_RESIDENTS_absent und Macro_RESIDENTS_home? Ist das Absicht, oder habe ich ausversehen etwas gelöscht?


Nein. Du sprichst vermutlich vom Wakeuptimer, welcher jedoch nur zu einem ROOMMATE oder GUEST Device gehört.
Es macht daher keinen Sinn für ein RESIDENTS Device etwas anzulegen, wenn dies für den Wakeuptimer gar nicht benötigt wird. Wenn du ein Notify auf ein RESIDENTS Device brauchst, musst du ihn selbst anlegen.
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

ralfix

Zitat von: Loredo am 21 November 2015, 14:36:21
Nein. Du sprichst vermutlich vom Wakeuptimer, welcher jedoch nur zu einem ROOMMATE oder GUEST Device gehört.
Es macht daher keinen Sinn für ein RESIDENTS Device etwas anzulegen, wenn dies für den Wakeuptimer gar nicht benötigt wird. Wenn du ein Notify auf ein RESIDENTS Device brauchst, musst du ihn selbst anlegen.
Die Macros  Macro_rr_Ralf_asleep , -_awoken und -_gotosleep wurden mir automatisch erzeugt, aber eben nicht Macro_rr_Ralf_absent und Macro_rr_Ralf_home.
Das finde ich etwas  unlogisch.
Ist aber kein Problem,  die notwendigen Aktionen habe alle per NOTIFY und DOIF eingestellt. :)

MichaelO

So, nachdem mich die Arbeit nun wieder einige Minuten ans System lässt, ist mit bei den Readings

residentsTotalOwners*

aufgefallen, dass ich da beim Namensvorschlag wohl blockierte Denke hatte. Ich hatte nach einer Bezeichnung analog zu "Guests" gesucht und völlig daneben gegriffen. Eigentlich wäre es doch korrekter, die Readings als

residentsTotalRoommates*

zu bezeichnen.  :( Wäre es blöd, das jetzt noch zu ändern?

Dann noch eine Frage... ich komm vor lauter Readings nicht drauf. Wenn ich etwas genau einmal machen möchte, wenn der erste Bewohner nach Hause kommt, wie setze ich das in einem DOIF um? Das Haus auf "present" zu prüfen dürfte hier nicht gehen, oder... jede Statusänderung eines Bewohners würde doch einen Trigger auslösen und damit die Prüfung auf "present" wieder auslösen. Ich steht vor dem Wald und seh grad nix.

Danke
Michael

CoolTux

Hallo Micha,

Bitte schau Die doch mal genau an was bei den DeviceInstanzen passiert. Versuche zu verstehen wie was genau abgebildet wird. Dann erkennst Du das die Residents auf den Zustand des ersten oder letzten Roommates an nimmt. Die Residents kann nur einmal den Status Home annehmen, nämlich vom ersten Roommate. Und dem zu Folge kannst Du auch ein DOIF auf home der Residents machen wenn der erste Bewohner der nach Hause kommt etwas auslösen soll.


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

Zitat von: MichaelO am 13 Dezember 2015, 19:31:12
So, nachdem mich die Arbeit nun wieder einige Minuten ans System lässt, ist mit bei den Readings

residentsTotalOwners*

aufgefallen, dass ich da beim Namensvorschlag wohl blockierte Denke hatte.


Das ist schon in Ordnung so, sonst hätte ich das selbst entsprechend anders benannt.
Es geht ja vornehmlich um Bewohner, daher wird auch sonst in keinem Reading explizit von "roommates" gesprochen. Nur dort, wo es sich um temporäre Bewohner handelt, wird ein Reading dann mit "guests" im Namen bezeichnet.


Zitat von: MichaelO am 13 Dezember 2015, 19:31:12
Dann noch eine Frage... ich komm vor lauter Readings nicht drauf. Wenn ich etwas genau einmal machen möchte, wenn der erste Bewohner nach Hause kommt, wie setze ich das in einem DOIF um? Das Haus auf "present" zu prüfen dürfte hier nicht gehen, oder... jede Statusänderung eines Bewohners würde doch einen Trigger auslösen und damit die Prüfung auf "present" wieder auslösen. Ich steht vor dem Wald und seh grad nix.[size=78%] [/size]


Wie CoolTux richtig schrieb, die Readings triggern nur wenn sich etwas verändert. Sprich nur wenn der erste Bewohner nach Hause kommt ändert sich das Reading "presence" von "absent" auf "present", danach bleibt es natürlich so, weil es den Gesamtstatus über alle Mitglieder dieser RESIDENTS Gruppe repräsentiert. Du kannst also in einem DOIF einfach auf [rgr_Residents:?presence] triggern.
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: CoolTux am 13 Dezember 2015, 20:08:50
Die Residents kann nur einmal den Status Home annehmen, nämlich vom ersten Roommate. Und dem zu Folge kannst Du auch ein DOIF auf home der Residents machen wenn der erste Bewohner der nach Hause kommt etwas auslösen soll.


Das funktioniert nur solange man keinen der anderen Status wie "asleep" verwendet. Ansonsten wechselt der Gesamtstatus natürlich irgendwann auch auf "asleep" wenn alle Bewohner schlafen und nach dem aufstehen dann wieder auf "awoken" oder sofort auf "home", sobald der erste aufgestanden ist (je nachdem wie man das in seiner Automation verwendet). Dann würde auf "home" erneut getriggert werden, obwohl die Bewohner gar nicht weg waren. Für diesen Fall ist das Reading "presence" deshalb besser geeignet.
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: MichaelO am 13 Dezember 2015, 19:31:12
Ich hatte nach einer Bezeichnung analog zu "Guests" gesucht und völlig daneben gegriffen. Eigentlich wäre es doch korrekter, die Readings als

residentsTotalRoommates*

zu bezeichnen.  :( Wäre es blöd, das jetzt noch zu ändern?[size=78%] [/size]


Hm, jetzt verstehe ich deine Denkweise. Ich kam auch naheliegenderweise zunächst auf "Owners", aber "Guests" ähnelt der Bezeichnung des GUEST-Moduls natürlich und demnach wäre es in der Tat sinnvoller die Readings mit "Roommates" zu bezeichnen, damit man den Zusammenhang direkt herstellen kann.


Ich werde die Readings umbenennen. Ich denke die sind noch nicht allzu verbreitet im Einsatz und eine Änderung des Namens ist für die bisherigen Verwender kein großes Problem.


Ab morgen dann per Update.
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

l2r

läuft soweit.

Sry für die vllt. doofe Frage, aber gibt's irgendeinen Befehl zum "aufräumen" der Readings? Ähnlich wie bei der msg-Funktion?

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Loredo

Zitat von: l2r am 15 Dezember 2015, 13:33:22
Sry für die vllt. doofe Frage, aber gibt's irgendeinen Befehl zum "aufräumen" der Readings? Ähnlich wie bei der msg-Funktion?


Da das kein häufiger Task ist, lohnt dafür kein eigener Setter.
Man kann einfach das Kommando deletereading entsprechend benutzen:



deletereading .* residentsTotalOwners.*
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

l2r

Wissen ist Macht.
Ich weiß nix.
Macht nix.