Skip to content

Fix Husqvarna Automower schedule switch turning back on #117692

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

Thomas55555
Copy link
Contributor

@Thomas55555 Thomas55555 commented May 18, 2024

Breaking change

Proposed change

Until now two attributes were used to detect the mower's schedule state:
attributes.mower.state == mowerStates.RESTRICTED and
attributes.planner.restricted_reason == RestrictedReasons.NOT_APPLICABLE
This was working for some models. According to the API documentation self.mower_attributes.mower.mode != MowerModes.HOME is the right attribute to check.
If the mower is on the way home, or is already in the dock, this check will return False, so the schedule switch is off.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
  • Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

@tuupos
Copy link

tuupos commented May 23, 2024

I would like to test it but I am not an programmer. I can only read code as an amateur. Is it possible to download the switch.py file add it somewhere to HA and then test it ? Or do you really need programmers to check your code?

@Thomas55555
Copy link
Contributor Author

@tuupos
Copy link

tuupos commented May 23, 2024

Thanks! I deleted that folder recently from my system since I still used the HACS component but updated to the CORE version.

I will put it back and test in and report back (415x here)

@tuupos
Copy link

tuupos commented May 23, 2024

I installed it in the custom_components folder and added a version in de manifest.json. rebooted HA and now I have 23 integrations in stead of 21. However when i switch off the schedule while docked it turns on in 2 secs.

Maybe I overlooked something? How can I show the logs?
This is what I get now:

2024-05-23 23:06:33.311 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration husqvarna_automower which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

2024-05-23 23:11:54.503 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/actions None
2024-05-23 23:11:54.504 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ParkUntilFurtherNotice'}}
2024-05-23 23:11:56.246 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}}

@Thomas55555
Copy link
Contributor Author

What's happening next in the logs? So far it looks good.
Interesting would be the following API updates.

@tuupos
Copy link

tuupos commented May 25, 2024

What's happening next in the logs? So far it looks good. Interesting would be the following API updates.

2024-05-26 00:08:01.277 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration husqvarna_automower which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2024-05-26 00:09:01.095 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': '47f73-fXXXXXXXX'}}
2024-05-26 00:09:19.855 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/xxx-xxx-xxx-xxx/actions None
2024-05-26 00:09:19.855 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ParkUntilFurtherNotice'}}
2024-05-26 00:09:21.970 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': 'c0b2c21d-XXXXXXXXXX'}}
2024-05-26 00:17:39.602 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/xxx-xxx-xxx-xxx/actions None
2024-05-26 00:17:39.602 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ParkUntilFurtherNotice'}}
2024-05-26 00:17:41.886 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': '0d4c30f7-XXXXXXXXXX'}}
2024-05-26 00:17:52.527 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/xxx-xxx-xxx-xxx/actions None
2024-05-26 00:17:52.527 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ParkUntilFurtherNotice'}}
2024-05-26 00:17:54.007 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': 'ace7789d-XXXXXXXXXX'}}
2024-05-26 00:18:14.783 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/xxx-xxx-xxx-xxx/actions None
2024-05-26 00:18:14.783 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ResumeSchedule'}}
2024-05-26 00:18:16.666 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': '148aebff-XXXXXXXXXX'}}
2024-05-26 00:18:16.720 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:18:16.721 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:16.732 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'MAIN_AREA', 'activity': 'NOT_APPLICABLE', 'state': 'IN_OPERATION', 'inactiveReason': 'PLANNING', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675496654}}}
2024-05-26 00:18:16.733 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:16.921 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'MAIN_AREA', 'activity': 'CHARGING', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 1716683152000, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675496848}}}
2024-05-26 00:18:16.922 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:16.940 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:18:16.941 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:17.451 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:18:17.452 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'MAIN_AREA', 'activity': 'CHARGING', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 1716683152000, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675497383}}}
2024-05-26 00:18:17.452 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:17.454 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:17.832 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'MAIN_AREA', 'activity': 'CHARGING', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 1716683152000, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675497760}}}
2024-05-26 00:18:17.833 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:18:17.833 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:17.835 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:38.828 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/xxx-xxx-xxx-xxx/actions None
2024-05-26 00:18:38.828 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ResumeSchedule'}}
2024-05-26 00:18:41.131 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': 'e7ac7b1e-xxxxxxxxx'}}
2024-05-26 00:18:41.219 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:18:41.220 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'MAIN_AREA', 'activity': 'CHARGING', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 1716683152000, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675521144}}}
2024-05-26 00:18:41.220 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:18:41.222 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:31.420 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/xxx-xxx-xxx-xxx/actions None
2024-05-26 00:19:31.420 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ParkUntilFurtherNotice'}}
2024-05-26 00:19:33.912 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': '9406e314-xxxxxxxxxxxxxxxx'}}
2024-05-26 00:19:34.033 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:19:34.035 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:34.042 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'HOME', 'activity': 'NOT_APPLICABLE', 'state': 'IN_OPERATION', 'inactiveReason': 'PLANNING', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675573958}}}
2024-05-26 00:19:34.043 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:34.934 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:19:34.935 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:34.976 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'HOME', 'activity': 'NOT_APPLICABLE', 'state': 'IN_OPERATION', 'inactiveReason': 'PLANNING', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675574865}}}
2024-05-26 00:19:34.977 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:35.180 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'HOME', 'activity': 'CHARGING', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 1716683152000, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675575094}}}
2024-05-26 00:19:35.181 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:35.195 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:19:35.195 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:35.338 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'HOME', 'activity': 'PARKED_IN_CS', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675575266}}}
2024-05-26 00:19:35.338 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:35.359 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:19:35.360 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:35.860 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'HOME', 'activity': 'PARKED_IN_CS', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675575791}}}
2024-05-26 00:19:35.861 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:35.865 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:19:35.866 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:36.262 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'HOME', 'activity': 'PARKED_IN_CS', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1716675576169}}}
2024-05-26 00:19:36.263 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-05-26 00:19:36.270 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': 'xxx-xxx-xxx-xxx', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': xx.xxxxx, 'longitude': xx.xxxxx}]}}
2024-05-26 00:19:36.271 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data

