Resideo is a custom integration for Resideo / Honeywell Home thermostats. You sign in with the same email and password you use in the Resideo app — that’s the whole setup — and from then on everything stays in sync in real time: change something on the wall or in the app, and Home Assistant sees it a second later.
Key features
- Real-time push, ~1–3 seconds — true
cloud_pushover the cloud’s persistent SignalR stream, the same one the mobile app listens to. It never polls. - Your everyday credentials — no developer account, no OAuth keys; only the resulting refresh token is stored.
- Room sensors are first-class devices — per-room temperature, humidity, motion, and occupancy, with switches to exclude a room from averaging.
- A full climate entity — heat / cool / off (+ auto where supported), target range, fan Auto / Circulate / On, temporary & permanent holds.
- Only what your hardware supports — entities appear per device capability (CO₂/VOC on air-quality models, ~45 diagnostic entities for the nerds), no dead tiles.
Why another Honeywell integration?
The built-in Lyric integration supports these thermostats too, but it requires a Honeywell developer account with OAuth consumer keys — the source of the forum’s “Invalid client_id” threads — and it updates by polling. This integration talks to the same native cloud API the mobile app uses: regular credentials in, push updates out.
Installation
Or: HACS → ⋮ → Custom repositories → add https://github.com/sfcodes/ha-resideo (category Integration) → install Resideo → restart → sign in.
Fair warning & compatibility
This is unofficial and reverse-engineered against an undocumented API — Resideo may change or cut off access at any time.
Built and tested against an ElitePRO S1200 / X8S with wireless room sensors. T9, T10, and other models the Resideo app manages may well work too — if you try one, please report back either way. A compatibility list will grow right here in this thread.
Full entity tables and troubleshooting (including the workaround for Resideo’s occasional login CAPTCHA) are in the README. Questions, bug reports, and feature requests welcome — I’ll be around in the comments.
Go build something cozy ![]()
![]()
