Skip to content

feat: add Freo Z Ultra local control - #76

Open
KakatkarAkshay wants to merge 2 commits into
sjmotew:masterfrom
KakatkarAkshay:master
Open

feat: add Freo Z Ultra local control#76
KakatkarAkshay wants to merge 2 commits into
sjmotew:masterfrom
KakatkarAkshay:master

Conversation

@KakatkarAkshay

@KakatkarAkshay KakatkarAkshay commented Aug 8, 2026

Copy link
Copy Markdown

Summary

  • add Freo Z Ultra hardware CX7 support using the locally verified J5 product key (hEA7OEshlx)
  • request a cloud-assigned Device ID through the generic non-broadcast setup step while keeping the integration fully local
  • make non-broadcast capability generic: addressed responses establish reachability, wake waits and broadcast subscriptions are skipped, and missing broadcasts no longer force reconnects
  • correct device model and firmware metadata and document Device ID retrieval options, polling limitations, and unresolved variants
  • retain BYWBPqSxeC as an unresolved discovery key rather than treating it as the verified CX7 key

Hardware verification

Verified on one global Freo Z Ultra (hardware CX7, cloud identity J5) running firmware v01.13.11.02. Addressed local WebSocket queries return base status, maps, consumables, and device information. The Home Assistant integration created 28 entities and rendered the static map.

The CX7 does not emit broadcasts, so live cleaning position and progress are unavailable; regular status polling and commands continue to work locally. The polling-only runtime was observed beyond the previous reconnect threshold without wake-burst or forced-reconnect warnings.

Variant scope

Issue #5 also reports firmware 1.12.10.02 and a BYWBPqSxeC identity. Those variants are not yet locally verified with this implementation. Additional owner testing is requested before claiming universal CX7 support.

Testing

  • pytest (241 passed)
  • deployed to Home Assistant 2026.8.1 and validated against live hardware

Related to #5

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Your trial has ended. Reactivate Greptile to resume code reviews.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Your trial has ended. Reactivate Greptile to resume code reviews.

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