core
core copied to clipboard
Velux integration and somfy motors
The problem
Velux integration use KLF-200 to control blinds which are compatible with io-homecontrol protocol. I am using it currently with somfy and velux blinds. Using klf-200 and his web interface i am able to register and control all velux'/somfy blinds.
Unfortunately when i add velux integration into HA i see somfy devices only in readonly mode (as it doesnt have ID).
I have checked the log, and it seemed that somfy blinds doesn't have serial id.
SOMFY
2024-05-03 12:49:35.032 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id="3" order="3" placement="0" name="Obyvak" velocity="Velocity.SILENT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="0" product_type="0" node_variation="NodeVariation.NOT_SET" power_mode="0" build_number="0" serial_number="None" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
VELUX
2024-05-03 12:49:35.004 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameGetAllNodesInformationNotification node_id="0" order="0" placement="0" name="PracovnaLevaInput34" velocity="Velocity.DEFAULT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="1" product_type="5" node_variation="NodeVariation.NOT_SET" power_mode="1" build_number="9" serial_number="53:2a:5d:32:14:0f:20:9e" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
it seemed to be same issua as 77928
Can we utilize the device names as serial IDs, if we're unable to obtain proper serial numbers? Or is there any other option ?
What version of Home Assistant Core has the issue?
core-2024.5.0
What was the last working version of Home Assistant Core?
core-2024.5.0
What type of installation are you running?
Home Assistant Core
Integration causing the issue
velux
Link to integration documentation on our website
https://www.home-assistant.io/integrations/velux
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
2024-05-03 12:49:27.057 DEBUG (MainThread) [pyvlx] Loadig pyvlx v0.2.21
2024-05-03 12:49:27.058 DEBUG (MainThread) [homeassistant.components.velux] Velux interface started
2024-05-03 12:49:27.059 DEBUG (MainThread) [pyvlx] Connecting to KLF 200
2024-05-03 12:49:31.748 DEBUG (MainThread) [pyvlx] Amount of connections since last HA start: 1
2024-05-03 12:49:31.749 DEBUG (MainThread) [pyvlx] SEND: <FramePasswordEnterRequest password="wf****"/>
2024-05-03 12:49:31.762 DEBUG (MainThread) [pyvlx] REC: <FramePasswordEnterConfirmation status="PasswordEnterConfirmationStatus.SUCCESSFUL"/>
2024-05-03 12:49:31.769 DEBUG (MainThread) [pyvlx] SEND: <FrameGetVersionRequest/>
2024-05-03 12:49:31.779 DEBUG (MainThread) [pyvlx] REC: <FrameGetVersionConfirmation software_version="0.2.0.0.71.0" hardware_version="6" product="KLF 200"/>
2024-05-03 12:49:31.786 DEBUG (MainThread) [pyvlx] SEND: <FrameGetProtocolVersionRequest/>
2024-05-03 12:49:31.971 DEBUG (MainThread) [pyvlx] REC: <FrameGetProtocolVersionConfirmation version="3.14"/>
2024-05-03 12:49:31.977 DEBUG (MainThread) [pyvlx] Connected to: <DtoVersion softwareversion="0.2.0.0.71.0" hardwareversion="6" productgroup="14" producttype="3"/>, <DtoProtocolVersion majorversion="3" minorversion="14"/>
2024-05-03 12:49:31.978 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorDisableRequest/>
2024-05-03 12:49:32.720 DEBUG (MainThread) [pyvlx] REC: <FrameHouseStatusMonitorDisableConfirmation/>
2024-05-03 12:49:32.728 DEBUG (MainThread) [pyvlx] SEND: <FrameGetStateRequest/>
2024-05-03 12:49:32.931 DEBUG (MainThread) [pyvlx] REC: <FrameGetStateConfirmation gateway_state="GatewayState.GATEWAY_MODE_WITH_ACTUATORS" gateway_sub_state="GatewaySubState.IDLE"/>
2024-05-03 12:49:32.934 DEBUG (MainThread) [pyvlx] SEND: <FrameSetUTCRequest time="2024-05-03 12:45:44"/>
2024-05-03 12:49:33.142 DEBUG (MainThread) [pyvlx] REC: <FrameSetUTCConfirmation/>
2024-05-03 12:49:33.161 DEBUG (MainThread) [pyvlx] SEND: <FrameGetNetworkSetupRequest/>
2024-05-03 12:49:33.172 DEBUG (MainThread) [pyvlx] REC: <FrameGetNetworkSetupConfirmation ipaddress="192.168.1.57" netmask="255.255.255.0" gateway="192.168.1.1" dhcp="DHCPParameter.DISABLE"/>
2024-05-03 12:49:33.180 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorEnableRequest/>
2024-05-03 12:49:34.002 DEBUG (MainThread) [pyvlx] REC: <FrameHouseStatusMonitorEnableConfirmation/>
2024-05-03 12:49:34.010 DEBUG (MainThread) [pyvlx] Heartbeat start
2024-05-03 12:49:34.012 DEBUG (MainThread) [pyvlx] SEND: <FrameGetSceneListRequest/>
2024-05-03 12:49:34.019 DEBUG (MainThread) [pyvlx] Heartbeat: creating task
2024-05-03 12:49:34.022 DEBUG (MainThread) [pyvlx] Heartbeat: task started
2024-05-03 12:49:34.022 DEBUG (MainThread) [pyvlx] Heartbeat: sleeping
2024-05-03 12:49:34.774 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListConfirmation count_scenes="0"/>
2024-05-03 12:49:34.782 DEBUG (MainThread) [pyvlx] SEND: <FrameGetAllNodesInformationRequest/>
2024-05-03 12:49:34.985 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationConfirmation status="AllNodesInformationStatus.OK" number_of_nodes="4"/>
2024-05-03 12:49:34.995 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id="0" order="0" placement="0" name="PracovnaLevaInput34" velocity="Velocity.DEFAULT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="1" product_type="5" node_variation="NodeVariation.NOT_SET" power_mode="1" build_number="9" serial_number="53:2a:5d:32:14:0f:20:9e" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
2024-05-03 12:49:35.004 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameGetAllNodesInformationNotification node_id="0" order="0" placement="0" name="PracovnaLevaInput34" velocity="Velocity.DEFAULT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="1" product_type="5" node_variation="NodeVariation.NOT_SET" power_mode="1" build_number="9" serial_number="53:2a:5d:32:14:0f:20:9e" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
2024-05-03 12:49:35.010 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id="1" order="1" placement="0" name="PokojProHosty" velocity="Velocity.DEFAULT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="0" product_type="0" node_variation="NodeVariation.NOT_SET" power_mode="0" build_number="0" serial_number="None" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
2024-05-03 12:49:35.016 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameGetAllNodesInformationNotification node_id="1" order="1" placement="0" name="PokojProHosty" velocity="Velocity.DEFAULT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="0" product_type="0" node_variation="NodeVariation.NOT_SET" power_mode="0" build_number="0" serial_number="None" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
2024-05-03 12:49:35.021 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id="2" order="2" placement="0" name="PracovnaPravaInput12" velocity="Velocity.DEFAULT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="1" product_type="5" node_variation="NodeVariation.NOT_SET" power_mode="1" build_number="9" serial_number="53:2a:5d:32:14:0f:20:49" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
2024-05-03 12:49:35.025 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameGetAllNodesInformationNotification node_id="2" order="2" placement="0" name="PracovnaPravaInput12" velocity="Velocity.DEFAULT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="1" product_type="5" node_variation="NodeVariation.NOT_SET" power_mode="1" build_number="9" serial_number="53:2a:5d:32:14:0f:20:49" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
2024-05-03 12:49:35.032 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id="3" order="3" placement="0" name="Obyvak" velocity="Velocity.SILENT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="0" product_type="0" node_variation="NodeVariation.NOT_SET" power_mode="0" build_number="0" serial_number="None" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
2024-05-03 12:49:35.034 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationFinishedNotification/>
2024-05-03 12:49:35.044 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameGetAllNodesInformationNotification node_id="3" order="3" placement="0" name="Obyvak" velocity="Velocity.SILENT" node_type="NodeTypeWithSubtype.ROLLER_SHUTTER" product_group="0" product_type="0" node_variation="NodeVariation.NOT_SET" power_mode="0" build_number="0" serial_number="None" state="UNKNOWN" current_position="UNKNOWN" target="UNKNOWN" current_position_fp1="UNKNOWN" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2024-05-03 12:45:45" alias_array=""/>
Additional information
No response
Hey there @julius2342, @deermaximum, mind taking a look at this issue as it has been labeled with an integration (velux) you are listed as a code owner for? Thanks!
Code owner commands
Code owners of velux can trigger bot actions by commenting:
@home-assistant closeCloses the issue.@home-assistant rename Awesome new titleRenames the issue.@home-assistant reopenReopen the issue.@home-assistant unassign veluxRemoves the current integration label and assignees on the issue, add the integration domain after the command.@home-assistant add-label needs-more-informationAdd a label (needs-more-information, problem in dependency, problem in custom component) to the issue.@home-assistant remove-label needs-more-informationRemove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.
(message by CodeOwnersMention)
velux documentation velux source (message by IssueLinks)
Same issue for me. It is a real problem in homeassistant because we cannot associate theses somfy devices to rooms. This issue was already discussed in pyvlx requirement and the conclusion was that it has to be fixed on HA velux component side, not pyvlx side.
Looks indeed that the integration uses that serial number as the unique ID: https://github.com/home-assistant/core/blob/ee031f485028ef5871d0fce3644d0b6f88351535/homeassistant/components/velux/__init__.py#L114
Guess that should stay the same to not break stuff. But what to use instead? I guess the node ID might be an option, although that can be renamed.
same here with Velux integration but only with 2024.5.1.. with 2024.5.0 worked fine for a day until this morning when the integration stopped to work and no way to restart
same here on a new installation
Core 2024.5.3 Supervisor 2024.05.1 Operating System 12.3 Interface utilisateur 20240501.1
it's working but you cannot configure it
Cette entité ("cover.bureau") n'a pas d'identifiant unique, par conséquent ses paramètres ne peuvent pas être gérés depuis l'interface utilisateur.
I have manualy updated mentioned 3x python files, and test it with somfy/velux motors and it works! From my point of view it is fixed and could be merged into main trunk.
I have also the problem with a Shading cover with a somfy motor and unique ID. I have integrated ist with my velux gateway into HA. My Velux gateway shows my only 1 entity which is a rolling shutter from Velux. My shading cover i can integrate in my dashboard, but i can't use it for automation. I think the problem is, that the shading cover have no unique id.
Is there a workaround to set the unique id manually?