Anwesenheitssimulation als "record-Funktion"

Begonnen von Rince, 13 Oktober 2015, 23:31:10

Vorheriges Thema - Nächstes Thema

Rince

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  ::)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

justme1968

#1
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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Rince

Danke. Ich fürchte, wenn man da 1 Woche haben will, wird das aufwendig ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Rince

Das klingt cool :)

Dann hoffe ich mal, dass diesen Thread noch einige User lesen  und deinen Vorschlag nützlich finden :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)