Fixes
```
recorder/test_init.py:251: SAWarning: SELECT statement has a cartesian product between FROM element(s) "states" and FROM element "state_attributes". Apply join condition(s) between each element to resolve.
```
* Ensure humidity is still exported to HomeKit when is cannot be set
We would only send humidity to HomeKit if the device supported
changing the humidity
* remove unrelated changes
* 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
* 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
* Cache the names and area lists in the default agent
fixes#86803
* add coverage to make sure the entity cache busts
* add areas test
* cover the last line
* Nest - Climate - Error Messages
1. Error messages were incorrect for some methods, for example async_set_temperature was reporting failure to set hvac_mode. This is corrected.
2. Error messages were incomplete and were not including the entity_id,and the operation being performed that failed.
3. Add unit tests to test the exception handling
* Move tests into exiisting error test
* Improve readability of error message