FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: Rince am 13 Oktober 2015, 23:31:10

Titel: Anwesenheitssimulation als "record-Funktion"
Beitrag von: Rince am 13 Oktober 2015, 23:31:10
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  ::)
Titel: Antw:Anwesenheitssimulation als "record-Funktion"
Beitrag von: justme1968 am 14 Oktober 2015, 00:51:36
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
Titel: Antw:Anwesenheitssimulation als "record-Funktion"
Beitrag von: Rince am 14 Oktober 2015, 20:37:22
Danke. Ich fürchte, wenn man da 1 Woche haben will, wird das aufwendig ;)
Titel: Antw:Anwesenheitssimulation als "record-Funktion"
Beitrag von: justme1968 am 14 Oktober 2015, 20:52:41
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
Titel: Antw:Anwesenheitssimulation als "record-Funktion"
Beitrag von: Rince am 15 Oktober 2015, 11:25:44
Das klingt cool :)

Dann hoffe ich mal, dass diesen Thread noch einige User lesen  und deinen Vorschlag nützlich finden :)