MTrab / landroid_cloud

Landroid Cloud component for Home Assistant
GNU General Public License v3.0
274 stars 33 forks source link

Worx Connects and Integration succeeds, but device/entity perpetually unavailable? #405

Closed danantonson closed 1 year ago

danantonson commented 1 year ago

Describe the issue

The integration was working perfectly and then it stopped. Per the instructions, I removed the device from Landroid and resync'd without issue; I can control the Landroid through the native app without issue.

After removing and reconnecting the landroid I went to reimplement the cloud integration and everything connects and authenticates, but the device entity shows 'unavailable.' Which is strange because the logs show all the correct information from my device which means it's clearly made the connection once. I uninstalled the integration and reinstalled via HACS and the same behavior occurs.

What version of Home Assistant Core has the issue?

core-2023.7.2

What was the last working version of Home Assistant Core?

core-

What version of the Landroid Cloud integration do you have installed

3.0.5

What type of installation are you running?

Home Assistant OS

Which make and model is the mower used for this integration?

Landroid W140

Diagnostics information (NOT log entries!)

{ "home_assistant": { "installation_type": "Home Assistant OS", "version": "2023.7.2", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.11.4", "docker": true, "arch": "x86_64", "timezone": "America/Chicago", "os_name": "Linux", "os_version": "6.1.34", "supervisor": "2023.07.1", "host_os": "Home Assistant OS 10.3", "docker_version": "23.0.6", "chassis": "vm", "run_as_root": true }, "custom_components": { "alexa_media": { "version": "4.6.5", "requirements": [ "alexapy==1.26.8", "packaging>=20.3", "wrapt>=1.12.1" ] }, "hacs": { "version": "1.32.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "blueiris": { "version": "1.0.15", "requirements": [] }, "fordpass": { "version": "0.1.48", "requirements": [] }, "nodered": { "version": "2.1.0", "requirements": [] }, "circadian_lighting": { "version": "2.1.4", "requirements": [] }, "keymaster": { "version": "v0.0.85", "requirements": [] }, "tryfi": { "version": "0.0.20", "requirements": [ "pytryfi>=0.0.20" ] }, "landroid_cloud": { "version": "3.0.5", "requirements": [ "pyworxcloud==3.1.14" ] }, "wyzeapi": { "version": "0.1.19", "requirements": [ "wyzeapy==0.5.19" ] }, "audiconnect": { "version": "2021.1.1", "requirements": [ "beautifulsoup4" ] } }, "integration_manifest": { "domain": "landroid_cloud", "name": "Landroid Cloud", "after_dependencies": [ "http" ], "codeowners": [ "@MTrab" ], "config_flow": true, "documentation": "https://github.com/MTrab/landroid_cloud/blob/master/README.md", "iot_class": "cloud_push", "issue_tracker": "https://github.com/MTrab/landroid_cloud/issues", "loggers": [ "pyworxcloud" ], "requirements": [ "pyworxcloud==3.1.14" ], "version": "3.0.5", "is_built_in": false }, "data": { "entry": { "entry_id": "03da09b4ecbd129053a16bdaad8ea316", "version": 1, "domain": "landroid_cloud", "title": "REDACTED", "data": { "email": "REDACTED", "password": "REDACTED", "type": "Worx" }, "options": {}, "pref_disable_new_entities": false, "pref_disable_polling": false, "source": "user", "unique_id": "REDACTED", "disabled_by": null }, "cloud": {}, "device_ids": { "3021 Backyard": null }, "feature_bits": {}, "type": "Worx", "devices": { "3021 Backyard": { "_api": { "__type": "<class 'pyworxcloud.api.LandroidCloudAPI'>", "repr": "<pyworxcloud.api.LandroidCloudAPI object at 0x7fcc81d6c1d0>" }, "_mower": { "id": 447833, "uuid": "96c52e9d-aca6-4002-b693-8567378ccfff", "product_id": 54, "user_id": 436850, "serial_number": "20193088631200233418", "mac_address": "C82B96827864", "name": "3021 Backyard", "locked": true, "firmware_version": "3.30", "firmware_auto_upgrade": true, "push_notifications": true, "sim": { "id": 7232, "iccid": "8944538523018989627", "sim_status": "provisioned", "pending_activation": false, "contract_starts_at": "2021-09-22T00:00:00-05:00", "contract_ends_at": "2024-09-22T00:00:00-05:00", "created_at": "2021-05-29T23:26:41-05:00", "updated_at": "2023-07-29T02:01:32-05:00" }, "push_notifications_level": "warning", "test": false, "iot_registered": true, "mqtt_registered": true, "pin_code": null, "registered_at": "2021-05-27 00:00:00", "online": true, "app_settings": { "cellular_setup_completed": true }, "protocol": 0, "pending_radio_link_validation": null, "capabilities": [ "auto_lock", "bluetooth_pairing", "border_cut", "digital_fence_settings", "follow_border", "lock", "mqtt", "multi_zone", "multi_zone_percentage", "one_time_scheduler", "ota_upgrade", "pairing_smartconfig", "pause_over_wire", "rain_delay", "rain_delay_start", "safe_go_home", "scheduler_two_slots", "unrestricted_mowing_time", "zone_keeper" ], "capabilities_available": [], "features": { "auto_lock": 3.25, "bluetooth_pairing": true, "chassis": "m_2019", "digital_fence_settings": 3.25, "display_type": "lcd", "input_type": "keyboard_arrow_keys", "lock": true, "mqtt": true, "multi_zone": true, "multi_zone_percentage": true, "multi_zone_zones": 4, "one_time_scheduler": 3.15, "pause_over_wire": 3.26, "rain_delay": true, "rain_delay_start": 3.08, "safe_go_home": 3.25, "scheduler_two_slots": 3.15, "unrestricted_mowing_time": true, "wifi_pairing": "smartconfig" }, "accessories": { "cellular": true }, "mqtt_endpoint": "iot.eu-west-1.worxlandroid.com", "mqtt_topics": { "command_in": "PRM100/C82B96827864/commandIn", "command_out": "PRM100/C82B96827864/commandOut" }, "warranty_registered": true, "purchased_at": "2021-05-24 00:00:00", "warranty_expires_at": "2024-05-24 00:00:00", "setup_location": { "latitude": "REDACTED", "longitude": "REDACTED" }, "city": { "id": 5037649, "country_id": 840, "name": "Minneapolis", "latitude": "REDACTED", "longitude": "REDACTED", "created_at": "2018-02-15T22:36:10-06:00", "updated_at": "2018-02-15T22:36:10-06:00" }, "time_zone": "America/Chicago", "lawn_size": null, "lawn_perimeter": 57, "auto_schedule_settings": null, "auto_schedule": false, "improvement": true, "diagnostic": true, "distance_covered": 105941, "mower_work_time": 7432, "blade_work_time": 7338, "blade_work_time_reset": 0, "blade_work_time_reset_at": null, "battery_charge_cycles": 44, "battery_charge_cycles_reset": 0, "battery_charge_cycles_reset_at": null, "created_at": "2019-12-22 12:50:05", "updated_at": "2023-07-29 01:41:25", "last_status": { "timestamp": "2023-07-29T21:59:05-05:00", "payload": { "cfg": { "id": 0, "sn": "20193088631200233418", "dt": "29/07/2023", "tm": "16:58:55", "lg": "en", "cmd": 0, "sc": { "m": 1, "d": [ [ "00:00", 0, 0 ], [ "04:00", 60, 1 ], [ "00:00", 0, 0 ], [ "04:00", 60, 0 ], [ "00:00", 0, 0 ], [ "04:00", 60, 1 ], [ "00:00", 0, 0 ] ], "dd": [ [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ] ], "distm": 0, "p": 0, "ots": { "wtm": 0, "bc": 0 } }, "mz": [ 0, 0, 0, 0 ], "mzv": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "mzk": 0, "rd": 180, "al": { "lvl": 1, "t": 60 }, "tq": 0, "modules": { "4G": { "enabled": 1, "geo": { "coo": [ 44.947578, -93.291573 ], "rad": 30 } } } }, "dat": { "mac": "C82B96827864", "fw": 3.3, "fwb": 1, "ls": 1, "le": 0, "conn": "wifi", "bt": { "t": 26.1, "v": 20.33, "p": 98, "nr": 44, "c": 1, "m": 1 }, "dmp": [ 1.6, -1.9, 21.8 ], "st": { "b": 7339, "d": 105953, "wt": 7433, "bl": 57 }, "act": 1, "rsi": -76, "lk": 1, "tr": 0, "lz": 0, "rain": { "s": 0, "cnt": 0 }, "modules": { "4G": { "stat": "ok", "vers": 2.54, "batt": { "t": -128, "v": 3.98, "l": 86 }, "mode": 1, "geo": { "stat": "in" }, "gps": { "coo": [ 0, 0 ] }, "network": { "status": "disconnected", "mode": "EDGE", "ICCID": "8944538523018989627", "IMSI": "204080748032946", "rssi": -79 } } } } } }, "model": { "code": "WR140", "friendly_name": "Landroid M1000", "model_year": 2019, "cutting_width": 180 } }, "_tz": null, "id": 447833, "uuid": "96c52e9d-aca6-4002-b693-8567378ccfff", "product_id": 54, "serial_number": "20193088631200233418", "mac_address": "C82B96827864", "name": "3021 Backyard", "locked": true, "sim": { "id": 7232, "iccid": "8944538523018989627", "sim_status": "provisioned", "pending_activation": false, "contract_starts_at": "2021-09-22T00:00:00-05:00", "contract_ends_at": "2024-09-22T00:00:00-05:00", "created_at": "2021-05-29T23:26:41-05:00", "updated_at": "2023-07-29T02:01:32-05:00" }, "mqtt_registered": true, "pin_code": null, "registered_at": "2021-05-27T00:00:00-05:00", "online": true, "protocol": 0, "capabilities": { "type": "<class 'pyworxcloud.utils.capability.Capability'>", "repr": "<pyworxcloud.utils.capability.Capability object at 0x7fcc82d037d0>" }, "capabilities_available": [], "accessories": { "cellular": true }, "setup_location": { "latitude": "REDACTED", "longitude": "REDACTED" }, "city": { "id": 5037649, "country_id": 840, "name": "Minneapolis", "latitude": "REDACTED", "longitude": "REDACTED", "created_at": "2018-02-15T22:36:10-06:00", "updated_at": "2018-02-15T22:36:10-06:00" }, "time_zone": "America/Chicago", "improvement": true, "diagnostic": true, "mower_work_time": 7432, "last_status": { "timestamp": "2023-07-29T21:59:05-05:00", "payload": { "cfg": { "id": 0, "sn": "20193088631200233418", "dt": "29/07/2023", "tm": "16:58:55", "lg": "en", "cmd": 0, "sc": { "m": 1, "d": [ [ "00:00", 0, 0 ], [ "04:00", 60, 1 ], [ "00:00", 0, 0 ], [ "04:00", 60, 0 ], [ "00:00", 0, 0 ], [ "04:00", 60, 1 ], [ "00:00", 0, 0 ] ], "dd": [ [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ] ], "distm": 0, "p": 0, "ots": { "wtm": 0, "bc": 0 } }, "mz": [ 0, 0, 0, 0 ], "mzv": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "mzk": 0, "rd": 180, "al": { "lvl": 1, "t": 60 }, "tq": 0, "modules": { "4G": { "enabled": 1, "geo": { "coo": [ 44.947578, -93.291573 ], "rad": 30 } } } }, "dat": { "mac": "C82B96827864", "fw": 3.3, "fwb": 1, "ls": 1, "le": 0, "conn": "wifi", "bt": { "t": 26.1, "v": 20.33, "p": 98, "nr": 44, "c": 1, "m": 1 }, "dmp": [ 1.6, -1.9, 21.8 ], "st": { "b": 7339, "d": 105953, "wt": 7433, "bl": 57 }, "act": 1, "rsi": -76, "lk": 1, "tr": 0, "lz": 0, "rain": { "s": 0, "cnt": 0 }, "modules": { "4G": { "stat": "ok", "vers": 2.54, "batt": { "t": -128, "v": 3.98, "l": 86 }, "mode": 1, "geo": { "stat": "in" }, "gps": { "coo": [ 0, 0 ] }, "network": { "status": "disconnected", "mode": "EDGE", "ICCID": "8944538523018989627", "IMSI": "204080748032946", "rssi": -79 } } } } } }, "model": "Landroid M1000 (WR140)", "battery": { "cycles": { "total": 44, "current": 0, "reset_at": null, "reset_time": null }, "temperature": 27.2, "voltage": 20.05, "percent": 100, "charging": false }, "blades": { "total_on": 7339, "reset_at": 0, "reset_time": null, "current_on": 7339 }, "chassis": {}, "error": { "id": 0, "description": "no error" }, "orientation": { "pitch": 1.5, "roll": -1.9, "yaw": 21.8 }, "rainsensor": { "delay": 180, "triggered": false, "remaining": 0 }, "status": { "id": 1, "description": "home" }, "zone": { "current": 0, "index": 0, "indicies": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "starting_point": [ 0, 0, 0, 0 ] }, "warranty": { "expires_at": "2024-05-24T00:00:00-05:00", "registered": true, "expired": false }, "firmware": { "auto_upgrade": true, "version": "3.30" }, "schedules": { "daily_progress": 100, "next_schedule_start": "2023-07-31T04:00:00-05:00", "time_extension": 0, "active": true, "auto_schedule": { "settings": null, "enabled": false }, "primary": { "monday": { "start": "04:00", "end": "05:00", "duration": 60, "boundary": true }, "tuesday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "wednesday": { "start": "04:00", "end": "05:00", "duration": 60, "boundary": false }, "thursday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "friday": { "start": "04:00", "end": "05:00", "duration": 60, "boundary": true }, "saturday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "sunday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false } }, "secondary": { "monday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "tuesday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "wednesday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "thursday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "friday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "saturday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false }, "sunday": { "start": "00:00", "end": "00:00", "duration": 0, "boundary": false } } }, "in_topic": "PRM100/C82B96827864/commandIn", "out_topic": "PRM100/C82B96827864/commandOut", "_DeviceHandleris_decoded": true, "_DeviceHandlerraw_data": "{\"cfg\":{\"id\":17116,\"lg\":\"en\",\"tm\":\"17:02:10\",\"dt\":\"29/07/2023\",\"sc\":{\"m\":1,\"distm\":0,\"ots\":{\"bc\":0,\"wtm\":0},\"p\":0,\"d\":[[\"00:00\",0,0],[\"04:00\",60,1],[\"00:00\",0,0],[\"04:00\",60,0],[\"00:00\",0,0],[\"04:00\",60,1],[\"00:00\",0,0]],\"dd\":[[\"00:00\",0,0],[\"00:00\",0,0],[\"00:00\",0,0],[\"00:00\",0,0],[\"00:00\",0,0],[\"00:00\",0,0],[\"00:00\",0,0]]},\"cmd\":0,\"mz\":[0,0,0,0],\"mzv\":[0,0,0,0,0,0,0,0,0,0],\"mzk\":0,\"rd\":180,\"sn\":\"20193088631200233418\",\"al\":{\"lvl\":1,\"t\":60},\"tq\":0,\"modules\":{\"4G\":{\"enabled\":1,\"geo\":{\"coo\":[44.947578,-93.291573],\"rad\":30}}}},\"dat\":{\"mac\":\"C82B96827864\",\"fw\":3.30,\"fwb\":1,\"bt\":{\"t\":27.2,\"v\":20.05,\"p\":100,\"nr\":44,\"c\":0,\"m\":1},\"dmp\":[1.5,-1.9,21.8],\"st\":{\"b\":7339,\"d\":105953,\"wt\":7433,\"bl\":57},\"ls\":1,\"le\":0,\"lz\":0,\"rsi\":-81,\"lk\":1,\"act\":1,\"tr\":0,\"conn\":\"wifi\",\"rain\":{\"s\":0,\"cnt\":0},\"time\":{\"r\":0,\"l\":0},\"modules\":{\"4G\":{\"mode\":1,\"stat\":\"ok\",\"vers\":2.54,\"batt\":{\"v\":3.98,\"l\":86,\"t\":-128},\"network\":{\"status\":\"disconnected\",\"ICCID\":\"8944538523018989627\",\"IMSI\":\"204080748032946\",\"mode\":\"EDGE\",\"rssi\":-79},\"geo\":{\"stat\":\"in\"},\"gps\":{\"coo\":[0.000000,0.000000]}}}}}", "rssi": -81, "statistics": { "worktime_blades_on": 7339, "distance": 105953, "worktime_total": 7433 }, "gps": {}, "updated": "2023-07-29T17:02:10-05:00", "torque": 0, "partymode_enabled": false, "_DeviceHandlerjson_data": { "cfg": { "id": 17116, "lg": "en", "tm": "17:02:10", "dt": "29/07/2023", "sc": { "m": 1, "distm": 0, "ots": { "bc": 0, "wtm": 0 }, "p": 0, "d": [ [ "00:00", 0, 0 ], [ "04:00", 60, 1 ], [ "00:00", 0, 0 ], [ "04:00", 60, 0 ], [ "00:00", 0, 0 ], [ "04:00", 60, 1 ], [ "00:00", 0, 0 ] ], "dd": [ [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ], [ "00:00", 0, 0 ] ] }, "cmd": 0, "mz": [ 0, 0, 0, 0 ], "mzv": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "mzk": 0, "rd": 180, "sn": "20193088631200233418", "al": { "lvl": 1, "t": 60 }, "tq": 0, "modules": { "4G": { "enabled": 1, "geo": { "coo": [ 44.947578, -93.291573 ], "rad": 30 } } } }, "dat": { "mac": "C82B96827864", "fw": 3.3, "fwb": 1, "bt": { "t": 27.2, "v": 20.05, "p": 100, "nr": 44, "c": 0, "m": 1 }, "dmp": [ 1.5, -1.9, 21.8 ], "st": { "b": 7339, "d": 105953, "wt": 7433, "bl": 57 }, "ls": 1, "le": 0, "lz": 0, "rsi": -81, "lk": 1, "act": 1, "tr": 0, "conn": "wifi", "rain": { "s": 0, "cnt": 0 }, "time": { "r": 0, "l": 0 }, "modules": { "4G": { "mode": 1, "stat": "ok", "vers": 2.54, "batt": { "v": 3.98, "l": 86, "t": -128 }, "network": { "status": "disconnected", "ICCID": "8944538523018989627", "IMSI": "204080748032946", "mode": "EDGE", "rssi": -79 }, "geo": { "stat": "in" }, "gps": { "coo": [ 0.0, 0.0 ] } } } } } } } } }

