Hallo,
ich habe hier im Forum gesucht und auch die Commandref gelesen. Wahrscheinlich verstehe ich die möglichen Lösungen nicht.
Die Anwesenheit steuere ich über Dummys für die einzelnen Personen. Über eine Struktur sehe ich den Hausstatus.
Das geht sicher auch über ein Modul. Tortzdem möchte ich bei dieser Lösung bleiben, es ist ja auch weiterhin eine Frage zu structure.
Der State der Structure ist bisher:
jemandda, wenn mindestens eine Person anwesend ist
niemandda, wenn keine einzige Person anwesend ist
schläft, wenn mindestens eine Person schläft
Das funktioniert bisher auch gut.
Jetzt möchte ich den State schläft zu ändern.
schlafen, wenn alle anwesenden Personen schlafen (der Rest ist abwesend)
leise, wenn mindestens eine Person schläft und mindestens eine Person anwesend ist
Das kriege ich nicht hin.
Alle Versuche mit "clientstate_priority" und Any_, bzw. All_ waren nicht erfolgreich.
So sieht die Structure aus:
Internals:
ATTR Personen
CFGFN ./FHEM/fhem_Personen.cfg
CHANGEDCNT 142
DEF Personen Anwesenheit1 Anwesenheit1 AnwesenheitGast AnwesenheitService
NAME Anwesenheit
NR 297
NTFY_ORDER 50-Anwesenheit
STATE jemandda
TYPE structure
READINGS:
2018-03-14 10:05:17 LastDevice Anwesenheit2
2018-03-14 10:05:17 LastDevice_Abs Anwesenheit2
2018-03-14 10:05:17 state jemandda
Attributes:
clientstate_behavior relativeKnown
clientstate_priority schläft|schläft jemandda|jemand|zuhause niemandda|niemand|abwesend
devStateIcon niemandda:control_building_empty jemandda:status_available schläft:status_night
event-on-change-reading .*
So sieht eine Person aus:
Internals:
CFGFN ./FHEM/fhem_Personen.cfg
NAME Anwesenheit1
NR 288
STATE zuhause
TYPE dummy
READINGS:
2018-03-14 10:06:13 state zuhause
Attributes:
Personen Anwesenheit
devStateIcon zuhause:status_available abwesend:status_away_2 schläft:scene_sleeping_alternat
event-on-change-reading .*
userattr Personen Personen_map structexclude
webCmd zuhause:abwesend:schläft
Meine Empfehlung. Schau Dir mal Resident und Roommate an. Ist genau das was Du suchst.
Finde ich unübersichtlich.
Das Haus in den Zustand "eine Person schläft, bitte leise sein" scheint mir da nicht besonders einfach umsetzbar.
Wie gesagt, es geht eher um den State einer Structure.
Beispiel:
leise, wenn jemand anwesend ist UND jemand schläft
schläft, wenn alle anwesenden schlafen
Zitat"clientstate_priority" und Any_, bzw. All_
Hätte ich gern verständlich erklärt, für solche Fälle.
Nimm zwei structure devices, eines für die Anwesenheit und eines für die Schlafzustände.
Wenn Du willst, kannst Du die beiden structures dann in einer dritten structure kombinieren und die möglichen Zustände einfacher bestimmen.
Und stelle solche Fragen zu structure nächstes Mal bitte im richtigen Unterforum.