Ambrogio lawn mover

That doesn’t sound good. The error messages actually suggest that Python 1.12 is installed and executable.
Can you start up a completely plain vanilla HA test instance without activated integrations and try the installation again?

I have the same issue with core 2024.4.0 seems although 3.11 has been removed and updated to 3.12 it didn’t do it.

Phew, I can’t reproduce it. Setup works and the integration then runs. Tested with HA Core 2024.4.0

Please activate the debug mode (see README) and create an issue.

Weirdly HASS is not complaining about it, in my dev system I get a warning if I use Pythong pre 3.12.

This may be something else if you are using Advanced SSH is the python the one in that addon?

HASS OS runs things in dockers and I get no warning so wonder if this is something else.

This is not the python version the terminal addon shows the python installed in that addon.

To get the python version you need to disable protection in the addon then restart, from ssh run “docker homeassistant python --version” should give you 3.12.2

So this is something else.

Hello, i just downloaded a fresh new HAOS instance (Supervised Install with Hyper-V image) and fired it up. So this instance is completely new and up to date. I Installed an SSH add-on to install HACS. Then i installed the zcs-mower add-on via the HACS. I Also installed the Studio Server Add On to modify the conifuration.yaml to enable debug log. When i try to add and configure the ha-zcs.mower add on, it gives me the same error “no server connection”. Now i don’t think it’s a python problem… Maybe there is some issue with the app token. I tried 3 app tokens without success.
Thanks!

