canonical: https://jentic.com/apis/honeywellhome.com/honeywellhome

# Honeywell Home API

Jentic publishes the only available OpenAPI specification for Honeywell Home API, keeping it validated and agent-ready. The Honeywell Home API (Resideo) lets connected applications enumerate a user's locations, read thermostat state, and push setpoint or mode changes to Resideo and Honeywell Home thermostats. Authentication is OAuth 2.0, so the user authorizes the app once and the agent acts within their account scope. Useful for energy savings agents, smart home routines, and HVAC monitoring assistants.

## For AI agents

Read locations and thermostat state, then update setpoints and modes on Honeywell Home and Resideo thermostats over OAuth 2.0.

## Scope

Does not handle leak detectors, security panels, or non-thermostat Resideo devices - use for Honeywell Home location and thermostat control only.

## Capabilities

- Enumerate every location attached to the authenticated Honeywell Home account
- Read current thermostat state including temperature, humidity, and active mode
- Adjust heat and cool setpoints on a specific thermostat by device id
- Switch a thermostat between heat, cool, auto, and off modes
- Drive scheduled energy-saving routines based on occupancy or time of day

## Use cases

### Energy Savings Routine

Run a nightly energy-saving routine that lowers Honeywell Home thermostat setpoints when the household is asleep and restores them before wake-up. The agent reads the current setpoint via GET `/devices/thermostats/{deviceId}`, then issues POST `/devices/thermostats/{deviceId}` with the new heat or cool setpoint. Useful for utility programs and AI home assistants.

Example prompt: At 22:00 each weekday, set heatSetpoint to 64 on thermostat deviceId LCC-1234 via POST `/devices/thermostats/{deviceId}.`

### Multi-Home Climate Dashboard

Power a dashboard that shows live thermostat readings across every home a user owns. The agent calls GET /locations to enumerate sites, then iterates GET `/devices/thermostats/{deviceId}` for each thermostat to display indoor temperature, humidity, and setpoint. Suits property managers and second-home owners.

Example prompt: List all locations via GET /locations, then for each thermostat fetch the current indoor temperature and setpoint and aggregate into a dashboard payload.

### Voice Assistant Climate Control

Wire Honeywell Home into a voice assistant so a user can change a thermostat with natural language. The agent maps an utterance like 'cool the bedroom to 70' to a POST `/devices/thermostats/{deviceId}` call after looking up the right device id. OAuth 2.0 keeps the per-user authorization clean.

Example prompt: Translate 'set bedroom to 70 cool' into a POST `/devices/thermostats/{deviceId}` call with mode=Cool and coolSetpoint=70.

### AI Home Comfort Agent via Jentic

Give an AI home assistant agent access to Honeywell Home via Jentic so the agent can read and adjust thermostats without a custom OAuth implementation. Jentic stores the user's refresh token in your Jentic One instance and exchanges it for an access token at execution time.

Example prompt: Search Jentic for 'update thermostat setpoint', load the schema, and execute a setpoint change of 72 cool against the user's master bedroom thermostat.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/locations` | List all locations on the account |
| GET | `/locations/{locationId}` | Get details for one location |
| GET | `/devices/thermostats/{deviceId}` | Read thermostat state |
| POST | `/devices/thermostats/{deviceId}` | Update thermostat setpoint or mode |

## Key resources

- **Locations** — Enumerate and inspect physical locations registered to a Honeywell Home account.
- **Thermostats** — Read and update Resideo/Honeywell thermostat state, mode, and setpoints by device id.

## Why Jentic

- **Setup:** Wiring Honeywell Home by hand means running its OAuth 2.0 flow, refreshing expired access tokens yourself, and keeping the api.honeywellhome.com/v2 host straight across location and thermostat endpoints. Through Jentic you install once, import the Honeywell Home API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Honeywell Home puts the device id in the URL path (`/devices/thermostats/{deviceId}`), so a rule can pin your agent to one thermostat: it can read and set that device and nothing else. You choose the operations it may call, so changes to other locations or devices are not included unless you add them.
- **Credential handling:** Your Honeywell Home OAuth access and refresh tokens are stored once, encrypted, by your own Jentic One instance, which refreshes them at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'set the thermostat to 68' or 'list my locations', and Jentic returns the matching Honeywell Home operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Ecobee API** — Competing smart thermostat platform with similar setpoint and mode control primitives.
- **Google Smart Device Management API** — Controls Nest thermostats and other Google-managed smart home devices via OAuth.
- **Alpha Vantage API** — Adds energy and commodity price context for utility-aware climate routines.

## FAQ

### Why is there no official OpenAPI spec for Honeywell Home API?

Resideo/Honeywell Home does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Honeywell Home API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Honeywell Home API use?

OAuth 2.0. The end user authorizes your app once on the Honeywell Home consent screen, and your integration receives an access and refresh token. Jentic stores both encrypted in your Jentic One instance and refreshes the access token automatically.

### Can I change a thermostat setpoint with the Honeywell Home API?

Yes. POST `/devices/thermostats/{deviceId}` accepts a payload with mode, heatSetpoint, and coolSetpoint values. The change applies immediately to the device, subject to the thermostat's hold and schedule rules.

### What are the rate limits for the Honeywell Home API?

Resideo enforces per-app rate limits that vary by partnership tier. For typical home automation flows (a handful of reads and writes per device per minute) you are well within bounds - back off on 429 responses and avoid tight polling loops.

### How do I list all my locations with the Honeywell Home API through Jentic?

Run pip install jentic, search for 'list Honeywell locations', load the GET /locations schema, and execute. Jentic handles the OAuth refresh and returns the location array for the authorized user.

### Can the Honeywell Home API control devices other than thermostats?

This spec covers locations and thermostats only. For Resideo devices like leak detectors or security panels, additional API surfaces exist outside the four endpoints documented here.

### Can I limit what my agent is allowed to do with the Honeywell Home API?

Yes. Jentic One is self-hosted, so your own rules decide which Honeywell Home operations and credentials the agent may use. Because the API carries the device id in the URL path (`/devices/thermostats/{deviceId}`), you can pin the agent to a single thermostat and to just the calls you allow, such as reading state with GET `/devices/thermostats/{deviceId}` while withholding the POST that changes setpoints or modes. Any location or device you do not grant, including GET /locations across other homes, stays out of the agent's reach.
