Fix cover controls for UpDownBioclimaticPergola in Overkiz (#170058)

This commit is contained in:
Mick Vleeshouwer
2026-05-08 12:09:04 +02:00
committed by GitHub
parent 191143d12d
commit 4e388e1435
4 changed files with 151 additions and 0 deletions
@@ -247,6 +247,9 @@ COVER_DESCRIPTIONS: list[OverkizCoverDescription] = [
OverkizCoverDescription(
key=UIClass.PERGOLA,
device_class=CoverDeviceClass.AWNING,
open_command=OverkizCommand.OPEN,
close_command=OverkizCommand.CLOSE,
stop_command=OverkizCommand.STOP,
is_closed_state=OverkizState.CORE_SLATS_OPEN_CLOSED,
current_tilt_position_state=OverkizState.CORE_SLATE_ORIENTATION,
set_tilt_position_command=OverkizCommand.SET_ORIENTATION,
@@ -741,6 +741,71 @@
"uiClass": "Pergola"
}
},
{
"deviceURL": "rts://1234-5678-3293/16757826",
"available": true,
"synced": true,
"type": 1,
"states": [],
"label": "Kitchen Pergola",
"subsystemId": 0,
"attributes": [],
"enabled": true,
"controllableName": "rts:BioclimaticPergolaRTSComponent",
"definition": {
"states": [],
"widgetName": "UpDownBioclimaticPergola",
"type": "ACTUATOR",
"attributes": [],
"commands": [
{
"commandName": "identify",
"nparams": 0
},
{
"nparams": 2,
"commandName": "tiltPositive",
"paramsSig": "p1,p2"
},
{
"nparams": 0,
"commandName": "my",
"paramsSig": "*p1"
},
{
"nparams": 0,
"commandName": "stop",
"paramsSig": "*p1"
},
{
"nparams": 2,
"commandName": "tiltNegative",
"paramsSig": "p1,p2"
},
{
"nparams": 0,
"commandName": "close",
"paramsSig": "*p1"
},
{
"nparams": 0,
"commandName": "down",
"paramsSig": "*p1"
},
{
"nparams": 0,
"commandName": "open",
"paramsSig": "*p1"
},
{
"nparams": 0,
"commandName": "up",
"paramsSig": "*p1"
}
],
"uiClass": "Pergola"
}
},
{
"creationTime": 1686173907452,
"deviceURL": "rts://1234-5678-3293/16757362",
@@ -3303,6 +3303,60 @@
'state': 'closed',
})
# ---
# name: test_cover_entities_snapshot[local_somfy_tahoma_v2_europe.json][cover.kitchen_pergola-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
None,
]),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'cover',
'entity_category': None,
'entity_id': 'cover.kitchen_pergola',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': <CoverDeviceClass.AWNING: 'awning'>,
'original_icon': None,
'original_name': None,
'platform': 'overkiz',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': <CoverEntityFeature: 11>,
'translation_key': None,
'unique_id': 'rts://1234-5678-3293/16757826',
'unit_of_measurement': None,
})
# ---
# name: test_cover_entities_snapshot[local_somfy_tahoma_v2_europe.json][cover.kitchen_pergola-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'assumed_state': True,
'device_class': 'awning',
'friendly_name': 'Kitchen Pergola',
'is_closed': None,
'supported_features': <CoverEntityFeature: 11>,
}),
'context': <ANY>,
'entity_id': 'cover.kitchen_pergola',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'unknown',
})
# ---
# name: test_cover_entities_snapshot[local_somfy_tahoma_v2_europe.json][cover.living_room_curtain-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
+29
View File
@@ -57,6 +57,11 @@ PERGOLA = FixtureDevice(
"io://1234-5678-3293/7614902",
"cover.garden_pergola",
)
UP_DOWN_BIOCLIMATIC_PERGOLA = FixtureDevice(
"setup/local_somfy_tahoma_v2_europe.json",
"rts://1234-5678-3293/16757826",
"cover.kitchen_pergola",
)
RTS = FixtureDevice(
"setup/cloud_somfy_connexoon_rts_asia.json",
"rts://1234-1234-6362/16730022",
@@ -162,6 +167,13 @@ async def test_cover_entities_snapshot(
(DYNAMIC_GARAGE_DOOR, SERVICE_OPEN_COVER, "open", None, CoverState.OPENING),
(DYNAMIC_GARAGE_DOOR_OGP, SERVICE_OPEN_COVER, "open", None, CoverState.OPENING),
(PARTIAL_GARAGE_DOOR, SERVICE_OPEN_COVER, "open", None, CoverState.OPENING),
(
UP_DOWN_BIOCLIMATIC_PERGOLA,
SERVICE_OPEN_COVER,
"open",
[0],
CoverState.OPENING,
),
(TILT_ONLY_VENETIAN_BLIND, SERVICE_OPEN_COVER, "open", [0], CoverState.OPENING),
(SHUTTER, SERVICE_CLOSE_COVER, "close", None, CoverState.CLOSING),
(AWNING, SERVICE_CLOSE_COVER, "undeploy", None, CoverState.CLOSING),
@@ -175,6 +187,13 @@ async def test_cover_entities_snapshot(
CoverState.CLOSING,
),
(PARTIAL_GARAGE_DOOR, SERVICE_CLOSE_COVER, "close", None, CoverState.CLOSING),
(
UP_DOWN_BIOCLIMATIC_PERGOLA,
SERVICE_CLOSE_COVER,
"close",
[0],
CoverState.CLOSING,
),
(
TILT_ONLY_VENETIAN_BLIND,
SERVICE_CLOSE_COVER,
@@ -188,6 +207,13 @@ async def test_cover_entities_snapshot(
(DYNAMIC_GARAGE_DOOR, SERVICE_STOP_COVER, "stop", None, CoverState.CLOSED),
(DYNAMIC_GARAGE_DOOR_OGP, SERVICE_STOP_COVER, "stop", None, CoverState.CLOSED),
(PARTIAL_GARAGE_DOOR, SERVICE_STOP_COVER, "stop", None, CoverState.CLOSED),
(
UP_DOWN_BIOCLIMATIC_PERGOLA,
SERVICE_STOP_COVER,
"stop",
[0],
STATE_UNKNOWN,
),
(TILT_ONLY_VENETIAN_BLIND, SERVICE_STOP_COVER, "stop", [0], STATE_UNKNOWN),
(
TILT_ONLY_VENETIAN_BLIND,
@@ -218,6 +244,7 @@ async def test_cover_entities_snapshot(
"open-dynamic-garage-door",
"open-dynamic-garage-door-ogp",
"open-partial-garage-door",
"open-up-down-bioclimatic-pergola",
"open-tilt-only-venetian-blind",
"close-roller-shutter",
"close-awning",
@@ -225,6 +252,7 @@ async def test_cover_entities_snapshot(
"close-dynamic-garage-door",
"close-dynamic-garage-door-ogp",
"close-partial-garage-door",
"close-up-down-bioclimatic-pergola",
"close-tilt-only-venetian-blind",
"stop-roller-shutter",
"stop-awning",
@@ -232,6 +260,7 @@ async def test_cover_entities_snapshot(
"stop-dynamic-garage-door",
"stop-dynamic-garage-door-ogp",
"stop-partial-garage-door",
"stop-up-down-bioclimatic-pergola",
"stop-tilt-only-venetian-blind",
"open-tilt-tilt-only-venetian-blind",
"close-tilt-tilt-only-venetian-blind",