home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
71.66k stars 29.95k forks source link

DEEBOT NEO 2.0 (eyfj07) Not working in Ecovacs #125447

Open Kanga-Who opened 2 weeks ago

Kanga-Who commented 2 weeks ago

The problem

Newly purchased DEEBOT NEO 2.0 (eyfj07) in AU, not controllable in HA via the Ecovacs Integrations

What version of Home Assistant Core has the issue?

2024.8.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Ecovacs

Link to integration documentation on our website

https://www.home-assistant.io/integrations/ecovacs

Diagnostics information

AttributeError: 'NoneType' object has no attribute 'state'
2024-09-07 14:47:35.528 WARNING (MainThread) [deebot_client.message] Could not parse getStats: {'code': 0, 'data': None, 'msg': 'ok'}
2024-09-07 14:47:35.529 WARNING (MainThread) [deebot_client.message] Could not parse getStats: {'body': {'code': 0, 'data': None, 'msg': 'ok'}, 'header': {'fwVer': '10.0.6', 'm': 'response', 'ts': 1725684454, 'tzm': 480, 'ver': '0.0.9'}}
2024-09-07 14:47:35.529 WARNING (MainThread) [deebot_client.command] Could not parse getStats: {'ret': 'ok', 'resp': {'body': {'code': 0, 'data': None, 'msg': 'ok'}, 'header': {'fwVer': '10.0.6', 'm': 'response', 'ts': 1725684454, 'tzm': 480, 'ver': '0.0.9'}}, 'id': 'wy3Q', 'payloadType': 'j'}
2024-09-07 14:47:35.912 WARNING (MainThread) [deebot_client.message] Could not parse getChargeState: None
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/deebot_client/message.py", line 191, in __handle_body_data
    if response.state == HandlingState.ANALYSE:
       ^^^^^^^^^^^^^^
  "integration_manifest": {
    "domain": "ecovacs",
    "name": "Ecovacs",
    "codeowners": [
      "mib1185",
      "edenhaus",
      "Augar"
    ],
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/ecovacs",
    "iot_class": "cloud_push",
    "loggers": [
      "sleekxmppfs",
      "sucks",
      "deebot_client"
    ],
    "requirements": [
      "py-sucks==0.9.10",
      "deebot-client==8.3.0"
    ],
    "is_built_in": true
  },
  "setup_times": {
    "null": {
      "setup": 4.188506864011288e-05
    },
    "01J75CH3V1Y1GJ22CP1FGCWBGN": {
      "wait_import_platforms": -0.032025085063651204,
      "wait_base_component": -0.0005921220872551203,
      "config_entry_setup": 4.403451323974878
    }
  },
  "data": {
    "config": {
      "created_at": "2024-09-07T05:10:30.733795+00:00",
      "data": {
        "username": "**REDACTED**",
        "password": "**REDACTED**",
        "country": "AU"
      },
      "disabled_by": null,
      "domain": "ecovacs",
      "entry_id": "01J75E852DXFRXRMH5BHNFBG6Y",
      "minor_version": 1,
      "modified_at": "2024-09-07T05:10:30.733802+00:00",
      "options": {},
      "pref_disable_new_entities": false,
      "pref_disable_polling": false,
      "source": "user",
      "title": "**REDACTED**",
      "unique_id": null,
      "version": 1
    },
    "devices": [
      {
        "did": "**REDACTED**",
        "name": "**REDACTED**",
        "class": "eyfj07",
        "resource": "NwqXQLmb",
        "company": "eco-ng",
        "bindTs": 1725683868589,
        "service": {
          "jmq": "jmq-ngiot-na.dc.ww.ecouser.net",
          "mqs": "api-ngiot.dc-na.ww.ecouser.net"
        },
        "deviceName": "DEEBOT NEO 2.0",
        "icon": "https://portal-ww.ecouser.net/api/pim/file/get/659bbcce900d8c43b81f610f",
        "ota": false,
        "UILogicId": "y30_ww_h_y30h5",
        "materialNo": "722-0001-4100",
        "pid": "65e674b0a16bb4907c9e8029",
        "product_category": "DEEBOT",
        "model": "CARTESIAN-BLACK-INT-STANDARD",
        "updateInfo": {
          "needUpdate": false,
          "changeLog": ""
        },
        "nick": "deebot",
        "homeId": "**REDACTED**",
        "homeSort": 1,
        "status": 1,
        "offmap": true,
        "otaUpgrade": {}
      }
    ],
    "legacy_devices": []
  }
}

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 2 weeks ago

Hey there @mib1185, @edenhaus, @augar, mind taking a look at this issue as it has been labeled with an integration (ecovacs) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `ecovacs` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign ecovacs` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


ecovacs documentation ecovacs source (message by IssueLinks)

thomotron commented 2 weeks ago

This looks like it's the same issue as #120557. There simply isn't any data being returned by Ecovacs' API.

I've recently picked one up as well so this is a bit of a disappointment.

Kanga-Who commented 2 weeks ago

I've submitted a ticket to Ecovacs AU asking for API info to support it.

Being the second version of the Neo, perhaps the existing Neo config would work with the new model number added?

thomotron commented 1 week ago

I've tried with the existing Neo config today with no luck. I'm in the process of pulling the app apart to see how the Neo's process works. From my brief dive it seems that the Neo 2.0, Neo 2.0 Plus, Y1, Y1 Plus, etc. are all using some different API endpoint. It might be related to some recent troubles with the X2?

I'll continue digging over the coming days and report back if I find anything useful. If it's enough to go on, I might put either an issue or a PR together in the deebot-client repo (no promises though!)

edenhaus commented 2 days ago

@thomotron If you have enough data, we can of course extend the lib to supports these models :)

Kanga-Who commented 1 day ago

After a number of emails back and forth with Ecovacs AU support, they will not provide any API information, unfortunately.