* Use dataclass to reference hass.data globals
* Add discovery_registry_hooks to dataclass
* Move discovery registry hooks to dataclass
* Add device triggers to dataclass
* Cleanup DEVICE_TRIGGERS const
* Add last_discovery to data_class
* Simplify typing for class `Subscription`
* Follow up on comment
* Redo suggested typing change to sasisfy mypy
* Restore typing
* Add mypy version to CI check logging
* revert changes to ci.yaml
* Add docstr for protocol
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* Mypy update after merging #78399
* Remove mypy ignore
* Correct return type
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
* Common tests availability
* Common tests attributes
* Common tests unique id
* Common tests discovery
* Common tests encoding
* Common tests device info
* Common tests entity_id updated
* Common tests entity debug info
* Common test entity category
* Common tests setup reload unload+corrections
* Cleanup sweep
* Comments from curent change
* Cleanup
* Remove unused legacy config
* Handle multiple files properly in zwave_js update entity
* Until we have progress, set in progress to true. And fix when we write state
* fix tests
* Assert we set in progress to true before we get progress
* Fix tests
* Comment
We only expect this exception to be raised as a result of an
implementation problem. When it is raised during production
it is currently hard to trace down why its happening
See #75835
* Fix update entity startup state
* Only write state if there is a change
* Add test to show that when an existing entity gets recreated, skipped version does not reset
* Remove unused blocks
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Test zwave_js update entity progress
* Block until firmware update is done
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* revert params
* unsub finished event listener
* fix tests
* Add test for returned failure
* refactor a little
* rename
* Remove unnecessary controller logic for mocking
* Clear event when resetting
* Comments
* readability
* Fix test
* Fix test
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Cleanup discovery on entity removal
* Add test
* Cleanup and test
* Test with clearing payload not unique id
* Address comments
* Tests cover and typing
* Just pass hass
* reuse code
* Follow up comments revert changes to cover tests
* Add test unique_id has priority over disabled
* Update homeassistant/components/mqtt/__init__.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Wait for unsubscribes
* Spelling comment
* Remove notify_all() during _register_mid()
* Update homeassistant/components/mqtt/client.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Correct handling reload manual set up MQTT items
* Save and restore device trigger subscriptions
* Clarify we are storing all remaining subscriptions
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Improve performance impact of zwave_js update entity and other tweaks
* Reduce concurrent polls
* we need to write state after setting in progress to false
* Fix existing tests
* Fix tests by fixing fixtures
* remove redundant conditional
* Add test for delayed startup
* tweaks
* outdent happy path
* Add missing PROGRESS feature support
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/update.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix tests by reverting outdent, PR comments, mark callback
* Remove redundant conditional
* make more readable
* Remove unused SCAN_INTERVAL
* Catch FailedZWaveCommand
* Add comment and remove poll unsub on update
* Fix catching error and add test
* readability
* Fix tests
* Add assertions
* rely on built in progress indicator
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>