* Backport code from #86386
* Add tests
* Remove local dev change
* Implement device class validation based on unit
* Swap sensor and externalsensor classes (based on importance)
* Use translations for external sensor entities
* Re-add meter identifier as sensor for external devices
* Add migration for Gas identifier
* Rename HomeWizardExternalIdentifierSensorEntity class
* Fix all existing tests
* Reimplement tests for extenal devices with smapshots
* Remove non-used 'None' type in unit
* Add migration test
* Clean up parameterize
* Add test to fix last coverage issue
* Fix non-frozen mypy issue
* Set device name via added EntityDescription field
* Remove device key translations for external sensors,
* Bring back translation keys
* Set device unique_id as serial number
* Remove meter identifier sensor
* Simplify external device initialization
* Adjust tests
* Remove unused gas_meter_id migration
* Remove external_devices redaction
* Remove old gas meter id sensor after migration
* Trigger reauth flow when HomeWizard API was disabled
* Add tests for reauth flow
* Fix typo in test
* Add parallel updates constant
* Improve error message when device in unreachable during config
* Set quality scale
* Remove quality scale
* Throw error instead of abort when setup fails
* Adjust test for new setup behaviour
* Trigger reauth flow when API is disabled and continue retrying
* Reload entry and raise AuthFailed during init
* Abort running config flow
* Listen for coordinator updates to trigger reload
* Use build-in backoff system
* Fix failing test
* Test reauth flow is active after disable-api init
* Test reauth flow removal