* Set has_entity_name if device_name is set
* revert unneeded formatting change
* Add image platform
* Follow up comment
* Don't set `has_entity_name` without device name
* Only set has_entity_name if a valid name is set
* Follow device_class name and add tests
* Follow up comments add extra tests
* Move to helper - Log a warning
* fix test
* Allow to assign None as name explictly
* Refactor
* Log info messages when device name is not set
* Revert scene schema change - no device link
* Always set has_entity_name with device mapping
* Always set `_attr_has_entity_name`
* Cleanup
* Avoid using name in Subaru migrations
* Add feedback
* Update tests/components/subaru/test_sensor.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update tests/components/subaru/test_sensor.py
Co-authored-by: G-Two <7310260+G-Two@users.noreply.github.com>
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: G-Two <7310260+G-Two@users.noreply.github.com>
* Create an issue if push updates fail
* Improve strings
* Delete the issue when reloading configuration entry
* Change MAX_PUSH_UPDATE_FAILURES to 5
* Improve issue strings
* Add test
* Use for
* Update homeassistant/components/shelly/strings.json
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
* Simplify deleting the issue
---------
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
* Fully unload wemo config entity
* Test reloading the config entry
* Encapsulate data with dataclasses
* Fix missing test coverage
* Replace if with assert for options that are always set
* Move WemoData/WemoConfigEntryData to models.py
* Use _ to indicate unused argument
* Test that the entry and entity work after reloading
* Nit: Slight test reordering
* Reset the correct mock (get_state)
* from .const import DOMAIN
* Nit: _async_wemo_data -> async_wemo_data; not module private
* 2023.7.16
- Fix bug with values defaulting to "n/a" in stead of None
* 2023.7.16
- Set device class and state classes on entities
* 2023.7.16
- Set StateClass and DeviceClass directly on the entitiy
* 2023.7.16
- Fix black and ruff issues
* 2023.7.17
- Update logic catering for the 'n/a' response on an API failure
- Add testcase
* - Fix bug in formatting
* 2023.7.17
- Refacotr to consider the "n/a" response returned from the Python lib
on an error or faliure
- Remove setting of StateClass and DeviceClass as requested
- Add "n/a" test case
* 2023.7.17
- Remove unused imports
* 2023.7.18
- Apply review requested changes
* - Additional review change resolved
* Add State and Device class attributes
* Allow matching custom quirks when self.quirk_classes might not contain the full class path but only the module and the class.
* Add test for matching custom quirk classes.
* Improve handling of unrecoverable storage corruption
fixes#96574
If something in storage gets corrupted core can boot loop
or if its integration specific, the integration will fail to
start.
We now complainly loudly in the log, move away the corrupt data
and start fresh to allow startup to proceed so the user can
get to the UI and restore from backup without having to attach
a console (or otherwise login to the OS and manually modify files).
* test for corruption
* ensure OSError is still fatal
* one more case
* create an issue for corrupt storage
* fix key
* persist
* feedback
* feedback
* better to give the full path
* tweaks
* grammar
* add time
* feedback
* adjust
* try to get issue_domain from storage key
* coverage
* tweak wording some more
* 2023.7.16
- Fix bug with values defaulting to "n/a" in stead of None
* 2023.7.16
- Set device class and state classes on entities
* 2023.7.16
- Set StateClass and DeviceClass directly on the entitiy
* 2023.7.16
- Fix black and ruff issues
* 2023.7.17
- Update logic catering for the 'n/a' response on an API failure
- Add testcase
* - Fix bug in formatting
* 2023.7.17
- Refacotr to consider the "n/a" response returned from the Python lib
on an error or faliure
- Remove setting of StateClass and DeviceClass as requested
- Add "n/a" test case
* 2023.7.17
- Remove unused imports
* 2023.7.18
- Apply review requested changes
* - Additional review change resolved
* String review: rename 'life' to 'lifetime'
- The term life, such as in 'filter life' can be ambiguous.
- Renamed to 'lifetime', as quite a few integrations use the term 'lifetime' to express this concept
- Improves consistency and should be easier to understand.
* HomeKit: adapt test case to reflect string change
* Fix test case failure caused by string rename: first step
* Alexa temperature adjustment handle multiple setpoint
In "auto" mode with many thermostats, the thermostats expose both an
upper and lower setpoint representing a range of temperatures. When a
temperature delta is sent from Alexa (e.g. "lower by 2 degrees), we need
to handle the case where the temperature property is not set, but
instead the upper and lower setpoint properties are set. In this case,
we adjust those properties via service call instead of the singular
value.
* Updating tests to fix coverage
* Significantly speed up single entity/response service calls
Since the majority of service calls are single entity, we can
avoid creating tasks in this case. Since the multi-entity
service calls always check the result and raise, we can switch
the asyncio.wait to asyncio.gather
* Significantly speed up single entity/response service calls
Since the majority of service calls are single entity, we can
avoid creating tasks in this case. Since the multi-entity
service calls always check the result and raise, we can switch
the asyncio.wait to asyncio.gather
* revert
* cannot be inside pytest.raises
* one more
* Update homeassistant/helpers/service.py
* Airvisual Pro Outside Station Support
* pr feedback
* formatting, language
* Update homeassistant/components/airvisual_pro/strings.json
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* fix assertion on airvisual test
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Migrate google assistant to has entity name
* Fix tests
* Add device name
* Update homeassistant/components/google_assistant/button.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Ensure async_get_system_info does not fail if supervisor is unavailable
fixes#96470
* fix i/o in the event loop
* fix tests
* handle some more failure cases
* more I/O here
* coverage
* coverage
* Update homeassistant/helpers/system_info.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* remove supervisor detection fallback
* Update tests/helpers/test_system_info.py
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add feature to enforce polling an IMAP server
* Add test
* Remove not needed string tweak
* Rename enforce_polling to enable_push
* Push enabled by default
* Differentiate between device info types
* Update allowed fields
* Update homeassistant/helpers/entity_platform.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Split up message in 2 lines
* Use dict for device info types
* Extract device info function and test error checking
* Simplify parsing device info
* move checks around
* Simplify more
* Move error checking around
* Fix order
* fallback config entry title to domain
* Remove fallback for name to config entry domain
* Ensure mocked configuration URLs are strings
* one more test case
* Apply suggestions from code review
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add deprecated_yaml issue to the homeassistant integration
* Update test
* Update homeassistant/components/homeassistant/strings.json
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Include DOMAIN in issue_id
* Update test
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add device_class and state_class in config flow for SQL
* Update when selected NONE_SENTINEL
* Add tests
* Use SensorDeviceClass and SensorStateClass in tests
* Add volatile_organic_compounds_parts in strings selector
* Add test_attributes_from_entry_config
* Remove test_attributes_from_entry_config and complement test_device_state_class
* Add test_attributes_from_entry_config in test_sensor.py
* Move ESPHomeManager into its own file
This is not a functional change. This is only a reorganization
ahead of some more test coverage being added so moving tests
around can be avoided later.
* relos
* fixes
* merge a portion of new cover since its small and allows us to remove the __init__ from .coveragerc
These were likely used as an example when writing the tests for this
component and we missed renaming them.
A few unused vars with references to GMail were also removed.
* Add humidity to NWS forecast to address https://github.com/home-assistant/core/issues/95572
* Use pynws 1.5.0 enhancements for probabilityOfPrecipitation, dewpoint, and relativeHumidity.
* Update requirements to match pynws version
* test for clear night
* update docstring
---------
Co-authored-by: MatthewFlamm <39341281+MatthewFlamm@users.noreply.github.com>
* Add more device info for SmartThings devices
* Fix binary_sensor test
* Fix binary sensor test, try 2
* Fix and add SmartsThings new device info tests
* Mark scripts as response optional, make it always return a response if return_response is set
* Update test_init.py
* Revert "Update test_init.py"
This reverts commit 8e113e54db.
* Split + add test
* zwave_js: deprecate Dry and Fan preset modes
Migrating Dry and Fan presets to HVAC modes
* Move consts. Set Dry and Fan as HVAC-first modes.
* Update homeassistant/components/zwave_js/climate.py
Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
* Fix tests
* Keep track of HA release when deprecation was introduced
---------
Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
* Warn when changing multipan channel if there are not 2 known users
* Add test
* Improve messages
* Tweak translation string
* Adjust message
* Remove unused translation placeholders