homebridge-nuheat2 1.2.19 → 1.2.21

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/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project should be documented in this file
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.2.20] - 2026-04-30
8
+
9
+ ### Changed
10
+
11
+ - Streamline the README for public plugin users and move release automation details into CONTRIBUTING.md
12
+
7
13
  ## [1.2.19] - 2026-04-30
8
14
 
9
15
  ### Fixed
@@ -0,0 +1,39 @@
1
+ # Contributing
2
+
3
+ Thanks for helping improve `homebridge-nuheat2`. This project keeps the published Homebridge plugin layout stable while gradually modernizing the source in TypeScript.
4
+
5
+ ## Development
6
+
7
+ The source of truth for the platform, API client, accessories, internal models, and tests lives under `src/`. The TypeScript build compiles back into the CommonJS layout used by Homebridge: `index.js`, `lib/`, and `test/`.
8
+
9
+ Common commands:
10
+
11
+ ```bash
12
+ npm run build
13
+ npm run typecheck
14
+ npm test
15
+ ```
16
+
17
+ ## Release Automation
18
+
19
+ GitHub Actions handles CI and npm publishing:
20
+
21
+ - `.github/workflows/ci.yml` runs `npm ci`, `npm run typecheck`, and `npm test` on pushes and pull requests across Node 20, 22, and 24.
22
+ - `.github/workflows/publish.yml` runs on pushes to `master` when `package.json` changes, re-runs checks on Node 24, publishes to npm only when the version is not already on the registry, and creates or updates the matching GitHub Release.
23
+
24
+ Release notes are expected in `docs/release-notes/<version>.md`. The publish workflow fails if that file is missing for the version in `package.json`.
25
+
26
+ ## npm Trusted Publishing
27
+
28
+ Use npm trusted publishing rather than a long-lived automation token.
29
+
30
+ 1. Open the `homebridge-nuheat2` package settings on npm.
31
+ 2. Add a trusted publisher for GitHub Actions.
32
+ 3. Configure:
33
+ - Organization or user: `applemanj`
34
+ - Repository: `homebridge-nuheat2`
35
+ - Workflow filename: `publish.yml`
36
+ 4. Keep the workflow on GitHub-hosted runners.
37
+
38
+ After that, bump the version in `package.json`, push to `master`, and GitHub Actions will publish the new version automatically once checks pass.
39
+
package/README.md CHANGED
@@ -5,9 +5,7 @@
5
5
 
6
6
  Homebridge platform plugin for Nuheat Signature floor-heating thermostats.
7
7
 
