* 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
* WeMo push update is seen by all coordinator entities
* Rename _wemo_exception_handler -> _wemo_call_wrapper
* Test turning off the entity
* Test setting light brightness
* Improve brightness test
* It is unnecessary to setup the platform integration
* Use domain names, not platform enum, in service calls
* Use DataUpdateCoordinator for wemo
* Rename DeviceWrapper->DeviceCoordinator and make it a subclass of DataUpdateCoordinator
* Rename async_update_data->_async_update_data to override base class
* Rename: device -> coordinator
* Use a singleton for the Wemo registry and fan services
* Undo changes to the wemo subscription registry
* Use an entity service helper to register the Wemo fan services
* Fix Wemo fan test (missing ATTR_ENTITY_ID)
* Use the function name directly rather than a string
* Improve test coverage of the set_humidity service
* PyWeMo version bump to 0.4.43
Changes necessary to safely upgrade to pyWeMo 0.4.43. This includes catching ActionExceptions that may be thrown by pyWeMo when it is unable to interact with a physical device.
* Black formatting fix
* Fix isort issues
* Code review changes
* More code review fixes
* Linting fix
* Undo dict.get change
* Change a couple instances of dict[key] to dict.get
* Improve config entry support, add device info
* async_dispatch_connect
* Fix I/O in event loop
* Do not raise PlatformNotReady inside dispatcher
* Make main discovery process async
* Do discovery as part of set up.
* Greatly simplify set up
* Add parallel updates to fan&switch
* mini cleanup
* Address comments