Hope this helps..... I dont know where I should be looking fot in de debug code. How long do I let the debugging run ?

@Thomas55555
Copy link
Contributor Author

That looks different, than my mower:
The state is always IN_OPERATION, which isn't expected.
Before you disabled the schedule at 2024-05-26 00:19:31.420 the mower activity was CHARGING, which is fine.
After that the activity switched to NOT_APPLICABLE what was expected.
Bit then 0,14s later the activity switched to CHARGING again and than another 0,14s later the activity switched to PARKED_IN_CS, which I also didn't expect.
I'll try to contact Husqvarna, if they can give me a better description how to detect, if the mower is parked until further notice.

@Thomas55555 Thomas55555 marked this pull request as draft June 2, 2024 15:20
@Thomas55555
Copy link
Contributor Author

It's actually easier than expected. @tuupos: Can you test again, with this files: https://github.com/home-assistant/core/tree/ae3106f4fbb1b5881437b44ad4755faab964b84e/homeassistant/components/husqvarna_automower ?

@tuupos
Copy link

tuupos commented Jun 6, 2024

I will try it but unfortunately i am not able to test it before Sunday. In will keep you informed.

@Thomas55555
Copy link
Contributor Author

@tuupos Were you able to test it?

@tuupos
Copy link

tuupos commented Jun 11, 2024

Had no time, downloading now the testfiles.

@tuupos
Copy link

tuupos commented Jun 12, 2024

following log results.

As I look at the schedule switch: it works in HA. The switch stays off when I disable it and stays turned on when I enable it.
log files show errors but maybe this in normal behaviour.
I started the logging as I enabled the schedule and my mower left the dock. after a minute or so I disabled the schedule and the mower returned and docked itself (and the schedule switch stayed off):

(SyncWorker_0) [homeassistant.loader] We found a custom integration husqvarna_automower which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

