* Fix stop listener leak in DataUpdateCoordinator
When an integration retries setup it will add a new stop listener
* Skip scheduled refreshes when hass is stopping
* Update homeassistant/helpers/update_coordinator.py
* ensure manual refresh after stop
* Store coordinator at Device
* Use DeviceUpdater to follow config/location changes
* Cleaning up
* Fix unit tests + review changes
* Don't test internals
Some of the compatible hardware sends event signals that wouldn't map
well to entities, e.g. NTP sync notifications, SIP registering
information, or « doorbell button pressed » events with no « return to
rest state » matching event to have a properly behaved binary sensor.
Instead of only monitoring specific events, subscribe to all of them,
and pass them through (in addition to handling them as before if they
correspond to a configured binary sensor).
Also bump python-amcrest to 1.7.2. Digest of the changes:
* The library now passes through the event data instead of just presence of a
"Start" member in in.
* Connection to some devices has been fixed by not throwing the towel on
minor errors.
https://github.com/tchellomello/python-amcrest/compare/1.7.1...1.7.2
* Migrate existing zwave_js entities if endpoint has changed
* better function name
* cleanup code
* return as early as we can
* use defaultdict instead of setdefault
* PR comments
* re-add missing logic
* set defaultdict outside of for loop
* additional cleanup
* parametrize tests
* fix reinterview logic
* test that we skip migration when multiple entities are found
* Update tests/components/zwave_js/test_init.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Added 'mix' system support for Growatt integration
* Changed Growatt "Last Data Update" to a timestamp
* Changed Growatt "Last Data Update" to UTC
* Accepted suggested change for Growatt "Last Data Update"
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add Hyperion device support.
* Update to the new typing annotations.
* Add device cleanup logic.
* Fixes based on the excellent feedback from emontnemery
* Lazy load zwave_js platforms when the first entity needs to be created
* switch order to make things easier to understand
* await task instead of using wait_for_done callback
* gather tasks
* switch from asyncio.create_task to hass.async_create_task
* unsubscribe from callbacks before unloading platforms
* Clean up as much as possible during entry unload, even if a platform unload fails