homebridge-navilink 1.0.0 → 1.0.2
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 +14 -0
- package/README.md +6 -1
- package/dist/diagnostics/format.d.ts +4 -1
- package/dist/diagnostics/format.js +5 -3
- package/docs/FEATURES.md +1 -1
- package/docs/README-DETAILED.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.0.2](https://github.com/tbaur/homebridge-navilink/compare/v1.0.1...v1.0.2) (2026-09-20)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* use the cropped 2021 mark as the plugin icon ([#18](https://github.com/tbaur/homebridge-navilink/issues/18)) ([062cc0b](https://github.com/tbaur/homebridge-navilink/commit/062cc0b1dcc2d14de6810a45844dadc2108687d1))
|
|
9
|
+
|
|
10
|
+
## [1.0.1](https://github.com/tbaur/homebridge-navilink/compare/v1.0.0...v1.0.1) (2026-09-20)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* keep the diagnostic heartbeat on the short mqtt token ([#16](https://github.com/tbaur/homebridge-navilink/issues/16)) ([5097514](https://github.com/tbaur/homebridge-navilink/commit/509751421e117fd785594cbf269996cdd1bad85d))
|
|
16
|
+
|
|
3
17
|
## [1.0.0](https://github.com/tbaur/homebridge-navilink/compare/v0.1.4...v1.0.0) (2026-09-20)
|
|
4
18
|
|
|
5
19
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# homebridge-navilink
|
|
2
2
|
|
|
3
|
-

|
|
3
|
+
[](https://github.com/tbaur/homebridge-navilink/actions/workflows/test.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/homebridge-navilink)
|
|
5
|
+
[](https://www.npmjs.com/package/homebridge-navilink)
|
|
6
|
+
[](https://nodejs.org)
|
|
7
|
+
[](https://homebridge.io)
|
|
8
|
+
[](LICENSE)
|
|
4
9
|
|
|
5
10
|
**Navien combi boilers and water heaters in Apple HomeKit.** Hot water and space-heating thermostats, recirculation, faults and temperature probes, with changes arriving as they happen rather than on a polling loop. Verified against an NCB-240E (firmware 4352).
|
|
6
11
|
|
|
@@ -15,7 +15,10 @@ export declare function diagnosticLabel(msg: string): string;
|
|
|
15
15
|
export declare function formatReasons(reasons: string[]): string;
|
|
16
16
|
/**
|
|
17
17
|
* Concise summary matching the sibling plugins:
|
|
18
|
-
* `Health: healthy | devices 1/1 |
|
|
18
|
+
* `Health: healthy | devices 1/1 | mqtt live | api p50 12ms p95 40ms (req 3, err 0)`.
|
|
19
|
+
*
|
|
20
|
+
* The heartbeat uses the short `mqtt` token. Standalone lifecycle lines keep
|
|
21
|
+
* `Publish-subscribe (mqtt)` so a lone `up` / `recovered` still names the channel.
|
|
19
22
|
*/
|
|
20
23
|
export declare function formatDiagnosticLine(report: DiagnosticsSnapshot): string;
|
|
21
24
|
/** State-only line for a healthy/degraded flip. The heartbeat already has the body. */
|
|
@@ -13,7 +13,6 @@ exports.diagnosticLabel = diagnosticLabel;
|
|
|
13
13
|
exports.formatReasons = formatReasons;
|
|
14
14
|
exports.formatDiagnosticLine = formatDiagnosticLine;
|
|
15
15
|
exports.formatHealthTransitionLine = formatHealthTransitionLine;
|
|
16
|
-
const labels_1 = require("../utils/labels");
|
|
17
16
|
/** Short operator-facing label for the MQTT session lifecycle. */
|
|
18
17
|
function formatMqttTransportState(state) {
|
|
19
18
|
switch (state) {
|
|
@@ -53,14 +52,17 @@ function formatReasons(reasons) {
|
|
|
53
52
|
}
|
|
54
53
|
/**
|
|
55
54
|
* Concise summary matching the sibling plugins:
|
|
56
|
-
* `Health: healthy | devices 1/1 |
|
|
55
|
+
* `Health: healthy | devices 1/1 | mqtt live | api p50 12ms p95 40ms (req 3, err 0)`.
|
|
56
|
+
*
|
|
57
|
+
* The heartbeat uses the short `mqtt` token. Standalone lifecycle lines keep
|
|
58
|
+
* `Publish-subscribe (mqtt)` so a lone `up` / `recovered` still names the channel.
|
|
57
59
|
*/
|
|
58
60
|
function formatDiagnosticLine(report) {
|
|
59
61
|
const { lifecycle, devices, transport, api } = report;
|
|
60
62
|
return [
|
|
61
63
|
`${diagnosticLabel(report.msg)}: ${lifecycle.health}${formatReasons(lifecycle.reasons)}`,
|
|
62
64
|
`devices ${devices.online}/${devices.total}`,
|
|
63
|
-
|
|
65
|
+
`mqtt ${formatMqttTransportState(transport.mqttState)}`,
|
|
64
66
|
`api p50 ${api.p50Ms}ms p95 ${api.p95Ms}ms (req ${api.requests}, err ${api.errors})`,
|
|
65
67
|
].join(' | ');
|
|
66
68
|
}
|
package/docs/FEATURES.md
CHANGED
|
@@ -35,7 +35,7 @@ A checklist of what is built. The plugin aims to cover everything about a Navien
|
|
|
35
35
|
- ✅ Read-only mode: every accessory reports state, and no control command is ever sent (`readOnly; write ignored`)
|
|
36
36
|
- ✅ Power-off guard, on by default, because a combi's power state governs central heating as well as hot water (`power-off disabled (allowPowerOff is off)`)
|
|
37
37
|
- ✅ Accessory name prefix (`options.accessoryPrefix`): one editable stem for every HomeKit tile, without changing accessory identity
|
|
38
|
-
- ✅ Opt-in diagnostics (`options.diagnosticsInterval`, default 0 / off): a periodic heartbeat (`Health: healthy | devices n/n |
|
|
38
|
+
- ✅ Opt-in diagnostics (`options.diagnosticsInterval`, default 0 / off): a periodic heartbeat (`Health: healthy | devices n/n | mqtt live | api p50/p95 (req, err)`), with optional structured JSON (`options.structuredLogs`)
|
|
39
39
|
- ✅ Secrets redacted from every log line by shape, not by field name, so an unfamiliar response cannot leak a token
|
|
40
40
|
- ✅ HomeKit serial numbers are opaque generated values, never the gateway MAC
|
|
41
41
|
- ✅ Bounded I/O: separate connect and total timeouts, a capped response size, and a capped MQTT packet size
|
package/docs/README-DETAILED.md
CHANGED
|
@@ -243,7 +243,7 @@ Set `options.diagnosticsInterval` to a value between `30` and `3600` seconds to
|
|
|
243
243
|
It pairs with `options.structuredLogs: true`, which adds a JSON line next to the human one.
|
|
244
244
|
|
|
245
245
|
```
|
|
246
|
-
Health: healthy | devices 1/1 |
|
|
246
|
+
Health: healthy | devices 1/1 | mqtt live | api p50 80ms p95 120ms (req 3, err 0)
|
|
247
247
|
```
|
|
248
248
|
|
|
249
249
|
| `msg` | Level | When |
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-navilink",
|
|
3
3
|
"displayName": "Homebridge NaviLink",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.2",
|
|
5
5
|
"description": "Homebridge plugin for Navien combi boilers and water heaters through the North American NaviLink cloud: hot water and space-heating thermostats, power, recirculation, fault and temperature accessories. Verified on an NCB-240E (firmware 4352)",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|