Eigentlich wäre es prima, wenn man ein
"set <structureName> save"
ausführen könnte, um den Zustand (state) aller in der structure enthaltenen devices speichern und später mit
"set <structureName> restore"
wiederherstellen zu können.
Anwendungsszenario:
- In meinem Wohnzimmer gibt es mehrere schaltbare Beleuchtungen, die alle in einer structure zusammengefasst sind.
- Diese structure wird durch einen Bewegungsmelder per notify auf "off" geschaltet, wenn innerhalb von 15 Minuten keine Bewegung im Raum festgestellt wurde.
- Wird nun der Raum wieder betreten, soll der zuvor vorhandene Zustand der Beleuchtung wieder hergestellt werden. Da nicht zwingend immer alle Leuchten angeschaltet waren, ist ein einfaches "set ... on" nicht zielführend.
- Das Speichern könnte im einfachsten Fall in irgendeiner Form in den INTERNAL erfolgen.
Vielleicht gibt es das Ganze ja auch jetzt schon irgendwie, aber trotz intensiver Suche und viel Lesen habe ich nichts diesbezüglich gefunden.
LightScene macht unter anderem genau das.
Soweit ich gesehen habe, funktioniert LightScene aber im Gegensatz zu structure nicht recursiv.
Ausserdem bin ich mit structure eigentlich seit Jahren ganz zufrieden :)
Ich habe saveStructState / restoreStructState implementiert und eingecheckt:
Zitat
- saveStructState <readingName>
The state reading of all members is stored comma separated in the specified readingName.
- restoreStructState <readingName>
The state of all members will be restored from readingName by calling "set member stateValue".
Da es relativ einfach implementiert ist, kann man damit vermutlich Unsinn treiben.
Ich bin nicht sicher, dass ich jeden Sonderfall sauber abfangen will.
Danke, ich schaue mir das bei Gelegenheit an. Wenn mir was auffällt, melde ich mich :)
Helau!
Funktioniert :)
Zwar nicht rekursiv, aber das kann ich per "set TYPE=structure saveStructState status" relativ einfach lösen.
Danke!