@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.
- package/.github/ISSUE_TEMPLATE/config.yml +1 -1
- package/.github/copilot-instructions.md +54 -0
- package/.github/labeler.yml +14 -3
- package/CHANGELOG.md +29 -1
- package/README.md +25 -7
- package/config.schema.json +1 -0
- package/dist/devices/device.js +2 -2
- package/dist/devices/device.js.map +1 -1
- package/dist/devices/thermostats.d.ts.map +1 -1
- package/dist/devices/thermostats.js +69 -25
- package/dist/devices/thermostats.js.map +1 -1
- package/dist/devices/valve.d.ts.map +1 -1
- package/dist/devices/valve.js +6 -4
- package/dist/devices/valve.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +246 -248
- package/dist/homebridge-ui/public/lib/featureoptions.js +455 -0
- package/dist/homebridge-ui/public/lib/featureoptions.js.map +1 -0
- package/dist/homebridge-ui/public/lib/webUi-featureoptions.mjs +3765 -0
- package/dist/homebridge-ui/public/lib/webUi.mjs +189 -0
- package/dist/homebridge-ui/server.d.ts.map +1 -1
- package/dist/homebridge-ui/server.js +217 -0
- package/dist/homebridge-ui/server.js.map +1 -1
- package/dist/platform.js +2 -2
- package/dist/platform.js.map +1 -1
- package/dist/resideo-options.d.ts +24 -0
- package/dist/resideo-options.d.ts.map +1 -0
- package/dist/resideo-options.js +215 -0
- package/dist/resideo-options.js.map +1 -0
- package/dist/settings.d.ts +1 -0
- package/dist/settings.d.ts.map +1 -1
- package/docs/assets/main.js +5 -5
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +251 -229
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +26 -18
- package/docs/modules.html +1 -2
- package/docs/variables/default.html +1 -0
- package/eslint.config.js +0 -2
- package/package.json +18 -20
- package/typedoc.json +0 -4
- package/docs/assets/dmt/dmt-component-data.js +0 -1
- package/docs/assets/dmt/dmt-components.css +0 -20
- package/docs/assets/dmt/dmt-components.js +0 -67
- package/docs/assets/dmt/dmt-search.cmp +0 -0
- package/docs/assets/dmt/dmt-theme.css +0 -1
- package/docs/functions/default.html +0 -2
|
@@ -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`
|
package/.github/labeler.yml
CHANGED
|
@@ -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
|
|
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
|
-
|
|
60
|
-
|
|
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/)
|
|
63
|
-
- [T5 Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/t5-smart-thermostat-with-c-wire-adapter-rcht8612wf2005-u/)
|
|
64
|
-
- [Round Thermostat](https://www.resideo.com/us/en/products/air/thermostats/wifi-thermostats/the-round-smart-thermostat-rch9310wf5003-u/)
|
|
65
|
-
|
|
66
|
-
|
|
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.
|
package/config.schema.json
CHANGED
|
@@ -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",
|
package/dist/devices/device.js
CHANGED
|
@@ -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 (
|
|
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
|
|
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;
|
|
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
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
.
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
.
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
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(
|
|
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
|