@homebridge-plugins/homebridge-resideo 3.0.3-beta.0 → 3.0.3-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +1 -1
  2. package/.github/copilot-instructions.md +54 -0
  3. package/.github/labeler.yml +14 -3
  4. package/CHANGELOG.md +29 -1
  5. package/README.md +25 -7
  6. package/config.schema.json +1 -0
  7. package/dist/devices/device.js +2 -2
  8. package/dist/devices/device.js.map +1 -1
  9. package/dist/devices/thermostats.d.ts.map +1 -1
  10. package/dist/devices/thermostats.js +69 -25
  11. package/dist/devices/thermostats.js.map +1 -1
  12. package/dist/devices/valve.d.ts.map +1 -1
  13. package/dist/devices/valve.js +6 -4
  14. package/dist/devices/valve.js.map +1 -1
  15. package/dist/homebridge-ui/public/index.html +246 -248
  16. package/dist/homebridge-ui/public/lib/featureoptions.js +455 -0
  17. package/dist/homebridge-ui/public/lib/featureoptions.js.map +1 -0
  18. package/dist/homebridge-ui/public/lib/webUi-featureoptions.mjs +3765 -0
  19. package/dist/homebridge-ui/public/lib/webUi.mjs +189 -0
  20. package/dist/homebridge-ui/server.d.ts.map +1 -1
  21. package/dist/homebridge-ui/server.js +217 -0
  22. package/dist/homebridge-ui/server.js.map +1 -1
  23. package/dist/platform.js +2 -2
  24. package/dist/platform.js.map +1 -1
  25. package/dist/resideo-options.d.ts +24 -0
  26. package/dist/resideo-options.d.ts.map +1 -0
  27. package/dist/resideo-options.js +215 -0
  28. package/dist/resideo-options.js.map +1 -0
  29. package/dist/settings.d.ts +1 -0
  30. package/dist/settings.d.ts.map +1 -1
  31. package/docs/assets/main.js +5 -5
  32. package/docs/assets/navigation.js +1 -0
  33. package/docs/assets/search.js +1 -0
  34. package/docs/assets/style.css +251 -229
  35. package/docs/hierarchy.html +1 -0
  36. package/docs/index.html +26 -18
  37. package/docs/modules.html +1 -2
  38. package/docs/variables/default.html +1 -0
  39. package/eslint.config.js +0 -2
  40. package/package.json +18 -20
  41. package/typedoc.json +0 -4
  42. package/docs/assets/dmt/dmt-component-data.js +0 -1
  43. package/docs/assets/dmt/dmt-components.css +0 -20
  44. package/docs/assets/dmt/dmt-components.js +0 -67
  45. package/docs/assets/dmt/dmt-search.cmp +0 -0
  46. package/docs/assets/dmt/dmt-theme.css +0 -1
  47. package/docs/functions/default.html +0 -2
@@ -1,4 +1,4 @@
1
- blank_issues_enabled: false
1
+ blank_issues_enabled: true
2
2
  contact_links:
3
3
  - name: Homebridge Discord Channel for Resideo
4
4
  url: https://discord.gg/8fpZA4S
@@ -4,6 +4,51 @@ The Homebridge Resideo plugin is a TypeScript-based Homebridge plugin that integ
4
4
 
5
5
  Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
6
6
 
