Velux: KLF200 does not reboot at restart
The problem
Hi, seems the gateway doesnt reboot anymore when restarting HA, it was working before, but when we now restart it doesnt reboot, creating the error below...
If i ping my device, and restart the HA, its stays reachable...
Seems i need to implement again this workaround.... https://www.home-assistant.io/integrations/velux/#action-veluxreboot_gateway
What version of Home Assistant Core has the issue?
2025.10.2
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
Velux
Link to integration documentation on our website
https://www.home-assistant.io/integrations/velux
Diagnostics information
2025-10-12 14:27:28.881 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry 192.168.0.18 for velux Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/config_entries.py", line 761, in __async_setup_with_context result = await component.async_setup_entry(hass, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/components/velux/init.py", line 17, in async_setup_entry await module.async_start() File "/usr/src/homeassistant/homeassistant/components/velux/init.py", line 67, in async_start await self.pyvlx.load_scenes() File "/usr/local/lib/python3.13/site-packages/pyvlx/pyvlx.py", line 119, in load_scenes await self.scenes.load() File "/usr/local/lib/python3.13/site-packages/pyvlx/scenes.py", line 56, in load await get_scene_list.do_api_call() File "/usr/local/lib/python3.13/site-packages/pyvlx/api/api_event.py", line 29, in do_api_call await self.pyvlx.check_connected() File "/usr/local/lib/python3.13/site-packages/pyvlx/pyvlx.py", line 90, in check_connected await self.connect() File "/usr/local/lib/python3.13/site-packages/pyvlx/pyvlx.py", line 58, in connect await self.connection.connect() File "/usr/local/lib/python3.13/site-packages/pyvlx/connection.py", line 114, in connect self.transport, _ = await self.loop.create_connection( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<4 lines>... ) ^ File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1201, in create_connection transport, protocol = await self._create_connection_transport( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... ssl_shutdown_timeout=ssl_shutdown_timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.13/asyncio/base_events.py", line 1234, in _create_connection_transport await waiter ConnectionAbortedError: SSL handshake is taking longer than 60.0 seconds: aborting the connection
Example YAML snippet
Anything in the logs that might be useful for us?
Additional information
No response
Hey there @julius2342, @deermaximum, @pawlizio, @wollew, 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)
I experience exactly the same error. I believe it might be because Python 3.13 (which HA 2025.10.2 uses) has changes to asyncio SSL handling that break the pyvlx library's connection to the KLF200.
Python 3.13 introduced stricter SSL certificate validation by adding two new, enabled by default, flags to ssl.create_default_context(): VERIFY_X509_STRICT and VERIFY_X509_PARTIAL_CHAIN.
I believe velux' self-signed certificate is failing these stricter checks. https://github.com/Julius2342/pyvlx/pull/556 might fix it but I haven't yet got time to check.
To me this looks like the "standard" trouble with the KLF200 which refuses new (TLS) connections if not rebooted after disconnecting. The question is why the reboot does not happen. I cannot reproduce it with my KLF200 and 2025.10.2, so it would be interesting to see logs from both the failed connect and more importantly the logs during a reboot/shutdown of HA.
@cayco are you sure about the Python version, this doesn't sound right, at least if you're on the dockerized HA then both 2025.10.1 and 2025.10.2 should be using Python 3.13.7: Before upgrade:
# ha banner | grep Core
Home Assistant Core: 2025.10.1
# docker exec -it homeassistant python --version
Python 3.13.7
After upgrade:
# ha banner | grep Core
Home Assistant Core: 2025.10.2
# docker exec -it homeassistant python --version
Python 3.13.7
I didn't notice the error on 2025.9 versions, I try to enable debug next week, but it seems it doesnt give any error in the log, but the klf isn't rebooting anymore for sure
I have the same problem unfortunately, I have to manually unplug and power on the KLF200 after each restart of the HA.
Can you provide debug logs of a restart cycle? For that you'd have to enable debug logging in the integration settings (three dots in the top right corner), then do the HA restart. After that please go to "Settings > System > Logs > three dots > show raw logs > download logs > select 5000 or 10.000 lines" to be downloaded.
I got finally some time to check this out again. However, I can't reproduce it anymore... I upgrade to the current (2025.11.3) HA and Velux integration works.
Interesting... Gonna disable my klf reboot automation tomorrow too
Hi, sorry for a late reply, but things are working on my side as well now after the upgrade to the 25.11.3 version.
was there something changed? i disabled my klf reboot automation, when i restart HA, i have a ping running to the KLF, i dont see it rebooting
was there something changed? i disabled my klf reboot automation, when i restart HA, i have a ping running to the KLF, i dont see it rebooting
Not really, at least not intentional. The change that removed the necessity for the reboot automation happened in #115483 almost a year ago and we're still on the same library version. Still, what I said here still stands, I'd like/need to see the logs in order to find why this is happening. My current guess would be that the reboot doesn't happen because the KLF 200 is already disconnected (for what whatever reason) so the reboot command sent never arrives. But this is more or less a wild guess, for this I need the logs. You can also check and see if other commands (e.g. open/close cover) still work before one of those HA restarts that apparently do not reboot the gateway.
I'm aware that now in pyvlx , my reboot automation was turned off... Here are my logs...
https://github.com/Julius2342/pyvlx/pull/556#issuecomment-3407972978
When I restart HA , there is no reboot command send , but it's not always...
The linked log is rather short but it shows that your KLF200 does not react to a request within one second which is the timeout for the command sent:
2025-10-15 21:16:25.939 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorDisableRequest/>
2025-10-15 21:16:26.942 DEBUG (MainThread) [pyvlx] TCP transport closed.
So my guess is, it is already disconnected, thus there's no way to send a reboot command. This could be confirmed by having a look at the log from at least 30 seconds before that, 30 seconds being the standard heartbeat interval. However, even if we confirm this (in this case, all other commands to the KLF200 will also fail), it stays unclear why it is already disconnected, although knowing how the KLF200 behaves there is probably no way this can be fixed in the integration because new connections will not be accepted anyway.
If logs confirm my guess, then this is not HA problem but somehow connected to your gateway. It could be an issue with the network connection, a bad power supply, something else (see https://github.com/pawlizio/my_velux/issues/18#issuecomment-1336163286 as an example).
dont think its related to my power supply, the KLF is working, sometimes i do see below when i restart, and sometimes i dont see the reboot command initiated, when its not initatied , on the next start, i need to power off/on the klf again below log is without the KLF reboot autmation, the reboot is fired from pyvlx itself
sometimes it initiates, sometimes it doesnt
2025-10-15 21:07:06.338 DEBUG (MainThread) [homeassistant.components.velux] Velux interface terminated 2025-10-15 21:07:06.338 DEBUG (MainThread) [pyvlx] Heartbeat stopped 2025-10-15 21:07:06.338 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorDisableRequest/> 2025-10-15 21:07:06.416 DEBUG (MainThread) [pyvlx] REC: <FrameHouseStatusMonitorDisableConfirmation/> 2025-10-15 21:07:06.441 DEBUG (MainThread) [pyvlx] SEND: <FrameGatewayRebootRequest/> 2025-10-15 21:07:07.394 DEBUG (MainThread) [pyvlx] REC: <FrameGatewayRebootConfirmation/> 2025-10-15 21:07:07.396 WARNING (MainThread) [pyvlx] KLF200 is rebooting 2025-10-15 21:07:07.397 DEBUG (MainThread) [pyvlx] Heartbeat was not running 2025-10-15 21:07:07.397 DEBUG (MainThread) [pyvlx] SEND: <FrameGatewayRebootRequest/> 2025-10-15 21:07:14.369 DEBUG (MainThread) [pyvlx] Socket connection to KLF 200 has been lost 2025-10-15 21:07:14.369 DEBUG (MainThread) [pyvlx] TCP transport closed. 2025-10-15 21:07:14.371 WARNING (MainThread) [py.warnings] /usr/local/lib/python3.13/site-packages/pyvlx/connection.py:105: RuntimeWarning: coroutine 'Node.after_update' was never awaited if asyncio.iscoroutine(connection_closed_cb()): 2025-10-15 21:07:17.399 DEBUG (MainThread) [pyvlx] TCP transport closed. 2025-10-15 21:07:17.401 DEBUG (MainThread) [pyvlx] TCP transport closed.
vs
2025-10-15 21:16:25.939 DEBUG (MainThread) [homeassistant.components.velux] Velux interface terminated
2025-10-15 21:16:25.939 DEBUG (MainThread) [pyvlx] Heartbeat stopped
2025-10-15 21:16:25.939 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorDisableRequest/>
2025-10-15 21:16:26.942 DEBUG (MainThread) [pyvlx] TCP transport closed.
2025-10-15 21:16:26.944 WARNING (MainThread) [py.warnings] /usr/local/lib/python3.13/site-packages/pyvlx/connection.py:105: RuntimeWarning: coroutine 'Node.after_update' was never awaited
if asyncio.iscoroutine(connection_closed_cb()):
2025-10-15 21:16:26.977 DEBUG (MainThread) [pyvlx] Socket connection to KLF 200 has been lost
2025-10-15 21:16:26.977 DEBUG (MainThread) [pyvlx] TCP transport closed.
@home-assistant rename Velux: KLF200 does not reboot at restart
This could be confirmed by having a look at the log from at least 30 seconds before that
@pergolafabio: can you provide these? If not, I don't think I can be of any help.
This could be confirmed by having a look at the log from at least 30 seconds before that
@pergolafabio: can you provide these? If not, I don't think I can be of any help.
there is no issue 30 secs before, the klf is working as expected, it just doesnt reboot on restart HA
the klf is working as expected
As shown here, not really, at least not fully, because it doesn't react to a command sent to it within the specified timeout. I am not saying you're wrong but it is impossible to diagnose something that is working perfectly in my local setup without having more information.
ok, what do you want me todo ? :-)
Let's try this:
- disable all Velux reboot automations if still active
- enable debug logging for the Velux integration
- do "stuff" with your Velux integration (open/close a cover, toggle a light, etc.)
- restart HA
- if your KLF 200 did not reboot, download the logs of all that's happened and attach here. If it did reboot, no need to upload. You can filter for everthing that doesn't have velux or pyvlx as a string if you prefer.
TBH, I don't know what I'm looking for, but it is worth a try.
well, since the log file is gone with the new HA core versions , i enabled debug, you are looking for the logs before the restart, but now this file is empty home-assistant.log.1 file ... they removed that feature ...
See https://github.com/home-assistant/core/issues/154294#issuecomment-3526726869
ok, here you go, part of the log, i restarted HA, and there is no reboot command fired, i kept a ping running, and device was still pinging...
there should be this:
2025-10-15 21:07:06.441 DEBUG (MainThread) [pyvlx] SEND: <FrameGatewayRebootRequest/>
2025-10-15 21:07:07.394 DEBUG (MainThread) [pyvlx] REC: <FrameGatewayRebootConfirmation/>
2025-10-15 21:07:07.396 WARNING (MainThread) [pyvlx] KLF200 is rebooting
but its not visible in the logs below
[36m2025-11-25 13:26:25.396 DEBUG (MainThread) [pyvlx] SEND: <FrameStatusRequestRequest session_id="46" node_ids="[1]" status_type="StatusType.REQUEST_CURRENT_POSITION" fpi1="254" fpi2="0"/>[0m
[36m2025-11-25 13:26:25.525 DEBUG (MainThread) [pyvlx] REC: <FrameStatusRequestConfirmation session_id="46" status="StatusRequestStatus.ACCEPTED"/>[0m
[36m2025-11-25 13:26:25.527 DEBUG (MainThread) [pyvlx] REC: <FrameCommandRunStatusNotification session_id="44" status_id="1" index_id="1" node_parameter="0" parameter_value="65535"/>[0m
[36m2025-11-25 13:26:25.527 DEBUG (MainThread) [pyvlx] REC: <FrameSessionFinishedNotification session_id="44"/>[0m
[36m2025-11-25 13:26:25.615 DEBUG (MainThread) [pyvlx] REC: <FrameStatusRequestNotification session_id="46" status_id="1" node_id="1" run_status="RunStatus.EXECUTION_FAILED" status_reply="StatusReply.UNKNOWN_STATUS_REPLY" status_type="StatusType.REQUEST_CURRENT_POSITION" status_count="2" parameter_data="NodeParameter.MP: 0 %, NodeParameter.FP1: 34 %, "/>[0m
[36m2025-11-25 13:26:25.617 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameStatusRequestNotification session_id="46" status_id="1" node_id="1" run_status="RunStatus.EXECUTION_FAILED" status_reply="StatusReply.UNKNOWN_STATUS_REPLY" status_type="StatusType.REQUEST_CURRENT_POSITION" status_count="2" parameter_data="NodeParameter.MP: 0 %, NodeParameter.FP1: 34 %, "/>[0m
[36m2025-11-25 13:26:25.618 DEBUG (MainThread) [pyvlx] REC: <FrameSessionFinishedNotification session_id="46"/>[0m
[36m2025-11-25 13:26:26.121 DEBUG (MainThread) [pyvlx] SEND: <FrameStatusRequestRequest session_id="47" node_ids="[2]" status_type="StatusType.REQUEST_CURRENT_POSITION" fpi1="254" fpi2="0"/>[0m
[36m2025-11-25 13:26:26.248 DEBUG (MainThread) [pyvlx] REC: <FrameStatusRequestConfirmation session_id="47" status="StatusRequestStatus.ACCEPTED"/>[0m
[36m2025-11-25 13:26:26.294 DEBUG (MainThread) [pyvlx] REC: <FrameStatusRequestNotification session_id="47" status_id="1" node_id="2" run_status="RunStatus.EXECUTION_COMPLETED" status_reply="StatusReply.COMMAND_COMPLETED_OK" status_type="StatusType.REQUEST_CURRENT_POSITION" status_count="2" parameter_data="NodeParameter.MP: 100 %, NodeParameter.FP1: 0 %, "/>[0m
[36m2025-11-25 13:26:26.294 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameStatusRequestNotification session_id="47" status_id="1" node_id="2" run_status="RunStatus.EXECUTION_COMPLETED" status_reply="StatusReply.COMMAND_COMPLETED_OK" status_type="StatusType.REQUEST_CURRENT_POSITION" status_count="2" parameter_data="NodeParameter.MP: 100 %, NodeParameter.FP1: 0 %, "/>[0m
[36m2025-11-25 13:26:26.296 DEBUG (MainThread) [pyvlx] REC: <FrameSessionFinishedNotification session_id="47"/>[0m
[36m2025-11-25 13:26:26.296 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id="2" state="UNKNOWN" current_position="100 %" target="100 %" current_position_fp1="0 %" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2055-04-16 16:19:44"/>[0m
[36m2025-11-25 13:26:26.297 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameNodeStatePositionChangedNotification node_id="2" state="UNKNOWN" current_position="100 %" target="100 %" current_position_fp1="0 %" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2055-04-16 16:19:44"/>[0m
[36m2025-11-25 13:26:26.298 DEBUG (MainThread) [pyvlx] velux_links position changed to: 100 %[0m
[36m2025-11-25 13:26:26.798 DEBUG (MainThread) [pyvlx] SEND: <FrameStatusRequestRequest session_id="48" node_ids="[3]" status_type="StatusType.REQUEST_CURRENT_POSITION" fpi1="254" fpi2="0"/>[0m
[36m2025-11-25 13:26:26.929 DEBUG (MainThread) [pyvlx] REC: <FrameStatusRequestConfirmation session_id="48" status="StatusRequestStatus.ACCEPTED"/>[0m
[36m2025-11-25 13:26:27.005 DEBUG (MainThread) [pyvlx] REC: <FrameStatusRequestNotification session_id="48" status_id="1" node_id="3" run_status="RunStatus.EXECUTION_COMPLETED" status_reply="StatusReply.COMMAND_COMPLETED_OK" status_type="StatusType.REQUEST_CURRENT_POSITION" status_count="2" parameter_data="NodeParameter.MP: 100 %, NodeParameter.FP1: 0 %, "/>[0m
[36m2025-11-25 13:26:27.006 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameStatusRequestNotification session_id="48" status_id="1" node_id="3" run_status="RunStatus.EXECUTION_COMPLETED" status_reply="StatusReply.COMMAND_COMPLETED_OK" status_type="StatusType.REQUEST_CURRENT_POSITION" status_count="2" parameter_data="NodeParameter.MP: 100 %, NodeParameter.FP1: 0 %, "/>[0m
[36m2025-11-25 13:26:27.007 DEBUG (MainThread) [pyvlx] REC: <FrameSessionFinishedNotification session_id="48"/>[0m
[36m2025-11-25 13:26:27.009 DEBUG (MainThread) [pyvlx] REC: <FrameNodeStatePositionChangedNotification node_id="3" state="UNKNOWN" current_position="100 %" target="0 %" current_position_fp1="0 %" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2055-04-16 16:19:44"/>[0m
[36m2025-11-25 13:26:27.010 DEBUG (MainThread) [pyvlx] NodeUpdater process frame: <FrameNodeStatePositionChangedNotification node_id="3" state="UNKNOWN" current_position="100 %" target="0 %" current_position_fp1="0 %" current_position_fp2="UNKNOWN" current_position_fp3="UNKNOWN" current_position_fp4="UNKNOWN" remaining_time="0" time="2055-04-16 16:19:44"/>[0m
[36m2025-11-25 13:26:27.010 DEBUG (MainThread) [pyvlx] velux_rechts position changed to: 100 %[0m
[36m2025-11-25 13:26:27.511 DEBUG (MainThread) [pyvlx] Heartbeat: sleeping[0m
s6-rc: info: service legacy-services: stopping
[36m2025-11-25 13:26:33.018 DEBUG (MainThread) [homeassistant.components.velux] Velux interface terminated[0m
[36m2025-11-25 13:26:33.018 DEBUG (MainThread) [pyvlx] Heartbeat stopped[0m
[36m2025-11-25 13:26:33.018 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorDisableRequest/>[0m
[36m2025-11-25 13:26:34.030 DEBUG (MainThread) [pyvlx] TCP transport closed.[0m
[33m2025-11-25 13:26:34.031 WARNING (MainThread) [py.warnings] /usr/local/lib/python3.13/site-packages/pyvlx/connection.py:105: RuntimeWarning: coroutine 'Node.after_update' was never awaited
if asyncio.iscoroutine(connection_closed_cb()):
[0m
Found 3 non-daemonic threads.
[12:26:50] INFO: [32mHome Assistant Core finish process exit code 0[0m
[12:26:50] INFO: [32mHome Assistant Core service shutdown[0m
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun home-assistant (no readiness notification)
s6-rc: info: service legacy-services successfully started
[0m
[36m2025-11-25 13:27:09.428 DEBUG (MainThread) [pyvlx] Heartbeat __init__[0m
[36m2025-11-25 13:27:09.428 DEBUG (MainThread) [homeassistant.components.velux] Velux interface started[0m
[36m2025-11-25 13:27:09.428 DEBUG (MainThread) [pyvlx] Connecting to KLF 200[0m
[36m2025-11-25 13:27:13.721 DEBUG (MainThread) [pyvlx] Socket connection to KLF 200 opened[0m
[36m2025-11-25 13:27:13.730 DEBUG (MainThread) [pyvlx] Amount of connections since last HA start: 1[0m
[36m2025-11-25 13:27:13.735 DEBUG (MainThread) [pyvlx] SEND: <FramePasswordEnterRequest password="Dq****"/>[0m
[36m2025-11-25 13:27:13.831 DEBUG (MainThread) [pyvlx] REC: <FramePasswordEnterConfirmation status="PasswordEnterConfirmationStatus.SUCCESSFUL"/>[0m
[36m2025-11-25 13:27:13.932 DEBUG (MainThread) [pyvlx] SEND: <FrameGetVersionRequest/>[0m
[36m2025-11-25 13:27:13.947 DEBUG (MainThread) [pyvlx] REC: <FrameGetVersionConfirmation software_version="0.2.0.0.71.0" hardware_version="6" product="KLF 200"/>[0m
[36m2025-11-25 13:27:14.051 DEBUG (MainThread) [pyvlx] SEND: <FrameGetProtocolVersionRequest/>[0m
[36m2025-11-25 13:27:14.168 DEBUG (MainThread) [pyvlx] REC: <FrameGetProtocolVersionConfirmation version="3.14"/>[0m
[36m2025-11-25 13:27:14.251 DEBUG (MainThread) [pyvlx] Connected to: <DtoVersion softwareversion="0.2.0.0.71.0" hardwareversion="6" productgroup="14" producttype="3"/>, <DtoProtocolVersion majorversion="3" minorversion="14"/>[0m
[36m2025-11-25 13:27:14.254 DEBUG (MainThread) [pyvlx] SEND: <FrameHouseStatusMonitorDisableRequest/>[0m
[36m2025-11-25 13:27:14.754 DEBUG (MainThread) [pyvlx] REC: <FrameHouseStatusMonitorDisableConfirmation/>[0m
[36m2025-11-25 13:27:14.805 DEBUG (MainThread) [pyvlx] SEND: <FrameGetStateRequest/>[0m
[36m2025-11-25 13:27:15.053 DEBUG (MainThread) [pyvlx] REC: <FrameGetStateConfirmation gateway_state="GatewayState.GATEWAY_MODE_WITH_ACTUATORS" gateway_sub_state="GatewaySubState.IDLE"/>[0m
[36m2025-11-25 13:27:15.100 DEBUG (MainThread) [pyvlx] SEND: <FrameSetUTCRequest time="2025-11-25 13:27:09"/>[0m
[31m2025-11-25 13:27:15.220 ERROR (MainThread) [custom_components.audiconnect.audi_api] Unexpected response: status=403, reason=[0m
Nice, thanks.
This shows 2 things: One, your KLF 200 is still connected. Two, your KLF 200 does not react fast enough (i.e. within the 1 second timeout) to the request to disable "House Status Monitor". This is the command issued before the reboot command and because it fails the reboot never gets send.
I do not know the reasoning behind this one second timeout in the library for this specific request only (all the others have a higher timeout). Maybe https://github.com/Julius2342/pyvlx/pull/570 will fix this.
If you know how to do that and don't want to wait you can try to install the branch of the linked PR and see if it fixes your problem.
ok, that makes sense, lets wait what Julius says, for now i have the reboot klf automation back in action, so it works now as a temp workaround
I use an automation to restart KLF200 at HA start, and it still works. My YAML:
description: Reboots the KLF200 in order to avoid SSL Handshake issue
mode: single
triggers:
- event: shutdown
trigger: homeassistant
conditions: []
actions:
- data: {}
action: velux.reboot_gateway
Yes, @frontside76 , that's the old workaround ...I have je also enabled again. But it should not be enabled. Since the reboot should be initiated from pyVlx itself since year or something