* Refactor async_match_states
* Check entity name after state, before aliases
* Give entity name matches priority over area names
* Don't force result to have area
* Add area alias in tests
* Move name/area list creation back
* Clean up PR
* More clean up
* Bump aiohue to 4.6.0
* fix device name for lights
* fix name for groups too
* ignore smart scenes
* bump to 4.6.1 instead
* Add support for Smart Scenes (Natural lights) in Hue
* update base entity class
* fix test fixture
* update tests
* fix scene test
* fix typo
* use underlying scene controller
* use enum value
* update tests
* add current scene name within smart scene
* extra attributes are only valid if the scene is active
* Update v2_resources.json
* typo
* fix after merge
* ESPHome handle remove password and no encryption
* Start reauth for invalid api password
---------
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Fix MQTT discovery failing after bad config update
* Update last discovery payload after update success
* Improve test, correct update assignment
* send_discovery_done to finally-catch vol.Error
* Just use try..finally
* Remove extra line
* use elif to avoid log confusion
* Update climate_sdm.py
* Update test case to detect KeyError
* Throw a defined exception if the condition in encoutered
Include keys from device_traits in error message
* Less diagnostic information in error message
* Ignore empty payloads from DSMR Reader
* Simplify empty payload handling
If the native value hasn't changed, requesting to store it won't have a performance impact.
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
---------
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Added multiple features to OpenAI integration
* Fixed failed test
* Removed features and improved tests
* initiated component before starting options flow
* Speed up comparing State and Event objects
Use default python implementation for State and Event __hash__ and __eq__
The default implementation compared based on the id() of the object
which is effectively what we want here anyways. These overrides are
left over from the days when these used to be attrs objects
By avoiding implementing these ourselves all of the equality checks
can happen in native code
* tweak
* adjust tests
* write out some more
* fix test to not compare objects
* more test fixes
* more test fixes
* correct stats tests
* fix more tests
* fix more tests
* update sensor recorder tests