Skip to content

Add support for GOAT O800 RTK (9bts2s)#1466

Merged
edenhaus merged 2 commits into
DeebotUniverse:devfrom
mnistony:dev
Mar 25, 2026
Merged

Add support for GOAT O800 RTK (9bts2s)#1466
edenhaus merged 2 commits into
DeebotUniverse:devfrom
mnistony:dev

Conversation

@mnistony

@mnistony mnistony commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

Adding support for GOAT O800 RTK (class: 9bts2s) by linking
to the existing GOAT G1 capabilities (5xu9h3.py).

Device info:

  • deviceName: GOAT O800 RTK
  • model: GOAT_O800_LC
  • UILogicId: goatr_ww_h_goatbzse
  • class: 9bts2s

@DeebotUniverse DeebotUniverse deleted a comment from mnistony Mar 25, 2026
@edenhaus edenhaus added the pr: new-feature PR, which adds a new feature label Mar 25, 2026
@edenhaus edenhaus changed the title Add symlink for 9bts2s (GOAT O800 RTK) Add support for GOAT O800 RTK (9bts2s) Mar 25, 2026
@allgrinder allgrinder mentioned this pull request Mar 25, 2026
4 tasks
@mnistony

Copy link
Copy Markdown
Contributor Author

"Here is the raw device information from my Home Assistant logs for the Goat O800 RTK. The device class is definitely 9bts2s. I see that the latest CI build failed—please let me know if I can provide more data to help fix the integration!"

{
"did": "...",
"class": "9bts2s",
"model": "GOAT_O800_LC",
"product_category": "GOATBOT",
...
}

@edenhaus edenhaus left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mnistony 👍

@edenhaus edenhaus enabled auto-merge (squash) March 25, 2026 15:12
@codecov

codecov Bot commented Mar 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.82%. Comparing base (34a6f4e) to head (c2bf404).
⚠️ Report is 26 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #1466      +/-   ##
==========================================
+ Coverage   94.79%   94.82%   +0.03%     
==========================================
  Files         152      153       +1     
  Lines        5974     6010      +36     
  Branches      350      350              
==========================================
+ Hits         5663     5699      +36     
  Misses        249      249              
  Partials       62       62              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@codspeed-hq

codspeed-hq Bot commented Mar 25, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 113 untouched benchmarks


Comparing mnistony:dev (c2bf404) with dev (f6fbd9d)

Open in CodSpeed

@edenhaus edenhaus merged commit a6baab3 into DeebotUniverse:dev Mar 25, 2026
26 checks passed
@allgrinder

allgrinder commented Apr 3, 2026

Copy link
Copy Markdown

So, the GOAT is now being found by the integration. Data such as battery status etc. are also perfectly correct. However, it cannot be controlled. The log shows the following error:

Logger: deebot_client.command

Source: components/ecovacs/lawn_mower.py:82

First occurred: 14:42:10 (48 occurrences)

Last logged: 16:50:58

Error: No response received for command "clean_V2". This can happen if the device has network issues or does not support the command.

Ps: lawn_mower.dock works out of the box

@ziat007

ziat007 commented Apr 10, 2026

Copy link
Copy Markdown

So, the GOAT is now being found by the integration. Data such as battery status etc. are also perfectly correct. However, it cannot be controlled. The log shows the following error:

Logger: deebot_client.command

Source: components/ecovacs/lawn_mower.py:82

First occurred: 14:42:10 (48 occurrences)

Last logged: 16:50:58

Error: No response received for command "clean_V2". This can happen if the device has network issues or does not support the command.

Ps: lawn_mower.dock works out of the box

I am also getting this message.

I am a little confused on the current situation of this issue.

@mnistony

Copy link
Copy Markdown
Contributor Author

Maybe this helps?

Ecovacs Goat 800 RTK - Working command structure

Problem: Official integration sends clean_V2 but Goat expects clean
Working command (discovered via MQTT sniffing):

{
  "name": "clean",
  "td": "c",
  "args": {
    "action": "start",
    "content": {
      "subContent": {"type": "auto"}
    }
  }
}

MQTT topics observed:
State updates: onBattery, onChargeState, onCleanInfo, onChargeInfo, onStats
Charge command: Charge() works for both stop and dock

Working AppDaemon implementation:
[goat_mower.py](https://github.com/user-attachments/files/26648824/goat_mower.py)

@allgrinder

Copy link
Copy Markdown

Hey @mnistony, thanks for the great investigation work! Unfortunately the goat_mower.py attachment link is returning a 404. Could you re-upload it? Would love to try it as a workaround until this PR gets merged. Thanks!

@mnistony

mnistony commented May 12, 2026 via email

Copy link
Copy Markdown
Contributor Author

@mnistony

mnistony commented May 12, 2026 via email

Copy link
Copy Markdown
Contributor Author

@mnistony

mnistony commented May 13, 2026 via email

Copy link
Copy Markdown
Contributor Author

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

Labels

pr: new-feature PR, which adds a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants