Summary

Shared Honeywell/Resideo thermostat REST API catalogue. The source does not name RTH9585WF, so compatibility of that model with these endpoints is UNRESOLVED. Authentication uses documented OAuth2 client credentials and authorization code flows. The catalogue includes thermostat state/settings, schedules, fan control, discovery and event subscription endpoints.

Transport

protocols:
  - http
addressing:
  # UNRESOLVED: base URL not stated in source excerpt
  base_url: null
auth:
  type: oauth2  # stated: OAuth2 token endpoints (/accesstoken, /token, /authorize)
  # UNRESOLVED: token format, expiry, scope details not in source excerpt

Traits

# Inferred from GET methods returning device state:
- queryable
# UNRESOLVED: powerable - no explicit power on/off command in source
# UNRESOLVED: routable - no input/output routing for thermostat
# UNRESOLVED: levelable - temperature setpoint commands may exist but payloads not documented

Actions

# OAuth2 token management
- id: obtain_oauth2_token
  label: Obtain OAuth2 Client Credentials Token
  kind: action
  http:
    method: POST
    path: /accesstoken
  params: []
  description: "UNRESOLVED: OAuth2 client-credentials request fields and encoding are not documented in the source."

- id: refresh_token
  label: Refresh Token
  kind: action
  http:
    method: POST
    path: /token
  params: []
  description: "UNRESOLVED: refresh-token request fields and encoding are not documented in the source."

# Device operations
- id: get_thermostat
  label: Get Thermostat
  kind: query
  http:
    method: GET
    path: /devices/thermostats/{deviceId}
  params:
    - name: deviceId
      type: string

- id: change_thermostat_settings
  label: Change Thermostat Settings
  kind: action
  http:
    method: POST
    path: /devices/thermostats/{deviceId}
  params:
    - name: deviceId
      type: string
    # UNRESOLVED: payload schema not documented in source

- id: get_fan_settings
  label: Get Fan Settings
  kind: query
  http:
    method: GET
    path: /devices/thermostats/{deviceId}/fan
  params:
    - name: deviceId
      type: string

- id: change_fan_settings
  label: Change Fan Setting
  kind: action
  http:
    method: POST
    path: /devices/thermostats/{deviceId}/fan
  params:
    - name: deviceId
      type: string
    # UNRESOLVED: payload schema not documented in source

- id: set_schedule
  label: Set Schedule
  kind: action
  http:
    method: POST
    path: /devices/schedule/{deviceId}
  params:
    - name: deviceId
      type: string
    # UNRESOLVED: payload schema not documented in source

- id: get_schedule
  label: Get Schedule
  kind: query
  http:
    method: GET
    path: /devices/schedule/{deviceId}
  params:
    - name: deviceId
      type: string

- id: update_adaptive_recovery
  label: Update Adaptive Recovery
  kind: action
  http:
    method: PUT
    path: /devices/schedule/{deviceId}/settings/temperaturemodes/air
  params:
    - name: deviceId
      type: string
    # UNRESOLVED: payload schema not documented in source

- id: pause_schedule
  label: Pause Schedule
  kind: action
  http:
    method: PUT
    path: /devices/schedule/{deviceId}/status/pause
  params:
    - name: deviceId
      type: string

- id: resume_schedule
  label: Resume Schedule
  kind: action
  http:
    method: PUT
    path: /devices/schedule/{deviceId}/status/resume
  params:
    - name: deviceId
      type: string

- id: get_thermostat_configuration
  label: Get Thermostat Configuration
  kind: query
  http:
    method: GET
    path: /devices/thermostats/{deviceId}/thermostatconfiguration
  params:
    - name: deviceId
      type: string

- id: get_room_priority
  label: Get Room Priority
  kind: query
  http:
    method: GET
    path: /devices/thermostats/{deviceId}/priority
  params:
    - name: deviceId
      type: string

- id: set_room_priority
  label: Set Room Priority
  kind: action
  http:
    method: PUT
    path: /devices/thermostats/{deviceId}/priority
  params:
    - name: deviceId
      type: string
    # UNRESOLVED: payload schema not documented in source

# Location and device listing
- id: get_devices
  label: Get All Devices for Location
  kind: query
  http:
    method: GET
    path: /devices
  params: []

- id: get_all_devices_by_type
  label: Get All Devices by Type
  kind: query
  http:
    method: GET
    path: /devices/{deviceType}
  params:
    - name: deviceType
      type: string

- id: get_device_by_id
  label: Get Specific Device by ID
  kind: query
  http:
    method: GET
    path: /devices/{deviceType}/{deviceId}
  params:
    - name: deviceType
      type: string
    - name: deviceId
      type: string

- id: get_locations
  label: Get All Locations and Devices
  kind: query
  http:
    method: GET
    path: /locations
  params: []

# Additional shared catalogue operations
- id: get_authorization_code
  label: Get an Authorization Code
  kind: query
  http:
    method: GET
    path: /authorize
  params: []
  description: "UNRESOLVED: request fields, encoding and requiredness beyond documented path placeholders are not specified."

- id: create_token_from_authorization_code
  label: Create a Token from an Authorization Code
  kind: action
  http:
    method: POST
    path: /token
  params: []
  description: "UNRESOLVED: request fields, encoding and requiredness beyond documented path placeholders are not specified."