7
+ ## Branching and Release Strategy
8
+
9
+ ### Beta Branch Targeting
10
+ **IMPORTANT**: All pull requests must be directed at a branch that starts with "beta-" first, never directly to the main/latest branch.
11
+
12
+ #### Branch Creation Rules
13
+ - If no appropriate beta branch exists, create one based on the semantic versioning type:
14
+ - **patch** (bug fixes): Create `beta-X.Y.Z+1` (e.g., `beta-3.0.3` from current `3.0.2`)
15
+ - **minor** (new features): Create `beta-X.Y+1.0` (e.g., `beta-3.1.0` from current `3.0.2`)
16
+ - **major** (breaking changes): Create `beta-X+1.0.0` (e.g., `beta-4.0.0` from current `3.0.2`)
17
+
18
+ #### Required Labels
19
+ Before assigning any issue to Copilot, the following labels **must** be set to determine the change type:
20
+ - `patch` - for bug fixes and small improvements (no API changes)
21
+ - `minor` - for new features (backward compatible API additions)
22
+ - `major` - for breaking changes (incompatible API changes)
23
+
24
+ #### Workflow
25
+ 1. Check issue has required semantic versioning label (`patch`, `minor`, or `major`)
26
+ 2. Identify or create appropriate beta branch based on the label
27
+ 3. Target all work to the beta branch, not main/latest
28
+ 4. Beta branches will be merged to main/latest after testing and validation
29
+
30
+ #### Examples
31
+ - Current version: `3.0.2`
32
+ - Existing beta branch: `beta-3.0.3` (for patch releases)
33
+ - For a **bug fix** with `patch` label: Use existing `beta-3.0.3` or create `beta-3.0.4`
34
+ - For a **new feature** with `minor` label: Create `beta-3.1.0`
35
+ - For a **breaking change** with `major` label: Create `beta-4.0.0`
36
+
37
+ #### Creating Beta Branches
38
+ If no appropriate beta branch exists, create one using:
39
+ ```bash
40
+ git checkout latest # Start from latest stable
41
+ git checkout -b beta-X.Y.Z # Create new beta branch
42
+ git push -u origin beta-X.Y.Z # Push to remote
43
+ ```
44
+
45
+ #### Issue Assignment Requirements
46
+ **Before assigning any issue to Copilot:**
47
+ 1. Verify the issue has one of the required semantic versioning labels (`patch`, `minor`, `major`)
48
+ 2. If missing, add the appropriate label based on the change type
49
+ 3. Confirm the target beta branch exists or needs to be created
50
+ 4. Only then assign the issue to Copilot for implementation
51
+
7
52
  ## Working Effectively
8
53
 
9
54
  ### Environment Setup
@@ -31,6 +76,8 @@ Always reference these instructions first and fallback to search or bash command
31
76
  - `npm run watch` -- development mode with nodemon for auto-rebuilding during development.
32
77
  - Build output is in `dist/` directory and mirrors `src/` structure.
33
78
  - The main plugin entry point is `dist/index.js` which exports the platform registration function.
79
+ - **Always work on beta branches**: PRs should target beta branches, never main/latest directly.
80
+ - **Use semantic versioning**: Ensure the target beta branch matches the change type (patch/minor/major).
34
81
 
35
82
  ## Validation Scenarios
36
83
 
@@ -89,6 +136,13 @@ Since this is a Homebridge plugin that requires real Resideo devices and API cre
89
136
 
90
137
  ## Common Tasks
91
138
 
139
+ ### Beta Branch Workflow
140
+ 1. **Check for Semantic Labels**: Verify issue has `patch`, `minor`, or `major` label
141
+ 2. **Identify Target Branch**: Find or create appropriate beta branch (e.g., `beta-3.0.3`, `beta-3.1.0`, `beta-4.0.0`)
142
+ 3. **Create Feature Branch**: Create your feature branch from the target beta branch
143
+ 4. **Submit PR**: Target your PR to the beta branch, not main/latest
144
+ 5. **Merge to Main**: Beta branches are later merged to main/latest by maintainers
145
+
92
146
  ### Adding New Device Types
93
147
  1. Create new device class in `src/devices/` extending base Device class
94
148
  2. Add device-specific interfaces to `settings.ts`
@@ -20,9 +20,9 @@ dependencies:
20
20
  - any-glob-to-any-file: 'package.json'
21
21
  - any-glob-to-any-file: 'package-lock.json'
22
22
 
23
- # Add 'beta' label to any PR that is opened against the `beta` branch
23
+ # Add 'beta' label to any PR that is opened against a beta branch (beta-X.Y.Z format)
24
24
  beta:
25
- - base-branch: 'beta*'
25
+ - base-branch: 'beta-*'
26
26
 
27
27
  # Add 'alpha' label to any PR that is opened against the `alpha` branch
28
28
  alpha:
@@ -35,4 +35,15 @@ latest:
35
35
  # Add 'workflow' to any changes within 'workflow' folder or any subfolders
36
36
  workflow:
37
37
  - changed-files:
