Dokumentation des Elvis-Pakets „Anwesenheitssimulation“
Übersicht
Dieses Modul zeichnet Schaltereignisse auf und spielt sie später wieder ab, um bei Abwesenheit das Haus bewohnt wirken zu lassen.
Das Modul ist mit Elvis ab Version 3.3.46 kompatibel.
Eingänge und Ausgänge
E/A | Name | Bedeutung |
Eingang | Time | Aktuelle Uhrzeit (z.B. an Time-Datenpunkt binden). |
Eingang | DayClass | Aktueller Tagestyp (z.B. an Kalender-Ausgang binden). Das kann z.B. ein Tagestyp je Wochentag sein (Feiertage können vom Kalender auf Sonntag abgebildet werden). |
Eingang | Playback | False=Aufzeichnen, True=Abspielen |
Eingang | Input | Array-Property: Hier werden die Aktualwerte der aufzuzeichnenden Datenpunkte gebunden. |
Ausgang | Output | Array-Property: Hier werden die Nominalwerte der aufzuzeichnenden Datenpunkte gebunden (im Allgemeinen sind das die gleichen Datenpunkte wie bei Input). |
Eigenschaften
Name | Bedeutung |
Tagesklassen-Typ | Ein Datenpunkttyp, der die möglichen Tagesklassen enthält (wie beim Zeitprogramm). Üblicherweise die Liste der Wochentage. |
Zufallsabweichung | Wenn hier ein Wert > 0 steht, werden die Zeiten beim Abspielen um zufällige Werte verschoben, je höher der Wert, umso mehr (Genaueres siehe unten). |
Funktion
Das Element hat zwei Betriebszustände: Aufzeichnen und Abspielen. Diese werden über den Playback-Eingang umgeschaltet. Daneben kann man das Element auch wie üblich über den Enable-Eingang ganz abschalten.
Aufzeichnen
Alle Wertänderungen der Eingänge werden den Tag über aufgezeichnet. Am Ende des Tages werden die Schaltvorgänge gespeichert, wenn
- die Aufzeichnung spätestens um 06:00 gestartet wurde und den ganzen Tag lief
- überhaupt etwas aufgezeichnet wurde
Dieses neu gespeicherte Zeitprogramm überschreibt jeweils das vorher unter dieser Tagesklasse (z.B. diesem Wochentag) vorhandene.
Abspielen
Das funktioniert prinzipiell wie ein Zeitprogramm. Beim Vorbereiten der Schaltbefehle eines Tages gibt es jedoch einige Besonderheiten:
Wenn Zufallsabweichung > 0 werden die Zeiten zufällig etwas verschoben. Der Wert der Zufallsabweichung wird wie eine Gangungenauigkeit der Uhr behandelt: ein Wert von 0.1 bedeutet, dass jede Stunde um einen zufälligen Betrag von bis zu 0.1*1 Stunde = 6 Minuten verlängert oder verkürzt wird.
„Party-Problem“: Es gibt bei diesem Verfahren einen ungünstigen Fall: wenn z.B. die Mittwochs-Aufzeichnung gerade von einem Tag stammt, an dem um 24:00 das Licht im Wohnzimmer noch eingeschaltet war, die Donnerstags-Aufzeichnung aber – weil sie nicht am Tag darauf aufgenommen wurde sondern z.B. eine Woche vorher – nachts keinen Aus-Befehl für dieses Licht enthält, dann würde das Licht im Wohnzimmer die ganze Nacht eingeschaltet bleiben. Um das zu vermeiden, merkt sich das Element automatisch den typischen „Nachtzustand“ jedes Datenpunkts (der häufigste Wert zwischen 02:00 und 04:00). Im Fall des „Party-Problems“ wird dann zu einer zufälligen Zeit zwischen 00:00 und 01:00 ein entsprechender Befehl eingefügt.
Vorgehensweise
Nach dem Einfügen des Moduls über den Paket-Manager können Instanzen der Anwesenheits-Simulation angelegt werden. Öffnen Sie dazu z.B. die Datei Zeitprogramm.elvissc, legen auf oberster Ebene einen neuen Ordner „Anwesenheitssimulation“ an und stellen dessen Eigenschaft „Erlaubter Elementtyp“ auf „Anwesenheitssimulation“.
Jetzt können Sie mit dem „+“-Button eine Instanz hinzufügen. Wählen Sie als Tagesklassentyp entweder den vordefinierten Typ „DayClasses“ oder legen Sie einen eigenen an. Binden Sie den Tagesklassen-Eingang an den entsprechenden Ausgang eines Kalenderelements und den Zeit-Eingang an eine Zeitquelle, z.B. den Datenpunkt System\Time.
Schließlich können Sie die Ausgänge erstellen und mit den entsprechenden Datenpunkten verbinden (ActualValue an den Eingang, NominalValue an den Ausgang).