2024-06-12 06:49:51.297 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [1400XXXXXXXXXX] Unexpected exception
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 149, in _raise_for_status
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 1070, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 404, message='Not Found', url=URL('https://api.amc.husqvarna.dev/v1/mowers/020XXXXXXXXXXXXXXXX684d3/actions')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/config/custom_components/husqvarna_automower/switch.py", line 94, in async_turn_off
await self.coordinator.api.commands.park_until_further_notice(self.mower_id)
File "/usr/local/lib/python3.12/site-packages/aioautomower/session.py", line 91, in park_until_further_notice
await self.auth.post_json(url, json=body)
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 94, in post_json
resp = await self.post(url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 90, in post
return await AbstractAuth._raise_for_status(resp)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 160, in _raise_for_status
raise ApiException(": ".join(detail)) from err
aioautomower.exceptions.ApiException: Error from API: 404: Not Found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2738, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2779, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 975, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1047, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/config/custom_components/husqvarna_automower/switch.py", line 96, in async_turn_off
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Command couldn't be sent to the command queue: Error from API: 404: Not Found
2024-06-12 06:50:55.000 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [1XXXXXXXXXXXXXXXXXXXX8] Unexpected exception
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 149, in _raise_for_status
resp.raise_for_status()
File "/usr/local/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 1070, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 404, message='Not Found', url=URL('https://api.amc.husqvarna.dev/v1/mowers/02XXXXXXXXXXXXXXXXXXXXXXXXXXXd3/actions')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/config/custom_components/husqvarna_automower/switch.py", line 103, in async_turn_on
await self.coordinator.api.commands.resume_schedule(self.mower_id)
File "/usr/local/lib/python3.12/site-packages/aioautomower/session.py", line 73, in resume_schedule
await self.auth.post_json(url, json=body)
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 94, in post_json
resp = await self.post(url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 90, in post
return await AbstractAuth._raise_for_status(resp)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aioautomower/auth.py", line 160, in _raise_for_status
raise ApiException(": ".join(detail)) from err
aioautomower.exceptions.ApiException: Error from API: 404: Not Found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 239, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2738, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2779, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 975, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1047, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/config/custom_components/husqvarna_automower/switch.py", line 105, in async_turn_on
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: Command couldn't be sent to the command queue: Error from API: 404: Not Found
2024-06-12 06:53:10.939 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 77}, 'mower': {'mode': 'MAIN_AREA', 'activity': 'LEAVING', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718167990859}}}
2024-06-12 06:53:10.939 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:10.945 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:53:10.945 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:26.857 DEBUG (MainThread) [aioautomower.auth] request[post]=https://api.amc.husqvarna.dev/v1/mowers/020XXXXXXXXXXXXXXXXd3/actions None
2024-06-12 06:53:26.857 DEBUG (MainThread) [aioautomower.auth] request[post json]={'data': {'type': 'ParkUntilFurtherNotice'}}
2024-06-12 06:53:29.576 DEBUG (MainThread) [aioautomower.auth] response={'data': {'type': 'control', 'id': '031d9a7f-7ec1-4147-8be9-0f141e35ed43'}}
2024-06-12 06:53:29.685 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:53:29.686 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:29.696 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 77}, 'mower': {'mode': 'HOME', 'activity': 'NOT_APPLICABLE', 'state': 'IN_OPERATION', 'inactiveReason': 'PLANNING', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168009605}}}
2024-06-12 06:53:29.696 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:29.856 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:53:29.858 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:29.862 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 77}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168009778}}}
2024-06-12 06:53:29.863 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:30.554 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:53:30.556 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:30.561 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 77}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168010468}}}
2024-06-12 06:53:30.562 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:30.803 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 77}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168010706}}}
2024-06-12 06:53:30.804 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:53:30.808 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:53:30.809 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:47.737 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:56:47.738 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:47.745 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 72}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168207663}}}
2024-06-12 06:56:47.746 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:52.767 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 78}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168212689}}}
2024-06-12 06:56:52.767 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:52.774 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:56:52.775 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:53.573 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 78}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168213489}}}
2024-06-12 06:56:53.575 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:53.897 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:56:53.897 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:55.666 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 84}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168215593}}}
2024-06-12 06:56:55.667 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:56:55.707 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:56:55.709 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:00.727 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:57:00.728 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:00.734 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 90}, 'mower': {'mode': 'HOME', 'activity': 'GOING_HOME', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168220654}}}
2024-06-12 06:57:00.735 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:07.593 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 90}, 'mower': {'mode': 'HOME', 'activity': 'NOT_APPLICABLE', 'state': 'IN_OPERATION', 'inactiveReason': 'PLANNING', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168227508}}}
2024-06-12 06:57:07.594 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:07.604 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:57:07.606 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:08.545 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 90}, 'mower': {'mode': 'HOME', 'activity': 'NOT_APPLICABLE', 'state': 'IN_OPERATION', 'inactiveReason': 'PLANNING', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168228471}}}
2024-06-12 06:57:08.545 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:08.560 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:57:08.561 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:08.816 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:57:08.817 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:08.824 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 90}, 'mower': {'mode': 'HOME', 'activity': 'CHARGING', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 1718176737000, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168228740}}}
2024-06-12 06:57:08.825 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:09.076 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:57:09.077 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:09.081 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 90}, 'mower': {'mode': 'HOME', 'activity': 'PARKED_IN_CS', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168229003}}}
2024-06-12 06:57:09.082 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:09.746 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:57:09.747 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:09.751 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 90}, 'mower': {'mode': 'HOME', 'activity': 'PARKED_IN_CS', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168229672}}}
2024-06-12 06:57:09.752 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:10.641 DEBUG (MainThread) [aioautomower.session] Got status-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'status-event', 'attributes': {'battery': {'batteryPercent': 95}, 'mower': {'mode': 'HOME', 'activity': 'PARKED_IN_CS', 'state': 'IN_OPERATION', 'inactiveReason': 'NONE', 'errorCode': 0, 'errorCodeTimestamp': 0}, 'planner': {'nextStartTimestamp': 0, 'override': {'action': 'NOT_ACTIVE'}, 'restrictedReason': 'NOT_APPLICABLE'}, 'metadata': {'connected': True, 'statusTimestamp': 1718168230549}}}
2024-06-12 06:57:10.642 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data
2024-06-12 06:57:10.646 DEBUG (MainThread) [aioautomower.session] Got positions-event, data: {'id': '020XXXXXXXXXXXXXXXXd3', 'type': 'positions-event', 'attributes': {'positions': [{'latitude': XX.XXXX, 'longitude': XX.XXXX}]}}
2024-06-12 06:57:10.647 DEBUG (MainThread) [custom_components.husqvarna_automower.coordinator] Manually updated husqvarna_automower data

