* Use `None` instead of `"unknown"` when the current version is unknown
* Only use the current file version from the OTA notification
* Use `sw_version`, if available, and update `current_file_version`
* Assume the current version is the latest version
* Fix lint errors
* Use `image` instead of `firmware`
* Include a changelog if updates expose it
* Clear latest firmware only after updating the installed version
* Bump minimum zigpy version to 0.63.0
* Create a data update coordinator to consolidate updates
* Fix overridden `async_update`
* Fix most unit tests
* Simplify `test_devices` to fix current tests
* Use a dict comprehension for creating mocked entities
* Fix unit tests (thanks @dmulcahey!)
* Update the currently installed version on cluster attribute update
* Drop `PARALLEL_UPDATES` now that we use an update coordinator
* Drop `_reset_progress`, it is already handled by the update component
* Do not update the progress if we are not supposed to be updating
* Ignore latest version (e.g. if device attrs changed) if zigpy rejects it
* Clean up handling of command id in `Ota.cluster_command`
* Start progress at 1%: 0 and False are considered equal and are filtered!
Use `ceil` instead of remapping 1-100
* The installed version will be auto-updated when the upgrade succeeds
* Avoid 1 as well, it collides with `True`
* Bump zigpy to (unreleased) 0.63.2
* Fix unit tests
* Fix existing unit tests
Send both event types
Globally enable sending both event types
* Remove unnecessary branches
* Test ignoring invalid progress callbacks
* Test updating a device with a no longer compatible firmware
* Import tplink in the executor to avoid blocking the event loop
2024-02-27 22:44:19.908 DEBUG (MainThread) [homeassistant.loader] Component tplink import took 1.620 seconds (loaded_executor=False)
* patch out discovery because it happens too fast now
Avoid creating system monitor sensors for non-dirs
Currently we create sensors for /etc/hosts, /etc/asound.conf, since
they are bind mounts in the container. These all have to have
their own coordinator
* Add Grid import export to enphase Envoy
* Update snapshot for labels dict element in entity registry
* use identity check for enum
* Revert use of identity check, didn't add entities
* Implement review feedback for tests
* ct phase sensors disabled by default
* import PHASENAMES from pyenphase
* Update tests/components/enphase_envoy/test_sensor.py
* Update tests/components/enphase_envoy/test_sensor.py
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* introduce preserve last value option
* improve comments
* add unit test
* skip scheduling purge on a preserved value
* do not schedule sensor update if preserving last value
* fix unit test to use new mock time pattern
pattern introduced in https://github.com/home-assistant/core/pull/93499
* rename preserve_last_val to keep_last_sample
* add keep_last_sample config validation
* Deprecate Logi Circle integration
* Update homeassistant/components/logi_circle/__init__.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Use an eager task in the update coordinator scheduled refresh
We have a lot of places that will not suspend because the refresh function
decides it does not need to update. Currently these have to be scheduled
on the event loop even though they are a noop.
Since _handle_refresh_interval is subclassed in some integrations, I created
a dunder wrapper function to avoid integraions subclassing it
* fix time fires outside of patch
* Deconflict based on wake word
* Undo test
* Make wake up key a string, rename error
* Update snapshot
* Change to "wake word phrase" and normalize
* Move normalization into the wake provider
* Working on describe
* Use satellite info to resolve wake word phrase
* Add test for wake word phrase
* Match phrase with model name in wake word provider
* Check model id
* Use one constant wake word cooldown
* Update homeassistant/components/assist_pipeline/error.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Fix wake word tests
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>