@homebridge-plugins/homebridge-updater 3.1.8 → 3.1.9-beta.0

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 (53) hide show
  1. package/CHANGELOG.md +287 -0
  2. package/CLAUDE.md +43 -0
  3. package/README.md +59 -117
  4. package/config.schema.json +7 -0
  5. package/dist/Platform.HAP.js +1 -1
  6. package/dist/Platform.HAP.js.map +1 -1
  7. package/dist/Platform.HAP.test.js +12 -11
  8. package/dist/Platform.HAP.test.js.map +1 -1
  9. package/dist/Platform.Matter.js +1 -1
  10. package/dist/Platform.Matter.js.map +1 -1
  11. package/dist/Platform.Matter.test.js +1 -1
  12. package/dist/configMigration.d.ts.map +1 -1
  13. package/dist/configMigration.js +1 -1
  14. package/dist/configMigration.js.map +1 -1
  15. package/dist/configMigration.test.js +3 -3
  16. package/dist/configMigration.test.js.map +1 -1
  17. package/dist/configTypes.d.ts +1 -0
  18. package/dist/configTypes.d.ts.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/sensorBase.d.ts +2 -0
  22. package/dist/sensorBase.d.ts.map +1 -1
  23. package/dist/sensorBase.js +16 -4
  24. package/dist/sensorBase.js.map +1 -1
  25. package/dist/ui-api.d.ts +22 -0
  26. package/dist/ui-api.d.ts.map +1 -1
  27. package/dist/ui-api.js +80 -9
  28. package/dist/ui-api.js.map +1 -1
  29. package/dist/updateCheckCore.autoupdate.test.d.ts +2 -0
  30. package/dist/updateCheckCore.autoupdate.test.d.ts.map +1 -0
  31. package/dist/updateCheckCore.autoupdate.test.js +55 -0
  32. package/dist/updateCheckCore.autoupdate.test.js.map +1 -0
  33. package/dist/updateCheckCore.beta.test.d.ts +2 -0
  34. package/dist/updateCheckCore.beta.test.d.ts.map +1 -0
  35. package/dist/updateCheckCore.beta.test.js +48 -0
  36. package/dist/updateCheckCore.beta.test.js.map +1 -0
  37. package/dist/updateCheckCore.d.ts +29 -0
  38. package/dist/updateCheckCore.d.ts.map +1 -1
  39. package/dist/updateCheckCore.js +181 -19
  40. package/dist/updateCheckCore.js.map +1 -1
  41. package/dist/updateCheckCore.route.test.d.ts +2 -0
  42. package/dist/updateCheckCore.route.test.d.ts.map +1 -0
  43. package/dist/updateCheckCore.route.test.js +71 -0
  44. package/dist/updateCheckCore.route.test.js.map +1 -0
  45. package/dist/updateSensor.d.ts.map +1 -1
  46. package/dist/updateSensor.js +16 -2
  47. package/dist/updateSensor.js.map +1 -1
  48. package/dist/updateSensor.test.js +61 -15
  49. package/dist/updateSensor.test.js.map +1 -1
  50. package/dist/utils.test.js +6 -6
  51. package/dist/utils.test.js.map +1 -1
  52. package/package.json +22 -31
  53. package/typedoc.json +17 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,287 @@
