Skip to content
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

Prevent schedule switch from turning back in Husqvarna Automower #117692

Draft
wants to merge 9 commits into
base: dev
Choose a base branch
from

Conversation

Thomas55555
Copy link
Contributor

Breaking change

Proposed change

If the mower's schedule ist turned off, while it is mowing, the mower needs some time to get to the dock. So far, the switch turned on again, because the requirements for turning off were not met. With this fix a helper is used to remember that the switch was turned off by HA. This information will not survive a restart of home assistant.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enable schedule cannot be turned off
3 participants