Device settings
Cover settings
End-position calibration, obstruction protection that stops or reverses on resistance, and slat angle for venetian blinds - what's specific to roller shutter and blind control.
Cover control (the Cover component) shares the basic approach with Common settings, but has its own values and its own fields for what's specific to a motor moving between two end positions: initial_state here is open, closed or stopped instead of on/off, and in_mode can be single, dual or detached depending on whether you have one or two physical buttons/switches connected.
Calibration
Before a cover or blind can report a position as a percentage, it has to be calibrated - the device runs up and down once to learn how long a full movement takes. That's done through a dedicated calibration function in the web interface or app (Cover.Calibrate in the RPC interface), not as an ongoing setting.
Two limits control how long the device waits to find the end position before giving up:
maxtime_open- maximum time (0.1-300 seconds) to run fully openmaxtime_close- maximum time (0.1-300 seconds) to run fully closed
If calibration fails with a timeout error, maxtime_open/maxtime_close are set too low for your cover - raise them and try again.
The motor's idle state is decided by motor.idle_power_thr (0-50 W) and motor.idle_confirm_period (0.25-2 seconds): together they decide when the device interprets the motor as stopped rather than still moving.
Obstruction protection
obstruction_detection stops or reverses movement if something is in the way:
obstruction_detection.enable- on/offobstruction_detection.direction- on opening, closing, or bothobstruction_detection.action-stoporreversewhen an obstruction is detectedobstruction_detection.power_thr- the power threshold counted as an obstructionobstruction_detection.holdoff- how long after starting the obstruction protection is ignored, so it doesn't trigger on the motor's startup current
During calibration itself, obstruction protection is always disabled, regardless of what obstruction_detection.enable is set to.
There's also safety_switch - a separate safety input, with its own settings for direction (direction) and what should happen (action: stop, reverse or pause) when it trips, plus allowed_move for whether the device is allowed to move at all after a trip.
Slat (tilt) control
Blinds with rotating slats have a dedicated sub-system for that:
slat.enable- turns on slat controlslat.open_time/slat.close_time- time (0.5-30 seconds) to fully rotate the slatsslat.step- how large a step (1-100%) each rotate command makesslat.retain_pos- whether the slat angle is kept on up/down commandsslat.precise_ctl- more precise but slower control
Other
swap_inputs- swaps which physical button drives up vs. down, without rewiringinvert_directions- flips which direction counts as up vs. downmaintenance_mode- temporarily disables normal control, for example during motor servicepower_limit,voltage_limit,undervoltage_limit,current_limit- the same kind of protection as for relays, see Common settings