8
- This fork focuses on modernizing the plugin for current Homebridge releases, improving runtime stability, and preparing for Homebridge 2.0 while keeping the existing `NuHeat` platform configuration intact.
9
-
10
- This project builds on the original [`senorshaun/homebridge-nuheat`](https://github.com/senorshaun/homebridge-nuheat) plugin and retains attribution for Shaun's original work.
8
+ This maintained fork modernizes Nuheat support for current Homebridge releases while keeping the existing `NuHeat` platform configuration intact for backward compatibility. It builds on Shaun's original [`senorshaun/homebridge-nuheat`](https://github.com/senorshaun/homebridge-nuheat) plugin.
11
9
 
12
10
  ## Highlights
13
11
 
@@ -44,7 +42,7 @@ The published package name for this maintained fork is `homebridge-nuheat2`. The
44
42
 
45
43
  ## Configuration
46
44
 
47
- Most users should configure the plugin through the custom Homebridge admin UI. It is organized into Account, Accessories, Behavior, and Diagnostics panels and writes the same config keys shown below.
45
+ Most users should configure the plugin through the custom Homebridge admin UI. It is organized into Account, Accessories, Behavior, and Diagnostics panels.
48
46
 
49
47
  Sensitive values are handled deliberately: saved passwords are not redisplayed in the UI. Leave the password field blank to keep the saved value, or enter a new value to replace it.
50
48
 
@@ -106,29 +104,23 @@ If `exposeScheduleSwitches` is enabled, the plugin will also create one switch p
106
104
 
107
105
  ## Nuheat API Access
108
106
 
109
- Nuheat's public OpenAPI documentation indicates that third-party developers should request their own API credentials:
107
+ This plugin uses Nuheat's PKCE-based public client for normal authentication. The built-in public `clientId` is `homebridge-nuheat2_260421`; there is no distributable client secret and no user API key setup is required.
108
+
109
+ References:
110
110
 
111
111
  - [Nuheat OpenAPI docs](https://api.mynuheat.com/)
112
112
  - [Nuheat API access request page](https://www.nuheat.com/openapi)
113
113
 
114
- This fork uses Nuheat's PKCE-based public client for normal authentication. The built-in public `clientId` is `homebridge-nuheat2_260421`; there is no distributable client secret and no API key setup is required.
115
-
116
- ## What's New In This Fork
114
+ ## Troubleshooting
117
115
 
118
- - Fixed the manual-mode thermostat issue where HomeKit could immediately snap back to `Off`
119
- - Hardened online-state parsing and general accessory refresh behavior
120
- - Delayed platform startup until Homebridge finishes restoring cached accessories
121
- - Improved SignalR reconnect handling
122
- - Added regression tests for the key thermostat behavior fixes
123
- - Updated package metadata and dependency overrides for a cleaner modern release
124
- - Published under the maintainer-owned package identity `homebridge-nuheat2`
125
- - Added Swagger-aligned account, schedule, and energy API helpers for future enhancements
116
+ - Enable debug logging from the custom UI only while troubleshooting. Debug logs include detailed Nuheat API, notification, and accessory activity.
117
+ - If accessories do not appear after changing allow-lists, save the settings and restart the Nuheat child bridge.
118
+ - If login fails, confirm the same email and password work in the Nuheat app or web portal.
119
+ - If Homebridge shows stale UI fields after an update, close and reopen the plugin settings page.
126
120
 
127
121
  ## Development
128
122
 
129
- The TypeScript migration is now underway for the core runtime. The source of truth for the platform, API client, accessories, internal models, and tests lives under `src/`, and `npm run build` compiles that back into the existing CommonJS layout used by Homebridge (`index.js`, `lib/`, and `test/`).
130
-
131
- This keeps the published plugin layout stable while we migrate incrementally instead of doing a risky one-shot rewrite.
123
+ The source of truth for the platform, API client, accessories, internal models, and tests lives under `src/`. The build compiles that back into the CommonJS layout used by Homebridge: `index.js`, `lib/`, and `test/`.
132
124
 
133
125
  Common development commands:
134
126
 
@@ -143,30 +135,11 @@ Run the test suite with:
143
135
  npm test
144
136
  ```
145
137
 
146
- ## Release Automation
147
-
148
- GitHub Actions now handles two jobs for this repository:
149
-
150
- - `.github/workflows/ci.yml` runs `npm ci`, `npm run typecheck`, and `npm test` on pushes and pull requests across Node 20, 22, and 24
151
- - `.github/workflows/publish.yml` runs on pushes to `master` when `package.json` changes, re-runs the checks on Node 24, publishes to npm only when the `package.json` version is not already on the registry, and creates or updates the matching GitHub Release
152
-
153
- The publish workflow also maps prerelease versions to npm dist-tags automatically. For example, `1.2.7-beta.1` publishes with the `beta` tag, while stable versions publish to `latest`.
154
-
155
- Release notes are expected in `docs/release-notes/<version>.md`. The publish workflow will fail if that file is missing for the version in `package.json`, which makes the GitHub Release step part of the normal release checklist instead of a manual follow-up.
156
-
157
- ### Recommended npm Setup
158
-
159
- Use npm trusted publishing rather than a long-lived automation token.
138
+ Contributor and release notes are in [CONTRIBUTING.md](CONTRIBUTING.md).
160
139
 
161
- 1. Open the `homebridge-nuheat2` package settings on npm.
162
- 2. Add a trusted publisher for GitHub Actions.
163
- 3. Configure:
164
- - Organization or user: `applemanj`
165
- - Repository: `homebridge-nuheat2`
166
- - Workflow filename: `publish.yml`
167
- 4. Keep the workflow on GitHub-hosted runners.
140
+ ## Attribution
168
141
 
169
- After that, bump the version in `package.json`, push to `master`, and GitHub Actions will publish the new version automatically once the checks pass.
142
+ This project is maintained by `applemanj` and retains attribution to SenorShaun for the original MIT-licensed Homebridge Nuheat plugin.
170
143
 
171
144
  ## Future Work
172
145
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-nuheat2",
3
- "version": "1.2.19",
3
+ "version": "1.2.21",
4
4
  "description": "Homebridge Platform for NuHeat Signature Thermostats",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -24,7 +24,11 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/applemanj/homebridge-nuheat2/issues"
26
26
  },
27
- "author": "applemanj",
27
+ "author": {
28
+ "name": "Joshua Appleman",
29
+ "email": "joshua@appleman.us",
30
+ "url": "https://github.com/applemanj"
31
+ },
28
32
  "contributors": [
29
33
  "SenorShaun (original plugin author)"
30
34
  ],
@@ -51,6 +55,7 @@
51
55
  "homebridge-ui",
52
56
  "config.schema.json",
53
57
  "README.md",
58
+ "CONTRIBUTING.md",
54
59
  "CHANGELOG.md"
55
60
  ],
56
61
  "devDependencies": {