- id: get_schedule_status
  label: Get Schedule Status
  kind: query
  http:
    method: GET
    path: /devices/schedule/{deviceId}/status
  params:
    - name: deviceId
      type: string
      description: "Documented path placeholder; valid values are not specified."

- id: get_rooms_in_group
  label: Get Rooms in a Group
  kind: query
  http:
    method: GET
    path: /devices/thermostats/{deviceId}/group/{groupId}/rooms
  params:
    - name: deviceId
      type: string
      description: "Documented path placeholder; valid values are not specified."
    - name: groupId
      type: string
      description: "Documented path placeholder; valid values are not specified."

- id: create_partner_receiver
  label: Create Partner Receiver
  kind: action
  http:
    method: POST
    path: /v2/events/partner
  params: []
  description: "UNRESOLVED: request fields, encoding and requiredness beyond documented path placeholders are not specified."

- id: get_assigned_events
  label: Get Assigned Events
  kind: query
  http:
    method: GET
    path: /v2/events/partner/events
  params: []

- id: set_events_to_subscribe
  label: Set Events to Subscribe To
  kind: action
  http:
    method: PUT
    path: /v2/events/partner/events
  params: []
  description: "UNRESOLVED: request fields, encoding and requiredness beyond documented path placeholders are not specified."

- id: unsubscribe_device_from_events
  label: Unsubscribe Device from Real-Time Events
  kind: action
  http:
    method: DELETE
    path: /v3/events/subscribe/subsystem/{subsystem}/mac/{deviceId}
  params:
    - name: subsystem
      type: string
      description: "Documented path placeholder; valid values are not specified."
    - name: deviceId
      type: string
      description: "Documented path placeholder; valid values are not specified."
  description: "UNRESOLVED: request fields, encoding and requiredness beyond documented path placeholders are not specified."

- id: get_device_subscription_state
  label: Get Device Subscription State
  kind: query
  http:
    method: GET
    path: /v3/events/subscribe/subsystem/{subsystem}/mac/{deviceId}
  params:
    - name: subsystem
      type: string
      description: "Documented path placeholder; valid values are not specified."
    - name: deviceId
      type: string
      description: "Documented path placeholder; valid values are not specified."

- id: subscribe_device
  label: Subscribe Device
  kind: action
  http:
    method: POST
    path: /v3/events/subscribe/subsystem/{subsystem}/mac/{deviceId}
  params:
    - name: subsystem
      type: string
      description: "Documented path placeholder; valid values are not specified."
    - name: deviceId
      type: string
      description: "Documented path placeholder; valid values are not specified."
  description: "UNRESOLVED: request fields, encoding and requiredness beyond documented path placeholders are not specified."

- id: get_acl_entries
  label: Get ACL Entries
  kind: query
  http:
    method: GET
    path: /
  params: []
  description: "Catalogue lists GET / for ACL entries; exact applicability, parameters and base URL are UNRESOLVED."

Feedbacks

# UNRESOLVED: response payload structures not documented in source excerpt
# GET methods imply state can be read but schemas not provided

Variables

# UNRESOLVED: configurable parameters not enumerated in source

Events

# Event subscription APIs present:
# - /v2/events/partner/events (subscribe/query)
# - /v3/events/subscribe/subsystem/{subsystem}/mac/{deviceId}
# UNRESOLVED: event types and payload schemas not documented

Macros

# UNRESOLVED: no multi-step sequences documented in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source excerpt

Notes

This source is a shared API method catalogue, not proof of RTH9585WF support or cloud-only operation. Request parameters list documented path placeholders only; empty lists do not establish that requests need no body/query/authentication fields. No base URL, content type, payload schema, token lifetime or mandatory refresh schedule is given. Create-token and refresh-token operations share POST /token, but their distinguishing request fields are UNRESOLVED. Event subsystem identifiers and ACL applicability are also UNRESOLVED.

Provenance

source_domains:
  - developer.honeywellhome.com
source_urls:
  - https://developer.honeywellhome.com/api-methods
retrieved_at: 2026-04-30T04:32:30.743Z
last_checked_at: 2026-09-27T15:05:12.333Z

Verification Summary

verdict: verified
checked_at: 2026-09-27T15:05:12.333Z
matched_actions: 29
action_count: 29
confidence: medium
summary: "All 29 applicable catalogue operations match; camera, leak, DHW and valve classes excluded; exact-model applicability remains unknown. (18 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "complete payload schemas for POST/PUT requests not included in source"
- "base URL not stated in source excerpt"
- "token format, expiry, scope details not in source excerpt"
- "powerable - no explicit power on/off command in source"
- "routable - no input/output routing for thermostat"
- "levelable - temperature setpoint commands may exist but payloads not documented"
- "OAuth2 client-credentials request fields and encoding are not documented in the source.\""
- "refresh-token request fields and encoding are not documented in the source.\""
- "payload schema not documented in source"
- "request fields, encoding and requiredness beyond documented path placeholders are not specified.\""
- "response payload structures not documented in source excerpt"
- "configurable parameters not enumerated in source"
- "event types and payload schemas not documented"
- "no multi-step sequences documented in source"
- "no safety warnings or interlock procedures in source excerpt"
- "payload schemas for POST/PUT endpoints not included in source"
- "base URL for API calls not stated in source"
- "event type definitions not documented"
- "source applicability inferred: the manufacturer protocol document names no model; commands verified against it but not confirmed for this exact model"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0