Skip to content

v0.3.7

Latest

Choose a tag to compare

@calvarium calvarium released this 01 Mar 20:07

Changes since v0.3.0

v0.3.1 → v0.3.7: Stability Improvements & "No Response" Support

🐛 Crash Fixes (v0.3.3)

Several users reported the plugin entering a crash loop when bulbs failed to return hardware information (e.g. unknown devices, timeouts). Init() no longer aborts when FirmwareVersion or HardwareInfo cannot be retrieved — the plugin continues with default values instead. (Issues #7, #22, #27, #34)

🏷️ Empty Label Fallback (v0.3.4)

Bulbs without a configured name were silently ignored and never added to HomeKit. The plugin now falls back to the bulb's IP address, then "LIFX Bulb" as a last resort. (Issue #37)

🌡️ ColorTemperature Warning Fixed (v0.3.5)

HomeKit logged a warning when the kelvin value exceeded the bounds registered for the characteristic. The returned mired value is now clamped to [minValue, maxValue]. (Issue #44)

📡 "No Response" Instead of "Off" (v0.3.6)

When a bulb was physically disconnected from power, HomeKit incorrectly showed "Off" instead of "No Response". The following scenarios are now handled correctly:

  • During operation: The polling watcher detects within 5 seconds that the bulb is not responding and immediately marks it as "No Response" — without waiting for the light-offline event (~15s delay).
  • On startup: Bulbs that are unreachable when the plugin starts are marked as "No Response" as soon as the discovery window closes.
  • Cached accessories: Bulbs that have never been seen since the last restart (e.g. permanently offline) are also correctly declared as "No Response".

(Issue #38)

🔁 False "No Response" After Controlling Accessories Fixed (v0.3.7)

After controlling a bulb or switch (e.g. toggling power, changing brightness or colour temperature), HomeKit would incorrectly show "No Response" after a short time — even though the device was fully reachable. Multiple root causes have been fixed:

  • Poll-failure tolerance: A single UDP timeout or transient network hiccup no longer immediately marks a device as offline. The accessory now tolerates up to 3 consecutive failed polls before setting the "No Response" state. The failure counter resets to zero on the next successful poll.
  • Self-recovery without events: If a device recovers from a brief dropout, it is automatically marked as online again as soon as a poll succeeds — without waiting for a light-online event from the LAN client, which was only emitted after a full offline/online cycle.
  • Watcher no longer restarted on set commands: Every set command (on/off, brightness, colour, kelvin) previously restarted the 5-second poll interval immediately. This caused the first poll to arrive while the bulb was still executing a transition, producing a spurious timeout. The watcher now runs at a stable 5-second cadence regardless of set commands.
  • Double callback in Switch fixed: In switch.ts, a missing return after the error handler caused both the error callback and the success callback to be invoked simultaneously on failure — passing undefined as the relay state and incorrectly reporting the relay as unreachable.