Skip to content

app-blind-controller

The app-blind-controller block is a software equivalent of a physical blind controller. It allows the blind position and louver position to be specified as percentages. After adding the app-blind-controller block to the project, the mobile application will create a related virtual device that allows blind control, monitoring of its state and position, and control from scenes and schedulers. From scenes and schedulers, it is possible to request a full upward or downward blind movement, stop the blind, set the target blind position as a percentage, and set the target louver position as a percentage.

Configuration parameters

Parameter name Value
Full travel time up (full_travel_time_up) Numeric field specifying the full upward travel time of the blind in seconds. The minimum value is 1 second, and the maximum value is 1800 seconds (that is, 30 minutes). Step: 0.1 second.
Full travel time down (full_travel_time_down) Numeric field specifying the full downward travel time of the blind in seconds. The minimum value is 1 second, and the maximum value is 1800 seconds (that is, 30 minutes). Step: 0.1 second.
Full louver travel time up (full_louver_travel_time_up) Numeric field specifying the time required for a full upward louver rotation in seconds. The minimum value is 0 seconds, and the maximum value is 30 seconds. Step: 0.1 second.
Full louver travel time down (full_louver_travel_time_down) Numeric field specifying the time required for a full downward louver rotation in seconds. The minimum value is 0 seconds, and the maximum value is 30 seconds. Step: 0.1 second.
Delay time before movement starts after receiving a command (blind_start_delay_time) Numeric field specifying the actual start delay / inertia time of the blind movement in seconds after the up or down relay is activated. The minimum value is 0 seconds, and the maximum value is 10 seconds. Step: 0.1 second.
Full-open blind calibration (full_open_calibration) If the blind position is unknown, a calibration procedure must be performed by fully opening or fully closing the blind. Checking this field means that calibration will fully open the blind. Clearing this field means that calibration will fully close the blind. Calibration is performed automatically when a percentage blind position is requested for the first time while the current blind position is unknown. After full opening, the blind position is 0%. After full closing, the blind position is 100%.

To disable louver support, both full_louver_travel_time_up and full_louver_travel_time_down must be set to 0. To enable louver support, both parameters must be greater than 0 and within the allowed range. Setting one of these parameters to 0 and the other to a positive value is a block configuration error.

The block also supports the persistent_state flag, which determines whether the last persisted blind and louver positions should be restored after restart. The state is not persisted immediately, but about 10 minutes after the last position change. If a restart or power loss happens earlier, an older position may be restored. If this option is disabled, the positions are not restored after restart and the block starts with its default state.

Input handling

Providing a percentage blind position value (from 0 to 100) on the main input causes the blind to move to the requested level. The value 0 means the blind is fully open, and the value 100 means the blind is fully closed. Values outside the 0-100 range are ignored. If the current blind position is unknown, a calibration procedure will be performed before the movement by fully opening or fully closing the blind, depending on the block configuration.

If a percentage blind movement finishes with the blind fully closed, the block will not perform a deferred louver correction after stopping. This also applies when the blind was already closed before and the next percentage command does not require any actual movement. Any previously remembered expected louver position remains stored and may be applied only during a later percentage blind movement to a partially open position.

The block can also operate without any input connections. In such a configuration it still remains available as a virtual device in the mobile application and the web interface, but logic control through the main input and the tag1-tag4 lines is naturally not used.

If an internal safety pause is still active after movement stops, before the motor may be switched on again in the opposite direction, another percentage blind position command does not restart that pause. After the pause expires, the block will execute the last pending percentage blind setting, and if the blind position is unknown it will start the required calibration.

Additionally, the block supports the following values from the input line marked with the "tag" block:

Input number and name Description
tag1: Blind up movement button. Sending the value true to the input on the tag1 line causes the blind to move up. Releasing the button (sending false) stops the movement only if the button is released within 2 seconds of being pressed.
tag2: Blind down movement button. Sending the value true to the input on the tag2 line causes the blind to move down. Releasing the button (sending false) stops the movement only if the button is released within 2 seconds of being pressed.
tag3: Percentage louver position level. Sending a percentage value (from 0 to 100) to the input on the tag3 line stores the requested louver position and, if possible, immediately starts moving the louvers to that position. The value 0 means the louvers are directed upward, the value 50 means they are perpendicular to the glass, and the value 100 means they are directed downward. Values outside the 0-100 range are ignored. If louver support is disabled, this value is ignored. If the current blind or louver position is unknown, if the blind is fully or almost fully open, or if the blind is currently moving, the value from tag3 is not lost but remains stored as the expected louver position and will be executed later when the blind state allows louver control. If the current blind movement results from setting a percentage blind position, the block will try to apply the stored louver position after that movement finishes, except when the blind becomes fully closed, in which case the louver position remains only stored. If a full blind movement triggered by the movement button or an up/down command is in progress, the expected louver position remains only stored and will be used later during percentage blind position control. Sending the value null to the tag3 input clears the remembered expected louver position, so later blind movements will no longer try to restore the previously remembered louver position. The value null does not change the current louver position and does not stop a movement that is already in progress. When the blind is fully or almost fully open and the louvers are stacked together, the block reports the louver value as 100%.
tag4: Blind movement lock. Sending the value true to the input on the tag4 line blocks blind movement. If the blind is currently moving, activating the lock stops it immediately. The value false unlocks blind movement. These values may come from external sources such as a window opening sensor or an alarm system.

Block outputs

Output number and name Output description
1. Blind control output. This output is intended to be connected directly to a blind device (for example, an output block controlling an E16 blind). It returns the value up while the blind is moving up, the value down while the blind is moving down, and the value reset when the blind is stopped.
2. Percentage blind position level. Returns the current percentage blind position. The value 0 means the blind is fully open, and the value 100 means the blind is fully closed. If the current blind position is unknown, the returned value is null.
3. Percentage louver position level. Returns the current percentage louver position. The value 0 means the louvers are directed upward, the value 50 means they are perpendicular to the glass, and the value 100 means they are directed downward. If the current louver position is unknown, the returned value is null. When the blind is fully or almost fully open and the louvers are stacked together, the returned value is 100.
4. Blind movement lock state. Returns true if blind movement is locked. Otherwise it returns false.
5. Blind upward movement state. Returns true if the blind is currently moving upward. Otherwise it returns false.
6. Blind downward movement state. Returns true if the blind is currently moving downward. Otherwise it returns false.