@Thomas55555
Copy link
Contributor Author

Thomas55555 commented Jun 13, 2024

@tuupos: That's good.
The ClientResponseError is not normal behaviour. But I can't say anything to it, because it's just in the beginning of the log and I don't know, what happend before.
But if you observe such errors, you can open an new issue. Please include a log then, were it's possible to see, what happend before.
Regarding this PR, I think it solves the issue and is okay.

@Thomas55555 Thomas55555 marked this pull request as ready for review June 13, 2024 18:59
@tuupos
Copy link

tuupos commented Jun 13, 2024

Can I do anything futher to get the update into HA core? ( I see merging is blocked ?)

@Thomas55555
Copy link
Contributor Author

Can I do anything futher to get the update into HA core? ( I see merging is blocked ?)

No, we have to wait for a review.

@frenck frenck added the smash Indicator this PR is close to finish for merging or closing label Jun 20, 2024
@TheJulianJES
Copy link
Member

Can you update the description? The helper doesn’t seem to be used anymore, as the code was simplified a lot (looking at the previous commits).

@TheJulianJES TheJulianJES changed the title Prevent schedule switch from turning back in Husqvarna Automower Fix Husqvarna Automower schedule switch turning back on Jun 21, 2024
Copy link
Member

@TheJulianJES TheJulianJES left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good.
I‘ve updated your PR description a bit to make it more accurate, since the fix changed at some point.

@TheJulianJES TheJulianJES merged commit 4aecd23 into home-assistant:dev Jun 21, 2024
29 checks passed
@Thomas55555 Thomas55555 deleted the Prevent-switch-from-turning-back branch June 21, 2024 13:27
@github-actions github-actions bot locked and limited conversation to collaborators Jun 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bugfix by-code-owner cla-signed has-tests integration: husqvarna_automower Quality Scale: No score small-pr PRs with less than 30 lines. smash Indicator this PR is close to finish for merging or closing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enable schedule cannot be turned off
5 participants