* Implement config flow in the Broadlink integration
* General improvements to the Broadlink config flow
* Remove unnecessary else after return
* Fix translations
* Rename device to device_entry
* Add tests for the config flow
* Improve docstrings
* Test we do not accept more than one config entry per device
* Improve helpers
* Allow empty packets
* Allow multiple config files for switches related to the same device
* Rename mock_device to mock_api
* General improvements
* Make new attempts before marking the device as unavailable
* Let the name be the template for the entity_id
* Handle OSError
* Test network unavailable in the configuration flow
* Rename lock attribute
* Update manifest.json
* Import devices from platforms
* Test import flow
* Add deprecation warnings
* General improvements
* Rename deprecate to discontinue
* Test device setup
* Add type attribute to mock api
* Test we handle an update failure at startup
* Remove BroadlinkDevice from tests
* Remove device.py from .coveragerc
* Add tests for the config flow
* Add tests for the device
* Test device registry and update listener
* Test MAC address validation
* Add tests for the device
* Extract domains and types to a helper function
* Do not patch integration details
* Add tests for the device
* Set device classes where appropriate
* Set an appropriate connection class
* Do not set device class for custom switches
* Fix tests and improve code readability
* Use RM4 to test authentication errors
* Handle BroadlinkException in the authentication