1
+ ## v3.1.9 (Pending Release)
2
+
3
+ ### Changed
4
+
5
+ - chore(github): release on a published github release, not every push to latest
6
+ - chore(github): align workflows, funding and issue templates with the other org plugins
7
+ - chore: standardise the eslint setup and apply the org lint rules
8
+ - chore: align the npm publishing files with the other org plugins
9
+ - chore: standardise the package manifest with the other org plugins
10
+ - docs: add claude and copilot instructions files
11
+ - docs: use the standard org readme banner
12
+ - chore(deps): dependency updates
13
+ - fix(matter): register a carbon dioxide sensor on the air quality cluster so its state updates instead of failing (#256)
14
+ - fix: propagate a renamed sensor from the config to the cached accessory so the new name reaches homekit (#251)
15
+ - feat: detect homebridge ui beta updates when the ui update policy is set to beta (#255)
16
+ - fix: stop auto-update restarting homebridge in a loop when an update installs but is still reported as out of date (#257)
17
+ - feat: add an option to auto-update only minor and patch versions, leaving major versions to install manually (#263)
18
+ - fix: perform auto-updates through the homebridge ui so they install to the correct plugin path and actually take effect on hb-service and docker setups (#257)
19
+ - fix: detect when running under the homebridge docker image so docker image updates are actually checked (#264)
20
+
21
+ ## [3.1.7](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.1.7) (2026-06-03)
22
+
23
+ ### Changes
24
+
25
+ * chore: update `.gitignore` to ignore webstorm files
26
+ * chore: dependency updates
27
+ * fix(ui-api): send correct instanceId so JWTs pass UI auth on v5.24.0+
28
+
29
+ ## [3.1.2](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.1.2) (2026-05-05)
30
+
31
+ ### Bug Fixes
32
+
33
+ * persist failureSensorType to JSON config by marking it required in schema ([#245](https://github.com/homebridge-plugins/homebridge-updater/issues/245)) ([accf14b](https://github.com/homebridge-plugins/homebridge-updater/commit/accf14b8343609b4534bdf9224d9866505dd056f))
34
+ * fix scoped plugin upgrade clearing config: migrate `PluginUpdate` → `HomebridgeUpdater` by reading `config.json` directly instead of relying on the Homebridge UI API, which cannot return legacy platform entries for the new plugin name ([#246](https://github.com/homebridge-plugins/homebridge-updater/issues/246))
35
+
36
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.1.0...v3.1.2
37
+
38
+ ## [3.1.0](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.1.0) (2026-05-04)
39
+
40
+ ### Enhancements
41
+
42
+ * **Config `Platform` must be manually updated to `HomebridgeUpdater` instead of `PluginUpdate`.**
43
+
44
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.7...v3.1.0
45
+
46
+ ## [3.0.7](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.0.7) (2026-05-04)
47
+
48
+ ### Bug Fixes
49
+
50
+ * Fixed Homebridge Config UI layout rendering by moving `layout` to the top level of `config.schema.json` so the collapsible **Advanced Settings** fieldset is shown and applied correctly.
51
+
52
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.6...v3.0.7
53
+
54
+ ## [3.0.6](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.0.6) (2026-05-03)
55
+
56
+ ### Enhancements
57
+
58
+ * Added npm update support:
59
+ * New `checkNpmUpdates` option to detect newer npm versions.
60
+ * New `autoUpdateNpm` option to automatically update npm.
61
+ * npm support is now environment-safe:
62
+ * If npm is unavailable, npm checks are skipped without crashing.
63
+ * If `autoUpdateNpm` is enabled but npm is unavailable, a clear warning is logged and failure state is tracked.
64
+ * Simplified Matter selection config:
65
+ * Removed `preferMatter` from user config and schema.
66
+ * Protocol selection now auto-prefers Matter when available and `enableMatter` is true.
67
+ * Reordered Config UI fields in `config.schema.json` into a more logical top-to-bottom flow.
68
+
69
+ ### Bug Fixes
70
+
71
+ * Improved Homebridge UI action request compatibility for restart/backup flows:
72
+ * Added JSON request headers/content-length for action endpoints.
73
+ * Added restart method fallback (`PUT` then `POST`) to support API variations across UI versions.
74
+ * Reduces `HTTP 415 Unsupported Media Type` restart failures.
75
+
76
+ ### Documentation
77
+
78
+ * Updated README for new npm options and behavior when npm is not installed.
79
+ * Removed `preferMatter` from README examples and option table.
80
+
81
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.5...v3.0.6
82
+
83
+ ## [3.0.5](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.0.5) (2026-05-03)
84
+
85
+ ### Bug Fixes
86
+
87
+ * Fixed restart API calls not detecting HTTP error responses (4xx/5xx) — error responses are now properly rejected instead of treated as successful
88
+ * Improved restart logging to show actual API response details and endpoint-specific error messages for better diagnostics
89
+
90
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.4...v3.0.5
91
+
92
+ ## [3.0.4](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.0.4) (2026-05-03)
93
+
94
+ ### Bug Fixes
95
+
96
+ * Fix update checks not starting after Homebridge restart ([#233](https://github.com/homebridge-plugins/homebridge-updater/pull/233)) — Cached accessory restoration was preventing scheduled checks and cron jobs from being initialized. Now checks are always started regardless of whether the accessory was newly created or restored from cache.
97
+
98
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.3...v3.0.4
99
+
100
+ ## [3.0.3](https://github.com/homebridge-plugins/homebridge-updater/compare/tag/v3.0.3) (2026-05-03)
101
+ ### Bug Fixes
102
+
103
+ * respect `failureSensorType: "none"` and auto-disable failure sensor when no auto-updates are configured ([#231](https://github.com/homebridge-plugins/homebridge-updater/issues/231)) ([c007709](https://github.com/homebridge-plugins/homebridge-updater/commit/c007709301063abe5df1ca3b24fae12c1f50e75e))
104
+
105
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.2...v3.0.3
106
+
107
+ ## [3.0.2](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v3.0.2) (2026-05-02)
108
+
109
+ ### Enhancements
110
+ - Refactored sensor handling into shared protocol abstractions with a new unified sensor base:
111
+ - Added `MatterSensor` and `HAPSensor` implementations in `src/sensorBase.ts`.
112
+ - Added `UpdateSensor` orchestration in `src/updateSensor.ts`.
113
+ - Simplified platform classes by delegating sensor behavior to shared abstractions.
114
+ - Improved runtime platform selection and startup behavior:
115
+ - Strengthened HAP/Matter proxy logic in `src/utils.ts`.
116
+ - Added explicit protocol selection flow from platform constructors to update sensor initialization.
117
+ - Added debug-level protocol selection logs for easier troubleshooting without noisy normal logs.
118
+
119
+ ### Bug Fixes
120
+ - Fixed Matter startup regression where cached Matter accessories could be treated as orphaned on restart:
121
+ - Ensured stable proxy instantiation/delegation for Homebridge platform lifecycle handling.
122
+ - Improved Matter capability detection compatibility across Homebridge API shapes.
123
+ - Prevented mixed protocol registration by explicitly selecting `hap` or `matter` for sensor wiring.
124
+ - Hardened accessory handling across platform implementations:
125
+ - Improved update/failure sensor registration and restore behavior in both HAP and Matter paths.
126
+
127
+ ### Other
128
+ - Updated tests for platform proxy behavior and protocol selection edge cases in `src/utils.test.ts`.
129
+ - Updated dependencies and lockfile metadata.
130
+ - Regenerated docs and TypeDoc assets.
131
+
132
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.1...v3.0.2
133
+
134
+ ## [3.0.1](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v3.0.1) (2026-04-29)
135
+
136
+ ### Bug Fixes
137
+ - Fixed crash in Matter platform when running under ESM: removed use of `require` and now initialize Docker detection synchronously for compatibility with Homebridge v2.0+ and Node.js ESM environments.
138
+
139
+ ### Other
140
+ - Internal refactor: clarified ESM limitations for Docker detection in Matter platform constructor.
141
+
142
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v3.0.0...v3.0.1
143
+
144
+ ## [3.0.0](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v3.0.0) (2026-04-29)
145
+
146
+ ## What's Changed
147
+ ### Enhancements
148
+ - Node.js update check and auto-update:
149
+ - The plugin can now check for new Node.js LTS versions and notify if an update is available. Controlled by the new `checkNodeUpdates` config option. Implements [#206](https://github.com/homebridge-plugins/homebridge-updater/issues/206).
150
+ - New config option: `autoUpdateNode` — If enabled, the plugin will attempt to automatically update Node.js using `hb-service update-node` when a new LTS version is detected and the system supports it.
151
+ - The plugin checks for `hb-service update-node` support before attempting the update, and logs the result (success or failure).
152
+ - If a Node.js update is available, a log line is emitted when the HomeKit/Matter sensor is tripped due to Node.js.
153
+ - The HomeKit/Matter sensor is now tripped if any update is available, including Node.js, Homebridge, UI, plugins, or Docker.
154
+ - Suppress or log at debug level when no updates are found, instead of always logging "Found 0 available update(s)". Fixes [#224](https://github.com/homebridge-plugins/homebridge-updater/issues/224).
155
+ - Log level for update notifications is now correct per update type (Homebridge, UI, plugins, Docker). Each update logs as info only if a new update is found for that type, otherwise as debug. Fixes [#225](https://github.com/homebridge-plugins/homebridge-updater/issues/225).
156
+ - Full Homebridge v2.0 Matter support with HAP fallback. Matter is now the default platform when available and enabled, with seamless fallback to HAP if not.
157
+ - Refactored to use a runtime proxy/factory pattern for platform selection (HAP vs Matter).
158
+ - Added `preferMatter`, `enableMatter`, `disableMatter`, and `externalAccessory` options to configuration and schema.
159
+ - Improved accessory registration and cleanup logic for both HAP and Matter, including external accessory support.
160
+ - Switched all HTTP(S) requests to native Node.js http/https modules with manual retry and DNS caching (cacheable-lookup). Removed axios and axios-retry dependencies.
161
+ - Updated documentation and schema for new features and options.
162
+
163
+ ### Bug Fixes
164
+ - Croner cron jobs are now unref'd so they do not prevent Node.js from exiting cleanly. Fixes [#222](https://github.com/homebridge-plugins/homebridge-updater/issues/222).
165
+ - Accessory/device name now uses the configured `name` property as the HomeKit/Matter accessory name, not just the platform name. Fixes [#223](https://github.com/homebridge-plugins/homebridge-updater/issues/223).
166
+
167
+ ### Other
168
+ - Added and updated tests for new config options and proxy logic. All tests pass.
169
+ - Updated all dependencies and removed unused packages for improved security and compatibility.
170
+ - General code cleanup, improved file/class naming, and import clarity.
171
+
172
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.7...v3.0.0
173
+
174
+ ## [2.3.7](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.7) (2025-12-01)
175
+
176
+ ### What's Changed
177
+ - Clamp max DNS cache TTL to prevent excessive warnings ([#208](https://github.com/homebridge-plugins/homebridge-updater/pull/208))
178
+
179
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.6...v2.3.7
180
+
181
+ ## [2.3.6](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.6) (2025-11-01)
182
+
183
+ ### What's Changed
184
+ - Add explicit warning when an outdated Homebridge UI (homebridge-config-ui-x) is detected, explaining that a newer UI version is required for full functionality ([#200](https://github.com/homebridge-plugins/homebridge-updater/pull/200))
185
+ - Clarify the requirement notice to better guide users on updating the Homebridge UI
186
+ - Housekeeping and updated dependencies.
187
+
188
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.5...v2.3.6
189
+
190
+ ## [2.3.5](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.5) (2025-11-01)
191
+
192
+ ### What's Changed
193
+ - Fix error where current Docker version is not found by @justjam2013 in https://github.com/homebridge-plugins/homebridge-updater/pull/166
194
+ - v2.3.5 by @donavanbecker in https://github.com/homebridge-plugins/homebridge-updater/pull/189
195
+
196
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.4...v2.3.5
197
+
198
+ ## [2.3.4](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.4) (2025-09-14)
199
+
200
+ ### What's Changed
201
+ - Fix error where current Docker version is not found by @justjam2013 in https://github.com/homebridge-plugins/homebridge-updater/pull/166
202
+
203
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.3...v2.3.4
204
+
205
+ ## [2.3.3](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.3) (2025-09-14)
206
+
207
+ ### What's Changed
208
+ - v2.3.3 ([b7a4c9e](https://github.com/homebridge-plugins/homebridge-updater/commit/b7a4c9ec2b079b6f3e51411311573080b281d97c))
209
+
210
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.2...v2.3.3
211
+
212
+ ## [2.3.2](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.2) (2025-09-13)
213
+
214
+ ### What's Changed
215
+ - Remove double variables for file and directory paths (#115) ([4743e21](https://github.com/homebridge-plugins/homebridge-updater/commit/4743e21c40bac30c1084d6ca0642f1d9ad723579))
216
+ - Remove npm-check-updates (NCU) option as it doesn't add value (#117) ([d8f5ee5](https://github.com/homebridge-plugins/homebridge-updater/commit/d8f5ee5dfc3886d665b646803fa48c1f6506abdb))
217
+ - Added cached dns lookup and retries (#118) ([f375adb](https://github.com/homebridge-plugins/homebridge-updater/commit/f375adb8c7a3bae35ff548c86c16a34e7daa037c))
218
+ - Add NodeJS 24 support by updating engines.node to ^20 || ^22 || ^24 (rebased against beta-2.3.2) (#123) ([f64de4d](https://github.com/homebridge-plugins/homebridge-updater/commit/f64de4d1f3f6d4bf46102b9ca14716360aba6ce0))
219
+
220
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.1...v2.3.2
221
+
222
+ ## [2.3.1](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.1) (2025-09-03)
223
+
224
+ ### What's Changed
225
+ - Merge branch 'latest' into beta-2.3.1 ([f30d910](https://github.com/homebridge-plugins/homebridge-updater/commit/f30d91080dd11fecafc84275bd078ce30e15fe2d))
226
+ - Fix NCU filter regex construction to detect plugin updates correctly (#92) ([32733d8](https://github.com/homebridge-plugins/homebridge-updater/commit/32733d889fc9bdcf0d58f279f387b105a36bfc06))
227
+ - v2.3.1 ([c6b1af1](https://github.com/homebridge-plugins/homebridge-updater/commit/c6b1af1844f90520bb9217171d6117c6425f58d9))
228
+ - Fix Homebridge restart failure: use PUT method and implement endpoint fallback (#101) ([feb32be](https://github.com/homebridge-plugins/homebridge-updater/commit/feb32befefd97a5f87155ca95f58ebb105a83471))
229
+ - Add name validation to prevent HomeKit pairing issues with child bridges (#91) ([4db28af](https://github.com/homebridge-plugins/homebridge-updater/commit/4db28afd90f4f5c21c10579d8d0da08e022ea8f6))
230
+ - Patch ncu (#99) ([d3b7a3f](https://github.com/homebridge-plugins/homebridge-updater/commit/d3b7a3f5326142f1aa54a6d5247546e6803d8b48))
231
+ - Parenthesis & patch ncu (#98) ([7796773](https://github.com/homebridge-plugins/homebridge-updater/commit/7796773d376e3ff936a9724109125fc1c671dd7f))
232
+ - resolve __dirname is not defined (#97) ([c295a20](https://github.com/homebridge-plugins/homebridge-updater/commit/c295a20962e982b449bd1296b0b02708e1fde058))
233
+ - Add automatic update functionality with configurable npm support, restart capability, automatic backup creation, and configurable failure notifications for Homebridge, UI, and plugins (#94) ([e58b488](https://github.com/homebridge-plugins/homebridge-updater/commit/e58b488edf02eccf801627314107a70f08c36693))
234
+ - Fix npm-check-updates CLI path for v16+ compatibility (#96) ([acf607c](https://github.com/homebridge-plugins/homebridge-updater/commit/acf607c9cd5944eb418b88a8465744cb942d1460))
235
+ - Update available update list (#89) ([bd84b83](https://github.com/homebridge-plugins/homebridge-updater/commit/bd84b83556c3bffdac0d35f15e1047f7c54e8887))
236
+ - Fix ReferenceError: __dirname is not defined in ESM module (#86) ([5668b01](https://github.com/homebridge-plugins/homebridge-updater/commit/5668b015900d708bbeb4a38d82fac14a7215f022))
237
+
238
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.3.0...v2.3.1
239
+
240
+ ## [2.3.0](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.3.0) (2025-08-18)
241
+
242
+ ### What's Changed
243
+ - Display newer updates in logs
244
+
245
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.2.1...v2.3.0
246
+
247
+ ## [2.2.1](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.2.1) (2025-08-09)
248
+
249
+ ### What's Changed
250
+ - Change logging to daily
251
+ - Fix log info output
252
+
253
+ ## [2.1.0](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.1.0) (2025-08-09)
254
+
255
+ ### What's Changed
256
+ - Output available updates to log
257
+ - Fix plugin update check
258
+ - Fixed version checks and added debug output
259
+ - Add docker version check and fixed NCU search
260
+ - Fixed field names
261
+ - Fix default check value
262
+ - Select which components to check for updates
263
+ - Fix Labler
264
+ - Build fixes and improvements
265
+
266
+ ## [2.0.2](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.0.2) (2025-03-04)
267
+
268
+ ### What's Changes
269
+ - Housekeeping and updated dependencies.
270
+
271
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.0.1...v2.0.2
272
+
273
+ ## [2.0.1](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.0.1) (2025-01-25)
274
+
275
+ ### What's Changes
276
+ - Housekeeping and updated dependencies.
277
+
278
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v2.0.0...v2.0.1
279
+
280
+ ## [2.0.0](https://github.com/homebridge-plugins/homebridge-updater/releases/tag/v2.0.0) (2025-01-16)
281
+
282
+ ### What's Changes
283
+ - This plugins has moved to a scoped plugin under the `@homebridge-plugins` org.
284
+ - Homebridge UI is designed to transition you to the new scoped plugin.
285
+ - Updated to ES Module
286
+
287
+ **Full Changelog**: https://github.com/homebridge-plugins/homebridge-updater/compare/v1.0.2...v2.0.0
package/CLAUDE.md ADDED
@@ -0,0 +1,43 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Commands
6
+
7
+ - `npm run build` — `rimraf ./dist && tsc && npm run plugin-ui`. The `plugin-ui` step rsyncs `src/homebridge-ui/public/index.html` into `dist/` (the custom settings UI). Skipping it produces a broken published package.
8
+ - `npm run lint` — ESLint over the whole repo with `--max-warnings=0`. CI fails on any warning. `npm run lint:fix` to autofix.
9
+ - `npm test` — vitest, colocated `src/**/*.test.ts` files (see `vitest.config.ts`). `npm run test:watch` and `npm run test-coverage` also available.
10
+ - `npm run watch` — build, `npm link`, then `nodemon`: recompiles and restarts on `src/**/*.ts` changes (see `nodemon.json`).
11
+ - `npm run docs` — typedoc into `docs/` (gitignored — generated output is never committed).
12
+ - `npm run prepublishOnly` — lint then build; runs automatically on publish.
13
+
14
+ CI (`.github/workflows/build.yml`) runs install + lint on Node 22.x/24.x. Releases publish via `.github/workflows/release.yml`: a GitHub release (tag `vX.Y.Z`) publishes to npm's `latest` tag; pushes to `beta-X.Y.Z` / `alpha-X.Y.Z` branches publish incrementing prerelease versions to the `beta` / `alpha` tags.
15
+
16
+ Supported Node: `^22.12.0 || ^24.0.0`. Homebridge: `^1.11.4 || ^2.0.0`.
17
+
18
+ ## Architecture
19
+
20
+ Homebridge dynamic platform plugin (`platform: "HomebridgeUpdater"`, package `@homebridge-plugins/homebridge-updater`) that checks npm for newer versions of Homebridge itself and of installed plugins, and surfaces "an update is available" to HomeKit as a sensor. Unlike the other plugins it talks to no device — it reads the local Homebridge install and the public npm registry.
21
+
22
+ ### HAP/Matter platform selection
23
+
24
+ `src/index.ts` registers a runtime proxy (`createPlatformProxy` in `src/utils.ts`) that instantiates the Matter platform (`src/Platform.Matter.ts`) when Homebridge reports Matter available+enabled, otherwise the HAP `src/Platform.HAP.ts`. Matter API calls must stay optional-chained.
25
+
26
+ ### Update checking (`src/updateCheckCore.ts`)
27
+
28
+ Enumerates installed plugins and queries `registry.npmjs.org` (over `https` with a `cacheable-lookup` DNS cache) for the latest published version of each, plus the running Node/Homebridge versions. Checks are scheduled with `croner`. Results feed the sensors.
29
+
30
+ ### Sensors (`src/updateSensor.ts`, `src/failureSensor.ts`, `src/sensorBase.ts`)
31
+
32
+ Each "update available" indicator is exposed as a HomeKit sensor whose **type is user-selectable** via `sensorType` in `PluginUpdatePlatformConfig` (`src/configTypes.ts`) — motion, contact, leak, occupancy, smoke, etc. `failureSensor.ts` reports when a check itself failed. `configMigration.ts` upgrades older config shapes on load.
33
+
34
+ ### Custom UI backend (`src/ui-api.ts`)
35
+
36
+ The settings UI server signs a short-lived JWT (`jsonwebtoken`) to authenticate its own requests. `Buffer`/`process` are imported from `node:*` rather than used as globals.
37
+
38
+ ## Conventions
39
+
40
+ - TypeScript ESM (`"type": "module"`): relative imports use `.js` extensions even from `.ts` source.
41
+ - ESLint is `@antfu/eslint-config` (flat config in `eslint.config.js`): single quotes, 1tbs braces, `curly` multi-line only (single-line guards must use full multi-line braces), sorted imports. Run `npm run lint:fix` before committing.
42
+ - `config.schema.json` defines the Homebridge UI form and must stay in sync with `PluginUpdatePlatformConfig` in `src/configTypes.ts`.
43
+ - Licensed BSD-2-Clause — keep the LICENSE and upstream attribution intact.
package/README.md CHANGED
@@ -1,117 +1,59 @@
1
- # homebridge-updater
2
-
3
- [![npm](https://img.shields.io/npm/v/@homebridge-plugins/homebridge-updater) ![npm](https://img.shields.io/npm/dt/@homebridge-plugins/homebridge-updater)](https://www.npmjs.com/package/@homebridge-plugins/homebridge-updater) [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
4
-
5
- A [Homebridge](https://github.com/nfarina/homebridge) plugin that reports update availability as sensors and can optionally run automatic updates.
6
-
7
- ## Features
8
-
9
- - Works with both HomeKit Accessory Protocol (HAP) and Matter at runtime
10
- - Exposes an update availability sensor
11
- - Exposes an optional failure sensor for automatic update/restart failures
12
- - Checks for updates to Node.js (LTS), Homebridge, Homebridge UI, plugins, and Docker images
13
- - Supports optional auto-updates for Node.js, Homebridge, Homebridge UI, and plugins
14
- - Intentionally does not auto-update Docker containers (check-only)
15
-
16
- ## Installation
17
-
18
- 1. Install Homebridge using the [official instructions](https://github.com/homebridge/homebridge/wiki).
19
- 2. Install this plugin using: `sudo npm install -g @homebridge-plugins/homebridge-updater`.
20
- 3. Update your configuration file. See sample config.json snippet below.
21
-
22
- ### Configuration
23
-
24
- Configuration sample:
25
-
26
- ```json
27
- "platforms": [
28
- {
29
- "platform": "HomebridgeUpdater",
30
- "name": "Plugin Update",
31
- "sensorType": "contact",
32
- "failureSensorType": "motion",
33
- "checkNodeUpdates": true,
34
- "checkNpmUpdates": true,
35
- "checkHomebridgeUpdates": true,
36
- "checkHomebridgeUIUpdates": true,
37
- "checkPluginUpdates": true,
38
- "checkDockerUpdates": false,
39
- "initialCheckDelay": 10,
40
- "autoUpdateNode": false,
41
- "autoUpdateNpm": false,
42
- "autoUpdateHomebridge": false,
43
- "autoUpdateHomebridgeUI": false,
44
- "autoUpdatePlugins": false,
45
- "allowDirectNpmUpdates": false,
46
- "autoRestartAfterUpdates": false,
47
- "respectDisabledPlugins": true,
48
- "enableMatter": true
49
- }
50
- ]
51
- ```
52
-
53
- #### Fields
54
-
55
- All sensor type options are:
56
-
57
- - `motion`
58
- - `contact`
59
- - `occupancy`
60
- - `humidity`
61
- - `light`
62
- - `air`
63
- - `leak`
64
- - `smoke`
65
- - `dioxide`
66
- - `monoxide`
67
-
68
- `failureSensorType` also supports `none` to disable the failure sensor.
69
-
70
- | Field | Description | Default |
71
- | --- | --- | --- |
72
- | `platform` | Must always be `HomebridgeUpdater` | Required |
73
- | `name` | Accessory name shown in Home app | `Plugin Update` |
74
- | `sensorType` | Sensor type for the main update sensor | `motion` |
75
- | `failureSensorType` | Sensor type for auto-update failure status, or `none` to disable | `motion` |
76
- | `checkNodeUpdates` | Check for newer Node.js LTS versions | `false` |
77
- | `checkNpmUpdates` | Check for newer npm versions when npm is installed | `false` |
78
- | `checkHomebridgeUpdates` | Check for Homebridge server updates | `true` |
79
- | `checkHomebridgeUIUpdates` | Check for Homebridge Config UI updates | `true` |
80
- | `checkPluginUpdates` | Check for installed plugin updates | `true` |
81
- | `checkDockerUpdates` | Check for newer Docker image versions when running in Docker | `false` |
82
- | `initialCheckDelay` | Delay in seconds before the first check after startup | `10` |
83
- | `autoUpdateNode` | Automatically run Node.js updates using `hb-service update-node` when supported | `false` |
84
- | `autoUpdateNpm` | Automatically update npm when a newer version is available | `false` |
85
- | `autoUpdateHomebridge` | Automatically update Homebridge | `false` |
86
- | `autoUpdateHomebridgeUI` | Automatically update Homebridge Config UI | `false` |
87
- | `autoUpdatePlugins` | Automatically update plugins | `false` |
88
- | `allowDirectNpmUpdates` | Allow direct npm update commands when UI API is unavailable | `false` |
89
- | `autoRestartAfterUpdates` | Restart Homebridge after successful auto-updates | `false` |
90
- | `respectDisabledPlugins` | Respect hidden update notifications configured in Homebridge UI | `true` |
91
- | `enableMatter` | Enable Matter support when available in Homebridge | `true` |
92
-
93
- ## How It Works
94
-
95
- - The plugin checks selected update sources on a schedule.
96
- - If any enabled source has updates, the main sensor is set to active.
97
- - If automatic updates are enabled and an update/restart fails, the failure sensor is set to active.
98
- - If no auto-update options are enabled, the failure sensor is automatically not exposed.
99
-
100
- ## Automatic Updates
101
-
102
- When automatic updates are enabled, the plugin will:
103
-
104
- 1. Attempt to create a backup before updates when Homebridge UI is available.
105
- 2. Perform configured updates (Node.js, Homebridge, Homebridge UI, plugins).
106
- 3. Optionally restart Homebridge if `autoRestartAfterUpdates` is enabled.
107
- 4. Surface failures through the failure sensor.
108
-
109
- Automatic updates are disabled by default. Enable them only if your environment has appropriate permissions and you are comfortable with unattended updates.
110
-
111
- If Homebridge UI is not configured, automatic updates require `allowDirectNpmUpdates: true`.
112
-
113
- If npm is not installed in your environment, npm checks and npm auto-update are skipped safely.
114
-
115
- ## Docker Notes
116
-
117
- Docker update checks are notification-only. The plugin does not attempt in-container self-updates by design, to avoid interrupting or corrupting the running container.
1
+ <p align="center">
2
+ <a href="https://github.com/homebridge-plugins/homebridge-updater"><img alt="homebridge-updater" src="https://raw.githubusercontent.com/homebridge-plugins/homebridge-updater/latest/branding/Homebridge_x_Updater.png" width="600px"></a>
3
+ </p>
4
+ <span align="center">
5
+
6
+ ## homebridge-updater
7
+
8
+ Homebridge plugin that surfaces available Homebridge and plugin updates as HomeKit sensors
9
+
10
+ [![npm](https://img.shields.io/npm/v/@homebridge-plugins/homebridge-updater/latest?label=latest)](https://www.npmjs.com/package/@homebridge-plugins/homebridge-updater)
11
+ [![npm](https://img.shields.io/npm/v/@homebridge-plugins/homebridge-updater/beta?label=beta)](https://github.com/homebridge/homebridge/wiki/How-to-Install-Alternate-Plugin-Versions)<br>
12
+ [![npm](https://img.shields.io/npm/dt/@homebridge-plugins/homebridge-updater)](https://www.npmjs.com/package/@homebridge-plugins/homebridge-updater)
13
+ [![Discord](https://img.shields.io/discord/432663330281226270?color=728ED5&logo=discord&label=hb-discord)](https://discord.gg/bHjKNkN)
14
+
15
+ </span>
16
+
17
+ ### Plugin Information
18
+
19
+ - This plugin checks for updates to Homebridge and your installed plugins, and exposes the result to HomeKit. The plugin:
20
+ - reads your local Homebridge install and queries the public npm registry - no account or device is required
21
+ - lets you choose which HomeKit sensor type represents "an update is available" (for example a motion, contact or occupancy sensor)
22
+ - can optionally expose the sensors over Matter as well as HomeKit
23
+
24
+ ### Prerequisites
25
+
26
+ - To use this plugin, you will need to already have:
27
+ - [Node](https://nodejs.org): latest version of `v22` or `v24` - any other major version is not supported.
28
+ - [Homebridge](https://homebridge.io): `v2` - refer to link for more information and installation instructions.
29
+
30
+ ### Setup
31
+
32
+ - [Installation](https://github.com/homebridge-plugins/homebridge-updater/wiki/Installation)
33
+ - [Configuration](https://github.com/homebridge-plugins/homebridge-updater/wiki/Configuration)
34
+ - [Beta Version](https://github.com/homebridge-plugins/homebridge-updater/wiki/Beta-Version)
35
+ - [Node Version](https://github.com/homebridge-plugins/homebridge-updater/wiki/Node-Version)
36
+
37
+ ### Features
38
+
39
+ - A HomeKit sensor that trips when a Homebridge or plugin update is available
40
+ - Your choice of sensor type for the indicator
41
+ - A separate sensor that reports when an update check itself failed
42
+ - Scheduled, automatic re-checks
43
+
44
+ ### Help/About
45
+
46
+ - [Common Errors](https://github.com/homebridge-plugins/homebridge-updater/wiki/Common-Errors)
47
+ - [Support Request](https://github.com/homebridge-plugins/homebridge-updater/issues/new/choose)
48
+ - [Changelog](https://github.com/homebridge-plugins/homebridge-updater/blob/latest/CHANGELOG.md)
49
+ - [About Me](https://github.com/sponsors/bwp91)
50
+
51
+ ### Credits
52
+
53
+ - To David Maher (Sunoo): the original creator of this plugin.
54
+ - To the creators/contributors of [Homebridge](https://homebridge.io) who make this plugin possible.
55
+
56
+ ### Disclaimer
57
+
58
+ - This plugin is a personal project that I maintain in my free time.
59
+ - Use this plugin entirely at your own risk - please see licence for more information.
@@ -215,6 +215,12 @@
215
215
  "description": "Automatically restart Homebridge after successful automatic updates to apply changes",
216
216
  "default": false
217
217
  },
218
+ "autoUpdateSkipMajorVersions": {
219
+ "title": "Skip major versions when auto-updating",
220
+ "type": "boolean",
221
+ "description": "Only auto-update minor and patch versions. New major versions are still shown as available but are left for you to install manually, to avoid unexpected breaking changes.",
222
+ "default": false
223
+ },
218
224
  "uiNotice": {
219
225
  "title": "",
220
226
  "description": "Note: This feature may require updating Homebridge UI to a newer version. It is recommended to update to the latest version.",
@@ -250,6 +256,7 @@
250
256
  "autoUpdatePlugins",
251
257
  "allowDirectNpmUpdates",
252
258
  "autoRestartAfterUpdates",
259
+ "autoUpdateSkipMajorVersions",
253
260
  "uiNotice"
254
261
  ]
255
262
  }
@@ -31,7 +31,7 @@ export class PluginUpdatePlatform {
31
31
  api.on('didFinishLaunching', this.handleLegacyMigration.bind(this));
32
32
  this.updateSensor = new UpdateSensor(log, config, api, {
33
33
  protocol: 'hap',
34
- onFailureStateChange: isFailureSensorEnabled(config) ? (failed) => this.failureSensor.setState(failed) : undefined,
34
+ onFailureStateChange: isFailureSensorEnabled(config) ? failed => this.failureSensor.setState(failed) : undefined,
35
35
  });
36
36
  // Register the failure sensor accessory
37
37
  api.on('didFinishLaunching', this.addFailureSensor.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"Platform.HAP.js","sourceRoot":"","sources":["../src/Platform.HAP.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Platform.HAP.js","sourceRoot":"","sources":["../src/Platform.HAP.ts"],"names":[],"mappings":"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"}