* Fully unload wemo config entity
* Test reloading the config entry
* Encapsulate data with dataclasses
* Fix missing test coverage
* Replace if with assert for options that are always set
* Move WemoData/WemoConfigEntryData to models.py
* Use _ to indicate unused argument
* Test that the entry and entity work after reloading
* Nit: Slight test reordering
* Reset the correct mock (get_state)
* from .const import DOMAIN
* Nit: _async_wemo_data -> async_wemo_data; not module private
* Skip adding WeMo device on failure
* Only create a single log entry for each failed device
* Fix typo s/serial_number/serialnumber/
* Discard failed devices on success
* Periodically attempt to discover new wemo devices
* Set self._stop=None after stopping the periodic discovery task
* Use the async_fire_time_changed test helper to simplify test_discovery
* Stop the pywemo registry outside of the async loop
* Add a comment describing why async_fire_time_changed is used