mirror of
https://github.com/home-assistant/core.git
synced 2026-07-12 17:18:04 +01:00
Fix tilt and position support for VenetianBlind covers in Overkiz (#170974)
This commit is contained in:
committed by
Franck Nijhof
parent
1e90882918
commit
dc9116a7a7
@@ -474,9 +474,14 @@ COVER_DESCRIPTIONS: list[OverkizCoverDescription] = [
|
||||
OverkizCoverDescription(
|
||||
key=UIClass.VENETIAN_BLIND,
|
||||
device_class=CoverDeviceClass.BLIND,
|
||||
current_position_state=OverkizState.CORE_CLOSURE,
|
||||
set_position_command=OverkizCommand.SET_CLOSURE,
|
||||
open_command=OverkizCommand.OPEN,
|
||||
close_command=OverkizCommand.CLOSE,
|
||||
stop_command=OverkizCommand.STOP,
|
||||
is_closed_state=OverkizState.CORE_OPEN_CLOSED,
|
||||
current_tilt_position_state=OverkizState.CORE_SLATE_ORIENTATION,
|
||||
set_tilt_position_command=OverkizCommand.SET_ORIENTATION,
|
||||
open_tilt_command=OverkizCommand.TILT_UP,
|
||||
close_tilt_command=OverkizCommand.TILT_DOWN,
|
||||
stop_tilt_command=OverkizCommand.STOP,
|
||||
|
||||
@@ -8553,6 +8553,312 @@
|
||||
"type": 1,
|
||||
"oid": "71df5650-2d35-4fae-bfff-787521598e7f",
|
||||
"uiClass": "Pergola"
|
||||
},
|
||||
{
|
||||
"label": "Bedroom Venetian Blind",
|
||||
"uiClass": "VenetianBlind",
|
||||
"deviceURL": "ogp://1234-1234-6233/16730100",
|
||||
"shortcut": false,
|
||||
"controllableName": "ogp:VenetianBlind",
|
||||
"creationTime": 1773580989000,
|
||||
"lastUpdateTime": 1773580989000,
|
||||
"definition": {
|
||||
"commands": [
|
||||
{
|
||||
"commandName": "close",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "goToAlias",
|
||||
"nparams": 1
|
||||
},
|
||||
{
|
||||
"commandName": "identify",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "open",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "saveAlias",
|
||||
"nparams": 1
|
||||
},
|
||||
{
|
||||
"commandName": "setClosure",
|
||||
"nparams": 1
|
||||
},
|
||||
{
|
||||
"commandName": "setName",
|
||||
"nparams": 1
|
||||
},
|
||||
{
|
||||
"commandName": "setOrientation",
|
||||
"nparams": 1
|
||||
},
|
||||
{
|
||||
"commandName": "setTilt",
|
||||
"nparams": 1
|
||||
},
|
||||
{
|
||||
"commandName": "stop",
|
||||
"nparams": 0
|
||||
}
|
||||
],
|
||||
"states": [
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:ActivePartitionState"
|
||||
},
|
||||
{
|
||||
"type": "DiscreteState",
|
||||
"values": ["available", "unavailable"],
|
||||
"qualifiedName": "core:AvailabilityState"
|
||||
},
|
||||
{
|
||||
"type": "ContinuousState",
|
||||
"qualifiedName": "core:ClosureState"
|
||||
},
|
||||
{
|
||||
"eventBased": true,
|
||||
"type": "DiscreteState",
|
||||
"values": [
|
||||
"accessLimitation",
|
||||
"internal",
|
||||
"obstacleProtection",
|
||||
"transportBusy",
|
||||
"deviceNoAnswer",
|
||||
"cancelled",
|
||||
"deprecated",
|
||||
"interrupted",
|
||||
"thermalProtection",
|
||||
"maintenanceRequired",
|
||||
"alreadyUpToDate",
|
||||
"notSupported",
|
||||
"hardwareError",
|
||||
"accessDenied",
|
||||
"updateError",
|
||||
"resourceAlreadyExist"
|
||||
],
|
||||
"qualifiedName": "core:ErrorEventState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:ErrorState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:ErrorsState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:FirmwareHashState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:FirmwareRevisionState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:NameState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:NewFirmwareAvailableState"
|
||||
},
|
||||
{
|
||||
"type": "DiscreteState",
|
||||
"values": ["closed", "open"],
|
||||
"qualifiedName": "core:OpenClosedState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:ReachedAliasesState"
|
||||
},
|
||||
{
|
||||
"type": "DataState",
|
||||
"qualifiedName": "core:RemovableState"
|
||||
},
|
||||
{
|
||||
"type": "ContinuousState",
|
||||
"qualifiedName": "core:SignalQualityState"
|
||||
},
|
||||
{
|
||||
"type": "ContinuousState",
|
||||
"qualifiedName": "core:SlateOrientationState"
|
||||
},
|
||||
{
|
||||
"type": "DiscreteState",
|
||||
"values": ["available", "unavailable"],
|
||||
"qualifiedName": "core:StatusState"
|
||||
},
|
||||
{
|
||||
"type": "ContinuousState",
|
||||
"qualifiedName": "core:TiltState"
|
||||
}
|
||||
],
|
||||
"dataProperties": [],
|
||||
"widgetName": "DynamicVenetianBlind",
|
||||
"uiProfiles": [
|
||||
"StatefulOrientableShutter",
|
||||
"StatefulOrientablePlusCloseable",
|
||||
"OrientablePlusCloseable",
|
||||
"StatefulOpenClose",
|
||||
"OpenClose",
|
||||
"StatefulCloseable",
|
||||
"Closeable"
|
||||
],
|
||||
"uiClass": "VenetianBlind",
|
||||
"qualifiedName": "ogp:VenetianBlind",
|
||||
"type": "ACTUATOR"
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "core:NameState",
|
||||
"type": 3,
|
||||
"value": "Bedroom Venetian Blind"
|
||||
},
|
||||
{
|
||||
"name": "core:AvailabilityState",
|
||||
"type": 3,
|
||||
"value": "available"
|
||||
},
|
||||
{
|
||||
"name": "core:StatusState",
|
||||
"type": 3,
|
||||
"value": "available"
|
||||
},
|
||||
{
|
||||
"name": "core:ErrorsState",
|
||||
"type": 10,
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "core:FirmwareRevisionState",
|
||||
"type": 3,
|
||||
"value": "5128194A13"
|
||||
},
|
||||
{
|
||||
"name": "core:FirmwareHashState",
|
||||
"type": 3,
|
||||
"value": "5128194A13"
|
||||
},
|
||||
{
|
||||
"name": "core:OpenClosedState",
|
||||
"type": 3,
|
||||
"value": "closed"
|
||||
},
|
||||
{
|
||||
"name": "core:ClosureState",
|
||||
"type": 1,
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"name": "core:TiltState",
|
||||
"type": 1,
|
||||
"value": 38
|
||||
},
|
||||
{
|
||||
"name": "core:SlateOrientationState",
|
||||
"type": 1,
|
||||
"value": 38
|
||||
}
|
||||
],
|
||||
"attributes": [
|
||||
{
|
||||
"name": "core:SubType",
|
||||
"type": 3,
|
||||
"value": "outdoor"
|
||||
},
|
||||
{
|
||||
"name": "core:ManufacturerReference",
|
||||
"type": 3,
|
||||
"value": "venetianBlind"
|
||||
},
|
||||
{
|
||||
"name": "core:Technology",
|
||||
"type": 3,
|
||||
"value": "io2way"
|
||||
},
|
||||
{
|
||||
"name": "core:SupportedAliases",
|
||||
"type": 10,
|
||||
"value": [
|
||||
{
|
||||
"id": "6",
|
||||
"type": "favorite1",
|
||||
"features": ["tiltPosition", "openClosePosition"]
|
||||
},
|
||||
{
|
||||
"id": "4",
|
||||
"type": "favorite1",
|
||||
"features": ["tiltPosition", "openClosePosition"]
|
||||
},
|
||||
{
|
||||
"id": "1",
|
||||
"type": "favorite1",
|
||||
"features": ["openClosePosition"]
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"type": "favorite1",
|
||||
"features": ["tiltPosition"]
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"type": "favorite1",
|
||||
"features": ["openClosePosition", "tiltPosition"]
|
||||
},
|
||||
{
|
||||
"id": "5",
|
||||
"type": "favorite1",
|
||||
"features": ["openClosePosition", "tiltPosition"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ogp:Features",
|
||||
"type": 10,
|
||||
"value": [
|
||||
{
|
||||
"name": "firmware",
|
||||
"commandLess": true
|
||||
},
|
||||
{
|
||||
"name": "openClosePosition"
|
||||
},
|
||||
{
|
||||
"name": "tiltPosition"
|
||||
},
|
||||
{
|
||||
"name": "openClose"
|
||||
},
|
||||
{
|
||||
"name": "stop"
|
||||
},
|
||||
{
|
||||
"name": "identification"
|
||||
},
|
||||
{
|
||||
"name": "diagnosis"
|
||||
},
|
||||
{
|
||||
"name": "alias"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "core:Manufacturer",
|
||||
"type": 3,
|
||||
"value": "Somfy"
|
||||
}
|
||||
],
|
||||
"available": true,
|
||||
"enabled": true,
|
||||
"placeOID": "972455eb-4f91-4095-bf42-55c234bb6238",
|
||||
"oid": "aaaaaaaa-bbbb-cccc-dddd-ffffffffffff",
|
||||
"widget": "DynamicVenetianBlind",
|
||||
"type": 1
|
||||
}
|
||||
],
|
||||
"zones": [],
|
||||
|
||||
@@ -1904,6 +1904,476 @@
|
||||
"uiClass": "GarageDoor",
|
||||
"type": "ACTUATOR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"attributes": [
|
||||
{
|
||||
"name": "zigbee:Role",
|
||||
"type": 3,
|
||||
"value": "endDevice"
|
||||
},
|
||||
{
|
||||
"name": "core:ManufacturerId",
|
||||
"type": 3,
|
||||
"value": 4640
|
||||
},
|
||||
{
|
||||
"name": "zigbee:NotificationEnable",
|
||||
"type": 6,
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "zigbee:InputClusters",
|
||||
"type": 10,
|
||||
"value": ["identify", "scenes", "windowCovering"]
|
||||
},
|
||||
{
|
||||
"name": "core:OrientationPhysicalUpperBound",
|
||||
"type": 1,
|
||||
"value": 90
|
||||
},
|
||||
{
|
||||
"name": "core:Compatibilities",
|
||||
"type": 10,
|
||||
"value": ["homekit"]
|
||||
},
|
||||
{
|
||||
"name": "zigbee:SomfyEndProduct",
|
||||
"type": 3,
|
||||
"value": "2DInteriorBlind"
|
||||
},
|
||||
{
|
||||
"name": "core:MacAddress",
|
||||
"type": 3,
|
||||
"value": "dXsY/v8Gwkw="
|
||||
},
|
||||
{
|
||||
"name": "core:OrientationPhysicalLowerBound",
|
||||
"type": 1,
|
||||
"value": -90
|
||||
}
|
||||
],
|
||||
"available": true,
|
||||
"definition": {
|
||||
"uiClass": "VenetianBlind",
|
||||
"commands": [
|
||||
{
|
||||
"commandName": "my",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "setPosition",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1"
|
||||
},
|
||||
{
|
||||
"commandName": "close",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "removeLockLevel",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1"
|
||||
},
|
||||
{
|
||||
"commandName": "setPositionByStep",
|
||||
"nparams": 2,
|
||||
"paramsSig": "p1,p2"
|
||||
},
|
||||
{
|
||||
"commandName": "setOrientation",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1"
|
||||
},
|
||||
{
|
||||
"commandName": "advancedRefresh",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1"
|
||||
},
|
||||
{
|
||||
"commandName": "resetFactoryDefaultsAndConfiguration",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "storeCurrentPositionToMy",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "open",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "leaveNetworkOnly",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "ping",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "setTiltingRangeConfiguration",
|
||||
"nparams": 2,
|
||||
"paramsSig": "p1,p2"
|
||||
},
|
||||
{
|
||||
"commandName": "stopIdentify",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "addLockLevel",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1,*p2"
|
||||
},
|
||||
{
|
||||
"commandName": "unbind",
|
||||
"nparams": 2,
|
||||
"paramsSig": "p1,p2"
|
||||
},
|
||||
{
|
||||
"commandName": "resetLockLevels",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "setPositionNoLimit",
|
||||
"nparams": 2,
|
||||
"paramsSig": "p1,p2"
|
||||
},
|
||||
{
|
||||
"commandName": "stop",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "reverseDirection",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "bind",
|
||||
"nparams": 2,
|
||||
"paramsSig": "p1,p2"
|
||||
},
|
||||
{
|
||||
"commandName": "identify",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "setPositionLimitation",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1"
|
||||
},
|
||||
{
|
||||
"commandName": "setClosureAndOrientation",
|
||||
"nparams": 2,
|
||||
"paramsSig": "p1,p2"
|
||||
},
|
||||
{
|
||||
"commandName": "setName",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1"
|
||||
},
|
||||
{
|
||||
"commandName": "getName",
|
||||
"nparams": 0
|
||||
},
|
||||
{
|
||||
"commandName": "setClosure",
|
||||
"nparams": 1,
|
||||
"paramsSig": "p1"
|
||||
}
|
||||
],
|
||||
"type": "ACTUATOR",
|
||||
"widgetName": "PositionableVenetianBlind",
|
||||
"states": [
|
||||
{
|
||||
"name": "core:OperationalStatusState"
|
||||
},
|
||||
{
|
||||
"name": "core:SlateOrientationState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:DirectionState"
|
||||
},
|
||||
{
|
||||
"name": "core:TargetClosureState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:EncoderLiftState"
|
||||
},
|
||||
{
|
||||
"name": "core:OrientationOperationalStatusState"
|
||||
},
|
||||
{
|
||||
"name": "core:TargetOrientationState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:EncoderTiltState"
|
||||
},
|
||||
{
|
||||
"name": "core:OpenLimitTiltState"
|
||||
},
|
||||
{
|
||||
"name": "core:ClosedLimitTiltState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:MotorRunModeState"
|
||||
},
|
||||
{
|
||||
"name": "core:ClosureOperationalStatusState"
|
||||
},
|
||||
{
|
||||
"name": "core:OpenLimitLiftState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:MotorRunningModeState"
|
||||
},
|
||||
{
|
||||
"name": "core:ErrorState"
|
||||
},
|
||||
{
|
||||
"name": "core:ConfigStatusState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:MotorLEDFeedbackState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ControlTiltState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ControlLiftState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ReversalLiftState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:NetworkOnlineState"
|
||||
},
|
||||
{
|
||||
"name": "core:ClosureState"
|
||||
},
|
||||
{
|
||||
"name": "core:ClosedLimitLiftState"
|
||||
},
|
||||
{
|
||||
"name": "core:StatusState"
|
||||
},
|
||||
{
|
||||
"name": "core:DiscreteRSSILevelState"
|
||||
},
|
||||
{
|
||||
"name": "core:RSSILevelState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:LinkQualityIndicatorState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ZigbeeUpdateDownloadProgressState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ZigbeeUpdateState"
|
||||
},
|
||||
{
|
||||
"name": "core:FirmwareRevisionState"
|
||||
},
|
||||
{
|
||||
"name": "core:CommandLockLevelsState"
|
||||
},
|
||||
{
|
||||
"name": "core:ProductSoftwareVersionState"
|
||||
},
|
||||
{
|
||||
"name": "core:NameState"
|
||||
},
|
||||
{
|
||||
"name": "core:ProductHardwareVersionState"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:PowerSourceState"
|
||||
},
|
||||
{
|
||||
"name": "core:ManufacturerNameState"
|
||||
},
|
||||
{
|
||||
"name": "core:ProductSoftwareBuildIdState"
|
||||
},
|
||||
{
|
||||
"name": "core:MotorBoardSoftwareVersionState"
|
||||
},
|
||||
{
|
||||
"name": "core:MotorBoardSoftwareBuildIdState"
|
||||
},
|
||||
{
|
||||
"name": "core:MotorBoardHardwareVersionState"
|
||||
},
|
||||
{
|
||||
"name": "core:ProductModelNameState"
|
||||
}
|
||||
],
|
||||
"attributes": [
|
||||
{
|
||||
"name": "zigbee:Role"
|
||||
},
|
||||
{
|
||||
"name": "core:ManufacturerId"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:NotificationEnable"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:InputClusters"
|
||||
},
|
||||
{
|
||||
"name": "core:OrientationPhysicalUpperBound"
|
||||
},
|
||||
{
|
||||
"name": "core:Compatibilities"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:SomfyEndProduct"
|
||||
},
|
||||
{
|
||||
"name": "core:MacAddress"
|
||||
},
|
||||
{
|
||||
"name": "core:OrientationPhysicalLowerBound"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:OutputClusters"
|
||||
}
|
||||
]
|
||||
},
|
||||
"controllableName": "zigbee:SomfyVenetianBlindComponent",
|
||||
"deviceURL": "zigbee://1234-5678-3293/16730099",
|
||||
"states": [
|
||||
{
|
||||
"name": "core:CommandLockLevelsState",
|
||||
"type": 11,
|
||||
"value": []
|
||||
},
|
||||
{
|
||||
"name": "core:ClosureOperationalStatusState",
|
||||
"type": 3,
|
||||
"value": "not moving"
|
||||
},
|
||||
{
|
||||
"name": "core:OrientationOperationalStatusState",
|
||||
"type": 3,
|
||||
"value": "not moving"
|
||||
},
|
||||
{
|
||||
"name": "core:OperationalStatusState",
|
||||
"type": 3,
|
||||
"value": "not moving"
|
||||
},
|
||||
{
|
||||
"name": "core:DiscreteRSSILevelState",
|
||||
"type": 3,
|
||||
"value": "verylow"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:LinkQualityIndicatorState",
|
||||
"type": 1,
|
||||
"value": 54
|
||||
},
|
||||
{
|
||||
"name": "core:RSSILevelState",
|
||||
"type": 1,
|
||||
"value": -86
|
||||
},
|
||||
{
|
||||
"name": "core:StatusState",
|
||||
"type": 3,
|
||||
"value": "available"
|
||||
},
|
||||
{
|
||||
"name": "core:SlateOrientationState",
|
||||
"type": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"name": "core:ClosureState",
|
||||
"type": 1,
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"name": "zigbee:MotorRunningModeState",
|
||||
"type": 3,
|
||||
"value": "motor is running normally"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:MotorLEDFeedbackState",
|
||||
"type": 3,
|
||||
"value": "LEDs are off"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:DirectionState",
|
||||
"type": 3,
|
||||
"value": "counterClockwise"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:MotorRunModeState",
|
||||
"type": 3,
|
||||
"value": "run in normal mode"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:EncoderTiltState",
|
||||
"type": 3,
|
||||
"value": "encoder controlled"
|
||||
},
|
||||
{
|
||||
"name": "core:ConfigStatusState",
|
||||
"type": 3,
|
||||
"value": "operational"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ControlLiftState",
|
||||
"type": 3,
|
||||
"value": "lift control is closed loop"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ReversalLiftState",
|
||||
"type": 3,
|
||||
"value": "not reversal lift commands"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:EncoderLiftState",
|
||||
"type": 3,
|
||||
"value": "encoder controlled"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:NetworkOnlineState",
|
||||
"type": 3,
|
||||
"value": "online"
|
||||
},
|
||||
{
|
||||
"name": "zigbee:ControlTiltState",
|
||||
"type": 3,
|
||||
"value": "tilt control is closed loop"
|
||||
},
|
||||
{
|
||||
"name": "core:NameState",
|
||||
"type": 3,
|
||||
"value": "Living Room Venetian Blind"
|
||||
},
|
||||
{
|
||||
"name": "core:TargetOrientationState",
|
||||
"type": 1,
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"name": "core:TargetClosureState",
|
||||
"type": 1,
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"name": "core:ErrorState",
|
||||
"type": 3,
|
||||
"value": "no error"
|
||||
}
|
||||
],
|
||||
"label": "Living Room Venetian Blind",
|
||||
"enabled": true,
|
||||
"subsystemId": 0,
|
||||
"synced": true,
|
||||
"type": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1188,6 +1188,61 @@
|
||||
'state': 'closed',
|
||||
})
|
||||
# ---
|
||||
# name: test_cover_entities_snapshot[cloud_somfy_tahoma_v2_europe.json][cover.bedroom_venetian_blind-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.bedroom_venetian_blind',
|
||||
'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.BLIND: 'blind'>,
|
||||
'original_icon': None,
|
||||
'original_name': None,
|
||||
'platform': 'overkiz',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <CoverEntityFeature: 143>,
|
||||
'translation_key': None,
|
||||
'unique_id': 'ogp://1234-1234-6233/16730100',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_cover_entities_snapshot[cloud_somfy_tahoma_v2_europe.json][cover.bedroom_venetian_blind-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'current_position': 0,
|
||||
'current_tilt_position': 62,
|
||||
'device_class': 'blind',
|
||||
'friendly_name': 'Bedroom Venetian Blind',
|
||||
'is_closed': True,
|
||||
'supported_features': <CoverEntityFeature: 143>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'cover.bedroom_venetian_blind',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'closed',
|
||||
})
|
||||
# ---
|
||||
# name: test_cover_entities_snapshot[cloud_somfy_tahoma_v2_europe.json][cover.bedroom_window-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': list([
|
||||
@@ -4053,6 +4108,61 @@
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_cover_entities_snapshot[local_somfy_tahoma_v2_europe.json][cover.living_room_venetian_blind-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.living_room_venetian_blind',
|
||||
'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.BLIND: 'blind'>,
|
||||
'original_icon': None,
|
||||
'original_name': None,
|
||||
'platform': 'overkiz',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <CoverEntityFeature: 143>,
|
||||
'translation_key': None,
|
||||
'unique_id': 'zigbee://1234-5678-3293/16730099',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_cover_entities_snapshot[local_somfy_tahoma_v2_europe.json][cover.living_room_venetian_blind-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'current_position': 0,
|
||||
'current_tilt_position': 100,
|
||||
'device_class': 'blind',
|
||||
'friendly_name': 'Living Room Venetian Blind',
|
||||
'is_closed': True,
|
||||
'supported_features': <CoverEntityFeature: 143>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'cover.living_room_venetian_blind',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'closed',
|
||||
})
|
||||
# ---
|
||||
# name: test_cover_entities_snapshot[local_somfy_tahoma_v2_europe.json][cover.office_screen-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': list([
|
||||
|
||||
@@ -175,6 +175,16 @@ PERGOLA_HORIZONTAL_AWNING = FixtureDevice(
|
||||
"io://1234-1234-6233/11447718",
|
||||
"cover.pergola_awning",
|
||||
)
|
||||
DYNAMIC_VENETIAN_BLIND = FixtureDevice(
|
||||
"setup/cloud_somfy_tahoma_v2_europe.json",
|
||||
"ogp://1234-1234-6233/16730100",
|
||||
"cover.bedroom_venetian_blind",
|
||||
)
|
||||
POSITIONABLE_VENETIAN_BLIND = FixtureDevice(
|
||||
"setup/local_somfy_tahoma_v2_europe.json",
|
||||
"zigbee://1234-5678-3293/16730099",
|
||||
"cover.living_room_venetian_blind",
|
||||
)
|
||||
|
||||
SNAPSHOT_FIXTURES = [
|
||||
AWNING,
|
||||
@@ -248,6 +258,13 @@ async def test_cover_entities_snapshot(
|
||||
(TILT_ONLY_VENETIAN_BLIND, SERVICE_OPEN_COVER, "open", [0], CoverState.OPENING),
|
||||
(UP_DOWN_VENETIAN_BLIND, SERVICE_OPEN_COVER, "open", [0], CoverState.OPENING),
|
||||
(UP_DOWN_SHEER_SCREEN, SERVICE_OPEN_COVER, "open", [0], CoverState.OPENING),
|
||||
(
|
||||
DYNAMIC_VENETIAN_BLIND,
|
||||
SERVICE_OPEN_COVER,
|
||||
"open",
|
||||
None,
|
||||
CoverState.OPENING,
|
||||
),
|
||||
(SHUTTER, SERVICE_CLOSE_COVER, "close", None, CoverState.CLOSING),
|
||||
(AWNING, SERVICE_CLOSE_COVER, "undeploy", None, CoverState.CLOSING),
|
||||
(GARAGE, SERVICE_CLOSE_COVER, "close", None, CoverState.CLOSING),
|
||||
@@ -293,6 +310,13 @@ async def test_cover_entities_snapshot(
|
||||
),
|
||||
(UP_DOWN_VENETIAN_BLIND, SERVICE_CLOSE_COVER, "close", [0], CoverState.CLOSING),
|
||||
(UP_DOWN_SHEER_SCREEN, SERVICE_CLOSE_COVER, "close", [0], CoverState.CLOSING),
|
||||
(
|
||||
DYNAMIC_VENETIAN_BLIND,
|
||||
SERVICE_CLOSE_COVER,
|
||||
"close",
|
||||
None,
|
||||
CoverState.CLOSING,
|
||||
),
|
||||
(SHUTTER, SERVICE_STOP_COVER, "stop", None, CoverState.CLOSED),
|
||||
(AWNING, SERVICE_STOP_COVER, "stop", None, CoverState.CLOSED),
|
||||
(GARAGE, SERVICE_STOP_COVER, "stop", None, CoverState.CLOSED),
|
||||
@@ -318,6 +342,13 @@ async def test_cover_entities_snapshot(
|
||||
STATE_UNKNOWN,
|
||||
),
|
||||
(TILT_ONLY_VENETIAN_BLIND, SERVICE_STOP_COVER, "stop", [0], STATE_UNKNOWN),
|
||||
(
|
||||
DYNAMIC_VENETIAN_BLIND,
|
||||
SERVICE_STOP_COVER,
|
||||
"stop",
|
||||
None,
|
||||
CoverState.CLOSED,
|
||||
),
|
||||
(
|
||||
TILT_ONLY_VENETIAN_BLIND,
|
||||
SERVICE_OPEN_COVER_TILT,
|
||||
@@ -404,6 +435,7 @@ async def test_cover_entities_snapshot(
|
||||
"open-tilt-only-venetian-blind",
|
||||
"open-venetian-blind-rts",
|
||||
"open-sheer-screen-rts",
|
||||
"open-dynamic-venetian-blind",
|
||||
"close-roller-shutter",
|
||||
"close-awning",
|
||||
"close-garage-door",
|
||||
@@ -423,6 +455,7 @@ async def test_cover_entities_snapshot(
|
||||
"close-tilt-only-venetian-blind",
|
||||
"close-venetian-blind-rts",
|
||||
"close-sheer-screen-rts",
|
||||
"close-dynamic-venetian-blind",
|
||||
"stop-roller-shutter",
|
||||
"stop-awning",
|
||||
"stop-garage-door",
|
||||
@@ -436,6 +469,7 @@ async def test_cover_entities_snapshot(
|
||||
"stop-pergola-horizontal-awning",
|
||||
"stop-up-down-bioclimatic-pergola",
|
||||
"stop-tilt-only-venetian-blind",
|
||||
"stop-dynamic-venetian-blind",
|
||||
"open-tilt-tilt-only-venetian-blind",
|
||||
"close-tilt-tilt-only-venetian-blind",
|
||||
"stop-tilt-tilt-only-venetian-blind",
|
||||
@@ -506,6 +540,13 @@ async def test_cover_service_actions(
|
||||
[80],
|
||||
80,
|
||||
),
|
||||
(
|
||||
DYNAMIC_VENETIAN_BLIND,
|
||||
DYNAMIC_VENETIAN_BLIND.entity_id,
|
||||
"setClosure",
|
||||
[75],
|
||||
25,
|
||||
),
|
||||
],
|
||||
ids=[
|
||||
"roller-shutter",
|
||||
@@ -513,6 +554,7 @@ async def test_cover_service_actions(
|
||||
"low-speed",
|
||||
"dynamic-pergola",
|
||||
"pergola-horizontal-awning",
|
||||
"dynamic-venetian-blind",
|
||||
],
|
||||
)
|
||||
async def test_cover_set_position(
|
||||
@@ -543,6 +585,43 @@ async def test_cover_set_position(
|
||||
)
|
||||
|
||||
|
||||
async def test_is_closed_falls_back_to_position(
|
||||
hass: HomeAssistant,
|
||||
setup_overkiz_integration: SetupOverkizIntegration,
|
||||
mock_client: MockOverkizClient,
|
||||
freezer: FrozenDateTimeFactory,
|
||||
) -> None:
|
||||
"""Test is_closed derives from position when OpenClosedState is absent."""
|
||||
await setup_overkiz_integration(fixture=POSITIONABLE_VENETIAN_BLIND.fixture)
|
||||
|
||||
state = hass.states.get(POSITIONABLE_VENETIAN_BLIND.entity_id)
|
||||
assert state.state == CoverState.CLOSED
|
||||
assert state.attributes[ATTR_CURRENT_POSITION] == 0
|
||||
|
||||
await async_deliver_events(
|
||||
hass,
|
||||
freezer,
|
||||
mock_client,
|
||||
[
|
||||
build_event(
|
||||
EventName.DEVICE_STATE_CHANGED.value,
|
||||
device_url=POSITIONABLE_VENETIAN_BLIND.device_url,
|
||||
device_states=[
|
||||
{
|
||||
"name": OverkizState.CORE_CLOSURE.value,
|
||||
"type": 1,
|
||||
"value": 50,
|
||||
},
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
state = hass.states.get(POSITIONABLE_VENETIAN_BLIND.entity_id)
|
||||
assert state.state == CoverState.OPEN
|
||||
assert state.attributes[ATTR_CURRENT_POSITION] == 50
|
||||
|
||||
|
||||
async def test_cover_tilt_services(
|
||||
hass: HomeAssistant,
|
||||
setup_overkiz_integration: SetupOverkizIntegration,
|
||||
|
||||
Reference in New Issue
Block a user