Documentation of the Elvis package “Presence Simulation”
Overview
This module records switching events and replays them later in order to make the house appear inhabited when you are away.
The module is compatible with Elvis from version 3.3.46.
Inputs and outputs
I/O | Name | Meaning |
Entrance | Time | Current time (e.g. bind to time data point). |
Entrance | DayClass | Current day type (e.g. bind to calendar output). This can be, for example, a day type per day of the week (holidays can be mapped from the calendar to Sunday). |
Entrance | Playback | False=Record, True=Play |
Entrance | Input | Array property: This is where the actual values of the data points to be recorded are bound. |
Exit | Output | Array property: This binds the nominal values of the data points to be recorded (generally these are the same data points as for input). |
Properties
Name | Meaning |
Day Class Type | A data point type that contains the possible day classes (as in the time program). Usually the list of days of the week. |
Random deviation | If there is a value of 0 here, the times are shifted by random values during playback, the higher the value > , the more (see below for details). |
Function
The element has two operating states: recording and playback. These are switched via the playback input. In addition, the element can also be switched off completely as usual via the enable input.
Record
All changes in the value of the inputs are recorded throughout the day. At the end of the day, the gearshifts are saved if
- the recording was started at 06:00 at the latest and ran all day
- anything was recorded at all
This newly saved time program overwrites the one previously available under this day class (e.g. this day of the week).
Play
In principle, this works like a time program. However, when preparing the switching commands of a day, there are some peculiarities:
If random deviation > is 0, the times are randomly shifted slightly. The value of the random deviation is treated as a rate inaccuracy of the clock: a value of 0.1 means that each hour is extended or shortened by a random amount of up to 0.1*1 hour = 6 minutes.
“Party problem”: There is an unfavorable case with this procedure: if, for example, the Wednesday recording is from a day on which the light in the living room was still switched on at 24:00, but the Thursday recording – because it was not recorded the next day but e.g. a week before – does not contain an off command for this light at night, then the light in the living room would remain on all night. To avoid this, the element automatically remembers the typical “night state” of each data point (the most common value between 02:00 and 04:00). In the case of the “party problem”, a corresponding command is then inserted at a random time between 00:00 and 01:00.
Procedure
After inserting the module via the package manager, instances of the presence simulation can be created. To do this, for example, open the file Zeitprogramm.elvissc, create a new folder “Presence Simulation” at the top level and set its property “Allowed element type” to “Presence simulation”.
Now you can add an instance with the “+” button. Either select the predefined type “DayClasses” as the day class type or create your own. Bind the day class input to the corresponding output of a calendar item and the time input to a time source, such as the System\Time data point.
Finally, you can create the outputs and connect them to the corresponding data points (ActualValue to the input, NominalValue to the output).