Relevant log entries

None

Additional information

No response

chief110 commented 1 year ago

I have the same problem. Can someone assist? Thanks

DerLoco commented 1 year ago

same issue

lightheaded commented 1 year ago

Same

MTrab commented 1 year ago

Someone would need to share their credentials on landroid_cloud (at) trab.dk (mentioning issue 405 in the subject) as I do not see this issue with my S500

MTrab commented 1 year ago

Is this actually the same as #385 ?

danantonson commented 1 year ago

Is this actually the same as #385 ?

I don't believe so. In this issue, the integration never pulls in data. I'm also not able to control the Landroid. Image below of what I'm seeing in Home Assistant.

Capture
MTrab commented 1 year ago

Okay - will let it stay for now. But I still need credentials to test.

danantonson commented 1 year ago

Okay - will let it stay for now. But I still need credentials to test.

Thanks! I actually sent you an email offering some credentials yesterday. Let me know how I can safely pass it over to you.

MTrab commented 1 year ago

Already answered that mail ;)

MTrab commented 1 year ago

@danantonson credentials received, thank you. Unfortunately, everything checks out here, using latest Home Assistant (2023.8.1) and latest landroid_cloud (3.0.5) component.

image

danantonson commented 1 year ago

Interesting! Mine was still showing unavailable, but I noticed that mine has a Netgear association (I'm also using an Orbi integration - screenshot below) which yours doesn't. image

I disabled the Netgear integration in Home Assistant, deleted the Landroid device that was persistently 'unavailable', and then readded it, and I'm seeing docked as you show in your screenshot.

So to test the theory, I deleted the Worx integration, re-enabled Netgear, and it shows 'docked' again. So I have no idea what's going on. 🥴

Either way! Thanks for taking a look. I'm betting if others delete the device and re-add it should work.

lasse9000 commented 1 year ago

I just re-downloaded from hacs, and it works again. Sharing pictures of logs and fail. Screenshot_20230830_232544_Home Assistant Screenshot_20230830_232617_Home Assistant