v2.0.28 — Homebridge UI: manual-add, timeout selector, readable titles, sticky devices
Homebridge plugin — bigger Devices-tab overhaul + persistence guarantees
This release reworks the Devices tab in the Homebridge UI based on direct user feedback, and locks in two storage guarantees that have always been true but weren't visible to users until now. All changes ship in homebridge-dibby-wemo@2.0.28 — verified via npm pack --dry-run that every modified file (homebridge-ui/public/index.html, homebridge-ui/public/index.js, homebridge-ui/server.js, lib/platform.js, lib/store.js) is in the published tarball.
1. Discover button now has a Timeout selector
The Devices tab adds a dropdown right next to the Discover button:
| Value | Use it when |
|---|---|
| 10 s | Small home network, all Wemos online and responsive |
| 20 s | Default for most installs (previous hard-coded fallback) |
| 30 s (new default) | Busy LAN, 5+ Wemos, or first scan after a router reboot |
| 45 s | Wi-Fi mesh / extended LAN — gives slow Wemos more time |
| 60 s | First scan after plugging in a fresh Wemo that's still booting |
Longer values catch quieter / slower-responding Wemos. Previously the button was hardcoded to 10 s — too short on many networks. The dropdown is per-scan and doesn't require editing config.json between attempts. The status line also reflects the chosen budget so you see what you're waiting on.
2. New "Add by IP" row directly below the Discover button
For Wemos that SSDP can't reach — VLAN isolation, Docker bridge networking, routers blocking multicast, or any setup where the host running Homebridge is on a different subnet from the Wemo:
- Enter the device's IPv4 address (e.g.
192.168.1.42) and optional port (default49153). - Click + Add Device.
- The server probes
/setup.xmlon that exact IP viawemoClient.getDeviceInfo(). Only a real Wemo response is accepted — UDN, friendly name, model, and firmware version are all read from the device. - The new card appears immediately, fully wired up.
This is the same fallback mechanism used by the Home Assistant integration's manual-device list, finally exposed in the Homebridge UI.
3. Card title + section heading legibility
The Bonus Room Pot Light / Deck Master etc. labels on each device card were rendering near-black on dark blue because the Homebridge UI host stylesheet (Bootstrap utility classes) was overriding .card-title. Three CSS fixes:
.card-titleforced tocolor: #ffffff !important; font-weight: 700; font-size: 1.05rem..card-subtitlebrightened from the dim--mutedto#cbd5e1.- Wemo Devices section heading at the top of the Devices tab now rendered in bold green (
#4ade80, weight 700) — matches the on-state accent used on toggles elsewhere.
Legibility verified on the default Homebridge UI theme, Dark, Light, and the high-contrast variants.
4. Sticky-device guarantee — visible in the logs
The DwmStore.mergeDevices() method now carries an explicit doc-comment guarantee:
- Once a Wemo has been detected (via SSDP or Manual Add), it stays in the cached list permanently.
- A re-scan only refreshes the host/port/friendlyName/firmwareVersion of existing records; everything else is preserved.
- Devices that are offline / unreachable / on a different VLAN at scan time are kept verbatim, not removed.
- Newly-found devices are appended.
In practice: nothing you've already added to your list ever disappears short of a manual delete.
5. Plugin upgrades preserve everything — startup log proves it
The storage file <homebridge-storage>/dibby-wemo.json has always lived outside the npm package directory, so npm update -g homebridge-dibby-wemo (and every UI-driven update) has never touched it. Now this is verifiable: on every Homebridge startup the plugin emits one summary line:
[Store] Loaded from /var/lib/homebridge/dibby-wemo.json — 12 device(s), 7 DWM rule(s).
If either count is unexpectedly different after an upgrade, the regression surfaces in your Homebridge log immediately. The store-path doc comment in platform.js now spells out the upgrade-survival guarantee explicitly.
What's preserved across every upgrade:
- ✅ Detected devices (sticky — never auto-removed)
- ✅ Every DWM rule (Schedule, Countdown, Away, Always On, Trigger)
- ✅ Device ordering + groupings from the Devices tab UI
- ✅ Location (sunrise/sunset reference)
- ✅ Disabled-rule backups (per-device firmware-rule toggle history)
Documentation refresh
All four docs sources updated with these changes (verified no third-party AI / generator attributions anywhere):
README.md— Homebridge section gains a new "Devices tab" subsection covering the timeout dropdown, Manual Add row, sticky-device guarantee, upgrade-survival log.packages/homebridge-plugin/README.md— Devices Tab subsection rewritten end-to-end; Data Storage section now lists every preserved key and shows the verification log line.apps/desktop/resources/help.html— Discovery section explains the SSDP + Manual Add paths and the sticky-device guarantee with a clear callout box.custom_components/dibby_wemo/info.md— gains a discovery-strategy explainer, the new "remove HA built-in Wemo first" prerequisite, and the Configure → Discover devices now flow for adding Wemos without an HA restart.
Other packages — unified version bump only
node-red-contrib-dibby-wemo@2.0.28(npm) — no functional change- Home Assistant (HACS) 2.0.28 — no functional change
- Synology Docker image
ghcr.io/k0rb3nd4ll4s/dibby-wemo-manager:2.0.28— no functional change - Synology
.spk(apollolake / geminilake / denverton / broadwell / rtd1296) — no functional change - macOS / Windows desktop — no functional change
Upgrade
- Homebridge:
npm install -g homebridge-dibby-wemo@2.0.28(or your usual Homebridge-UI update flow), then restart Homebridge. Confirm the new[Store] Loaded from …line in the Homebridge log shows your devices + rules. - HACS / Home Assistant: HACS → ⋮ → Reload data → Dibby Wemo → ⋮ → Redownload → pick
2.0.28→ restart HA. - Synology Docker: Container Manager → Project →
dibby-wemo→ Stop → Build → Start (pulls:latest, currently2.0.28). - Synology
.spk: Download the new.spkfor your DSM arch from this release's Assets → Package Center → Manual Install (DSM detects an upgrade and preserves your data).