* 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
* Add change service
* test subtract
* Test no change if timer not running
* Modify example
* Raise
* Finalize
* test event
* Fix tests
* Fix tracking time
* Added new integration to support Electra Smart (HVAC)
* fixes + option to set scan interval
* renamed the module to electrasmart and added unittests
* added non tested files to .coveragerc
* changed the usage from UpdateCoordinator to each entity updates it self
* small fixes
* increased pypi package version, increased polling timeout to 60 seconds, improved error handling
* PARALLEL_UPDATE=1 to prevent multi access to the API
* code improvements
* aligned with the new HA APIs
* fixes
* fixes
* more
* fixes
* more
* more
* handled re-atuh flow
* fixed test
* removed hvac action
* added shabat mode
* tests: 100% coverage
* ran hassfest
* Update homeassistant/components/electrasmart/manifest.json
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Update homeassistant/components/electrasmart/manifest.json
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Update homeassistant/components/electrasmart/manifest.json
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* Update homeassistant/components/electrasmart/climate.py
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* address Shay's comments
* address Shay's comments
* address more comments
---------
Co-authored-by: Shay Levy <levyshay1@gmail.com>
* init commit
* use official version release
* remove options
* moved first refresh to gather
* add extra tests
* remove model_sepcification
* remove old mqtt test
* bump to 13.4
* fix dndtimer
* bump to 14.1
* add status back
* bump to 17.0
* remove error as it is not used
* addressing mr comments
* making enum access use get()
* add check for empty hass data
* Add always connected option to Yale Access Bluetooth
If the lock does not support push updates via advertisements or you want lock operation to be more responsive, you can enable always connected mode. Always connected will cause the lock to stay connected to Home Assistant via Bluetooth, which will use more battery.
* Update homeassistant/components/yalexs_ble/config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update UpCloud config entry data on successful reconfig
* Add already configured test
* Improve success case request mocking
So that the data fetch that might happen in the background after success
won't trash the test log with misleading errors.
* Simplify already configured test
Thanks-to: Martin Hjelmare <marhje52@gmail.com>
* remove impossible test
IndividualAddress telegrams are not processed by xknx.telegram_queue
* Use Telegrams helper class for group monitor messages
* Store 50 telegrams in deque for group monitor
* Send recent telegrams at once on connection of group monitor
* Update KNX-frontend to support group monitor prepopulation
* Copy openai_conversation to google_generative_ai_conversation
This is to improve diff of the next commit with the actual implementation.
Commands used:
cp -r homeassistant/components/openai_conversation/ homeassistant/components/google_generative_ai_conversation/
cp -r tests/components/openai_conversation/ tests/components/google_generative_ai_conversation/
find homeassistant/components/google_generative_ai_conversation/ tests/components/google_generative_ai_conversation/ -type f | xargs sed -i \
-e 's@openai_conversation@google_generative_ai_conversation@g' \
-e 's@OpenAI Conversation@Google Generative AI Conversation@g' \
-e 's@balloob@tronikos@g'
* Add google_generative_ai_conversation to Google brand
* Google Generative AI Conversation
* Sync recent openai changes
* handle empty responses
* telegram device trigger initial
* add Telegrams helper class
to parse and convert Telegram only once instead of once per device trigger
* translation
* label for extra_field
* test device trigger
* test trigger callback removal
* rename extra_field key to same name as used in trigger
* typo
* Support calculating changes between consecutive sum statistics
* Add support for unit conversion when calculating change
* Don't include sum in WS response unless requested
* Improve tests
* Break out calculating change to its own function
* Improve test coverage
* Add KNX panel
* provide project data for the panel group monitor
* upload and delete project from panel
* test project store
* more tests
* finish tests
* use integers for DPTBinary payload monitor display
* add project to diagnostics
* require new frontend version
* update knx_frontend
* review suggestions
* update xknxproject to 3.1.0
---------
Co-authored-by: Marvin Wichmann <me@marvin-wichmann.de>
* Use the 'id' field and nearest resolutions
Expose nearest Resolution (ID and Value) as Variables
* Add more specific type hints
* Change type definition of request
* Add deprecation warning and remove variables
* Remove deprecation warning & update tests
* Fix wrong value assignment
* revert future changes
* migrated geo_json_events integration to config flow
* improve test coverage
* code reformatting
* fix tests
* fix entity manager
* changes after review
* improve test coverage and fixed form
* remove unused code
* remove commented out code
* changes after review
* make title prettier
* fixed tests
* simplified code
* changes after review
* fix test
* push deprecation out
* changes after review
* changes after review
* changes after review
* changes after review
* changes after review
* removed scan interval from user flow and import flow
* Debounce MQTT unsubscribes and merge to one call
* Make _async_unsubscribe a callback
* Make sure unsubscribes are processed
* Move debug log out of lock
* Reduce calls and raise outside lock
* Cancel any unsubscribe when queing
* Copy pending unsubscribes
* Only convert topics to list once
* No copy needed
* Typo in comment
* add diagnostic sensors
* test binary_sensor.py file
* add tests for binary sensor
* fix zone type checks and error on unknown
* improve entity tests
* hide entities by default
* Revert "hide entities by default"
This reverts commit 9808d732471385e45ccc5f7c3aea93bfecbdfa6f.
* Update homeassistant/components/totalconnect/binary_sensor.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* update binary_sensor per comments
* update test
* move to _attr_extra_state_attributes
* no spaces in unique_id
* update per balloob suggestions
* fix typing
* fix black and mypy
* Apply suggestions from code review
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* add more to binary_sensor tests
* remove unused import
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Re-run expose entities migration if first time failed
* Count number of exposed entities
* Add tests
---------
Co-authored-by: Erik <erik@montnemery.com>
* Handle AttributeError from wrong port in ONVIF config flow
fixes
```
2023-04-29 19:17:22.289 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request
resp = await request_handler(request)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle
resp = await handler(request)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/security_filter.py", line 85, in security_filter_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/forwarded.py", line 100, in forwarded_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/request_context.py", line 28, in request_context_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/ban.py", line 80, in ban_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/auth.py", line 235, in auth_middleware
return await handler(request)
File "/Users/bdraco/home-assistant/homeassistant/components/http/view.py", line 146, in handle
result = await result
File "/Users/bdraco/home-assistant/homeassistant/components/config/config_entries.py", line 180, in post
return await super().post(request, flow_id)
File "/Users/bdraco/home-assistant/homeassistant/components/http/data_validator.py", line 72, in wrapper
result = await method(view, request, data, *args, **kwargs)
File "/Users/bdraco/home-assistant/homeassistant/helpers/data_entry_flow.py", line 110, in post
result = await self._flow_mgr.async_configure(flow_id, data)
File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 271, in async_configure
result = await self._async_handle_step(
File "/Users/bdraco/home-assistant/homeassistant/data_entry_flow.py", line 367, in _async_handle_step
result: FlowResult = await getattr(flow, method)(user_input)
File "/Users/bdraco/home-assistant/homeassistant/components/onvif/config_flow.py", line 233, in async_step_configure
errors, description_placeholders = await self.async_setup_profiles()
File "/Users/bdraco/home-assistant/homeassistant/components/onvif/config_flow.py", line 277, in async_setup_profiles
await device.update_xaddrs()
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/onvif/client.py", line 433, in update_xaddrs
capabilities = await devicemgmt.GetCapabilities({"Category": "All"})
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/proxy.py", line 64, in __call__
return await self._proxy._binding.send_async(
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 164, in send_async
return self.process_reply(client, operation_obj, response)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/wsdl/bindings/soap.py", line 204, in process_reply
doc = parse_xml(content, self.transport, settings=client.settings)
File "/Users/bdraco/home-assistant/venv/lib/python3.10/site-packages/zeep/loader.py", line 51, in parse_xml
docinfo = elementtree.getroottree().docinfo
AttributeError: NoneType object has no attribute getroottree
```
* port
* Revert "port"
This reverts commit 4693f3f33a.
* misfire
* Auto repair incorrect collation on MySQL schema
As we do more union queries in 2023.5.x if there is a mismatch
between collations on tables, they will fail with an error
that is hard for the user to figure out how to fix
`Error executing query: (MySQLdb.OperationalError) (1271, "Illegal mix of collations for operation UNION")`
This was reported in the #beta channel and by PM from others
so the problem is not isolated to a single user
https://discord.com/channels/330944238910963714/427516175237382144/1100908739910963272
* test with ascii since older maraidb versions may not work otherwise
* Revert "test with ascii since older maraidb versions may not work otherwise"
This reverts commit 787fda1aefcd8418a28a8a8f430e7e7232218ef8.t
* older version need to check collation_server because the collation is not reflected if its the default
* Ensure devices with bad cluster subclasses do not prevent startup
* Explicitly unit test an affected SML001 device
* Do not use invalid `hue_occupancy` attribute name
* Actually remove `hue_occupancy`
* Bump ZHA dependencies
* Expose channel changing over the websocket API
* Expose channel changing as a service
* Type annotate some existing unit test fixtures
* Add unit tests
* Rename `api.change_channel` to `api.async_change_channel`
* Expand on channel migration in the service description
* Remove channel changing service, we only really need the websocket API
* Update homeassistant/components/zha/websocket_api.py
* Black
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add LED control support to Home Assistant Yellow
* Fix the handlers
* Remove switch platform
* Allow configuring LED settings from the options flow
* Add missing translations
* Add tests
* Add tests
* Small cleanups to bluetooth internals
Improve the performance of _async_on_advertisement
Fixes
```
tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available
tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
/Users/bdraco/home-assistant/homeassistant/components/bluetooth/wrappers.py:226: FutureWarning: This method will be removed future version, pass the callback to the BleakClient constructor instead.
self._backend.set_disconnected_callback(
tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
/Users/bdraco/home-assistant/tests/components/bluetooth/test_models.py:506: FutureWarning: BLEDevice.metadata is deprecated and will be removed in a future version of Bleak, use AdvertisementData instead
switchbot_proxy_device_no_connection_slot.metadata["delegate"] = 0
tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
/Users/bdraco/home-assistant/tests/components/bluetooth/test_models.py:521: FutureWarning: BLEDevice.metadata is deprecated and will be removed in a future version of Bleak, use AdvertisementData instead
switchbot_proxy_device_has_connection_slot.metadata["delegate"] = 0
tests/components/bluetooth/test_models.py::test_ble_device_with_proxy_client_out_of_connections_uses_best_available_macos
/Users/bdraco/home-assistant/tests/components/bluetooth/test_models.py:535: FutureWarning: BLEDevice.metadata is deprecated and will be removed in a future version of Bleak, use AdvertisementData instead
switchbot_device.metadata["delegate"] = 0
```
* put back kwargs
* Automaticially create an assist pipeline using cloud stt + tts
* Return the id of the cloud enabled pipeline
* Wait for platforms to load
* Fix typing
* Fix startup race
* Update tests
* Create a cloud pipeline only when logging in
* Fix tests
* Tweak _async_resolve_default_pipeline_settings
* Improve assist_pipeline test coverage
* Improve cloud test coverage
* Always use `Light` for lights, including subclasses
* Clean up other platforms
* Add a unit test to ensure all future entity classes have names
* Remove stale `_name`
* Address review feedback and rename `Open` to `Opening`
* Address suggestions in PR #64090
* Remove redundant force-refresh at discovery time
* Improve re-auth UX
* Resolve linting warning
* Cover reauth case when no entry is in place
* Add missing reauth_successful message
* Use ad-hoc schema for reauth flow
* Align test cases with latest modifications
* Improve re-authentication flow, align tests
* Remove None check (as it can never happen)
* Remove panel_id from reauth dialog
* Remove panel_id from reauth dialog
* Simplify try-catch block
* Address suggestions in PR #64090
* Remove redundant force-refresh at discovery time
* Improve re-auth UX
* Resolve linting warning
* Cover reauth case when no entry is in place
* Add missing reauth_successful message
* Use ad-hoc schema for reauth flow
* Align test cases with latest modifications
* Improve re-authentication flow, align tests
* Remove None check (as it can never happen)
* Remove panel_id from reauth dialog
* Remove panel_id from reauth dialog
* Simplify try-catch block
* Improve type handling
* Remove translations
* Add unique-id attribute within context object
* Optimize local variable usage
* Ensure logbook still responds if describe event throws
If describe fails, the logbook stream should not collapse
* Ensure logbook still responds if describe event throws
If describe fails, the logbook stream should not collapse
* Add cipher list option to IMAP config flow
* Use client_context to get the ssl_context
* Formatting
* Add ssl error no make error handling more specific
* Make ssl_ciper_list an advanced option
* Assist pipeline to use configured values
* Include voice in TTS-START event
* Use correct tts language var
* More vars
* Apply suggestions from code review
* Update
---------
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
* fix check for airquality sensor (was always TRUE)
* import additional const required
* add support for formaldehyd sensor
* add support for co2 sensor
* add support for pm25 sensor
* sort const a-z
* adapt to typo fixed function
* adapt to new key names (formaldehyde)
* adapt co2 sensor to new key names
* Update homeassistant/components/deconz/sensor.py
remove unnecessary code
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
* add device_class for air_quality_ppb
* add test_air_quality_sensor_6_in_1
* fix Air quality PPB test to match device_class
* remove device_class of air_quality_ppb
* remove device_class test of airqualityppb
* explicit units
* remove device_class test of airquality_1_ppb
* dependency bump pydeconz to 111
* Update homeassistant/components/deconz/sensor.py
remove unnecessary device_class
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
* import formatting
* formatting
* Update homeassistant/components/deconz/sensor.py
change key for pm2_5
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
* add airquality co2 ch2o pm25 sensor testdata
* remove test_air_quality_sensor_6_in_1
* formatting
* bump pydeconz for requirements
---------
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
* init setup of Anova Sous Vide
* bump anova-wifi to 0.2.4
* Removed yaml support
* Bump to anova-wifi 0.2.5
* Added support for adding sous vide while offline
* Added basic test for sensor
* added better tests for sensors and init
* expanded code coverage
* Decreased timedelta to lowest functioning value.
* Updating my username
* migrate to async_forward_entry_setups
* applying pr recommended changes
* bump anova-wifi to 0.2.7
* Improvements to hopefully get this review ready
* formatting changes
* clean ups for pr review
* remove unneeded unique id check.
* bump ao anova_wifi 0.3.0
* rename device_id to device_unique_id
* renamed to 'anova'
* added unique_id to MockConfigEntry
* removed leftover anova sous vides
* added device id to strings
* added error for incorrect device id
* add has_entity_name
* added attr name for tests
* added authentication functionality
* bump to 0.4.3
* split entity into its own class/object
* pulling firmware version out of async_setup
Co-authored-by: J. Nick Koston <nick@koston.org>
* addressed pr changes
* fixed pytest
* added anova data model
* removed unneeded time change
* add logging in package
* rework step_user
* Update homeassistant/components/anova/sensor.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Removed lower from attr unique id
Co-authored-by: J. Nick Koston <nick@koston.org>
* Removed unneeded member variables in sensor
Co-authored-by: J. Nick Koston <nick@koston.org>
* removed repeated subclass attr
Co-authored-by: J. Nick Koston <nick@koston.org>
* simplify update_failed test
* created descriptionentity
* bump to 0.6.1 limit ws connect
* add translation for sensor entities
* version bump - support pro model
* add anova to strict typing
* fixed sensor not getting datas type
* Apply suggestions from code review
Co-authored-by: J. Nick Koston <nick@koston.org>
* Check for new devices in init
* style changes
* return false instead of config entry not ready
* move serialize_device_list to utils
* move repeating device check into api
* moved unneeded code out of try except
* fixed tests to get 100% cov
* Update homeassistant/components/anova/strings.json
Co-authored-by: J. Nick Koston <nick@koston.org>
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Skip adding WeMo device on failure
* Only create a single log entry for each failed device
* Fix typo s/serial_number/serialnumber/
* Discard failed devices on success
* Add more PrusaLink sensors
* Disable prusalink target temperatures by default, add prusa to brands
* Disable prusalink z-height by default
* Remove uneccessary Prusa from brands
* Move target temperatures to the telemetry section of the sensor
* Fix entity naming for prusalink
* Add tests for new prusalink sensors
* Test fixes, fix rebase errors
* Clean up deprecated unit usage
* Add translations for entity names
* Fix tests for translations
---------
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Speed up logbook and history queries where ORM rows are not needed
This avoids having sqlalchemy wrap Result in ChunkedIteratorResult
which has additional overhead we do not need for these cases
* more places
* anything that uses _sorted_statistics_to_dict does not need orm rows either
* Play tone when starting a VoIP call
* Play audio message when call is rejected
* Add option to disable tone for tests
* Send RTP audio in executor to reduce jitter
* Don't start pipeline until speech
* Bump voip utils
* init roborock commit
* init commit of roborock
* removed some non-vacuum related code
* removed some non-needed constants
* removed translations
* removed options flow
* removed manual control
* remove password login
* removed go-to
* removed unneeded function and improved device_stat
* removed utils as it is unused
* typing changes in vacuum.py
* fixed test patch paths
* removed unneeded records
* removing unneeded code in tests
* remove password from strings
* removed maps in code
* changed const, reworked functions
* remove menu
* fixed tests
* 100% code coverage config_flow
* small changes
* removed unneeded patch
* bump to 0.1.7
* removed services
* removed extra functions and mop
* add () to configEntryNotReady
* moved coordinator into seperate file
* update roborock testing
* removed stale options code
* normalize username for unique id
* removed unneeded variables
* fixed linter problems
* removed stale comment
* additional pr changes
* simplify config_flow
* fix config flow test
* Apply suggestions from code review
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* First pass at resolving PR comments
* reworked config flow
* moving vacuum attr
* attempt to clean up conflig flow more
* update package and use offline functionality
* Fixed errors and fan bug
* rework model and some other small changes
* bump version
* used default factory
* moved some client creation into coord
* fixed patch
* Update homeassistant/components/roborock/coordinator.py
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* moved async functions into gather
* reworked gathers
* removed random line
* error catch if networking doesn't exist or timeout
* bump to 0.6.5
* fixed mocked data reference url
* change checking if we have no network information
Co-authored-by: Allen Porter <allen.porter@gmail.com>
---------
Co-authored-by: Allen Porter <allen.porter@gmail.com>
Co-authored-by: Allen Porter <allen@thebends.org>
* Make sure MQTT is available starting mqtt_json
* Wait for mqtt client
* Sync client connect
* Simplify
* Addiitional tests async_wait_for_mqtt_client
* Improve comment waiting for mqtt
* Improve docstr
* Do not wait unless the MQTT client is in setup
* Handle entry errors during setup
* More comments - do not clear event
* Add snips and mqtt_room
* Add manual_mqtt
* Update homeassistant/components/mqtt/__init__.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Use a fixture, improve tests
* Simplify
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Fallback to generating a new ULID on migraiton if context is missing or invalid
It was discovered that postgresql will do a full scan if
there is a low cardinality on the index because of missing
context ids. We will now generate a ULID for the timestamp
of the row if the context data is missing or invalid
fixes#91514
* tests
* tweak
* tweak
* preen
* Remove legacy context lookup implemention from logbook
This object can now be replaced with a simple dict
* Remove legacy context lookup implemention from logbook
This object can now be replaced with a simple dict
* scope
* fix order issue