Skip to content

Support ESPHome name-based web entity IDs in Fang UI - #178

Open
yanivf38 wants to merge 1 commit into
vacuula:mainfrom
yanivf38:fix/esphome-name-based-web-ids
Open

Support ESPHome name-based web entity IDs in Fang UI#178
yanivf38 wants to merge 1 commit into
vacuula:mainfrom
yanivf38:fix/esphome-name-based-web-ids

Conversation

@yanivf38

@yanivf38 yanivf38 commented Sep 6, 2026

Copy link
Copy Markdown

With ESPHome 2026.8.2, Fang's web UI remains on loading... because events contain IDs such as sensor/Fuel Percent, while the UI looks up sensor-fuel_percent. HTTP controls also need to use the exact entity name rather than the legacy object ID.

Normalize name-based IDs at the state/detail ingestion boundary and retain the original name in api_id. A shared path helper URL-encodes only the entity segment for fallback detail requests and both action callers. Legacy event IDs and endpoints remain supported. This keeps the existing primary-device UI keys; it does not add sub-device support or change entity enums.

Validation:

  • Seven passing regression tests execute the source handlers with mocked browser dependencies and captured HTTP requests: legacy/new IDs, punctuation, partial updates, detail fallback, and both action callers.
  • Vite production build passed (41 modules transformed).
  • git diff --check passed; patch applicability checked against the recorded clean base.
  • A corresponding earlier bundled workaround was installed on ESP32-C3 / Neato Connected Gen 2 firmware 2.2.0. Live robot data and the served adapter were verified. The user confirmed that the locally patched web page renders correctly. This source revision has not been flashed; physical control operation remains unconfirmed.

Validation environment: Node 24.16.0, npm on Windows. Upstream npm ci failed because the lockfile lacks a rollup-plugin-gzip entry. Dependencies were installed in the individual package using --workspaces=false --package-lock=false; the lockfile is unchanged. Reproduction commands and compatibility scope are documented in webserver/packages/neato/COMPATIBILITY.md.

@yanivf38
yanivf38 marked this pull request as ready for review September 6, 2026 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant