From b8dc091a21ea155a14f0e244e5051a7d470d5e88 Mon Sep 17 00:00:00 2001 From: Mick Vleeshouwer Date: Mon, 22 Jun 2026 09:38:50 +0200 Subject: [PATCH] Normalize Overkiz RTS tilt command arguments (#174297) --- homeassistant/components/overkiz/cover.py | 24 ++++++++++++++--------- tests/components/overkiz/test_cover.py | 12 ++++++------ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/overkiz/cover.py b/homeassistant/components/overkiz/cover.py index 75927dc41412..4e423bc2e786 100644 --- a/homeassistant/components/overkiz/cover.py +++ b/homeassistant/components/overkiz/cover.py @@ -34,6 +34,9 @@ from .entity import OverkizDescriptiveEntity _POSITION_MY = 108 # "My position" preset _POSITION_UNKNOWN = 124 # "Unknown position" preset +# Default tilt step size (in degrees) used for RTS tilt commands +_TILT_STEP_SIZE = 5 + @dataclass(frozen=True, kw_only=True) class OverkizCoverDescription(CoverEntityDescription): @@ -113,11 +116,11 @@ COVER_DESCRIPTIONS: list[OverkizCoverDescription] = [ open_command=OverkizCommand.OPEN, close_command=OverkizCommand.CLOSE, stop_command=OverkizCommand.STOP, - # Tilt commands move the tilt with a few degrees + # position (1-127), execution duration (0-15, optional) open_tilt_command=OverkizCommand.TILT_POSITIVE, - open_tilt_command_args=(1, 0), + open_tilt_command_args=(_TILT_STEP_SIZE, 0), close_tilt_command=OverkizCommand.TILT_NEGATIVE, - close_tilt_command_args=(1, 0), + close_tilt_command_args=(_TILT_STEP_SIZE, 0), stop_tilt_command=OverkizCommand.STOP, ), # Needs override to support very specific tilt commands @@ -129,10 +132,11 @@ COVER_DESCRIPTIONS: list[OverkizCoverDescription] = [ open_command=OverkizCommand.OPEN, close_command=OverkizCommand.CLOSE, stop_command=OverkizCommand.STOP, + # position (1-127), execution duration (0-15, optional) open_tilt_command=OverkizCommand.TILT_POSITIVE, - open_tilt_command_args=(15, 1), # position (1-127), speed (1-15) + open_tilt_command_args=(_TILT_STEP_SIZE, 0), close_tilt_command=OverkizCommand.TILT_NEGATIVE, - close_tilt_command_args=(15, 1), # position (1-127), speed (1-15) + close_tilt_command_args=(_TILT_STEP_SIZE, 0), stop_tilt_command=OverkizCommand.STOP, ), # Needs override to support very specific tilt commands @@ -144,10 +148,11 @@ COVER_DESCRIPTIONS: list[OverkizCoverDescription] = [ open_command=OverkizCommand.OPEN, close_command=OverkizCommand.CLOSE, stop_command=OverkizCommand.STOP, + # position (1-127), execution duration (0-15, optional) open_tilt_command=OverkizCommand.TILT_POSITIVE, - open_tilt_command_args=(15, 1), # position (1-127), speed (1-15) + open_tilt_command_args=(_TILT_STEP_SIZE, 0), close_tilt_command=OverkizCommand.TILT_NEGATIVE, - close_tilt_command_args=(15, 1), # position (1-127), speed (1-15) + close_tilt_command_args=(_TILT_STEP_SIZE, 0), stop_tilt_command=OverkizCommand.STOP, ), # Needs override to support very specific tilt commands (rts:SheerBlindRTSComponent) @@ -158,10 +163,11 @@ COVER_DESCRIPTIONS: list[OverkizCoverDescription] = [ open_command=OverkizCommand.OPEN, close_command=OverkizCommand.CLOSE, stop_command=OverkizCommand.STOP, + # position (1-127), execution duration (0-15, optional) open_tilt_command=OverkizCommand.TILT_POSITIVE, - open_tilt_command_args=(15, 1), # position (1-127), speed (1-15) + open_tilt_command_args=(_TILT_STEP_SIZE, 0), close_tilt_command=OverkizCommand.TILT_NEGATIVE, - close_tilt_command_args=(15, 1), # position (1-127), speed (1-15) + close_tilt_command_args=(_TILT_STEP_SIZE, 0), stop_tilt_command=OverkizCommand.STOP, ), # Needs override since BioclimaticPergola uses core:SlatsOpenClosedState diff --git a/tests/components/overkiz/test_cover.py b/tests/components/overkiz/test_cover.py index ee1cfe7a6869..d75114baa0b7 100644 --- a/tests/components/overkiz/test_cover.py +++ b/tests/components/overkiz/test_cover.py @@ -364,14 +364,14 @@ async def test_cover_entities_snapshot( TILT_ONLY_VENETIAN_BLIND, SERVICE_OPEN_COVER_TILT, "tiltPositive", - [1, 0], + [5, 0], CoverState.OPENING, ), ( TILT_ONLY_VENETIAN_BLIND, SERVICE_CLOSE_COVER_TILT, "tiltNegative", - [1, 0], + [5, 0], CoverState.CLOSING, ), ( @@ -387,14 +387,14 @@ async def test_cover_entities_snapshot( UP_DOWN_VENETIAN_BLIND, SERVICE_OPEN_COVER_TILT, "tiltPositive", - [15, 1], + [5, 0], CoverState.OPENING, ), ( UP_DOWN_VENETIAN_BLIND, SERVICE_CLOSE_COVER_TILT, "tiltNegative", - [15, 1], + [5, 0], CoverState.CLOSING, ), ( @@ -408,14 +408,14 @@ async def test_cover_entities_snapshot( UP_DOWN_SHEER_SCREEN, SERVICE_OPEN_COVER_TILT, "tiltPositive", - [15, 1], + [5, 0], CoverState.OPENING, ), ( UP_DOWN_SHEER_SCREEN, SERVICE_CLOSE_COVER_TILT, "tiltNegative", - [15, 1], + [5, 0], CoverState.CLOSING, ), (