Ich würde mir eine Art "Record" Funktion für ausgewählte Devices wünschen.
Über ein Attribut wählbar welche Geräte quasi aufgenommen werden.
(Klar, ich hab Lichter im Hinterkopf)
Jeder on/off Befehl (oder Farbänderung) könnte in eine Datei wandern mit Zeitstempel.
Wenn man dann im Urlaub ist, könnte man dann einige aufgenommene Tage sozusagaen wieder ablaufen lassen ::)
nicht elegant, aber es müsste im prinzip gehen:
leg dir eine LightScene mit den devices an die du haben möchtest, setz followDevices auf 2 und leg ein notify auf die LightScene an:
define <notify> notify <LightScene {
return undef if( $EVENT =~ m/^save/ );
fhem( "set <LightScene> save $hour:$min" );
}
damit wird jeweils ein schnappschuss des zustandes mit dem timestamp als namen angelegt. entweder im notify gleich save aufrufen oder nach dem aufnehmen.
wenn du mit aufnehmen fertig bist das notify disablen.
das war das aufnehmen.
zum abspielen per get <LightScene> scenes alle szenen (d.h. alle timestamps) holen und für jede ein at mit set <LightScene> scene <name> anlegen.
damit wird dann alles wieder abgespielt. statt dem genauen timestamp könnte man auch noch einen zufälligen offset drauf addieren.
das abspielen kann man vermutlich noch ein wenig eleganter machen :)
gruss
andre
Danke. Ich fürchte, wenn man da 1 Woche haben will, wird das aufwendig ;)
eigentlich nicht. du musst nur den timestamp/name um einen tageszäher erweitern oder den wochentag mit rein nehmen.
die routine die die at anlegt würde das dann jeweils tageweise machen.
das aufnehmen habe ich inzwischen probiert. der code von oben geht einwandfrei.
der vorteil von LightScene gegenüber einer anderen lösung ist hauptsächlich das die ganze logik um auch andere devices als nur on/off zu verstehen schon komplett implementiert ist. und du kannst sogar per gui nachträglich das komplette aufgenommene programm ändern und ergänzen.
wenn es noch andere interessenten gibt würde ich das ein und ausschalten der aufnahme für einen bestimmten zeitraum und das wieder abspielen direkt ins modul mit einbauen. dann braucht es auch keine at.
gruss
andre
Das klingt cool :)
Dann hoffe ich mal, dass diesen Thread noch einige User lesen und deinen Vorschlag nützlich finden :)