home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.43k stars 30.67k forks source link

Velux DUAL_ROLLER_SHUTTER cover type not supported by the Velux component #22780

Closed madzrobz closed 5 years ago

madzrobz commented 5 years ago

Home Assistant release with the issue: 91.0

Last working Home Assistant release (if known): n/a

Operating environment (Hass.io/Docker/Windows/etc.): Hass.io

Component/platform: https://www.home-assistant.io/components/velux/

Description of problem: The Velux DUAL_ROLLER_SHUTTER cover type not is not supported by the Velux component. Thus the relevant rollers are not imported as covers from the KLF200 interface into Home Assistant and cannot be controlled.

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

velux:
  host: 192.168.0.248
  password: ******

Traceback (if applicable):

2019-04-04 23:22:32 WARNING (MainThread) [pyvlx] NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER not implemented

Additional information:

github-actions[bot] commented 5 years ago

Hey there @Julius2342, mind taking a look at this issue as its been labeled with a integration (velux) you are listed as a codeowner for? Thanks!

Julius2342 commented 5 years ago

May you add logging for pyvlx and paste what your interface sends for packets?

madzrobz commented 5 years ago

Here we go:

2019-04-06 22:22:55 WARNING (MainThread) [pyvlx] Connecting to KLF 200.
2019-04-06 22:23:07 DEBUG (MainThread) [pyvlx] SEND: <FramePasswordEnterRequest password=ve****/>
2019-04-06 22:23:07 DEBUG (MainThread) [pyvlx] REC: <FramePasswordEnterConfirmation status='PasswordEnterConfirmationStatus.SUCCESSFUL'/>
2019-04-06 22:23:11 DEBUG (MainThread) [pyvlx] SEND: <FrameGetVersionRequest/>
2019-04-06 22:23:12 DEBUG (MainThread) [pyvlx] REC: <FrameGetVersionConfirmation software_version="0.2.0.0.71.0" harware_version="5" product="KLF 200"/>
2019-04-06 22:23:12 DEBUG (MainThread) [pyvlx] SEND: <FrameGetProtocolVersionRequest/>
2019-04-06 22:23:12 DEBUG (MainThread) [pyvlx] REC: <FrameGetProtocolVersionConfirmation version="3.14"/>
2019-04-06 22:23:12 WARNING (MainThread) [pyvlx] Connected to: KLF 200: Software version: 0.2.0.0.71.0, hardware version: 5, protocol version: 3.14
2019-04-06 22:23:12 DEBUG (MainThread) [pyvlx] SEND: <FrameSetUTCRequest time="2019-04-06 22:23:12"/>
2019-04-06 22:23:12 DEBUG (MainThread) [pyvlx] REC: <FrameSetUTCConfirmation/>
2019-04-06 22:23:13 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorEnableRequest/>
2019-04-06 22:23:17 DEBUG (MainThread) [pyvlx] REC: <FrameHouseStatusMonitorEnableConfirmation/>
2019-04-06 22:23:17 DEBUG (MainThread) [pyvlx] SEND: <FrameGetSceneListRequest/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListConfirmation count_scenes=22/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(0, 'velux_rollo_links_15'), (1, 'velux_rollo_alle_65'), (2, 'velux_rollo_alle_auf')] remaining_scenes=19>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(3, 'velux_rollo_alle_zu'), (4, 'velux_fenster_zu'), (5, 'velux_fenster_auf')] remaining_scenes=16>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(6, 'velux_rollo_alle_80'), (8, 'velux_rollo_links_zu'), (9, 'velux_rollo_links_auf')] remaining_scenes=13>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(15, 'velux_rollo_mitte_zu'), (16, 'velux_rollo_mitte_auf'), (21, 'velux_rollo_rechts_zu')] remaining_scenes=10>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(22, 'velux_rollo_rechts_auf'), (23, 'velux_rollo_mitte_15'), (24, 'velux_rollo_rechts_15')] remaining_scenes=7>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(25, 'velux_rollo_alle_20'), (26, 'velux_rollo_alle_25'), (27, 'velux_rollo_alle_30')] remaining_scenes=4>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(28, 'velux_rollo_alle_35'), (29, 'velux_rollo_alle_40'), (30, 'velux_rollo_alle_45')] remaining_scenes=1>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetSceneListNotification scenes=[(31, 'velux_rollo_alle_15')] remaining_scenes=0>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] SEND: <FrameGetAllNodesInformationRequest/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationConfirmation status='AllNodesInformationStatus.OK' number_of_nodes=7/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id=0 order=0 placement=0 name='Rollladen 1' velocity=Velocity.SILENT node_type='NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER' product_group=213 product_type=4 node_variation=NodeVariation.NOT_SET power_mode=0 build_number=13 serial_number='56:0e:04:26:08:0d:00:36' state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='2019-04-06 22:23:18' alias_array=''/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id=1 order=1 placement=0 name='Rollladen 2' velocity=Velocity.SILENT node_type='NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER' product_group=213 product_type=4 node_variation=NodeVariation.NOT_SET power_mode=0 build_number=13 serial_number='56:0e:04:26:08:0d:01:5c' state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='2019-04-06 22:23:18' alias_array=''/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id=2 order=2 placement=0 name='Rollladen 3' velocity=Velocity.SILENT node_type='NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER' product_group=213 product_type=4 node_variation=NodeVariation.NOT_SET power_mode=0 build_number=13 serial_number='56:0e:04:26:08:0d:00:1e' state=5 current_position='0x0000' target='0x0000' current_position_fp1='0x0000' current_position_fp2='0x0000' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='2019-04-06 22:23:18' alias_array=''/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id=3 order=3 placement=0 name='Rollladen 4' velocity=Velocity.SILENT node_type='NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER' product_group=213 product_type=4 node_variation=NodeVariation.NOT_SET power_mode=0 build_number=13 serial_number='56:0e:04:26:08:0d:00:29' state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='2019-04-06 22:23:18' alias_array=''/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id=4 order=4 placement=0 name='Rollladen 5' velocity=Velocity.SILENT node_type='NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER' product_group=213 product_type=4 node_variation=NodeVariation.NOT_SET power_mode=0 build_number=13 serial_number='56:0e:04:26:08:0d:00:41' state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='2019-04-06 22:23:18' alias_array=''/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id=5 order=5 placement=0 name='Rollladen 6' velocity=Velocity.SILENT node_type='NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER' product_group=213 product_type=4 node_variation=NodeVariation.NOT_SET power_mode=0 build_number=13 serial_number='56:0e:04:26:08:0d:02:3c' state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='2019-04-06 22:23:18' alias_array=''/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationNotification node_id=6 order=6 placement=0 name='' velocity=Velocity.SILENT node_type='NodeTypeWithSubtype.WINDOW_OPENER_WITH_RAIN_SENSOR' product_group=213 product_type=3 node_variation=NodeVariation.NOT_SET power_mode=0 build_number=2 serial_number='56:24:3c:5a:11:17:00:28' state=5 current_position='0xC800' target='0xC800' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='2019-04-06 22:23:18' alias_array='d803=c800'/>
2019-04-06 22:23:19 DEBUG (MainThread) [pyvlx] REC: <FrameGetAllNodesInformationFinishedNotification/>
2019-04-06 22:23:19 WARNING (MainThread) [pyvlx] NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER not implemented
2019-04-06 22:23:19 WARNING (MainThread) [pyvlx] NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER not implemented
2019-04-06 22:23:19 WARNING (MainThread) [pyvlx] NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER not implemented
2019-04-06 22:23:19 WARNING (MainThread) [pyvlx] NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER not implemented
2019-04-06 22:23:19 WARNING (MainThread) [pyvlx] NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER not implemented
2019-04-06 22:23:19 WARNING (MainThread) [pyvlx] NodeTypeWithSubtype.DUAL_ROLLER_SHUTTER not implemented
2019-04-06 22:24:02 DEBUG (MainThread) [pyvlx] SEND: <FrameGetStateRequest/>
2019-04-06 22:24:02 DEBUG (MainThread) [pyvlx] REC: <FrameGetStateConfirmation gateway_state="GatewayState.GATEWAY_MODE_WITH_ACTUATORS" gateway_sub_state="GatewaySubState.IDLE"/>
2019-04-06 22:25:02 DEBUG (MainThread) [pyvlx] SEND: <FrameGetStateRequest/>
2019-04-06 22:25:03 DEBUG (MainThread) [pyvlx] REC: <FrameGetStateConfirmation gateway_state="GatewayState.GATEWAY_MODE_WITH_ACTUATORS" gateway_sub_state="GatewaySubState.IDLE"/>
2019-04-06 22:25:18 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id=0 state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='1975-12-11 03:54:56'/>
2019-04-06 22:25:19 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id=1 state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='1975-12-11 22:07:12'/>
2019-04-06 22:25:20 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id=2 state=5 current_position='0x0000' target='0x0000' current_position_fp1='0x0000' current_position_fp2='0x0000' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='1975-12-12 16:19:28'/>
2019-04-06 22:25:21 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id=3 state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='1975-12-13 10:31:44'/>
2019-04-06 22:25:22 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id=4 state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='1975-12-14 04:44:00'/>
2019-04-06 22:25:23 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id=5 state=5 current_position='0x0000' target='0x0000' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='1975-12-14 22:56:16'/>
2019-04-06 22:25:24 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id=6 state=5 current_position='0xC800' target='0xC800' current_position_fp1='0xF7FF' current_position_fp2='0xF7FF' current_position_fp3='0xF7FF' current_position_fp4='0xF7FF' remaining_time=0 time='1975-12-15 17:08:32'/>
2019-04-06 22:26:03 DEBUG (MainThread) [pyvlx] SEND: <FrameGetStateRequest/>
2019-04-06 22:26:03 DEBUG (MainThread) [pyvlx] REC: <FrameGetStateConfirmation gateway_state="GatewayState.GATEWAY_MODE_WITH_ACTUATORS" gateway_sub_state="GatewaySubState.IDLE"/>

Thank you.

Julius2342 commented 5 years ago

https://github.com/Julius2342/pyvlx/pull/20

Julius2342 commented 5 years ago

if you upgrade/ change the dependency to pyvlx 0.2.11 it should work.

madzrobz commented 5 years ago

Thank you fro your efforts.

To be honest, I'm using hassio and don't know, how to change the dependency to the version 0.2.11 of pyvlx...

Do you know, how to do it? Or I just wait, until 2.11 is included into the official hassio release?