ufozone / ha-zcs-mower Goto Github PK
View Code? Open in Web Editor NEWZCS Lawn Mower Robots (Ambrogio, Techline, Wiper) platform as a Custom Component for Home Assistant.
License: MIT License
ZCS Lawn Mower Robots (Ambrogio, Techline, Wiper) platform as a Custom Component for Home Assistant.
License: MIT License
Can you please help me with the config dialog: it asks for Garage Name, what is? And the client key that I find in my app I capitals, is It a [problem?
Related to #89
HI
I tried via forum, but seems here it is better place:
I have problem with my L35 Deluxe
After configuration of integration - I have status ERROR - EXPIRED
In logs I have such info:
2023-08-02 23:39:30.148 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2023-08-02 23:39:30.149 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': 'xxxxx', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': 'xxxxx'}}}
2023-08-02 23:39:31.011 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2023-08-02 23:39:31.011 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'success': True, 'params': {'orgKey': 'ZUCCHETTICENTROSISTEMI', 'sessionId': '6537a8e8afa7e9d90e1b290e4d2dff9e'}}}
2023-08-02 23:39:31.012 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2023-08-02 23:39:31.012 DEBUG (MainThread) [custom_components.zcsmower] {'data': {'command': 'thing.find', 'params': {'key': 'xxxxx'}}, 'auth': {'sessionId': '6537a8e8afa7e9d90e1b290e4d2dff9e'}}
2023-08-02 23:39:31.049 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2023-08-02 23:39:31.050 DEBUG (MainThread) [custom_components.zcsmower] {'data': {'success': True, 'params': {'id': '64cacd12ba2b5769b479f719', 'orgId': '5853bd6cba2b57724c0c1341', 'ownerOrgId': '5853bd6cba2b57724c0c1341', 'permission': 'rw', 'name': 'auto:xxxxx', 'key': 'xxxxx', 'sessionRef': 'd9ca31acdf7aeb4a1b4408e47f3002f532fdcfb6d8a2247225dbdb5d115e0ef8', 'defId': '58a16f20447cfb2b8430be67', 'defName': 'Client', 'tags': ['client', 'ambrogio'], 'lastSeen': '2023-08-02T21:39:30.283Z', 'lastCommunication': '2023-08-02T21:39:30.283Z', 'tunnelActualHost': '127.0.0.1', 'tunnelVirtualHost': '127.0.0.1', 'createdBy': 'AUTOREG', 'createdOn': '2023-08-02T21:39:30.283Z', 'updatedBy': 'AUTOREG', 'updatedOn': '2023-08-02T21:39:30.283Z', 'defKey': 'client', 'connInfo': {'protocol': 'HTTPS', 'remoteAddr': '109.196.50.213:33408'}, 'connected': True, 'appId': True}}}
2023-08-02 23:39:31.050 DEBUG (MainThread) [custom_components.zcsmower] {'client_key': 'xxxxx', 'trace_position_enable': False, 'trace_position_interval_default': 3600, 'trace_position_interval_infinity': 600, 'wake_up_interval_default': 1800, 'wake_up_interval_infinity': 300, 'camera_enable': False, 'map_image_path': '', 'map_marker_path': '', 'map_gps_top_left': '', 'map_gps_bottom_right': '', 'map_history_enable': True, 'map_draw_lines': True, 'map_points': 100, 'lawn_mowers': {}}
2023-08-02 23:39:40.116 INFO (MainThread) [custom_components.zcsmower]
2023-08-02 23:39:50.887 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2023-08-02 23:39:50.887 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': 'xxxxx', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': 'xxxxx'}}}
2023-08-02 23:39:51.016 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2023-08-02 23:39:51.016 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'success': True, 'params': {'orgKey': 'ZUCCHETTICENTROSISTEMI', 'sessionId': 'acb6dd4371487673290aa058819db26e'}}}
2023-08-02 23:39:51.016 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2023-08-02 23:39:51.017 DEBUG (MainThread) [custom_components.zcsmower] {'data': {'command': 'thing.find', 'params': {'imei': '359785020768936'}}, 'auth': {'sessionId': 'acb6dd4371487673290aa058819db26e'}}
2023-08-02 23:39:51.067 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2023-08-02 23:39:51.067 DEBUG (MainThread) [custom_components.zcsmower] {'data': {'success': True, 'params': {'id': '5d283daaba2b577ad69d5ac9', 'orgId': '5853bd6cba2b57724c0c1341', 'ownerOrgId': '5853bd6cba2b57724c0c1341', 'permission': 'rw', 'name': 'auto:359785020768936', 'key': '359785020768936', 'defId': '58a16f20447cfb2b8430be69', 'defName': 'Robot', 'tags': ['robot', 'ambrogio'], 'lastSeen': '2021-07-12T08:01:56.248Z', 'lastCommunication': '2021-07-12T08:01:56.248Z', 'locUpdated': '2021-07-12T08:00:52Z', 'loc': {'lat': 50.135107, 'lng': 18.747576, 'geohash': 'u2vm4wgd4jmf', 'fixType': 'network', 'speed': 0, 'addr': {'street': 'Wolności', 'city': 'Jaśkowice', 'state': 'Silesian Voivodeship', 'zipCode': '43-180', 'country': 'PL'}, 'since': '2021-07-12T08:00:21Z'}, 'module': {'make': 'Telit', 'model': 'GE910-GNSS', 'fwVersion': '13.00.109'}, 'tunnelActualHost': '127.0.0.1', 'tunnelVirtualHost': '127.0.0.1', 'attrs': {'apn': {'ts': '2021-07-12T08:00:24.741Z', 'since': '2020-03-15T13:07:56.022Z', 'value': 'nxt17.net'}, 'robot_client1': {'ts': '2020-02-12T13:08:04.125Z', 'since': '2020-02-12T13:08:04.125Z', 'value': 'ERDD8jrYVfRv6rt4BuESvIVblaJ3'}, 'robot_client4': {'ts': '2020-03-15T14:41:13.711Z', 'since': '2020-03-15T14:41:13.711Z', 'value': 'h3J6eVHucwV4eudwi1153u8sfUL2'}, 'robot_serial': {'ts': '2019-07-12T07:58:46.746Z', 'since': '2019-07-12T07:58:46.746Z', 'value': 'AM035DK919040577'}}, 'properties': {'geofence_location_counter': {'ts': '2020-08-19T18:07:01.963Z', 'value': 5, 'corrId': 'geofence'}, 'robot_error': {'ts': '2021-07-09T13:16:55.934Z', 'value': 166}}, 'alarms': {'connection_state': {'ts': '2021-07-12T08:01:56.248Z', 'since': '2021-07-12T08:01:56.248Z', 'state': 0}, 'data_th': {'ts': '2020-09-21T10:13:17.126Z', 'since': '2019-07-12T08:04:11.612Z', 'state': 0}, 'infinity_plan_status': {'ts': '2021-07-12T08:00:24.754Z', 'since': '2020-09-09T07:02:23.473Z', 'state': 3}, 'robot_state': {'ts': '2021-07-12T08:00:44.192Z', 'since': '2021-07-12T08:00:44.192Z', 'state': 9}}, 'apiCounts': {'daily': 0, 'monthToDate': 0, 'total': 4138}, 'createdBy': 'AUTOREG', 'createdOn': '2019-07-12T07:58:34.772Z', 'updatedBy': '359785020768936', 'updatedOn': '2021-06-12T12:18:24.411Z', 'defKey': 'robot', 'connected': False, 'appId': True}}}
2023-08-02 23:39:51.067 DEBUG (MainThread) [custom_components.zcsmower] {'client_key': 'xxxxx', 'trace_position_enable': False, 'trace_position_interval_default': 3600, 'trace_position_interval_infinity': 600, 'wake_up_interval_default': 1800, 'wake_up_interval_infinity': 300, 'camera_enable': False, 'map_image_path': '', 'map_marker_path': '', 'map_gps_top_left': '', 'map_gps_bottom_right': '', 'map_history_enable': True, 'map_draw_lines': True, 'map_points': 100, 'lawn_mowers': {'359785020768936': {'name': 'L35 Deluxe'}}}
2023-08-02 23:39:51.068 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2023-08-02 23:39:51.068 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'command': 'api.authenticate', 'params': {'appId': 'xxxxx', 'appToken': 'DJMYYngGNEit40vA', 'thingKey': 'xxxxx'}}}
2023-08-02 23:39:51.111 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2023-08-02 23:39:51.111 DEBUG (MainThread) [custom_components.zcsmower] {'auth': {'success': True, 'params': {'orgKey': 'ZUCCHETTICENTROSISTEMI', 'sessionId': '88cc577294dc72727d898f53a6b80607'}}}
2023-08-02 23:39:51.111 DEBUG (MainThread) [custom_components.zcsmower] API.request:
2023-08-02 23:39:51.111 DEBUG (MainThread) [custom_components.zcsmower] {'data': {'command': 'thing.list', 'params': {'show': ['id', 'key', 'name', 'connected', 'lastSeen', 'lastCommunication', 'loc', 'properties', 'alarms', 'attrs', 'createdOn', 'storage', 'varBillingPlanCode'], 'hideFields': True, 'keys': ['359785020768936']}}, 'auth': {'sessionId': '88cc577294dc72727d898f53a6b80607'}}
2023-08-02 23:39:51.164 DEBUG (MainThread) [custom_components.zcsmower] API.response:
2023-08-02 23:39:51.164 DEBUG (MainThread) [custom_components.zcsmower] {'data': {'success': True, 'params': {'count': 1, 'result': [{'alarms': {'connection_state': {'ts': '2021-07-12T08:01:56.248Z', 'since': '2021-07-12T08:01:56.248Z', 'state': 0}, 'data_th': {'ts': '2020-09-21T10:13:17.126Z', 'since': '2019-07-12T08:04:11.612Z', 'state': 0}, 'infinity_plan_status': {'ts': '2021-07-12T08:00:24.754Z', 'since': '2020-09-09T07:02:23.473Z', 'state': 3}, 'robot_state': {'ts': '2021-07-12T08:00:44.192Z', 'since': '2021-07-12T08:00:44.192Z', 'state': 9}}, 'attrs': {'apn': {'ts': '2021-07-12T08:00:24.741Z', 'since': '2020-03-15T13:07:56.022Z', 'value': 'nxt17.net'}, 'robot_client1': {'ts': '2020-02-12T13:08:04.125Z', 'since': '2020-02-12T13:08:04.125Z', 'value': 'ERDD8jrYVfRv6rt4BuESvIVblaJ3'}, 'robot_client4': {'ts': '2020-03-15T14:41:13.711Z', 'since': '2020-03-15T14:41:13.711Z', 'value': 'h3J6eVHucwV4eudwi1153u8sfUL2'}, 'robot_serial': {'ts': '2019-07-12T07:58:46.746Z', 'since': '2019-07-12T07:58:46.746Z', 'value': 'AM035DK919040577'}}, 'connected': False, 'createdOn': '2019-07-12T07:58:34.772Z', 'id': '5d283daaba2b577ad69d5ac9', 'key': '359785020768936', 'lastCommunication': '2021-07-12T08:01:56.248Z', 'lastSeen': '2021-07-12T08:01:56.248Z', 'loc': {'addr': {'city': 'Jaśkowice', 'country': 'PL', 'state': 'Silesian Voivodeship', 'street': 'Wolności', 'zipCode': '43-180'}, 'fixType': 'network', 'geohash': 'u2vm4wgd4jmf', 'lat': 50.135107, 'lng': 18.747576, 'since': '2021-07-12T08:00:21Z', 'speed': 0}, 'locUpdated': '2021-07-12T08:00:52Z', 'name': 'auto:359785020768936', 'properties': {'geofence_location_counter': {'ts': '2020-08-19T18:07:01.963Z', 'value': 5, 'corrId': 'geofence'}, 'robot_error': {'ts': '2021-07-09T13:16:55.934Z', 'value': 166}}, 'varBillingPlanCode': ''}]}}}
2023-08-02 23:39:51.164 DEBUG (MainThread) [custom_components.zcsmower] _async_update_data
2023-08-02 23:39:51.164 DEBUG (MainThread) [custom_components.zcsmower] {'359785020768936': {'imei': '359785020768936', 'name': 'L35 Deluxe', 'infinity': 'deactivated', 'state': 'expired', 'icon': 'mdi:clock-alert', 'working': False, 'available': True, 'error': None, 'location': {}, 'location_history': None, 'serial': 'AM035DK919040577', 'manufacturer': 'Ambrogio Robot', 'model': 'L35 Deluxe', 'sw_version': None, 'connected': False, 'last_communication': datetime.datetime(2021, 7, 12, 10, 1, 56, 248000, tzinfo=zoneinfo.ZoneInfo(key='Europe/Warsaw')), 'last_seen': datetime.datetime(2021, 7, 12, 10, 1, 56, 248000, tzinfo=zoneinfo.ZoneInfo(key='Europe/Warsaw')), 'last_pull': datetime.datetime(2023, 8, 2, 23, 39, 51, 164853, tzinfo=zoneinfo.ZoneInfo(key='Europe/Warsaw')), 'last_state': 'expired', 'last_wake_up': None, 'last_trace_position': None}}
2023-08-02 23:39:51.165 DEBUG (MainThread) [custom_components.zcsmower] Finished fetching zcsmower data in 0.097 seconds (success: True)
2023-08-02 23:39:51.171 INFO (MainThread) [custom_components.zcsmower] Map camera disabled
Info from diagnostics:
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2023.7.3",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.11.4",
"docker": true,
"arch": "aarch64",
"timezone": "Europe/Warsaw",
"os_name": "Linux",
"os_version": "6.1.21-v8",
"supervisor": "2023.07.1",
"host_os": "Home Assistant OS 10.3",
"docker_version": "23.0.6",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"hacs": {
"version": "1.32.1",
"requirements": [
"aiogithubapi>=22.10.1"
]
},
"powercalc": {
"version": "v1.5.0",
"requirements": [
"numpy>=1.21.1"
]
},
"localtuya": {
"version": "5.0.0",
"requirements": []
},
"thermal_comfort": {
"version": "2.1.1",
"requirements": []
},
"auto_backup": {
"version": "1.3.2",
"requirements": []
},
"virtual": {
"version": "0.8.0b1",
"requirements": []
},
"zcsmower": {
"version": "0.9.5",
"requirements": [
"numpy>=1.21.6",
"pillow==9.5.0"
]
},
"weather_data": {
"version": "0.2.1",
"requirements": [
"xmltodict==0.12.0"
]
}
},
"integration_manifest": {
"domain": "zcsmower",
"name": "ZCS Lawn Mower Robot",
"after_dependencies": [
"recorder"
],
"codeowners": [
"@ufozone"
],
"config_flow": true,
"dependencies": [],
"documentation": "https://github.com/ufozone/ha-zcs-mower",
"integration_type": "hub",
"iot_class": "cloud_polling",
"issue_tracker": "https://github.com/ufozone/ha-zcs-mower/issues",
"requirements": [
"numpy>=1.21.6",
"pillow==9.5.0"
],
"version": "0.9.5",
"is_built_in": false
},
"data": {
"config_entry_data": {
"entry_id": "942efd6c49da6e7aeb84618a9fba6534",
"version": 7,
"domain": "zcsmower",
"title": "My Garage",
"data": {},
"options": {
"client_key": "**REDACTED**",
"trace_position_enable": "**REDACTED**",
"trace_position_interval_default": 3600,
"trace_position_interval_infinity": 600,
"wake_up_interval_default": 1800,
"wake_up_interval_infinity": 300,
"camera_enable": "**REDACTED**",
"map_image_path": "",
"map_marker_path": "",
"map_gps_top_left": "",
"map_gps_bottom_right": "",
"map_history_enable": "**REDACTED**",
"map_draw_lines": true,
"map_points": 100,
"lawn_mowers": {
"359785020768936": {
"name": "L35 Deluxe"
}
}
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": null,
"disabled_by": null
},
"coordinator_data": {
"359785020768936": {
"imei": "359785020768936",
"name": "L35 Deluxe",
"infinity": "deactivated",
"state": "expired",
"icon": "mdi:clock-alert",
"working": false,
"available": true,
"error": null,
"location": {},
"location_history": [],
"serial": "AM035DK919040577",
"manufacturer": "Ambrogio Robot",
"model": "L35 Deluxe",
"sw_version": null,
"connected": false,
"last_communication": "2021-07-12T10:01:56.248000+02:00",
"last_seen": "2021-07-12T10:01:56.248000+02:00",
"last_pull": "2023-08-02T23:20:30.883612+02:00",
"last_state": "expired",
"last_wake_up": null,
"last_trace_position": null
}
}
}
}
[homeassistant] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/zcsmower/device_tracker.py", line 120, in _get_location_history
self.hass.async_create_task(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'async_create_task'
Get infinity_expiration_date
from lawn mower attributes.
Use it in coordinator for checking Infinity+ for working intervals.
Related to #96
If no GPS position is specified, an empty string is saved by default. As soon as one is specified, the coordinates are saved in a list.
If no position is specified, None
should be set as the default.
Hi, I would like to try your component, but I'm not sure which lawn mower models are supported. How do I know if the robot is based on the ZCS Lawn Mower Robots platform?
Get expiration_date
from lawn mower attributes.
If not available, it must be calculated from created_on
plus 730 days
Related to #100
My garden is split in two areas.. when I starts mower from official app it is required to select the area. In HACS app it is not possible to select the area.. this is probably the reason why robots starts and immediately back to the base.
Do you have any idea how to select the cutting area? I have two areas in total.
Thanks
2024-05-04 21:11:44.206 WARNING (DbWorker_1) [homeassistant.helpers.frame] Detected that custom integration 'zcsmower' calls async_create_task from a thread at custom_components/zcsmower/device_tracker.py, line 124: self.hass.async_create_task(, please report it to the author of the 'zcsmower' custom integration
2024-05-04 21:11:44.259 ERROR (MainThread) [homeassistant.components.device_tracker] Error adding entity device_tracker.mower_359129350765594 for domain device_tracker with platform zcsmower
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1365, in add_to_platform_finish
await self.async_added_to_hass()
File "/config/custom_components/zcsmower/device_tracker.py", line 96, in async_added_to_hass
await get_instance(self.hass).async_add_executor_job(
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/zcsmower/device_tracker.py", line 124, in _get_location_history
self.hass.async_create_task(
File "/usr/src/homeassistant/homeassistant/core.py", line 804, in async_create_task
self.verify_event_loop_thread("async_create_task")
File "/usr/src/homeassistant/homeassistant/core.py", line 440, in verify_event_loop_thread
frame.report(
File "/usr/src/homeassistant/homeassistant/helpers/frame.py", line 162, in report
_report_integration(what, integration_frame, level, error_if_integration)
File "/usr/src/homeassistant/homeassistant/helpers/frame.py", line 203, in _report_integration
raise RuntimeError(
RuntimeError: Detected that custom integration 'zcsmower' calls async_create_task from a thread at custom_components/zcsmower/device_tracker.py, line 124: self.hass.async_create_task(. Please report it to the author of the 'zcsmower' custom integration.
2024-06-04 22:11:03.377 WARNING (MainThread) [homeassistant.util.loop] Detected blocking call to open inside the event loop by custom integration 'zcsmower' at custom_components/zcsmower/image.py, line 161: map_image = Image.open(map_image_path, "r") (offender: /usr/local/lib/python3.12/site-packages/PIL/Image.py, line 3277: fp = builtins.open(filename, "rb")), please create a bug report at https://github.com/ufozone/ha-zcs-mower/issues
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in <module>
sys.exit(main())
File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
exit_code = runner.run(runtime_conf)
File "/usr/src/homeassistant/homeassistant/runner.py", line 188, in run
return loop.run_until_complete(setup_and_run_hass(runtime_config))
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete
self.run_forever()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever
self._run_once()
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, in _run_once
handle._run()
File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/config/custom_components/zcsmower/coordinator.py", line 224, in <lambda>
lambda: self.async_update_listeners(),
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners
update_callback()
File "/config/custom_components/zcsmower/image.py", line 435, in _handle_coordinator_update
self._generate_image()
File "/config/custom_components/zcsmower/image.py", line 161, in _generate_image
map_image = Image.open(map_image_path, "r")
Hello,
I am new with HA. However, I am trying to understand how it works and this add-on is interesting me.
I have 2 HA for testing, 1 was with the 0.44 version while the other has now the 0.45.
And btw these 2 versions, there are some differences:
This screenshot above is with the 0.44 : Model is not correct, Brand is ok and firmware is ok. And three are 4 entities. The control is there and actions seems ok.
The screenshot below is with the 0.45 : Model, brand and firmware are ok. And there are only 3 entities. I lost the control one.
Thank you for your work :-)
After map initialization, the connection between current GPS location and last point in location history is missing.
When downloading integration diagnostics, in coordinator_data
too much information are exposed:
New robot states
{
"name": "MAPPING_STARTED",
"color": "#007A08"
},
{
"name": "MAPPING_ENDED",
"color": "#D67070"
}
After setup new garage, in few cases the following error was logged:
'NoneType' object has no attribute 'data'
In Recorder Utils
Attribute reason
is missing, if lawn mower state is one of following:
In the new mobile app version for Android and iPhone, the client keys are now only displayed in lower case. This leads to an error when typing. See #87
Publish new client:
{
"cmd": {
"command": "attribute.publish",
"params": {
"imei": "35000000000",
"key": "robot_clientX",
"value": "<random28digitKey>"
}
}
}
Not all error states are correctly interpreted as errors by the binary_sensor.
Missing:
Ambrogio:
Kubota:
In config flow:
In README:
If an update is running shortly before the start of the standby time, the update process may be aborted.
Reproduced:
Start standby time (24h format): 14:52:00
Seconds between updates outside the standby time: 86400
Calculated next update: 2024-02-23 14:51:59.655107+01:00
Log:
2024-02-23 13:51:59.957 DEBUG (MainThread) [custom_components.zcsmower] update_interval - now: 2024-02-23 14:51:59.957567+01:00
2024-02-23 13:51:59.959 DEBUG (MainThread) [custom_components.zcsmower] update_interval - Current time is out of standby time
2024-02-23 13:51:59.959 DEBUG (MainThread) [custom_components.zcsmower] update_interval - standby_time_start: 1900-01-01 14:52:00
2024-02-23 13:51:59.959 DEBUG (MainThread) [custom_components.zcsmower] update_interval - standby_time_start as_local: 1900-01-01 14:52:00+01:00
2024-02-23 13:51:59.960 DEBUG (MainThread) [custom_components.zcsmower] update_interval - time_to_standby: 0
2024-02-23 13:51:59.961 DEBUG (MainThread) [custom_components.zcsmower] update_interval - Time until start of standby time is shorter than default update interval
2024-02-23 13:51:59.961 DEBUG (MainThread) [custom_components.zcsmower] update_interval - suggested_update_interval: 0:00:00
2024-02-23 13:51:59.962 DEBUG (MainThread) [custom_components.zcsmower] update_interval - next_pull: 2024-02-23 14:51:59.957567+01:00
It will be great to know in what zone it was mowing, it's not shown in the APP, but it might be readable from API?
I have a "Configuration warnings"
Setup of package 'services' failed: Integration 'update_now' not found.
Setup of package 'services' failed: Integration 'set_profile' not found.
Setup of package 'services' failed: Integration 'work_now' not found.
Setup of package 'services' failed: Integration 'work_for' not found.
Setup of package 'services' failed: Integration 'work_until' not found.
Setup of package 'services' failed: Integration 'border_cut' not found.
Setup of package 'services' failed: Integration 'charge_now' not found.
Setup of package 'services' failed: Integration 'charge_for' not found.
Setup of package 'services' failed: Integration 'charge_until' not found.
Setup of package 'services' failed: Integration 'trace_position' not found.
Setup of package 'services' failed: Integration 'keep_out' not found.
Setup of package 'services' failed: Integration 'custom_command' not found.
what does it mean — How to fix it pleeaseeee. help
¡Hi there!
Everytime I update Home Assistant I loose ZCS integration (wich is very useful for my Ambrogio L250i).
I'm resolving this issue adding again ZCS to integrations and reconfiguring all.
I don't know much about the problem but I can give the register's info:
Detected blocking call to open inside the event loop by custom integration 'zcsmower' at custom_components/zcsmower/image.py, line 161: map_image = Image.open(map_image_path, "r") (offender: /usr/local/lib/python3.12/site-packages/PIL/Image.py, line 3277: fp = builtins.open(filename, "rb")), please create a bug report at https://github.com/ufozone/ha-zcs-mower/issues Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/main.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/main.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 190, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self.args) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 742, in async_setup_locked await self.async_setup(hass, integration=integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup result = await component.async_setup_entry(hass, self) File "/config/custom_components/zcsmower/init.py", line 68, in async_setup_entry await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2032, in async_forward_entry_setups await asyncio.gather( File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2034, in create_eager_task( File "/usr/src/homeassistant/homeassistant/util/async.py", line 37, in create_eager_task return Task(coro, loop=loop, name=name, eager_start=True) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2081, in _async_forward_entry_setup await entry.async_setup(self.hass, integration=integration) File "/usr/src/homeassistant/homeassistant/config_entries.py", line 594, in async_setup result = await component.async_setup_entry(hass, self) File "/usr/src/homeassistant/homeassistant/components/image/init.py", line 125, in async_setup_entry return await component.async_setup_entry(entry) File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 196, in async_setup_entry return await self._platforms[key].async_setup_entry(config_entry) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 333, in async_setup_entry return await self._async_setup_platform(async_create_setup_awaitable) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 363, in async_setup_platform awaitable = create_eager_task(awaitable, loop=hass.loop) File "/usr/src/homeassistant/homeassistant/util/async.py", line 37, in create_eager_task return Task(coro, loop=loop, name=name, eager_start=True) File "/config/custom_components/zcsmower/image.py", line 78, in async_setup_entry async_add_entities( File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 515, in async_schedule_add_entities_for_entry task = self.config_entry.async_create_task( File "/usr/src/homeassistant/homeassistant/config_entries.py", line 1134, in async_create_task task = hass.async_create_task_internal( File "/usr/src/homeassistant/homeassistant/core.py", line 828, in async_create_task_internal task = create_eager_task(target, name=name, loop=self.loop) File "/usr/src/homeassistant/homeassistant/util/async.py", line 37, in create_eager_task return Task(coro, loop=loop, name=name, eager_start=True) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 649, in async_add_entities await add_func(coros, entities, timeout) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 555, in async_add_and_update_entities tasks = [create_eager_task(coro, loop=self.hass.loop) for coro in coros] File "/usr/src/homeassistant/homeassistant/util/async.py", line 37, in create_eager_task return Task(coro, loop=loop, name=name, eager_start=True) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 729, in _async_add_entity await entity.async_device_update(warning=False) File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1289, in async_device_update await self.async_update() File "/config/custom_components/zcsmower/image.py", line 429, in async_update self._generate_image() File "/config/custom_components/zcsmower/image.py", line 161, in _generate_image map_image = Image.open(map_image_path, "r")
Detected blocking call to open inside the event loop by custom integration 'zcsmower' at custom_components/zcsmower/image.py, line 161: map_image = Image.open(map_image_path, "r") (offender: /usr/local/lib/python3.12/site-packages/PIL/Image.py, line 3277: fp = builtins.open(filename, "rb")), please create a bug report at https://github.com/ufozone/ha-zcs-mower/issues Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/main.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/main.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 190, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/config/custom_components/zcsmower/coordinator.py", line 224, in lambda: self.async_update_listeners(), File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners update_callback() File "/config/custom_components/zcsmower/image.py", line 435, in _handle_coordinator_update self._generate_image() File "/config/custom_components/zcsmower/image.py", line 161, in _generate_image map_image = Image.open(map_image_path, "r")
Detected blocking call to open inside the event loop by custom integration 'zcsmower' at custom_components/zcsmower/image.py, line 247: map_marker = Image.open(map_marker_path, "r") (offender: /usr/local/lib/python3.12/site-packages/PIL/Image.py, line 3277: fp = builtins.open(filename, "rb")), please create a bug report at https://github.com/ufozone/ha-zcs-mower/issues Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/main.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/main.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 190, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/config/custom_components/zcsmower/coordinator.py", line 224, in lambda: self.async_update_listeners(), File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners update_callback() File "/config/custom_components/zcsmower/image.py", line 435, in _handle_coordinator_update self._generate_image() File "/config/custom_components/zcsmower/image.py", line 247, in _generate_image map_marker = Image.open(map_marker_path, "r")
Detected blocking call to open inside the event loop by custom integration 'zcsmower' at custom_components/zcsmower/image.py, line 161: map_image = Image.open(map_image_path, "r") (offender: /usr/local/lib/python3.12/site-packages/PIL/Image.py, line 3277: fp = builtins.open(filename, "rb")), please create a bug report at https://github.com/ufozone/ha-zcs-mower/issues Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/main.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/main.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 190, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 255, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners update_callback() File "/config/custom_components/zcsmower/image.py", line 435, in _handle_coordinator_update self._generate_image() File "/config/custom_components/zcsmower/image.py", line 161, in _generate_image map_image = Image.open(map_image_path, "r")
Detected blocking call to open inside the event loop by custom integration 'zcsmower' at custom_components/zcsmower/image.py, line 247: map_marker = Image.open(map_marker_path, "r") (offender: /usr/local/lib/python3.12/site-packages/PIL/Image.py, line 3277: fp = builtins.open(filename, "rb")), please create a bug report at https://github.com/ufozone/ha-zcs-mower/issues Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/usr/src/homeassistant/homeassistant/main.py", line 223, in sys.exit(main()) File "/usr/src/homeassistant/homeassistant/main.py", line 209, in main exit_code = runner.run(runtime_conf) File "/usr/src/homeassistant/homeassistant/runner.py", line 190, in run return loop.run_until_complete(setup_and_run_hass(runtime_config)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 672, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 639, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1988, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 255, in _handle_refresh_interval await self._async_refresh(log_failures=True, scheduled=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh self.async_update_listeners() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners update_callback() File "/config/custom_components/zcsmower/image.py", line 435, in _handle_coordinator_update self._generate_image() File "/config/custom_components/zcsmower/image.py", line 247, in _generate_image map_marker = Image.open(map_marker_path, "r")
Hello,
I have updated HA this morning to the august version and I got this error after restarting it.
Logger: homeassistant.setup
Source: setup.py:209
First occurred: 07:26:26 (1 occurrences)
Last logged: 07:26:26
Setup failed for custom integration zcsmower: Requirements for zcsmower not found: ['pillow==9.5.0'].
In the new app version for Android and iPhone, the client keys are now only displayed in lower case. This leads to an error when typing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.