No description
Find a file
Mark Whaite 5ca4bb9e68
Some checks failed
CI / lint (push) Failing after 23s
fix: GetDeviceList uses legacy portal host + top-level devices list
mrbungle64/ecovacs-deebot.js getPortalUrlFormat() routes all portal calls
(users/user.do, appsvr/app.do, etc.) to portal-{continent}.ecouser.net,
NOT api-app.dc-{continent}.ww.ecouser.net. The "ww" host only serves the
modern loginByItToken endpoint.

The response body for GetDeviceList is also top-level:
  {"result": "ok", "devices": [{did, deviceClass, ...}, ...]}
NOT {"result": "ok", "data": [...]}. Fixed the parser to read
data["devices"] per the ecovacs-deebot.js getDevices() reference.

Live probe of step 1-3 already confirmed the auth path is sound; this
fix should make the device list call return the bound bot. Tests
updated to assert the new host, the new endpoint, and the new
response shape.
2026-10-11 10:41:11 -07:00
.forgejo/workflows fix(ci): self-contained workflow — drop unreachable JS actions 2026-09-16 08:55:29 -07:00
custom_components/yeedi fix: GetDeviceList uses legacy portal host + top-level devices list 2026-10-11 10:41:11 -07:00
project_state feat: replace stub integration with 1:1 transcription of Tomschin's Node-RED flow 2026-10-09 09:05:48 -07:00
tests fix: GetDeviceList uses legacy portal host + top-level devices list 2026-10-11 10:41:11 -07:00
.gitignore feat: add hacs.json (#7) and async_migrate_entry (#8) 2026-05-15 07:26:23 -07:00
.gitleaks.toml feat: add hacs.json (#7) and async_migrate_entry (#8) 2026-05-15 07:26:23 -07:00
.pre-commit-config.yaml chore: add basic pre-commit hooks (trailing-whitespace, eof-fixer, ruff) 2026-06-03 17:29:41 -07:00
AGENTS.md initial commit 2026-01-20 18:14:59 -08:00
pyproject.toml feat: add hacs.json (#7) and async_migrate_entry (#8) 2026-05-15 07:26:23 -07:00
README.md initial commit 2026-01-20 18:14:59 -08:00
uv.lock fix #12: CI lint/test failure - make HA imports lazy for testability 2026-06-14 07:42:53 -07:00

Yeedi Home Assistant Integration (MVP)

This repository contains a Home Assistant custom integration for Yeedi robot vacuums. It is currently MVP-focused and expects Yeedi cloud API details from the Home Assistant forum Node-RED flow to be applied in custom_components/yeedi/api.py.

Quick Start

  1. Copy custom_components/yeedi into your Home Assistant config directory.
  2. Restart Home Assistant.
  3. Add the integration via UI: Settings -> Devices & Services -> Add Integration -> Yeedi.
  4. Provide credentials and any region/base URL required by your Yeedi account.

Development Notes

  • API endpoints and request/response parsing live in custom_components/yeedi/api.py. Update ENDPOINTS and parsing logic using the Node-RED flow details.
  • Tokens are stored in the config entry and refreshed when possible.
  • Polling uses DataUpdateCoordinator with a default interval of 60 seconds.

Testing

  • No automated tests are included yet. When added, use pytest from the repo root.

Troubleshooting

  • If setup fails, check logs for YeediApiError messages. Ensure endpoints and auth fields match the Node-RED flow.