Summary
-
Adds a complete native Hubitat integration for Wyze Robot Vacuums (model JA_RO2/200S), including an app for device discovery and configuration, a driver for device control, and comprehensive documentation
-
hubitat/Wyze-Vacuum at master · bdwilson/hubitat · GitHub (also available in HPM).
-
Only tested on the above model of Vacuum.
-
Authoring assisted by Claude; essentially converted my old driver that relied on wyze-sdk to be native Hubitat app so that I wouldn't have to do all my programming/scheduling logic in Nodered.
Wyze Vacuum Connect App (Wyze-Vacuum-App.groovy): Full-featured app (~1900 lines) that:
-
Authenticates with Wyze's private API using developer credentials
-
Discovers and manages robot vacuum devices
-
Implements intelligent room-based rotation cleaning with configurable cycle lengths and high-traffic room prioritization
-
Provides room timing learning mode to measure actual clean times per room
-
Supports time-budget and fixed-count rotation modes
-
Includes low battery protection, bin emptiness tracking, and fault notifications
-
Dynamically adjusts polling intervals based on vacuum state (fast while cleaning, slow while idle)
-
Handles 2FA authentication and token refresh
Wyze Robot Vacuum Driver (Wyze-Vacuum-Driver.groovy): Child device driver that:
- Exposes standard capabilities (Battery, Refresh, Switch)
- Provides commands for start, pause, dock, suction level control
- Implements room-specific cleaning commands (both named rooms and fixed slot-based buttons)
- Displays comprehensive status attributes including battery, cleaning time/area, fault codes, and rotation state
Documentation:
README.md: Setup instructions, API prerequisites, attribute reference, and usage guideTODO.md: Detailed changelog and implementation notes for 22 completed features/fixespackageManifest.json: HPM package metadataCLAUDE.md: Repository conventions for importUrl management
Notable Implementation Details
- Uses reverse-engineered Wyze API (same as wyze-sdk, homebridge-wyze-robovac) since no official public API exists
- Room rotation intelligently tracks per-room clean times and prioritizes overdue rooms
- Defers room dispatches if vacuum is mid-return-to-dock to avoid silent command drops
- Includes safety net for stale active clean runs that never confirm cleaning
- Dynamic polling prevents missed state transitions while avoiding unnecessary API calls
- All network calls centralized in app; driver is stateless relay for commands/events


