* Add hass type hint and `None` return type
* Add type hints on tmp_path
* Add registry hints
* Add caplog and hass_ws_client type hints
* Add type hints for MqttMockHAClientGenerator
* Add type hints MqttMockPahoClient
* Hints on fixtures `calls` and `record_calls`
* Other fixture type hints tweaks
* Add hints for mock_usename_password_set
* Update tests/components/mqtt/test_init.py
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* correct domain
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Fix FKB merging entities when MAC empty
Fully Kiosk Browser will sometimes return an empty MAC address in the
device_info API call. When two Fully Kiosk devices are added with
missing MAC addresses, HA will assume the two devices are the same and
merge the entities. This fixes that problem.
Fixes#77722
* Update homeassistant/components/fully_kiosk/entity.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Bump yalexs_ble to 1.12.11 to fix reconnect when services fail to resolve
changelog: https://github.com/bdraco/yalexs-ble/compare/v1.12.8...v1.12.11
* bump to make it work with esphome proxy as well
* empty
* Add reauth support to yalexs_ble
* lint
* reduce
* tweak
* tweak
* test for reauth
* Apply suggestions from code review
* cleanup
Dropping the database after this test will fail on
MySQL and hang forever because it causes an InnoDB deadlock
```
| 2042 | root | localhost:52698 | NULL | Query | 41 | Waiting for table metadata lock | DROP DATABASE `homeassistant-test` | 0.000 |
```
This test was recently enabled on MySQL in
https://github.com/home-assistant/core/pull/87753
Since it the migration is still in progress in the background
when the test ends, it causes deadlock with InnoDB when its dropped
out from under it
* Add type hints to diagnostics test helper
* Move type alias to the top
* Use Any
* Move TestClientGenerator to typing helper
* Use `dict[str, Any]` again
* Use JsonObjectType
* Add cast
* Apply MQTT fixture types on platform tests
* Add caplog type hint
* Add hass_ws_client type hint
* Add tmp_path type hint
* Add hass_client_no_auth type hint
* Adds tests for each matter light type and fixes small issue with color temperature lights not being detected properly
* Removes commented out code
* Changed matter light tests to pytest.mark.parametrize to reduce duplicate code
* Add type hints for MQTT discovery tests
* Remove more unused caplog instances
* rebase commit
* Small corrections
* Add event tye hint and correct string assignment
* Another Event type hint
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Correct test_complex_discovery_topic_prefix
* Import individual items from homeassistant.core
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Create a thread active dataset when discovering OTBR
* Align with lib changes
* Use thread preferred dataset if set
* Create a dataset also from the user flow
* Add hints for hass and return type
* Fix MqttMockType add apply hints to test_common
* Add type hints for other arguments
* Merge changes
* Add missed annotation
* Make tests types private and move to top
* Added the correct attributes to ColorTemperatureLight and ExtendedColorLight and added CurrentY to codespell ignore word list
* Added enums for matter color modes
* Added support for reading color and color temperature settings from matter api
* Added away of getting the ColorControl featureMap while the get_cluster(ColorControl) function is fixed
* Initial working implementation of color and color temperature
* Full supports for lights with both hs and xy
* Added checks to make sure color features are supported before making matter call
* Changed how color mode is figured out
* Moved the logic that gets the brightness to its own function
* Adds matter light tests for hass triggered events
* Adds full test coverage for matter all types of matter lights
* Adds full test coverage for matter all types of matter lights
* Moved light convertion logic to util.py
* Reorderd codespell ignore list and removed unused code
* Adds brightness state test
* Do not return cached values for state and brightness
* Move building the uncached state dict behind a lru_cache (_build_entity_state_dict)
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Allow `None` for numeric sensor, ignore empty val
* Add test case with omitting a value
* Use _numeric_state_expected property
* Only respect None if numeric state is expected
* TP-Link Omada integration
Support for PoE config of network switch ports
* Bump omada client version
* Fixing tests
* Refactored site config flow
* Code review comments
* Fixed tests and device display name issue
* Bump isort to fix pre-commit hooks
* Hassfest for the win
* Omada code review
* Black
* More config flow test coverage
* Full coverage for omada config_flow
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Fix recorder run history during schema migration
RunHistory.get and RunHistory.current can be called before
RunHistory.start. We need to return a RecorderRuns object
with the recording_start time that will be used when start
it called to ensure history queries still work as expected.
fixes#87112
* Disable mopeka accelerometer sensors by default
These generate a significant amount of noise and are
only useful when placing the sensor. Disable them by
default. This not a breaking change because existing
preferences are preserved.
* adjust tests
* Bump to 0.0.5
* Bump aiosomecomfort to 0.0.6
* lower case aiosomecomfort
* Fix other bad imports....
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
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
* Add Mega joule
* Reorder valid energy types
Alphabetical
* Add Mega Joule
* Add Mega Joule as valid energy unit
* Add Mega Joule
* Add Mega Joule as a Unit of Measurement to Energy
* Update tests
* Update tests
* Update number docstring
Co-authored-by: Roving Ronin <108674933+Roving-Ronin@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Migrate totalconnect to use async_forward_entry_setups
Replaces deprecated async_setup_platforms with async_forward_entry_setups
* fix double update and tests
* Migrate homematicip_cloud to use async_forward_entry_setups
Replaces deprecated async_setup_platforms with async_forward_entry_setups
* adapt test, this test should be rewritten
* Allow customizing sensor precision
* Don't convert integer strings to floats
* Tweak converting sensor state to number
* Drop default rounding to 2 decimals
* Adjust test
* Tweak rounding, improve test coverage
* Don't convert to a number if not necessary
* Raise if native_precision is set and state is not numeric
* Address review comments
* Address comments, simplify
* Don't call property twice
* Make exception more helpful
* Migrate steam_online to use async_forward_entry_setups
Replaces deprecated async_setup_platforms with async_forward_entry_setups
* fix steam_online tests
* Allow multiple commands in the same conversation
* fix test
* Apply suggestions from code review
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add missing cv import
* Update service description
* Fix test after merging dev
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add media browsing and play media support in Bravia TV
* Add fix invalid Bravia Content-Type header for icons
* Avoid duplicates in source_list
* Small cleanup
* Edit comment
* Revert en.json
* Use intent responses from home_assistant_intents
* Use error responses from home_assistant_intents
* Remove speech checks for intent tests (set by conversation now)
* Bump hassil and home-assistant-intents versions
* Use Home Assistant JSON reader when loading intents
* Remove speech checks for light tests (done in agent)
* Add more tests for code coverage
* Add test for reloading on new component
* Add test for non-default response
* Add options and execute_if_off_supported properties to Color channel
* Initialize "options" attribute on Color channel (allowing cache)
* Implement execute_if_off_supported for ZHA lights
* Make sure that color_channel exists, before checking execute_if_off_supported
* Replace "color_channel is not None" check with simplified "if color_channel"
* Make "test_number" test expect "options" for init attribute
* Add test_on_with_off_color test to test old and new behavior
* Experimental code to also support "execute_if_off" for groups if all members support it
* Remove support for groups for now
Group support will likely be added in a separate PR. For now, the old/standard behavior is used for groups.
* Add validation for lock integration
* Add LockEntityFeature.OPEN for lock group
* Correct tests google_assistant for extra entity
* Validate feature when registering service
* Update tests
* Add LockFeature.OPEN with group
* Add support for streaming (push) history
Currently we poll for history data, like logbook we can stream
this data to avoid database overhead
* Update homeassistant/components/history/__init__.py
* merge filter
* expose new api
* expose new api
* expose new api
* expose new api
* coverage
* tests
* fixes
* tweak
* tweak
* tweak
* DRY
* leaky
* test for specific entities
* test for specific entities
* test for specific entities
* test for specific entities
* test for specific entities
* cover
* cover
* more cover
* tweak
* make sure it works before history starts
* fix test
* cover
* tweak
* make sure we unsub on overflow
* Update homeassistant/components/history/__init__.py
* Update homeassistant/components/history/__init__.py
* fix race in test
* fix db executor access
* relo above task creation
* Add jammed state support for MQTT lock
* Correct payload jammed key
* Add tests - rename solved to ok
* Rename jammed state and template topics to motor
* Use state topic for handling motor state
* Follow up comments
* Change default behaviour `state_unjammed`
* Skip `state_unjammed`
* Move entity/area resolution to async_match_states
* Special case for covers in HassTurnOn/Off
* Enable light color/brightness on areas
* Remove async_register from default agent
* Remove CONFIG_SCHEMA from conversation component
* Fix intent tests
* Fix light test
* Move entity/area resolution to async_match_states
* Special case for covers in HassTurnOn/Off
* Enable light color/brightness on areas
* Remove async_register from default agent
* Remove CONFIG_SCHEMA from conversation component
* Fix intent tests
* Fix light test
* Fix humidifier intent handlers
* Remove DATA_CONFIG for conversation
* Copy ServiceIntentHandler code to light
* Add proper errors to humidifier intent handlers
* Add preload and reload service calls to conversation
* Add conversation preload/reload to websocket API
* Merge prepare into reload
* reload service and prepare websocket API
* Add preload and reload service calls to conversation
* Add conversation preload/reload to websocket API
* Merge prepare into reload
* reload service and prepare websocket API
* Add language lock for loading intents
* Add more tests for code coverage
* adjust device registry
* ignore test unique id
* update test
* ditch uniqueid + prefix serial
* adjust test
* add tests
* fix switch test
* prefix all identifiers
* Update homeassistant/components/matter/adapter.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* no underscore in id
* fix test
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>