Version History - MiWiFi XiaoHack Edition
📡 Automatic releases from GitHub
The latest versions are synchronized automatically from GitHub.
Showing 1–5 of 66 releases
📦 v3.9.1 – XiaoHack Edition
Date: 2026-10-13 07:55:04
View original release on GitHub
Maintenance release including #345, #347 and #348, with thanks to @brembygit.
Fixes
- Preserve the client counters of force-load mesh leaves when the parent pushes its client census.
- Save private-MAC replacement rules through Home Assistant's supported device-registry iterator, including historical clients only present in the registry. Keep compatibility with older registry shapes.
- Read force-load counters once per polling cycle, with endpoint failures handled by the existing update error path.
- Resolve known router backhaul MAC aliases only when the router identity and integration-entry ownership match.
- Cancel replaced automatic purge deadlines, avoiding duplicate runs and timers left behind after cancellation.
- Preserve nested Wi-Fi channel/bandwidth values consistently in write snapshots.
- Use the supported coordinator refresh callback, wait for topology before provisioning client sensors, and clean temporary login coordinators on both success and failure.
- Cancel discovery timers at Home Assistant shutdown, remove stored router history when an unloaded entry is deleted, redact diagnostic device data and restore entity-description icons.
Tests and compatibility
The complete legacy suite is repaired and mandatory in CI. It no longer hides failures behind a successful workflow. Required validation covers HA Core 2026.10.0 legacy, maintained suites on HA 2026.10.0 and 2026.9.3, HACS, hassfest, standalone regressions and frontend packaging/UI behavior.
Upgrade
Update through HACS, restart Home Assistant and refresh the browser. The panel is bundled and its cache version is updated together with the integration. Existing private-MAC rules remain configured. Automatic replacement remains opt-in for individually configured clients with unique router names; when a device is renamed, include its previous and current router names in its rule.
This maintenance release does not close all router-specific reports. #329 still awaits its reporter's diagnostic validation; the remaining topology-role, Wi-Fi verification and mesh-node cleanup proposals remain separate.
Full changelog · Private-MAC guide
Validated release: 204 legacy tests passed; HA 2026.10.0 maintained: 193 passed; HA 2026.9.3 maintained: 192 passed, 1 version-specific skip. HACS, hassfest and standalone/frontend checks passed. Home Assistant CI · Validation CI. The merged release tree matches the tested branch exactly.
📦 v3.9.0 – XiaoHack Edition
Date: 2026-10-11 16:25:07
View original release on GitHub
MiWiFi v3.9.0
Private MAC management
Add opt-in automatic replacement for clients whose router names uniquely identify the same physical device. In the main router's panel settings, select clients, enter previous/current aliases, remove rules and save. The compact list is translated into all eight panel languages.
Replacement waits for fresh complete client lists from every loaded MiWiFi node and exactly one connected MAC. It removes older associated MiWiFi trackers and client sensors across nodes, including unavailable historical clients retained only in HA's registry. Rules and suppression of retired MACs survive reloads and restarts; a real reconnection can admit an old MAC again.
This feature is disabled by default. Enable it only for unique physical clients. It deletes the old MAC's MiWiFi entities; entity/device IDs, areas, custom names, person assignments and automation references are not transferred. Review anything that referenced an old tracker. It does not manage DHCP reservations or change client privacy settings.
English guide · Guía en español
Cleanup and mesh reliability
- Restrict inactivity purge to explicit MACs, clean associated client sensors, and report accurate entity/device totals in previews and apply responses. Recent activity on any loaded node protects a client.
- Persist suppression of purged records and clear saved client copies across nodes, preventing stale/offline records from recreating them after reloads or restarts.
- Keep a recent completed parent client census authoritative on mesh leaves; clear stale moved-client markers when clients return.
- Add bounded mesh_support diagnostics for all loaded nodes, with consistent anonymized MAC/IP/entry relationships and counter history, without extra router requests. Only mesh_support is anonymized for public sharing; other diagnostic sections may contain private data. Diagnostics guide.
- Remove the obsolete separate panel frontend update entity. The panel continues updating with the integration; router firmware update entities remain available.
Home Assistant compatibility and validation
Adapt the test harness, explicit coordinator config-entry ownership and classic device-trigger compatibility work from #325, with thanks to @brembygit. This restores the classic trigger API/YAML behavior on current HA; it does not add those triggers to the newer target-based picker.
Local validation: 135 maintained tests plus 65 standalone tests pass on HA 2026.10.0; 134 maintained tests pass and one newer-registry test is skipped on HA 2026.9.3. Frontend packaging, panel behavior and all eight language dictionaries are checked. Real-router testing confirmed cleanup, renamed-watch replacement and correct behavior after a full HA restart.
The inherited legacy tests remain reported separately and have not been repaired. Issue #329 stays open for verification on its reporter's routers. This release does not claim the remaining router-sensor race in #333, wireless force-load case in #334, DHCP reservations in #314 or the separate changes in PRs #324, #326, #327 and #331.
Install
Update the integration to v3.9.0 through HACS, restart Home Assistant, then refresh the panel. The panel and translations are bundled; no separate frontend installation is needed. Private-MAC rules are configured once per client and remain saved across restarts.
GitHub CI on the signed release commit passed HACS, hassfest and regressions and both maintained Home Assistant suites. The experimental legacy job reports its inherited failures separately.
📦 v3.8.4 – XiaoHack Edition
Date: 2026-10-10 17:58:43
View original release on GitHub
- Recognize RN12 (Xiaomi Range Extender AX1500) during setup and add its bundled image to the panel and README gallery (#343). The reporter confirmed setup over HTTPS with firmware 1.0.63; individual features remain subject to the router's API capabilities.
- Accept the panel settings payload in
miwifi.apply_config, validate its three supported fields, retain administrator-only access, and document the action inservices.yaml(#337). - Re-create a known client's tracker when its original platform unloads after the client moves to another mesh entry. Preserve the entity ID and keep new-device notifications restricted to actual discoveries (#332).
- Read single-owner device rows through
config_entry_idto avoid Home Assistant 2026.10 deprecation reports. Preserve multiple owners on composite devices and older cores, including inactive-device purge safeguards (related to #344). - Prevent a tracker from linking its device row to itself when a stored parent MAC, an alternate MAC, or merged identifiers resolve to the client's own row. Keep the client and omit only the invalid parent link.
- Refresh the integration and bundled panel cache version to 3.8.4 and add regression coverage for settings validation, tracker recovery, parent links and device ownership.
Thanks to @brembygit for the #332 reproduction, independent router testing, and the composite-device coverage in #344, and to the #343 reporter for verifying RN12 setup.
Validation
126 tests pass: 69 targeted tests on Home Assistant Core 2026.10.0 and 57 standalone regression, client-counter and private-export security tests. Frontend packaging and syntax checks also pass. Coverage includes the real service registry and entity platforms, tracker reload/disable recovery with force load enabled and disabled, preserved entity IDs, duplicate prevention, disabled entities, valid parent links, and legacy/composite device ownership.
Manual testing confirmed panel settings save successfully and clients continue updating after reload. A disconnected laptop's tracker previously failed to load because of a self-parent link; after the guard, startup and reconnect/reload worked without that error. Independent tests on an RD28/RA82 wired mesh confirmed the #332 fix: affected trackers recovered within 30 seconds after origin reload or disable, retained their IDs and serving-node ownership, and remained live after the origin was re-enabled.
Upgrade and remaining work
Update through HACS, restart Home Assistant, and refresh the browser. The panel is bundled with the integration. This release does not repair incorrect parent data already reported by a router or shown in the panel; the observed self-parent label remains under investigation. The separate NAT connection-error handling and router-sensor duplication race (#333) are not fixed here. PRs #324-#327 and #331 remain separate work.
📦 v3.8.3 – XiaoHack Edition
Date: 2026-10-02 09:44:26
View original release on GitHub
- Prevent duplicate client sensor creation when several routers hold the same client at startup or during roaming. Skip a sensor only while a live MiWiFi sensor platform provides it; existing registry rows do not block sensor recovery after restart or reconnect (#330).
- Reset self-counted client counters once per polling cycle on access points and other repeater roles without force load. Preserve counters pushed to leaf nodes by their parent and the existing gateway/force-load behavior (#341, fixes #340).
- Add a real Home Assistant regression test for one disconnected client restored by two routers. The control reproduces duplicate IDs without the live-platform filter; the corrected path provides every client sensor once.
- Refresh the integration and bundled panel cache version to 3.8.3.
Thanks to @brembygit for #330 and #341.
Validation
39 standalone regression tests, 7 client-counter tests, 8 tests on Home Assistant 2026.9.3, 5 export security tests, and frontend packaging checks pass. Manual testing confirmed startup without duplicate IDs with a disconnected client, sensor recovery on reconnect, working mesh client sensors and roaming, and stable client counts during node changes. The access-point accumulation case was reproduced in automated tests (4 clients became 12 after three cycles before the fix; they remain 4 after it).
The separate tracker loss after reloading its origin entry (#332) and the unconfirmed router-sensor duplication race (#333) remain outside this release.
Upgrade
Update through HACS, restart Home Assistant, and refresh the browser. The panel remains bundled with the integration. This release does not repair historical client-count statistics recorded before the fix.
📦 v3.8.2 – XiaoHack Edition
Date: 2026-10-02 07:33:16
View original release on GitHub
This release reduces unnecessary router reloads and corrects missing client measurements, with contributions from @brembygit.
Fixes
- Saving a router's options now reloads only that router. All entries still reload when the effective mesh-wide client-sensor setting changes. The global automatic purge schedule is stored once, without copying it to every router and triggering repeated reloads (#336, confirmed reload fan-out in #333).
- Clients detected only through a node's Wi-Fi list report missing speeds as unknown instead of zero. Empty client uptime is also reported as unknown. Available measurements from the main router are preserved; offline client speeds remain zero (#338).
- Restored the router photo gallery in the README, switched updater images to the bundled assets, and removed duplicate root images (#335).
- Updated the integration and bundled panel cache references to 3.8.2.
Validation
- 34 standalone regression tests, 5 export security tests, and frontend packaging checks pass.
- Manual RC01 + RC06 wired-mesh testing confirmed client uptime and speeds, restart recovery, roaming in both directions, per-node options reloads without interrupting the main router, and automatic client-sensor removal/restoration when the effective mesh-wide setting changes.
- The Wi-Fi-list-only missing-data case is covered by automated tests and was not reproduced on this wired-mesh setup.
The duplicate router-sensor race also reported in #333 remains unconfirmed. This release fixes the confirmed reload fan-out without claiming to resolve that race or the separate tracker-reload issue #332.
Upgrade
Update through HACS, restart Home Assistant, and refresh the browser. The panel remains bundled with the integration and needs no separate installation. Client sensors remain enabled across the mesh while any router entry enables them; the option is not yet a single shared switch.
Asistente XiaoHack
Xiaohack V 3.3 | © Copyright 2024 | Users Online: 0 | Estado: Offline
