🚀 Ookla Speedtest Integration - Version 2.3.6
This release addresses critical binary compatibility issues on ARM systems, improves dashboard UI stability, and enhances the integration cleanup process.
🛠 Bug Fixes & Improvements
Fixed "Exec format error" on ARM/Raspberry Pi
- Smarter Architecture Detection: The
setup_speedtest.shscript now includes advanced detection for systems with mixed 64-bit kernels and 32-bit userlands (a common scenario on Raspberry Pi OS). - Binary Self-Healing: The setup process now validates the
speedtest.binexecutable immediately after download. If an "Exec format error" is detected, it automatically deletes the invalid binary and attempts to download the correct one. - Improved Platform Support: Added explicit support for
armhf(32-bit ARM) andi386(32-bit Intel/AMD) architectures.
Resolved "Squished" UI in Card Selector
- Shadow DOM Encapsulation: Migrated the Compact Card (
ookla-speedtest-compact.js) to use Shadow DOM. - Isolated Styles: This prevents internal CSS rules (such as
* { box-sizing: border-box; }) from leaking out and affecting the main Home Assistant interface or causing layout issues in the card picker.
Enhanced Integration Cleanup
- Automatic Resource Removal: Implemented the
async_remove_entryhook in Home Assistant. - Clean Deletion: When the integration is removed from Home Assistant, it now automatically:
- Deletes the
/config/www/ookla_speedtest/directory. - Unregisters all associated Lovelace resources from your dashboards.
- Deletes the
Improved Error Diagnostics
- Detailed Logging: Fixed an issue where speedtest failures sometimes logged empty error messages. The integration now captures the exit code, stdout, and stderr for more precise troubleshooting.
⚠️ Action Required for Existing Users
If you were previously seeing the Speedtest failed: Exec format error message, please run the setup script manually after updating:
bash /config/custom_components/ookla_speedtest/shell/setup_speedtest.shAlternatively, a full Home Assistant restart will attempt to trigger the repair automatically.
Made with ❤️ for the Home Assistant community.