Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Kanga-Who opened this issue Sep 7, 2024 · 9 comments
Open

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

Kanga-Who opened this issue Sep 7, 2024 · 9 comments

Comments

@Kanga-Who
Copy link

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
Copy link

home-assistant bot commented Sep 7, 2024

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
Copy link

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
Copy link
Author

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
Copy link

thomotron commented Sep 9, 2024

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
Copy link
Contributor

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

@Kanga-Who
Copy link
Author

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

@madchuska
Copy link

@edenhaus I also have the Neo 2.0 and have taken a look with mitmproxy.
Happy to share some data if it will help, is there anything in particular you require?

@nmcdaines
Copy link

I'm experiencing the same issues as well for the Deebot NEO 2.0 and would love to get it working with homeassistant.
Wondering if anyone has had any luck with this as yet? Otherwise I'd be happy to have a go at fixing this integration but would appreciate some pointers for getting started 🙏

@thomotron
Copy link

Sorry for the silence here, I was overseas for a bit but I'm back on deck now.

So far I haven't managed to do anything useful with the API after MITMing it. It looks like they sign/sum their requests. My next step was going to be poking into the existing lib to see how it handles it and hopefully use it as a jig to play around with this other endpoint that they seem to be using.

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

No branches or pull requests

6 participants