homebridge-bluos 1.0.1 → 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 +7 -0
- package/README.md +1 -1
- package/dist/devices/base-accessory.js +6 -0
- package/docs/FEATURES.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.0.2](https://github.com/tbaur/homebridge-bluos/compare/v1.0.1...v1.0.2) (2026-08-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* log when a player answers again after an outage ([7e26d9d](https://github.com/tbaur/homebridge-bluos/commit/7e26d9d449d36282d2aeb829cb436380520e3882))
|
|
9
|
+
|
|
3
10
|
## [1.0.1](https://github.com/tbaur/homebridge-bluos/compare/v1.0.0...v1.0.1) (2026-08-18)
|
|
4
11
|
|
|
5
12
|
|
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ What stays in the BluOS app is the part HomeKit has no vocabulary for: browsing,
|
|
|
26
26
|
- **Long-polling, not polling** — `/SyncStatus?timeout=100` with an `etag`, so a change made on the front panel, the remote or the BluOS app reaches HomeKit in about a second, without hammering the player
|
|
27
27
|
- **Follows the API's rate rules** — One second minimum between two requests for the same resource, per the BluOS specification; writes to one chassis are serialised, and separate chassis stay parallel
|
|
28
28
|
- **Survives a DHCP lease change** — Accessory identity is the player's MAC and zone port, never its address. If a player moves, the plugin re-resolves it and remembers the new address
|
|
29
|
-
- **Backs off when a player is off** — Exponential delay to a one-minute ceiling instead of dialling an absent player every second; the
|
|
29
|
+
- **Backs off when a player is off** — Exponential delay to a one-minute ceiling instead of dialling an absent player every second. A single failure is a debug line; the warning comes when the player has missed three polls and HomeKit is told No Response, then at most hourly while it stays away, with one line when it answers again
|
|
30
30
|
- **Answers HomeKit promptly** — A write returns inside HAP's patience window and finishes anything slower in the background, where the result still reaches HomeKit through the next poll
|
|
31
31
|
- **No volume jumps** — The pair of writes HomeKit sends when a slider leaves zero is coalesced into one command
|
|
32
32
|
- **Honest state** — An accessory reports No Response until the player has actually been read, and again once it stops answering, rather than showing a value it cannot confirm
|
|
@@ -53,6 +53,12 @@ class BaseAccessory {
|
|
|
53
53
|
}
|
|
54
54
|
/** Apply a fresh observation, and remember that state is now known. */
|
|
55
55
|
applyObservation(observation, reason) {
|
|
56
|
+
if (this.offline) {
|
|
57
|
+
// Every outage warns on its way in, so it gets a matching line on its way
|
|
58
|
+
// out: without one, a log shows a player failing and never recovering, and
|
|
59
|
+
// an outage that healed reads exactly like one still in progress.
|
|
60
|
+
this.host.log.info(`${(0, utils_1.forLog)(this.displayName)} [${(0, utils_1.forLog)(this.deviceId)}] is responding again`);
|
|
61
|
+
}
|
|
56
62
|
this.offline = false;
|
|
57
63
|
this.observed = true;
|
|
58
64
|
this.lastWarningAt = 0;
|
package/docs/FEATURES.md
CHANGED
|
@@ -29,7 +29,7 @@ A checklist of what is built. The plugin aims to cover everything about a BluOS
|
|
|
29
29
|
- ✅ The pair of writes HomeKit sends when a slider leaves zero is coalesced into one command
|
|
30
30
|
- ✅ Set/poll race protection with a generation counter, so a slider never springs back
|
|
31
31
|
- ✅ A deliberately cancelled poll is not counted as a failure
|
|
32
|
-
- ✅ Exponential backoff to a one-minute ceiling for an unreachable player;
|
|
32
|
+
- ✅ Exponential backoff to a one-minute ceiling for an unreachable player; a lone failure logs at debug, the warning waits for the third missed poll that turns the tile to No Response, repeats hourly at most, and is answered by a recovery line
|
|
33
33
|
- ✅ Automatic address re-resolution after repeated failures, rate-limited, so a DHCP lease change needs no user action
|
|
34
34
|
- ✅ New addresses persisted into the accessory cache so they survive a restart
|
|
35
35
|
- ✅ Accessory identity is `MAC:port:kind` (plus the preset level), never the address, so an IP change keeps your accessories
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-bluos",
|
|
3
3
|
"displayName": "Homebridge BluOS",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.2",
|
|
5
5
|
"description": "Homebridge plugin for BluOS players — per-zone volume, mute, volume-preset and battery accessories over the LAN Custom Integration API. Verified on NAD and Bluesound hardware",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|