* Swallow error 40000 for songpal power on/off
* Move ERROR_REQUEST_RETRY to consts
* Add tests for the swallow exception behavior
* Update tests/components/songpal/test_media_player.py
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Language codes for Hebrew
There is 2 optional code for Hebrew:
he-IL is the new code
iw-IL is the old code , the google cloud STT for example is using the old code (iw)
* Update language.py
* Update test_language.py
* Update test_language.py
* Update test_language.py
* Simplify duplicate language check
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Initialize _attr_native_value when running
* Fix return type on update_sensor_state()
move init at startup if _attr_native_value is None
* allow update _attr_native_value when running and none
* Migrate restore_state helper to use registry loading pattern
As more entities have started using restore_state over time, it
has become a startup bottleneck as each entity being added is
creating a task to load restore state data that is already loaded
since it is a singleton
We now use the same pattern as the registry helpers
* fix refactoring error -- guess I am tired
* fixes
* fix tests
* fix more
* fix more
* fix zha tests
* fix zha tests
* comments
* fix error
* add missing coverage
* s/DATA_RESTORE_STATE_TASK/DATA_RESTORE_STATE/g
* Add speech detection to esphome voice assistant
* Timeout after silence
Ensure events are sent before finish is called
* use va_version 3 instead of ESPHome version
* Convert repeated fixtures to factory
* Add some v3 tests
* Add conversation_id
* Bump aioesphomeapi to 13.8.0
* Fix missed buffering of detected chunk
* Alter log message
* Updates
* Spelling
* Fix return type
* Refactor zwave_js.cover and improve test coverage
* Remove extra fixtures
* cleanup old stuff
* Get coverage to 100
* Add support for Window Covering CC
* fix bug
* typo
* remove redundant stuff
* slight change to improve readability
* Add device class
* Update to match specs
* rfxtrx: add missed case for device tuple fallback
Previously the code was prepared for a backward compatible
migration of tuples, where both styles of identifiers might exist
in device registry at the same time.
This place was sadly missed
* No need to raise special, we can assert instead
* Add some basic tests
* Do not trigger reload when unloading MQTT entry
* More cleanup
* cleanup async_reload_manual_mqtt_items
* Add test
* Improve test
* Remove unuse mocks from test
* Add discovery item in test
* Fix refactoring error with updating in sequence
see #93649
* coverage
* make sure entities are being updated in parallel
* make sure entities are being updated in sequence
* Defer creating tasks we know are going to wait on the entity platform semaphore
When looking at whats going on with aiomonitor-ng, I noticed
we end up creating a lot of tasks that block waiting for the
executor because of the entity platform parallel_updates semaphore.
When we know the tasks are going to block we now await them
in sequence to avoid feeding the loop a herd of tasks that
will block on the semaphore
* change during iteration fix
* change during iteration fix
* cleanup
* cleanup
* fix vizio test
* Switch some frequently called call_laters to call_at
call_at is a bit faster than call_later since call_later
is a wrapper around call_at.
We call at lot of these at startup so it helps a bit when
we are resource constrained
* update test
* update test
* Complete migration of persistent notifications
Persistent notifications are no longer stored in
the state machine and no longer fire events
* Complete migration of persistent notifications
Persistent notifications are no longer stored in
the state machine and no longer fire events
* fixes
* fixes
* fixes
* ws test
* update tests
* update tests
* fix more tests
* fix more tests
* more fixes
* fix
* fix person
* fix person
* keep whitelist
* use singleton
* Add additional coverage to history websocket api
related issue #93258
* Add additional coverage to history websocket api
related issue #93258
* Fix results when union query ends up at the end instead of front
* Apply suggestions from code review
* resort
* zero instead
* fix exception
* fix tests
* Fix not retrying on connection reset during nexia config entry setup
fixes
```
2023-05-26 00:15:39.129 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Alexander for nexia
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 558, in _request
resp = await req.send(conn)
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 670, in send
await writer.write_headers(status_line, self.headers)
File "/usr/local/lib/python3.11/site-packages/aiohttp/http_writer.py", line 130, in write_headers
self._write(buf)
File "/usr/local/lib/python3.11/site-packages/aiohttp/http_writer.py", line 75, in _write
raise ConnectionResetError("Cannot write to closing transport")
ConnectionResetError: Cannot write to closing transport
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/nexia/__init__.py", line 47, in async_setup_entry
await nexia_home.login()
File "/usr/local/lib/python3.11/site-packages/nexia/home.py", line 385, in login
request = await self.post_url(self.API_MOBILE_ACCOUNTS_SIGN_IN_URL, payload)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/nexia/home.py", line 157, in post_url
response: aiohttp.ClientResponse = await self.session.post(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 572, in _request
raise ClientOSError(*exc.args) from exc
aiohttp.client_exceptions.ClientOSError: Cannot write to closing transport
```
* coverage
* Move constant values to separate file
* Move constant values to separate file
* Add config flow to lastfm
* Add tests
* Add config flow to lastfm
* Add tests
* Add tests
* Add tests
* Add extra form for main user and autofill with friends
* Add extra form for main user and autofill with friends
* Add extra form for main user and autofill with friends
* Add extra form for main user and autofill with friends
* Add OptionsFlow
* Add tests
* Fix feedback
* Fix feedback
* Fix feedback
* Fix feedback
* Fix test
* Apply suggestions from code review
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update config_flow.py
* Update config_flow.py
* Update config_flow.py
* Update homeassistant/components/lastfm/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add tests
* Cleanup
* Update config_flow.py
* Update config_flow.py
* Update config_flow.py
* Fix test
* Fix feedback
* Codeowner lastfm
* Fix feedback
* Fix feedback
* Parametrize errors
* Parametrize errors
* Parametrize errors
* Finish tests
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
pycsspeechtts uses the requests library, but Microsoft TTS previously
caught HTTPException from the standard library. This is changed to
catch requests.HTTPError and return `(None, None)` consistent with
other TTS integrations. This will properly raise HomeAssistantError
for display in the frontend.
Follow up to PR #92215 which adds tests for Microsoft TTS.
* Update Microsoft TTS supported languages
`script.microsoft_tts` scrapes Microsoft Azure documentation for
the list of supported languages and saves them to
`homeassistant.generated.microsoft_tts` for use in the component.
This adds support for more TTS languages, like fa-ir (Persian).
* Improve xpath query for Microsoft TTS languages
* Remove asserts for Microsoft TTS languages
* Add more tests for Microsoft TTS languages
* airzone: climate: fix max/min temps
The library now provides AZD_ABS_TEMP_MAX/AZD_ABS_TEMP_MIN which are useful for
devices with different max/min temperatures depending on the current working
mode (HEAT vs COOL).
These new values will have the highest/lowest max/min of both modes.
Until now, the max/min of the current working mode (HEAT/COOL) would be set
when starting Home Assistant, limiting the temperature range if the device
mode was changed after that.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* airzone: climate: update max/min temps
Some devices have different max/min climate temps depending on the active
mode (HEAT vs COOL), so we should update these values.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* Revert "airzone: climate: update max/min temps"
This reverts commit 988194d486.
* Revert "Revert "airzone: climate: update max/min temps""
This reverts commit e4ead24f71.
* tests: airzone: add max/min climate changes test
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* tests: airzone: fix dict copy
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---------
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* add sensors to roborock
* add value_fn typing
* fixed strings
* Update homeassistant/components/roborock/sensor.py
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* change to work time instead of time left
* added time left back
* fixed tests
* made diagnostic
---------
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
* Add proper support for zwave_js Indicator CC
* remove stale test
* Make all indicators diagnostic
* only set entity category if it is specified
* Only set properties from discovery if specified
* Conditionally set assumed state as well
* fix const name
* Don't create task
* Disable property keys 3-5 by default
* add additional dispatcher_connects so we catch all signals
* be consistent about order
* rename new discovery parameter
* comment
* exclude property keys 3-5
* fix remove logic
* add comment so I don't forget
* Switch entity category to config where necessary
* cut line
* less lines
* Update homeassistant/components/zwave_js/switch.py
Co-authored-by: kpine <keith.pine@gmail.com>
* Move async_remove to respond to interview started event
* Set up listener immediately so we don't wait for platform creation
* remove dupe import
* black
* append
---------
Co-authored-by: kpine <keith.pine@gmail.com>
* Do optimistic state update for Z-Wave multilevel switch entities
* simplify
* define constant for setting value to previous value
* Rework to only consider value of 255 and only places where we know that the previous state is known by the integration due to the service being called
* missed commit
* better code
* Add tests and use constant from lib
* fix logic
* fix bug
* Add comments with more details
* Update event when coordinator updates data.
* Move function to make diff easier to view
* Actually make it easier to view
* Move all tasks calculation to extra_state_attributes.
* Truncate long URLs
URL's longer than 256 characters will result in a
`homeassistant.exceptions.InvalidStateError`. This fixes that problem
and adds 2 extra_state_attributes: `full_url`, and `truncated`.
Fixes#89249
* Refactor to use function ref in entity description
* Add new preset to Tado to enable geofencing mode
Add new 'auto' preset mode to enable Tado to be set to auto geofencing
mode. The existing ‘home’ and ‘away’ presets switched Tado into manual
geofencing mode and there was no way to restore it to auto mode.
Note 1: Since preset modes (home, away and auto) apply to the Tado home
holistically, irrespective of the Tado climate entity used to select
the preset, three new sensors have been added to display the state of
the Tado home
Note 2: Auto mode is only supported if the Auto Assist skill is enabled
in the owner's Tado home. Various checks have been added to ensure the
Tado supports auto geofencing and if it is not supported, the preset is
not listed in the preset modes available
* Update codeowners in manifest.json
* Update main codeowners file for Tado component
* Get hostname id from get_settings
* Add try except in get_hostname_id function
* Update tests after adding get_hostname_id function
* Revert "Update tests after adding get_hostname_id function"
This reverts commit 5fa4e533cb.
* Add test for G2 models in config flow.
* Add test for helper module.
* Fix test for numbers.
* Revert "Add try except in get_hostname_id function"
This reverts commit 059f5bd9b4.
* Update variable name with known hostname ids to be private
---------
Co-authored-by: Stefan Gmeiner <stefangm42@gmail.com>
* airzone: climate: add Temperature range support
This is useful for HEAT_COOL climate mode (Airzone AUTO).
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* trigger CI
---------
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* Refactor zwave_js.sensor and add test coverage
* use walrus
* inherit config parameter class from list class
* use walrus in more places
* improve config parameter test