Closed badewanne1234 closed 2 years ago
homekit_controller documentation homekit_controller source (message by IssueLinks)
Hey there @jc2k, @bdraco, mind taking a look at this issue as it has been labeled with an integration (homekit_controller
) you are listed as a code owner for? Thanks!
(message by CodeOwnersMention)
Can you please provide the diagnostics information requested by the template. I need it to verify the APIs your device implements.
@tetienne do you recall if this works via native HomeKit on iOS? In my memory, this is not (correctly) implemented on Somfy's side, but I am not sure.
The diagnostics data will tell me whether the device has the hold characteristic.
The code only sets the stop feature if the hold characteristic is found, and that feature flag is what controls the presence of the stop button. So the lack of a stop button implies the firmware does not expose the stop feature via homekit.
So yeah until someone provides diagnostic data I'm leaning towards closing as "device limitation, works as expected".
Here is the diagnostics data of one cover and the Tahoma Box, does that help?
"integration_manifest": {
"domain": "homekit_controller",
"name": "HomeKit Controller",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/homekit_controller",
"requirements": [
"aiohomekit==0.6.11"
],
"zeroconf": [
"_hap._tcp.local."
],
"after_dependencies": [
"zeroconf"
],
"codeowners": [
"@Jc2k",
"@bdraco"
],
"iot_class": "local_push",
"is_built_in": true
},
"data": {
"config-entry": {
"title": "Somfy TaHoma",
"version": 1,
"data": {
"AccessoryPairingID": "xyz",
"AccessoryLTPK": "xyz",
"iOSPairingId": "xyz",
"iOSDeviceLTSK": "**REDACTED**",
"iOSDeviceLTPK": "xyz",
"AccessoryIP": "**REDACTED**",
"AccessoryPort": xyz,
"Connection": "IP"
}
},
"entity-map": [
{
"aid": 1064597543192,
"services": [
{
"iid": 1,
"type": "0000003E-0000-1000-8000-0026BB765291",
"characteristics": [
{
"type": "00000014-0000-1000-8000-0026BB765291",
"iid": 620020,
"perms": [
"pw"
],
"format": "bool",
"description": "Identify"
},
{
"type": "00000021-0000-1000-8000-0026BB765291",
"iid": 620033,
"perms": [
"pr"
],
"format": "string",
"value": "io:ExteriorVenetianBlindIO",
"description": "Model",
"maxLen": 64
},
{
"type": "220",
"iid": 620544,
"perms": [
"pr"
],
"format": "data",
"value": "V2zWaxZ+1Vs="
},
{
"type": "00000020-0000-1000-8000-0026BB765291",
"iid": 620032,
"perms": [
"pr"
],
"format": "string",
"value": "Somfy",
"description": "Manufacturer",
"maxLen": 64
},
{
"type": "00000052-0000-1000-8000-0026BB765291",
"iid": 620082,
"perms": [
"pr"
],
"format": "string",
"value": "2020.6.4",
"description": "Firmware Revision",
"maxLen": 64
},
{
"type": "00000023-0000-1000-8000-0026BB765291",
"iid": 620035,
"perms": [
"pr"
],
"format": "string",
"value": "Room 1",
"description": "Name",
"maxLen": 64
},
{
"type": "00000030-0000-1000-8000-0026BB765291",
"iid": 620048,
"perms": [
"pr"
],
"format": "string",
"value": "**REDACTED**",
"description": "Serial Number",
"maxLen": 64
}
]
},
{
"iid": 1400000,
"type": "0000008C-0000-1000-8000-0026BB765291",
"characteristics": [
{
"type": "00000023-0000-1000-8000-0026BB765291",
"iid": 1400035,
"perms": [
"pr"
],
"format": "string",
"value": "Room 1",
"description": "Name",
"maxLen": 64
},
{
"type": "0000006D-0000-1000-8000-0026BB765291",
"iid": 1400109,
"perms": [
"pr",
"ev"
],
"format": "uint8",
"value": 100,
"description": "Current Position",
"unit": "percentage",
"minValue": 0,
"maxValue": 100,
"minStep": 1
},
{
"type": "00000072-0000-1000-8000-0026BB765291",
"iid": 1400114,
"perms": [
"pr",
"ev"
],
"format": "uint8",
"value": 2,
"description": "Position State",
"minValue": 0,
"maxValue": 2,
"minStep": 1,
"valid-values": [
0,
1,
2
]
},
{
"type": "0000007B-0000-1000-8000-0026BB765291",
"iid": 1400123,
"perms": [
"pr",
"pw",
"ev"
],
"format": "int",
"value": -90,
"description": "Target Horizontal Tilt Angle",
"unit": "arcdegrees",
"minValue": -90,
"maxValue": 0,
"minStep": 1
},
{
"type": "0000006C-0000-1000-8000-0026BB765291",
"iid": 1400108,
"perms": [
"pr",
"ev"
],
"format": "int",
"value": -90,
"description": "Current Horizontal Tilt Angle",
"unit": "arcdegrees",
"minValue": -90,
"maxValue": 90,
"minStep": 1
},
{
"type": "0000007C-0000-1000-8000-0026BB765291",
"iid": 1400124,
"perms": [
"pr",
"pw",
"ev"
],
"format": "uint8",
"value": 100,
"description": "Target Position",
"unit": "percentage",
"minValue": 0,
"maxValue": 100,
"minStep": 1
}
]
}
]
},
{
"aid": 1,
"services": [
{
"iid": 1,
"type": "0000003E-0000-1000-8000-0026BB765291",
"characteristics": [
{
"type": "00000014-0000-1000-8000-0026BB765291",
"iid": 620020,
"perms": [
"pw"
],
"format": "bool",
"description": "Identify"
},
{
"type": "00000021-0000-1000-8000-0026BB765291",
"iid": 620033,
"perms": [
"pr"
],
"format": "string",
"value": "TaHoma",
"description": "Model",
"maxLen": 64
},
{
"type": "220",
"iid": 620544,
"perms": [
"pr"
],
"format": "data",
"value": "V2zWaxZ+1Vs="
},
{
"type": "00000020-0000-1000-8000-0026BB765291",
"iid": 620032,
"perms": [
"pr"
],
"format": "string",
"value": "Somfy",
"description": "Manufacturer",
"maxLen": 64
},
{
"type": "00000052-0000-1000-8000-0026BB765291",
"iid": 620082,
"perms": [
"pr"
],
"format": "string",
"value": "2021.5.4",
"description": "Firmware Revision",
"maxLen": 64
},
{
"type": "00000023-0000-1000-8000-0026BB765291",
"iid": 620035,
"perms": [
"pr"
],
"format": "string",
"value": "Somfy TaHoma",
"description": "Name",
"maxLen": 64
},
{
"type": "00000030-0000-1000-8000-0026BB765291",
"iid": 620048,
"perms": [
"pr"
],
"format": "string",
"value": "**REDACTED**",
"description": "Serial Number",
"maxLen": 64
}
]
},
{
"iid": 1620000,
"type": "000000A2-0000-1000-8000-0026BB765291",
"characteristics": [
{
"type": "00000037-0000-1000-8000-0026BB765291",
"iid": 1620055,
"perms": [
"pr"
],
"format": "string",
"value": "1.1.0",
"description": "Version",
"maxLen": 64
}
]
}
]
},
{
"device": {
"name": "Room 1",
"model": "io:ExteriorVenetianBlindIO",
"manfacturer": "Somfy",
"sw_version": "2020.6.4",
"hw_version": "",
"entities": [
{
"original_name": "Room 1",
"original_device_class": null,
"entity_category": null,
"original_icon": null,
"icon": null,
"unit_of_measurement": null,
"device_class": null,
"disabled": false,
"disabled_by": null,
"state": {
"entity_id": "cover.room_1",
"state": "open",
"attributes": {
"current_position": 100,
"current_tilt_position": -90,
"friendly_name": "Cover Room 1",
"supported_features": 183,
"device_class": "blind"
},
"last_changed": "2022-02-24T06:09:44.916720+00:00",
"last_updated": "2022-02-24T06:09:44.916720+00:00"
}
},
{
"original_name": "Room 1 Identify",
"original_device_class": null,
"entity_category": "diagnostic",
"original_icon": null,
"icon": null,
"unit_of_measurement": null,
"device_class": null,
"disabled": true,
"disabled_by": "user",
"state": null
}
]
}
}
}
Yep. There is no hold characteristic in the homekit schema. This means your device does not expose a stop button, at least via homekit.
From reviewing the code I think if it did, it would work. But as it doesn't there is nothing else I can do unfortunately unless the vendor updates their firmware.
@tetienne do you recall if this works via native HomeKit on iOS? In my memory, this is not (correctly) implemented on Somfy's side, but I am not sure.
Thanks for the confirmation @Jc2k
@iMicknl @tetienne you seem to have good contacts to Somfy Devs, is this something that you could bring up with them?
The problem
The stop feature of covers is not working when using HomeKit-Controller in connection with the Somfy TaHoma box. Whilst
cover.close_cover
,cover.open_cover
,cover.toggle_cover
andcover.set_cover_position
work as desired, one cannot use the servicecover.stop_cover
, which is particularly necessary if you were to open/close the cover and want it to stop at a certain position.If one calls the service
cover.stop_cover
for any HK cover, nothing happens.What version of Home Assistant Core has the issue?
core-2022.2.9
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
homekit_controller
Link to integration documentation on our website
https://www.home-assistant.io/integrations/homekit_controller
Diagnostics information
No response
Example YAML snippet
Anything in the logs that might be useful for us?
No response
Additional information
There is no stop button (for position and tilt) if its a cover controlled by HomeKit
For reference: there is a stop button (for position and tilt) if the same cover is integrated with i.e. the Velux or myVelux Integration and a Velux KLF 200 gateway: