* Move read_text to executor
* Fix issues found by coderabbit
* formated to formatted
* switch to async_capture_exception
* Find and replace got one too many
* Update patch mock to async_capture_exception
* Drop Sentry capture from format_message
The error handling got introduced in #2052, however, #2100 essentially
makes sure there will never be a byte object passed to this function.
And even if, the Sentry aiohttp plug-in will properly catch such an
exception.
---------
Co-authored-by: Stefan Agner <stefan@agner.ch>
* Add free disk space info
* Log available space on docker image install error
* Add unit to log message
* Add 404 check and better log message
* Set default path to supervisor data path
* Clean up attribute access
Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
* Move free space helper to hardware
* Add hardware test
Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>