38
- - any-glob-to-any-file: .github/**
38
+ - any-glob-to-any-file: .github/**
39
+
40
+ # Semantic versioning labels for automated release management
41
+ # These labels should be manually applied before assigning issues to Copilot
42
+ patch:
43
+ - any: [] # Manual assignment only
44
+
45
+ minor:
46
+ - any: [] # Manual assignment only
47
+
48
+ major:
49
+ - any: [] # Manual assignment only
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
+ ## [3.1.0](https://github.com/homebridge-plugins/homebridge-resideo/releases/tag/v3.1.0) (2025-09-05)
6
+
7
+ ### What's Changes
8
+ - Fix incorrect server references in Internal Server Error messages ([#799](https://github.com/homebridge-plugins/homebridge-resideo/issues/799))
9
+ - Corrected error messages that incorrectly referenced "SmartThings servers" and "Meater Server" to properly reference "Resideo servers/Server"
10
+ - No functional changes to error handling logic, only corrected the messaging text
11
+ - Added hold switch functionality for thermostats to remove holds and return to schedule
12
+ - Implemented StatefulProgrammableSwitch that allows users to remove thermostat holds via HomeKit scenes and automation
13
+ - Switch state reflects current hold status (OFF for active hold, ON for following schedule)
14
+ - Uses existing `statefulStatus` configuration option for backward compatibility
15
+ - Enhances thermostat control similar to functionality available in other smart thermostat integrations
16
+ - Fixes [#798](https://github.com/homebridge-plugins/homebridge-resideo/issues/798)
17
+ - Added device discovery feature to help users find device IDs for configuration.
18
+ - New `/getAvailableDevices` endpoint in configuration UI that fetches all devices from Resideo API
19
+ - Enhanced DEVICES tab with "Available Devices from Resideo" section showing all devices in user's account
20
+ - Displays device information including Device ID, name, class, model, location, and online status
21
+ - Helps users find device IDs for devices that were reset or newly added to their Resideo account
22
+ - Fixes issue where devices disappeared from cached accessories list after being reset
23
+ - Fix L5 Water Shutoff valve API endpoints to use correct Resideo shutoffvalve endpoints and status parsing, resolves [#887](https://github.com/homebridge-plugins/homebridge-resideo/issues/887) & [#785](https://github.com/homebridge-plugins/homebridge-resideo/issues/785)
24
+ - Corrected API endpoints from `/waterLeakDetectors/{deviceID}` to `/shutoffvalve/{deviceID}` for status retrieval
25
+ - Updated valve control API from POST `/waterLeakDetectors/{deviceID}` to PUT `/shutoffvalve/{deviceID}/control`
26
+ - Ensures proper communication with Resideo's shutoff valve API for accurate device control and status updates
27
+ - Fixed valve status parsing to use `actuatorValve.valveStatus` instead of just device alive status
28
+ - Valve state now correctly reflects actual device open/closed status
29
+ - Housekeeping and updated dependencies.
30
+
31
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-resideo/compare/v3.0.2...v3.1.0
32
+
5
33
  ## [3.0.2](https://github.com/homebridge-plugins/homebridge-resideo/releases/tag/v3.0.2) (2025-03-04)
6
34
 
7
35
  # *No New Releases During Lent*
@@ -196,4 +224,4 @@ All notable changes to this project will be documented in this file. This projec
196
224
  ### What's Changes
197
225
  - Move from `homebridge-honeywell-home` to `homebridge-resideo`
198
226
 
199
- **homebridge-honeywell-home Changelog**: https://github.com/homebridge-plugins/homebridge-resideo/blob/latest/honeywell/homebridge-honeywell-home-changelog.md
227
+ **homebridge-honeywell-home Changelog**: https://github.com/homebridge-plugins/homebridge-resideo/blob/latest/honeywell/homebridge-honeywell-home-changelog.md
package/README.md CHANGED
@@ -56,12 +56,30 @@ plugin allows you to access your Resideo Device(s) from HomeKit with
56
56
 
57
57
  ## Supported Resideo Devices
58
58
 
59
- - [T10 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t10-pro-smart-thermostat-with-redlinkr-room-sensor-thx321wfs2001w-u/) - Already HomeKit Certified
60
- - [T9 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t9-smart-thermostat-with-sensor-rcht9610wfsw2003-u/) - Already HomeKit Certified
59
+ ### Thermostats
60
+
61
+ This plugin supports **any Resideo/Honeywell thermostat** that appears in your Resideo account, including:
62
+
63
+ #### WiFi-enabled Thermostats (Already HomeKit Certified)
64
+ - [T10 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t10-pro-smart-thermostat-with-redlinkr-room-sensor-thx321wfs2001w-u/)
65
+ - [T9 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t9-smart-thermostat-with-sensor-rcht9610wfsw2003-u/)
61
66
  - [T9 Smart Roomsensors](https://www.resideo.com/us/en/products/air/thermostat-accessories/t9-smart-sensor-rchtsensor-1pk-u/)
62
- - [T6 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t6-pro-smart-thermostat-multi-stage-3-heat-2-cool-th6320wf2003-u/) - Already HomeKit Certified
63
- - [T5 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t5-smart-thermostat-with-c-wire-adapter-rcht8612wf2005-u/) - Already HomeKit Certified
64
- - [Round Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/the-round-smart-thermostat-rch9310wf5003-u/) - Already HomeKit Certified
65
- - Some Total Comfort Control Thermostats
66
- - Pushing Commands may not be supported on some.
67
+ - [T6 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t6-pro-smart-thermostat-multi-stage-3-heat-2-cool-th6320wf2003-u/)
68
+ - [T5 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t5-smart-thermostat-with-c-wire-adapter-rcht8612wf2005-u/)
69
+ - [Round Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/the-round-smart-thermostat-rch9310wf5003-u/)
70
+
71
+ #### Total Comfort Control (TCC) Thermostats
72
+ - Most Total Comfort Control thermostats, including:
73
+ - T40 series (e.g., TTHWFP Wireless Programmable Room Thermostat)
74
+ - RTH series programmable thermostats
75
+ - Other TCC-compatible models
76
+
77
+ **Note:** If your thermostat appears in your Resideo account at [account.honeywellhome.com](https://account.honeywellhome.com), it should work with this plugin. Command pushing (setting temperature, mode changes) may not be supported on some older TCC models.
78
+
79
+ ### Other Devices
80
+
67
81
  - [WiFi Water Leak & Freeze Detector](https://www.resideo.com/us/en/products/water/spot-leak-detection/wifi-water-leak-freeze-detector-rchw3610wf1001-u/)
82
+
83
+ ### Unsupported Devices
84
+
85
+ **Smoke/CO2 Detectors**: While Resideo manufactures smart smoke and carbon monoxide detectors (such as the SC5 series), these devices are **not supported** by this plugin because they are not included in the [Resideo Developer API](https://developer.honeywellhome.com/api-methods). Without API endpoints for smoke detectors, the plugin cannot communicate with or control these devices. Support may be added in the future if Resideo expands their API to include smoke detector endpoints.
@@ -529,6 +529,7 @@
529
529
  "options.devices[].thermostat.show_auto",
530
530
  "options.devices[].thermostat.hide_fan",
531
531
  "options.devices[].thermostat.hide_humidity",
532
+ "options.devices[].thermostat.statefulStatus",
532
533
  "options.devices[].thermostat.thermostatSetpointStatus",
533
534
  "options.devices[].leaksensor.hide_leak",
534
535
  "options.devices[].leaksensor.hide_temperature",
@@ -159,7 +159,7 @@ export class deviceBase {
159
159
  this.errorLog(`${this.device.deviceClass}: ${this.accessory.displayName} Too Many Requests, statusCode: ${statusCode}, Action: ${action}`);
160
160
  break;
161
161
  case 500:
162
- this.errorLog(`${this.device.deviceClass}: ${this.accessory.displayName} Internal Server Error (Meater Server), statusCode: ${statusCode}, Action: ${action}`);
162
+ this.errorLog(`${this.device.deviceClass}: ${this.accessory.displayName} Internal Server Error (Resideo Server), statusCode: ${statusCode}, Action: ${action}`);
163
163
  break;
164
164
  default:
165
165
  this.infoLog(`${this.device.deviceClass}: ${this.accessory.displayName} Unknown statusCode: ${statusCode}, Action: ${action}, Report Bugs Here: https://bit.ly/homebridge-resideo-bug-report`);
@@ -201,7 +201,7 @@ export class deviceBase {
201
201
  }
202
202
  else if (e.message.includes('500')) {
203
203
  this.errorLog(`${this.device.deviceClass}: ${this.accessory.displayName} failed to ${action}, Internal Server Error`);
204
- this.debugLog('An unexpected error on the SmartThings servers has occurred. These errors should be rare.');
204
+ this.debugLog('An unexpected error on the Resideo servers has occurred. These errors should be rare.');
205
205
  }
206
206
  else {
207
207
  this.errorLog(`${this.device.deviceClass}: ${this.accessory.displayName} failed to ${action},`);
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"thermostats.d.ts","sourceRoot":"","sources":["../../src/devices/thermostats.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAW,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGpH,OAAO,EAAY,OAAO,EAAE,MAAM,MAAM,CAAA;AAKxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,UAAU;IAoDvC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAlDpC,OAAO,CAAC,UAAU,CAUjB;IAED,OAAO,CAAC,GAAG,CAAC,CAKX;IAED,OAAO,CAAC,cAAc,CAAC,CAItB;IAED,OAAO,CAAC,0BAA0B,CAAC,CAKlC;IAGD,wBAAwB,EAAG,MAAM,CAAA;IAGjC,0BAA0B,EAAG,OAAO,CAAA;IACpC,kBAAkB,EAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGlC,SAAS,EAAG,SAAS,CAAA;IACrB,mBAAmB,EAAG,OAAO,CAAA;IAC7B,WAAW,EAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAG3B,kBAAkB,EAAG,kBAAkB,CAAA;IACvC,oBAAoB,EAAG,OAAO,CAAA;IAC9B,YAAY,EAAG,OAAO,CAAC,IAAI,CAAC,CAAA;gBAGjB,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,aAAa,GAAG,aAAa;IAiWvC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA4FlC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YA0BtB,eAAe;YAaf,qBAAqB;YAgBrB,YAAY;IAmB1B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA0I5B,WAAW;IAsBX,mCAAmC,IAAI,OAAO,CAAC,IAAI,CAAC;IAU1D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CtC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAuE7C,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/B,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa;IAQ/F,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvE,8BAA8B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE,8BAA8B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3E;;OAEG;IACH,sCAAsC,CAAC,KAAK,EAAE,mBAAmB;IAIjE;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCrC;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAKnE"}
1
+ {"version":3,"file":"thermostats.d.ts","sourceRoot":"","sources":["../../src/devices/thermostats.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAW,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGpH,OAAO,EAAY,OAAO,EAAE,MAAM,MAAM,CAAA;AAKxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,UAAU;IAoDvC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAlDpC,OAAO,CAAC,UAAU,CAUjB;IAED,OAAO,CAAC,GAAG,CAAC,CAKX;IAED,OAAO,CAAC,cAAc,CAAC,CAItB;IAED,OAAO,CAAC,0BAA0B,CAAC,CAKlC;IAGD,wBAAwB,EAAG,MAAM,CAAA;IAGjC,0BAA0B,EAAG,OAAO,CAAA;IACpC,kBAAkB,EAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGlC,SAAS,EAAG,SAAS,CAAA;IACrB,mBAAmB,EAAG,OAAO,CAAA;IAC7B,WAAW,EAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAG3B,kBAAkB,EAAG,kBAAkB,CAAA;IACvC,oBAAoB,EAAG,OAAO,CAAA;IAC9B,YAAY,EAAG,OAAO,CAAC,IAAI,CAAC,CAAA;gBAGjB,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,aAAa,GAAG,aAAa;IA4WvC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiHlC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YA0BtB,eAAe;YAaf,qBAAqB;YAgBrB,YAAY;IAmB1B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA0I5B,WAAW;IAsBX,mCAAmC,IAAI,OAAO,CAAC,IAAI,CAAC;IAU1D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CtC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E7C,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/B,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa;IAQ/F,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvE,8BAA8B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE,8BAA8B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3E;;OAEG;IACH,sCAAsC,CAAC,KAAK,EAAE,mBAAmB;IAYjE;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCrC;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAKnE"}
@@ -225,30 +225,43 @@ export class Thermostats extends deviceBase {
225
225
  else {
226
226
  this.debugLog(`${device.deviceClass} ${accessory.displayName} Humidity Sensor Service Not Added`);
227
227
  }
228
- // Initialize StatefulProgrammableSwitch property
229
- accessory.context.StatefulProgrammableSwitch = accessory.context.StatefulProgrammableSwitch ?? {};
230
- this.StatefulProgrammableSwitch = {
231
- Name: accessory.context.StatefulProgrammableSwitch.Name ?? accessory.displayName,
232
- Service: accessory.getService(this.hap.Service.StatefulProgrammableSwitch) ?? accessory.addService(this.hap.Service.StatefulProgrammableSwitch),
233
- ProgrammableSwitchEvent: accessory.context.ProgrammableSwitchEvent ?? this.hap.Characteristic.ProgrammableSwitchEvent.SINGLE_PRESS,
234
- ProgrammableSwitchOutputState: accessory.context.ProgrammableSwitchOutputState ?? 0,
235
- };
236
- accessory.context.StatefulProgrammableSwitch = this.StatefulProgrammableSwitch;
237
- this.StatefulProgrammableSwitch.Service
238
- .setCharacteristic(this.hap.Characteristic.Name, this.StatefulProgrammableSwitch.Name)
239
- .getCharacteristic(this.hap.Characteristic.ProgrammableSwitchEvent)
240
- .setProps({
241
- validValues: [this.hap.Characteristic.ProgrammableSwitchEvent.SINGLE_PRESS],
242
- })
243
- .onGet(() => {
244
- return this.StatefulProgrammableSwitch.ProgrammableSwitchEvent;
245
- });
246
- this.StatefulProgrammableSwitch.Service
247
- .getCharacteristic(this.hap.Characteristic.ProgrammableSwitchOutputState)
248
- .onGet(() => {
249
- return this.StatefulProgrammableSwitch.ProgrammableSwitchOutputState;
250
- })
251
- .onSet(this.handleProgrammableSwitchOutputStateSet.bind(this));
228
+ // Initialize StatefulProgrammableSwitch property (Hold Switch)
229
+ if (device.thermostat?.statefulStatus) {
230
+ this.debugLog(`${device.deviceClass} ${accessory.displayName} Add Hold Switch Service`);
231
+ accessory.context.StatefulProgrammableSwitch = accessory.context.StatefulProgrammableSwitch ?? {};
232
+ this.StatefulProgrammableSwitch = {
233
+ Name: accessory.context.StatefulProgrammableSwitch.Name ?? `${accessory.displayName} Hold Switch`,
234
+ Service: accessory.getService(this.hap.Service.StatefulProgrammableSwitch) ?? accessory.addService(this.hap.Service.StatefulProgrammableSwitch),
235
+ ProgrammableSwitchEvent: accessory.context.ProgrammableSwitchEvent ?? this.hap.Characteristic.ProgrammableSwitchEvent.SINGLE_PRESS,
236
+ ProgrammableSwitchOutputState: accessory.context.ProgrammableSwitchOutputState ?? 0,
237
+ };
238
+ accessory.context.StatefulProgrammableSwitch = this.StatefulProgrammableSwitch;
239
+ this.StatefulProgrammableSwitch.Service
240
+ .setCharacteristic(this.hap.Characteristic.Name, this.StatefulProgrammableSwitch.Name)
241
+ .getCharacteristic(this.hap.Characteristic.ProgrammableSwitchEvent)
242
+ .setProps({
243
+ validValues: [this.hap.Characteristic.ProgrammableSwitchEvent.SINGLE_PRESS],
244
+ })
245
+ .onGet(() => {
246
+ return this.StatefulProgrammableSwitch.ProgrammableSwitchEvent;
247
+ });
248
+ this.StatefulProgrammableSwitch.Service
249
+ .getCharacteristic(this.hap.Characteristic.ProgrammableSwitchOutputState)
250
+ .onGet(() => {
251
+ return this.StatefulProgrammableSwitch.ProgrammableSwitchOutputState;
252
+ })
253
+ .onSet(this.handleProgrammableSwitchOutputStateSet.bind(this));
254
+ }
255
+ else {
256
+ if (this.StatefulProgrammableSwitch) {
257
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Removing Hold Switch Service`);
258
+ this.StatefulProgrammableSwitch.Service = accessory.getService(this.hap.Service.StatefulProgrammableSwitch);
259
+ accessory.removeService(this.StatefulProgrammableSwitch.Service);
260
+ }
261
+ else {
262
+ this.debugLog(`${this.device.deviceType}: ${accessory.displayName} Hold Switch Service Not Added`);
263
+ }
264
+ }
252
265
  // Intial Refresh
253
266
  this.refreshStatus();
254
267
  // Start an update interval
@@ -447,6 +460,25 @@ export class Thermostats extends deviceBase {
447
460
  if (this.device.thermostat?.roompriority?.deviceType === 'Thermostat' && this.device.deviceModel === 'T9-T10') {
448
461
  this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} roomPriorityStatus: ${JSON.stringify(this.roomPriorityStatus)}`);
449
462
  }
463
+ // Update StatefulProgrammableSwitch based on hold status
464
+ if (this.StatefulProgrammableSwitch && this.device.changeableValues?.thermostatSetpointStatus) {
465
+ const holdStatus = this.device.changeableValues.thermostatSetpointStatus;
466
+ this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} parseStatus thermostatSetpointStatus: ${holdStatus}`);
467
+ // Switch reflects hold status: OFF (0) when on hold, ON (1) when no hold (schedule active)
468
+ if (holdStatus === 'NoHold') {
469
+ this.StatefulProgrammableSwitch.ProgrammableSwitchOutputState = 1;
470
+ this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} No hold active - switch state: ON`);
471
+ }
472
+ else {
473
+ // 'TemporaryHold' or 'PermanentHold'
474
+ this.StatefulProgrammableSwitch.ProgrammableSwitchOutputState = 0;
475
+ this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} Hold active (${holdStatus}) - switch state: OFF`);
476
+ // Log holdUntil if available
477
+ if (this.device.changeableValues.holdUntil) {
478
+ this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} Hold until: ${this.device.changeableValues.holdUntil}`);
479
+ }
480
+ }
481
+ }
450
482
  }
451
483
  /**
452
484
  * Asks the Resideo Home API for the latest device information
@@ -797,6 +829,11 @@ export class Thermostats extends deviceBase {
797
829
  }
798
830
  }
799
831
  }
832
+ // Update StatefulProgrammableSwitch characteristic
833
+ if (this.StatefulProgrammableSwitch?.ProgrammableSwitchOutputState !== undefined) {
834
+ this.StatefulProgrammableSwitch.Service.updateCharacteristic(this.hap.Characteristic.ProgrammableSwitchOutputState, this.StatefulProgrammableSwitch.ProgrammableSwitchOutputState);
835
+ this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} updateCharacteristic ProgrammableSwitchOutputState: ${this.StatefulProgrammableSwitch.ProgrammableSwitchOutputState}`);
836
+ }
800
837
  }
801
838
  async apiError(e) {
802
839
  this.Thermostat.Service.updateCharacteristic(this.hap.Characteristic.TemperatureDisplayUnits, e);
@@ -873,7 +910,14 @@ export class Thermostats extends deviceBase {
873
910
  * Handle requests to set the "Programmable Switch Output State" characteristic
874
911
  */
875
912
  handleProgrammableSwitchOutputStateSet(value) {
876
- this.debugLog('Triggered SET ProgrammableSwitchOutputState:', value);
913
+ this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} Triggered SET ProgrammableSwitchOutputState: ${value}`);
914
+ if (value === 1) {
915
+ // Switch ON: Remove hold and return to schedule
916
+ this.debugLog(`${this.device.deviceClass} ${this.accessory.displayName} Setting thermostat to NoHold to return to schedule`);
917
+ this.thermostatSetpointStatus = 'NoHold';
918
+ this.doThermostatUpdate.next();
919
+ }
920
+ // Note: Switch OFF doesn't change anything - it just reflects current hold status
877
921
  }
878
922
  /**
879
923
  * Pushes the requested changes for Fan to the Resideo API