2024-04-05 11:28:27.974 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration zcsmower 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-04-05 11:28:27.975 WARNING (SyncWorker_1) [homeassistant.loader] We found a custom integration hacs 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-04-05 11:28:30.187 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.components.frontend. This is deprecated and will stop working in Home Assistant 2024.9, it should be updated to import functions used from frontend directly at custom_components/hacs/frontend.py, line 68: hass.components.frontend.async_register_built_in_panel(, please create a bug report at https://github.com/hacs/integration/issues

2024-04-05 11:32:14.995 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:14.995 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:15.535 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:15.536 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:15.536 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:15.536 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:15.536 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:16.086 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:16.086 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:16.086 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:16.086 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:16.086 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:16.639 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:16.639 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:16.639 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:16.639 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:16.639 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:17.187 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:17.187 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:17.187 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:17.188 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:17.188 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:17.685 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:17.685 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:17.685 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:17.686 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:17.686 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:18.263 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:18.263 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:18.264 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:18.264 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:18.264 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:18.810 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:18.810 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:18.811 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:18.811 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:18.811 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:19.353 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:19.353 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:19.353 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:19.353 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:19.353 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:19.895 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:19.896 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:19.896 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:19.896 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:19.896 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:20.443 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:20.444 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:20.444 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:20.444 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:20.444 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:20.986 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:20.986 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:20.986 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:20.986 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:20.986 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:21.528 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:21.529 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:21.529 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:21.529 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:21.529 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:22.072 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:22.072 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:22.072 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:22.072 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:22.072 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:22.627 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:22.627 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:22.627 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:22.627 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:22.627 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:23.168 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:23.168 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:23.168 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:23.168 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:23.168 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:23.990 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:23.990 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:23.990 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:23.991 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:23.991 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:24.721 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:24.721 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:24.721 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:24.721 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:24.721 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:25.260 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:25.260 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:25.260 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:25.260 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:25.260 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:25.803 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:25.803 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:25.803 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:25.803 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:25.803 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:26.342 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:26.342 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:26.342 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:26.342 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:26.342 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:26.882 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:26.882 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:26.882 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:26.883 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:26.883 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:27.426 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:27.426 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:27.426 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:27.427 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:27.427 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:27.969 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:27.969 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:27.969 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:27.969 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:27.970 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:28.518 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:28.518 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Error: appId Mismatch.'], 'errorCodes': [-90000]}
2024-04-05 11:32:28.518 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Error: appId Mismatch.
2024-04-05 11:32:28.518 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:28.518 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:28.557 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:28.557 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute'], 'errorCodes': [-90032]}
2024-04-05 11:32:28.557 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute
2024-04-05 11:32:28.557 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:28.558 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:28.596 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:28.596 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute'], 'errorCodes': [-90032]}
2024-04-05 11:32:28.597 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute
2024-04-05 11:32:28.710 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:28.710 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:28.746 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:28.746 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute'], 'errorCodes': [-90032]}
2024-04-05 11:32:28.746 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute
2024-04-05 11:32:28.746 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:28.746 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:28.782 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:28.782 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute'], 'errorCodes': [-90032]}
2024-04-05 11:32:28.782 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute
2024-04-05 11:32:28.782 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:28.782 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:28.815 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:28.816 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute'], 'errorCodes': [-90032]}
2024-04-05 11:32:28.816 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute
2024-04-05 11:32:28.816 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2024-04-05 11:32:28.816 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': '###myTokenFromApp###', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': '###myTokenFromApp###'}}}
2024-04-05 11:32:28.850 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2024-04-05 11:32:28.850 DEBUG (MainThread) [custom_components.zcsmower] {'success': False, 'errorMessages': ['Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute'], 'errorCodes': [-90032]}
2024-04-05 11:32:37.255 INFO (MainThread) [custom_components.zcsmower] Authentication session is invalid: Authentication error: Exceeded authentication rate of 30 per minute
2024-04-05 11:32:37.269 ERROR (MainThread) [custom_components.zcsmower] Something really wrong happened!
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/logging/handlers.py", line 1497, in emit
    self.enqueue(self.prepare(record))
                 ^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/util/logging.py", line 31, in prepare
    record = super().prepare(record)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/logging/handlers.py", line 1479, in prepare
    msg = self.format(record)
          ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/logging/__init__.py", line 999, in format
    return fmt.format(record)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/logging/__init__.py", line 706, in format
    s = self.formatMessage(record)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/logging/__init__.py", line 675, in formatMessage
    return self._style.format(record)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/logging/__init__.py", line 464, in format
    return self._format(record)
           ^^^^^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/zcsmower/api.py", line 185, in post
    refresh_auth = await self.auth()
                   ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 260, in auth
    return await self.app_auth(self._app_id, self._app_token, self._thing_key)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 295, in app_auth
    raise exception
  File "/config/custom_components/zcsmower/api.py", line 284, in app_auth
    response = await self.execute("api.authenticate", params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 246, in execute
    return await self.post(parameters)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 139, in post
    LOGGER.debug("API.request:")
  File "/usr/local/lib/python3.12/logging/__init__.py", line 1527, in debug
    self._log(DEBUG, msg, args, **kwargs)
  File "/usr/local/lib/python3.12/logging/__init__.py", line 1684, in _log
    self.handle(record)
  File "/usr/local/lib/python3.12/logging/__init__.py", line 1700, in handle
    self.callHandlers(record)
  File "/usr/local/lib/python3.12/logging/__init__.py", line 1762, in callHandlers
    hdlr.handle(record)
  File "/usr/src/homeassistant/homeassistant/util/logging.py", line 49, in handle
    self.emit(record)
  File "/usr/local/lib/python3.12/logging/handlers.py", line 1499, in emit
    self.handleError(record)
  File "/usr/local/lib/python3.12/logging/__init__.py", line 1082, in handleError
    traceback.print_exception(t, v, tb, None, sys.stderr)
  File "/usr/local/lib/python3.12/traceback.py", line 124, in print_exception
    te = TracebackException(type(value), value, tb, limit=limit, compact=True)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/traceback.py", line 733, in __init__
    self.stack = StackSummary._extract_from_extended_frame_gen(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/traceback.py", line 438, in _extract_from_extended_frame_gen
    f.line
  File "/usr/local/lib/python3.12/traceback.py", line 323, in line
    self._line = linecache.getline(self.filename, self.lineno)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/linecache.py", line 30, in getline
    lines = getlines(filename, module_globals)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded

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

Traceback (most recent call last):
  File "/config/custom_components/zcsmower/api.py", line 185, in post
    refresh_auth = await self.auth()
                   ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 260, in auth
    return await self.app_auth(self._app_id, self._app_token, self._thing_key)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 295, in app_auth
    raise exception
  File "/config/custom_components/zcsmower/api.py", line 284, in app_auth
    response = await self.execute("api.authenticate", params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 246, in execute
    return await self.post(parameters)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 202, in post
    raise ZcsMowerApiError(
custom_components.zcsmower.api.ZcsMowerApiError: Something really wrong happened!

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

Traceback (most recent call last):
  File "/config/custom_components/zcsmower/api.py", line 185, in post
    refresh_auth = await self.auth()
                   ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 260, in auth
    return await self.app_auth(self._app_id, self._app_token, self._thing_key)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 295, in app_auth
    raise exception
  File "/config/custom_components/zcsmower/api.py", line 284, in app_auth
    response = await self.execute("api.authenticate", params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 246, in execute
    return await self.post(parameters)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/zcsmower/api.py", line 202, in post
    raise ZcsMowerApiError(
custom_components.zcsmower.api.ZcsMowerApiError: Something really wrong happened


System Information

version core-2024.4.0
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.20-haos
arch x86_64
timezone Europe/Vienna
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4262
Installed Version 1.34.0
Stage running
Available Repositories 1398
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.1
update_channel stable
supervisor_version supervisor-2024.03.1
agent_version 1.6.0
docker_version 24.0.7
disk_total 30.8 GB
disk_used 4.1 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.10.0), Studio Code Server (5.15.0)
Dashboards
dashboards 2
resources 0
views 0
mode storage
Recorder
oldest_recorder_run 5. April 2024 um 08:38
current_recorder_run 5. April 2024 um 11:28
estimated_db_size 0.30 MiB
database_engine sqlite
database_version 3.44.2

Thanks for the info, i did not realize that. Seems my problem is a app token problem.

I will try as soon as I get my robot back. or I can actually download the ZCS some sort of issue with github for me today.

Where do you get your appId / client key from? What does it look like? Does it only have capital letters and numbers? Then it is wrong.

Please use the ZCS Mower version 1.3.2. This has a more intensive client key validation.

I thin I found the problem but got no solution… My android app was updated like 3 weeks ago. The new app on android and iPhone shows the client key as all lowercase letters an numbers. So no case sensitive. I thought the key is right because I only checked if the key has all uppercase letters. Key is shown like: halfu620cts8

I can see it. Only lowercase letters and numbers are also wrong. The original client key consists of lower and upper case letters and numbers.

I have no idea how to get the correct client key.

Workaround: please change the last digit of your client key to a capital “Z”. If the last digit is already a “z”, then change it to a “0”.

Awesome!!! The workaround did the trick!
Thank you very much!

I have published a release today which points out the upper and lower case problems during setup:

With version 1.4, which will be released at the beginning of May, the authentication will take a completely new direction.

Hi,
I am really keen to try this integration out. thanks in advance.
I am struggling to find my client ID as my android app updated to ver 4.1 with a completely different layout.
Does anyone know where the id is now?
Cheers
Paul.

Sorry. Found it.
All working

1 Like

I have just released version 1.4. This version is mainly for all users who are setting up the integration for the first time. But there are also some nice new features for everyone else.

Are you using abrogio built in scheduler or doing it with Home Assitant automations? if latter, please share your automation.

I’m thinking of doing some intelligent HA automation schedule that will take account how much it has been raining, so on dry periods robot will work less. Maybe even put a soil humidity sensor for that.

Are there any limitations of making schedule in HA? Will the mower go sleep and you cannot wake it up from HA?

Hi,
I see the integration is working with some Stiga models. Do you have any idea if it is working with the a-series? I own a Stiga A750, but Stiga is not exactly flashing the IMEI number anywhere in the app, as far as I can see. By disassembling the base station I found the IMEI number of the base, but haven’t succeeded finding it on the robot yet… Anyway, the IMEI number I found does not start with 35, so the integration rejected it during configuration, so didn’t have a chance to see if it is running on a “compatible” platform (compatible with the ha-zcs-mower integration, that is).

Any insights or tips/tricks much appreciated.
Thanks in advance.

2 Likes

Same here… A750 is quite “academic”, GPS reception finicky, even demanding. Good in barren land or some desert, but german landscapes full of old mighty trees are delaying GPS fix quite some time.

MAC address of robot, charger and GPS reference is freely available in the information overview. Anyone able to log their traffic ?