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

  1. Replace your custom_components/miwifi/ folder with the contents of this release.
  2. 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_netmode fails, the integration falls back to netmode().
  • Some firmwares return the field as netmode (and omit mode), which can break downstream logic expecting mode.
  • We now normalize the fallback payload: if netmode exists and mode is 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

  1. Replace your custom_components/miwifi/ folder with the contents of this release.
  2. 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 NoneType errors 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/upspeed are now parsed safely and default to 0.0 if 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 though set_mac_filter (write endpoint) works.
  • The Block/Unblock service no longer relies on macfilter_info availability to decide support, preventing false “does not support” errors.
  • After applying a block/unblock, the integration updates the cached MAC filter map so internet_blocked state 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/devicelist using authority.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

  1. Download / pull the latest MiWiFi XiaoHack Edition pre-release v3.5.7rc3.
  2. Replace your custom_components/miwifi/ folder with the new version.
  3. Restart Home Assistant.
  4. (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_info is 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_info
  • xqdtcustom/cpe_detect
  • Any logs showing timeouts / restricted endpoints
  • Any logs related to macfilter_info timeouts during blocking/unblocking

💖 Support & Donations

If you find this integration useful and want to support continued development:


🔎 Summary of changes (Lasted Release)

AreaChange
CB0401V2Added dedicated CPE profile + provider-firmware safe handling
Mobile APIAdded get_mobile_net_info + normalized GB metrics
SIM DiagnosticsAdded cpe_detect (SIM status + retries)
SMSAdded get_msgbox_count support + sms_count flattening
WANMobile IPv4 fallback when classic WAN is restricted
StabilitySafe parsing for None and empty-string numeric metrics
EndpointsSkipped restricted endpoints on CB0401V2 (LED/ROM/mode)
ServicesBlock/Unblock no longer depends on macfilter_info availability; cache updated after apply
SensorsAdded CB0401V2-only mobile/SIM/SMS diagnostic sensors
WAN AccessPersist 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_graph fetch 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.com resolves outside the LAN (e.g., www.miwifi.com returning 404).
  • 🌐 Improved protocol resilience (HTTP/HTTPS)
  • Discovery probes both http:// and https:// for topo_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 as is_main.
  • Auto-main detection now prioritizes the root topology node (presence of leafs/nodes) and show=1 signals, 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 allowed
  • wan=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_info may 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 bare asyncio.create_task, improving integration safety during startup.
  • 🧹 Cleaner auto-main reasoning output
  • auto_reason now 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.com responds with redirects or resolves outside LAN.
  • ✅ Mesh auto-main logic validated:
  • Only the root/main router is flagged as is_main automatically.
  • Leaf mesh nodes remain non-main unless manually selected.

📘 How to Update

  1. Download / pull the latest MiWiFi XiaoHack Edition pre-release v3.5.6rc1.
  2. Replace your custom_components/miwifi/ folder with the new version.
  3. Restart Home Assistant.
  4. (Optional) Enable debug logs temporarily to validate discovery:
  • Check logs for: Discovery trying topo_graph... and Discovery 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)

AreaChange
DiscoveryRaw topo_graph fetch + HTTP/HTTPS probing + redirect handling
SecurityMask sensitive WAN fields (e.g., PPPoE password) in debug logs
StabilitySafer task scheduling + clearer debug logs
CompatibilityTimeouts no longer trigger “unsupported” warnings/notifications
TopologyFixed auto-main selection so mesh leaf nodes aren’t marked as main
WAN ControlCorrect WAN allow/block semantics (wan=1 allow, wan=0 block) + more robust MAC filter capability checks
UXAvoid 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 token from 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 when data is 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

  1. Update the custom component files (HACS or manual).
  2. Restart Home Assistant.
  3. If you use NAT rules:
  • Confirm sensor.miwifi_nat_rules loads normally and no longer spams retries when unsupported.
  1. If you experienced missing entities in v3.5.5 RC builds:
  • After restart, entities should repopulate normally once self.data is 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)

AreaChangeImpact
WAN infoHard timeout + safe early-exit when WAN is downPrevents long refresh stalls (~110s) on AP/bridge setups
WAN PPPoELess aggressive “WAN down” detection + fallbacksPrevents false WAN “unavailable” on PPPoE firmwares
NAT rulesHard timeout + cooldown after failuresAvoids repeated retries/spam on unsupported endpoints
Token handlingNAT refresh no longer crashes on “Invalid token”Prevents coordinator task exceptions / “Task exception was never retrieved”
Updater pipelinePreserve self.data reference (no data = data or {})Prevents missing attributes / missing entities side-effects
RobustnessDefensive parsing for empty/inconsistent payloadsKeeps coordinator responsive under degraded conditions

Xiaohack Chatbot Asistente XiaoHack

Xiaohack V 3.3 | © Copyright 2024 | Users Online: 0 | Estado: Offline