Version History - MiWiFi XiaoHack Edition
📡 Automatic releases from GitHub
The latest versions are synchronized automatically from GitHub.
Showing 1–5 of 57 releases
📦 v3.5.9 – XiaoHack Edition
Date: 2026-03-25 18:40:19
View original release on GitHub
📝 Changelog — MiWiFi Integration
📦 Version v3.5.9 – 2026-03-25
🆕 Compatibility Model
- ✅ Added support for new router model RD03V2 #305
✅ Fixes & Stability
- ⏱️ Added timeout to panel version check #303
- Prevents panel version checks from hanging indefinitely when the remote source is slow or temporarily unavailable.
- Improves overall responsiveness and avoids blocking related update/version validation flows.
⚙️ Improvements
- 📦 Extended model compatibility
- Added detection/support for RD03V2 to improve compatibility with newer Xiaomi router variants.
✅ Compatibility
- ✅ Compatible with standard Xiaomi router setups.
- ✅ Added support for RD03V2 router variants.
📘 How to Update
- Replace your
custom_components/miwifi/folder with the contents of this release. - Restart Home Assistant.
ℹ️ Additional Information
- Merged PR: #303 (
feat: add timeout to panel version check) - Merged PR: #305 (add support for router model RD03V2)
💖 Support & Donations
If you find this integration useful and want to support continued development:
📦 v3.5.8 – XiaoHack Edition
Date: 2026-02-22 10:52:09
View original release on GitHub
📝 Changelog — MiWiFi Integration
📦 Version v3.5.8 – 2026-02-22
🆕 Compatibility Model
- ✅ Added support for new router model RP04 #301
✅ Fixes & Stability
- 🧩 Fixed “mode” detection on firmware variants that return __HTML_PLACEHOLDER_0__
- When the primary endpoint
qnetwork/get_netmodefails, the integration falls back tonetmode(). - Some firmwares return the field as
netmode(and omitmode), which can break downstream logic expectingmode. - We now normalize the fallback payload: if
netmodeexists andmodeis missing, we mirror it (mode = netmode) to keep a consistent response shape.
⚙️ Improvements
- No other changes in this release.
✅ Compatibility
- ✅ Improved compatibility with provider / customized firmwares that expose __HTML_PLACEHOLDER_0__ instead of __HTML_PLACEHOLDER_1__ in the fallback API.
📘 How to Update
- Replace your
custom_components/miwifi/folder with the contents of this release. - Restart Home Assistant.
ℹ️ Additional Information
- Merged PR: #300 (“convert netmode field to mode field for compatibility”)
- Thanks to @Mythologyli for the contribution.
📦 v3.5.7 – XiaoHack Edition
Date: 2026-02-11 20:48:36
View original release on GitHub
📝 Changelog — MiWiFi Integration
📦 Version v3.5.7 – 2026-02-11
✅ Fixes & Stability
- 🧱 Fixed CB0401V2 crashes caused by __HTML_PLACEHOLDER_0__ / invalid topology payloads
- Some provider firmwares may return unexpected structures (including
null) in topology-related calls. - Topology handling is now strictly normalized to avoid
NoneTypeerrors during first refresh.
- 🧮 Fixed __HTML_PLACEHOLDER_0__ / empty-string parsing crashes during refresh
- Hardened parsing for WAN / speed metrics when routers temporarily report empty strings (
"") while links are negotiating or idle. - Device
downspeed/upspeedare now parsed safely and default to0.0if invalid.
- 🧯 Fixed CB0401V2 setup crash when restricted endpoints return non-JSON
- Provider firmwares can return HTML/empty responses for certain endpoints (e.g., LED control).
- These calls are now skipped or treated as non-fatal so the integration always loads.
- 🧹 Reduced log spam on provider firmwares
- Added timeouts + safe fallbacks to prevent retry storms and repeated 404/invalid responses.
- 🚦 Fixed Block Device service becoming unavailable when __HTML_PLACEHOLDER_0__ times out
- Some firmwares can timeout on
wifi_macfilter_info(read endpoint) even thoughset_mac_filter(write endpoint) works. - The Block/Unblock service no longer relies on
macfilter_infoavailability to decide support, preventing false “does not support” errors. - After applying a block/unblock, the integration updates the cached MAC filter map so
internet_blockedstate stays consistent even during cooldown/timeout windows.
- 🔄 Fixed __HTML_PLACEHOLDER_0__ state not persisting after refresh / navigation (Device Cards WAN toggle)
- Some firmwares report WAN access control via
/api/misystem/devicelistusingauthority.wan(0=blocked,1=allowed). - The integration now maps __HTML_PLACEHOLDER_0__ → __HTML_PLACEHOLDER_1__ consistently during device list preparation, so the UI keeps the correct block/unblock status after refresh or changing screens.
- Added a resilient fallback in device building so WAN access state never resets to “allowed” by default when the value is present in router payloads.
⚙️ Improvements
- 📡 CB0401V2 (Xiaomi 5G CPE Pro v2) support (Magenta/Telekom firmware)
- New CPE profile detection (
cpe_profile: CB0401V2) to avoid “unsupported model” failures. - Added dedicated CPE endpoints:
xqdtcustom/get_mobile_net_info(signal + usage + IPv4 in one call)xqdtcustom/cpe_detect(SIM status + retries)xqdtcustom/newstatus(hardware/MAC fallback)xqmobile/get_msgbox_count(SMS counter)
- 🌐 Mobile WAN fallback on CB0401V2
- If classic WAN endpoints are unavailable, WAN can fallback to mobile IPv4 data from CPE calls.
- 📊 Normalized mobile metrics for clean sensors
- Data usage/limit normalized to
*_gb(float) - 5G RSRP/SNR normalized to floats where possible
- 🧾 CB0401V2-only diagnostic sensors
- Mobile link type, operator, mobile IPv4
- 5G RSRP / 5G SNR
- Data usage (GB) / Data limit (GB)
- SIM status + PIN/PUK retries
- SMS count (when available)
Note: Data usage on CB0401V2 only populates when flowstatEnable=1 is enabled in the router UI.
✅ Compatibility
- ✅ No behavior changes for standard Xiaomi routers
- CPE endpoints and skips apply only when CB0401V2 is detected.
- Normal models keep the same refresh flow and entities.
- 🧩 Improved Home Assistant import compatibility
- Avoids device-class values not available on some HA builds (prevents import-time crashes).
📘 How to Update
- Download / pull the latest
MiWiFi XiaoHack Editionpre-release v3.5.7rc3. - Replace your
custom_components/miwifi/folder with the new version. - Restart Home Assistant.
- (Optional) Enable debug logs temporarily to validate:
- No
NoneType/float('')crashes during the first refresh. - CB0401V2 endpoints do not spam 404/non-JSON errors.
- Block/Unblock service keeps working even if
macfilter_infois timing out.
ℹ️ Additional Information
- This is an RC build focused on CB0401V2 (provider firmware variants) and defensive parsing.
- If you test on CB0401V2, please share sanitized payloads for:
xqdtcustom/get_mobile_net_infoxqdtcustom/cpe_detect- Any logs showing timeouts / restricted endpoints
- Any logs related to
macfilter_infotimeouts during blocking/unblocking
💖 Support & Donations
If you find this integration useful and want to support continued development:
🔎 Summary of changes (Lasted Release)
| Area | Change |
|---|---|
| CB0401V2 | Added dedicated CPE profile + provider-firmware safe handling |
| Mobile API | Added get_mobile_net_info + normalized GB metrics |
| SIM Diagnostics | Added cpe_detect (SIM status + retries) |
| SMS | Added get_msgbox_count support + sms_count flattening |
| WAN | Mobile IPv4 fallback when classic WAN is restricted |
| Stability | Safe parsing for None and empty-string numeric metrics |
| Endpoints | Skipped restricted endpoints on CB0401V2 (LED/ROM/mode) |
| Services | Block/Unblock no longer depends on macfilter_info availability; cache updated after apply |
| Sensors | Added CB0401V2-only mobile/SIM/SMS diagnostic sensors |
| WAN Access | Persist internet_blocked from devicelist authority.wan so block status survives refresh/navigation |
📦 v3.5.6 – XiaoHack Edition
Date: 2026-02-04 19:55:57
View original release on GitHub
📝 Changelog — MiWiFi Integration
📦 Version v3.5.6 – 2026-02-04
✅ Fixes & Stability
- 🧭 Fixed Integration Discovery not finding routers in non-default LAN subnets
- Discovery now detects routers correctly even when the LAN is not
192.168.31.0/24(e.g.192.168.1.1), and also discovers mesh leaf nodes from topology. - Uses a “raw”
topo_graphfetch path (without relying on internal URL/protocol building), improving compatibility across firmware variants.
- 🔁 Handled __HTML_PLACEHOLDER_0__ redirect / non-LAN responses during discovery
- Discovery requests now follow redirects and no longer fail hard when
miwifi.comresolves outside the LAN (e.g.,www.miwifi.comreturning 404).
- 🌐 Improved protocol resilience (HTTP/HTTPS)
- Discovery probes both
http://andhttps://fortopo_graph, increasing success rate across different router setups.
- 🧩 Reduced repeated discovery/flow spam
- Added an “already configured” guard so existing entries won’t keep re-triggering config flows on every discovery interval.
- 🧾 Better discovery debug visibility
- Added explicit logs for each discovery attempt and a guarded exception handler so failures don’t silently disappear.
- 🔒 Sanitized WAN debug logs to avoid leaking sensitive credentials
- WAN debug output now masks sensitive fields (e.g., PPPoE
password, tokens/keys) before logging, preventing accidental exposure in logs.
- ⏱️ Fixed false “unsupported” warnings caused by transient timeouts in compatibility checks
- Timeouts (and other non-conclusive failures) no longer mark features as *unsupported* automatically.
- Prevents “Model not compatible detected” notifications when the endpoint actually works but responds slowly.
- 🧠 Fixed incorrect auto-detection of MAIN router in Mesh setups
- Prevented mesh leaf nodes (e.g.,
show=0, mode=3, assoc=1) from being incorrectly flagged asis_main. - Auto-main detection now prioritizes the root topology node (presence of
leafs/nodes) andshow=1signals, ensuring only the real main router is selected automatically.
- 🚫🌐 Fixed WAN block/unblock service semantics and router compatibility
- Aligns WAN control behavior with Xiaomi router API expectations:
wan=1→ Internet allowedwan=0→ Internet blocked- Prevents situations where the toggle visually changes but the router does not apply the expected rule.
- 🧩 Improved MAC filter capability checks robustness
- Avoids false negatives on some firmwares where
macfilter_infomay intermittently fail/timeout even though the feature works. - Reduces “unsupported” mis-detection for MAC filter features on slow/busy routers.
⚙️ Improvements
- 🧠 Cleaner discovery task scheduling
- Discovery is launched via Home Assistant’s task loop (
hass.async_create_task) instead of a bareasyncio.create_task, improving integration safety during startup.
- 🧹 Cleaner auto-main reasoning output
auto_reasonnow reflects topology-root signals (leafs/nodes) as part of the decision, making troubleshooting easier.
✅ Compatibility
- ✅ Tested behavior aligns with Xiaomi topology responses:
- Main node discovered (e.g.,
192.168.1.1) - Mesh leaf nodes discovered (e.g.,
192.168.1.73) - Works even when
miwifi.comresponds with redirects or resolves outside LAN.
- ✅ Mesh auto-main logic validated:
- Only the root/main router is flagged as
is_mainautomatically. - Leaf mesh nodes remain non-main unless manually selected.
📘 How to Update
- Download / pull the latest
MiWiFi XiaoHack Editionpre-release v3.5.6rc1. - Replace your
custom_components/miwifi/folder with the new version. - Restart Home Assistant.
- (Optional) Enable debug logs temporarily to validate discovery:
- Check logs for:
Discovery trying topo_graph...andDiscovery found devices: [...].
ℹ️ Additional Information
- This is an RC build: we’ll keep monitoring edge cases and firmware variants before tagging as stable.
💖 Support & Donations
If you find this integration useful and want to support continued development:
🔎 Summary of changes (vs previous RC)
| Area | Change |
|---|---|
| Discovery | Raw topo_graph fetch + HTTP/HTTPS probing + redirect handling |
| Security | Mask sensitive WAN fields (e.g., PPPoE password) in debug logs |
| Stability | Safer task scheduling + clearer debug logs |
| Compatibility | Timeouts no longer trigger “unsupported” warnings/notifications |
| Topology | Fixed auto-main selection so mesh leaf nodes aren’t marked as main |
| WAN Control | Correct WAN allow/block semantics (wan=1 allow, wan=0 block) + more robust MAC filter capability checks |
| UX | Avoid repeated config-flow triggers for already configured routers |
📦 v3.5.5 – XiaoHack Edition
Date: 2026-02-01 09:13:21
View original release on GitHub
📝 Changelog — MiWiFi Integration
📦 Version v3.5.5 – 2026-02-01
✅ Fixes & Stability (vs v3.5.4)
- ⏱️ Fixed long updater refresh stalls when WAN is down (AP/Bridge/Repeater setups)
- Prevents coordinator cycles taking ~110 seconds when WAN repeatedly reports:
link=0,status=0,uptime=0,ipv4.ip=""- Added a hard timeout to WAN polling and a safe early-exit when WAN is clearly down, so topology/devices keep updating normally.
- 🌐 Adjusted WAN parsing to avoid false “WAN unavailable” on PPPoE firmwares
- Some PPPoE setups may report partial/empty fields intermittently.
- Improved WAN-down detection and added safer fallbacks so WAN sensors don’t drop incorrectly.
- 🧯 Hardened NAT rules fetching to avoid blocking refresh cycles
- Some models/firmwares don’t expose the expected port-forwarding endpoints (default + fallback path).
- Added a hard timeout and a cooldown after failures to avoid repeated retries/spam during refresh cycles.
- 🔐 Fixed “Invalid token” crash during NAT rules refresh
- Prevents
LuciRequestError: Invalid tokenfrom breaking coordinator refresh tasks. - NAT rules retrieval now fails gracefully under token issues and avoids noisy task exceptions.
- 🧩 Fixed updater data mutation regression (preserve __HTML_PLACEHOLDER_0__ reference)
- Removed unsafe patterns like
data = data or {}in prepare steps which can create a new dict whendatais empty. - Ensures prepared attributes persist correctly across the update pipeline and prevents side effects such as “missing entities”.
- 🧱 Improved resilience against inconsistent/empty payloads
- Defensive handling for missing/empty WAN fields and unsupported endpoints to keep the updater responsive.
⚙️ Improvements (vs v3.5.4)
- 🧠 Smarter behavior when features are unavailable
- When WAN is not applicable (router behind another gateway), the integration treats it as “down/unavailable” without penalizing the rest of the update pipeline.
- NAT rules are fetched opportunistically instead of hammering endpoints that are failing/unsupported.
- 🧼 Cleaner update pipeline under degraded conditions
- Reduced “cascade impact” when a single endpoint is slow/unavailable.
- Better overall stability in mixed environments (main router + mesh nodes + external gateway).
✅ Compatibility (vs v3.5.4)
- 🌐 Better support for routers operating behind another gateway
- Common in ISP/4G gateway scenarios where the Xiaomi/AP side keeps WAN in a “down” state.
- 🧱 More tolerant of firmwares without portforward APIs
- Prevents repeated failures on devices that don’t expose the expected NAT endpoints.
📘 How to Update
- Update the custom component files (HACS or manual).
- Restart Home Assistant.
- If you use NAT rules:
- Confirm
sensor.miwifi_nat_rulesloads normally and no longer spams retries when unsupported.
- If you experienced missing entities in v3.5.5 RC builds:
- After restart, entities should repopulate normally once
self.datais filled correctly again.
ℹ️ Información adicional
- If your router is in AP/Bridge/Repeater mode, seeing WAN as “down” is expected.
- NAT rules may be unsupported on some firmwares/models; the integration degrades gracefully instead of retrying aggressively.
💖 Support & Donations
If you find this integration useful and want to support continued development:
🔁 Summary of changes (v3.5.4 → v3.5.5)
| Area | Change | Impact |
|---|---|---|
| WAN info | Hard timeout + safe early-exit when WAN is down | Prevents long refresh stalls (~110s) on AP/bridge setups |
| WAN PPPoE | Less aggressive “WAN down” detection + fallbacks | Prevents false WAN “unavailable” on PPPoE firmwares |
| NAT rules | Hard timeout + cooldown after failures | Avoids repeated retries/spam on unsupported endpoints |
| Token handling | NAT refresh no longer crashes on “Invalid token” | Prevents coordinator task exceptions / “Task exception was never retrieved” |
| Updater pipeline | Preserve self.data reference (no data = data or {}) | Prevents missing attributes / missing entities side-effects |
| Robustness | Defensive parsing for empty/inconsistent payloads | Keeps coordinator responsive under degraded conditions |
Asistente XiaoHack
Xiaohack V 3.3 | © Copyright 2024 | Users Online: 0 | Estado: Offline
