* Deprecate mode_command_topic for MQTT climate
* Correct deprecation and remove support release inf
* Do not use future tense for comment
* Extend deprecation period to 6 months
* Probe Huawei LTE API for device support on SSDP match
More or less as expected, the loosening of SSDP/UPnP data matches done
in #81643 started to yield false positives, as in #85402.
Coming up with robust matches solely based on the SSDP/UPnP data still
does not seem possible, so keep the matches as loose as they were made,
but additionally invoke a probe request on the API to determine if the
device looks like a supported one.
* Probe only after unique id checks
Prevents throwaway probes for discoveries already in progress.
* Fix SSDP result URL test, add missing assert on it
* 🔥 Remove old config entry migration logic
introduced for a breaking change in 2021-06, now unreachable after
completely disabling the YAML config for the integration
* ✅ Remove test for old config entry migration logic
and adjust existent one for config-flow to do not lose coverage
* 📦️ Bump aiopvpc version
* ♻️ Evolve DataUpdateCoordinator and PVPC sensor for new aiopvpc
setting `SensorDeviceClass.MONETARY` for the price sensor
* 🍱 tests: Update tests fixtures with new sensor data
for aiopvpc v4 with 'esios_public' as data-source
* ✅ tests: Adapt test suite for new default data-source
* 📦️ Bump aiopvpc version for latest patch 4.0.1
* ⏪️ Revert changes unrelated to library bump
* ⏪️ Revert tests changes unrelated to library bump
* Add diagnostics to bmw_connected_drive
* Add tests for diagnostics
* Move get_fingerprints to library, bump bimmer_connected to 0.10.4
* Update bimmer_connected to 0.11.0
* Fix pytest
* Mock actual diagnostics HTTP calls
* Update tests for bimmer_connected 0.12.0
* Don't raise errors if vehicle is not found
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
* 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
* fix test fixture
* update tests
* fix scene test
* Rainbird config flow
Convert rainbird to a config flow. Still need to handle irrigation numbers.
* Add options for irrigation time and deprecate yaml
* Combine exception handling paths to get 100% test coverage
* Bump the rainird config deprecation release
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove unnecessary sensor/binary sensor and address some PR feedback
* Simplify configuration flow and options based on PR feedback
* Consolidate data update coordinators to simplify overall integration
* Fix type error on python3.9
* Handle yaml name import
* Fix naming import post serialization
* Parallelize requests to the device
* Complete conversion to entity service
* Update homeassistant/components/rainbird/switch.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/rainbird/config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove unused import
* Set default duration in options used in tests
* Add separate devices for each sprinkler zone and update service to use config entry
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* add reauth flow
* adjust tests
* use constant for platforms
* remove not needed async_get_entry()
* fix typo
* user _async_abort_entries_match()
* don't use CONF_ prefix for config dicts
* sort PLATFORMS
* use entry_data in reauth flow
* redo Add sensor
* move back to ClientError
simplify washer_state
* Cleanup Sensor definitions
* Seperated EndTimeSensor
* Clean up WasherDryerTimeClass
* Start with Timestamp = None
* Clean up class description
* One more ClientError
* change to restore sensor
* Don't update when no state change
* Seperate washer tests
Add restore_state test
* Remove unused loop in washer sensor test
* No loops in sensor tests
* Remove unnecessary SensorTestInstance
* Add support for WetDry and WindHeading fields in LaCrosse View
* Improve test coverage
* Verify data type before conversion
* Improve test coverage
* Convert to more concise type conversion
* Add Flex field as per #79529
* Improve code quality
* Add check if expected field is missing
* MQTT Climate: Add support for setting the current humidity via MQTT
* MQTT Climate: Add configuration constants related to setting the target humidity
* MQTT Climate: Add support for setting the humidity's state topic & template
* MQTT Climate: Add support for setting the initial humidity
* MQTT Climate: Add support for setting the humidity's command topic & template
* MQTT Climate: Add support for setting the min/max humidity
* MQTT Climate: Fix style & tests
* MQTT Climate: Set the initial humidity to None
* MQTT Climate: Rename _set_mqtt_attribute to _set_climate_attribute and handle_temperature_received to handle_climate_attribute_received
* MQTT Climate: Copy humidity range validation from MQTT Humidifier
* MQTT Climate: Remove CONF_HUMIDITY_INITIAL
* MQTT Climate: Only enable support for TARGET_HUMIDITY when the command topic is set
* MQTT Climate: Check if setting the target humidity is supported before actually setting it
* MQTT Climate: Make sure that CONF_HUMIDITY_COMMAND_TOPIC has been configured when setting CONF_HUMIDITY_STATE_TOPIC
* MQTT Climate: Fix broken tests
* MQTT Climate: Add test for optimistically setting the target humidity
* MQTT Climate: Remove references to "temperature" in handle_climate_attribute_received
* MQTT Climate: Add additional humidity-related tests
* MQTT Climate: Remove supported feature check in handle_target_humidity_received
It's not needed because this is covered by the `valid_humidity_state_configuration` validation.
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* MQTT Climate: Remove supported feature check in async_set_humidity
It is covered by the base Climate entity.
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Add filter and error code support to CoolMastetNet
* Create separate entities
* coolmaster swing_mode support
* Changed default to False
* Raise HomeAssistantError
* Add tests for init and climate
* Fixed bad merge
* Catch only ValueError
* Add filter and error code support to CoolMastetNet
* Create separate entities
* Remove async_add_entities_for_platform
* Fixed call to async_add_entities
* Avoid using test global
* Add support for fututre config entry migrations
* Add testcase
* dir check bug
* rework the migrate testcase
* implement comments
* Missed this part of the file
* Fix and clean tests
* add more into the testcase
* push sugestions
* Upgrade velbusaio to add version 2 support
* more comments
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Ensure AirVisual Pro migration includes device and entity customizations
* Update homeassistant/components/airvisual/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Code review
* Fix tests
* Fix tests FOR REAL
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Support US region in the Whirlpool integration
* Force maytag brand for US region
* Add missing util.py file
* Fix import after merge
* run black
* Missing region key in config flow test
* Fixed Generic config entry
* fixed typos in dict
* Remove redundant list const
Co-authored-by: mkmer <mike.j.kasper@gmail.com>
* Add PoE power sensor to UniFi integration
* Add unit of power
* Only update state if value has changed
* Remove stale print
* Subscribe to specific sensor to remove unnecessary state changes
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove unused constant
* Reuse fetch check for retrieving device information
* Remove else block
* Patch integration setup in test
* use isinstance to detect return type, instead of tuple
* Raise exception when recoverable error has been triggered to make code cleaner
* Use error code to split message and localization
* Actually log things
* Added support for SwitchBot Lock
* Updated PySwitchbot to 0.32.1
* Updated .coveragerc
* Removed unnecessary condition
* Using library method to verify encryption key
* Added config flow tests
* Remove link from config flow description
* Added one more test for config flow
* Updated CODEOWNERS
* Add update support for calendars and implement in local calendar
* Fix supported feature for update calendar
* Increase test coverage for websocket error cases
* Improve test coverage for update failure cases
* Improve test coverage by sharing code between update and create
* Update homeassistant/components/calendar/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Try the next best adapter after a BLE connection fails
* add cover
* tweak
* tweak
* Update homeassistant/components/bluetooth/wrappers.py
* bump
* small tweak
* tweak logic
* manual_mqtt: parametrize test_no_pending
* manual_mqtt: parametrize test_no_pending_when_code_not_req
* manual_mqtt: parametrize test_with_pending
* manual_mqtt: parametrize test_with_invalid_code
* manual_mqtt: parametrize test_with_template_code
* manual_mqtt: parametrize test_with_specific_pending
* manual_mqtt: parametrize test_arm_via_command_topic
* manual_mqtt: remove unnecessary async_block_till_done from tests
* manual_mqtt: bring over a new test from manual
* manual_mqtt: add more states
The manual alarm control panel supports ARMED_CUSTOM_BYPASS and ARMED_VACATION.
Bring them over to the MQTT version.
* Bump pyrainbird to 0.7.0 and move to async library
* Share updates across sensors
* Fix test version and delete dead code
* Add test coverage for yaml configuration
* Address PR feedback
* Set title for Matter integration to integration name
* Update homeassistant/components/matter/config_flow.py
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Update title in tests
* one more title fix
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Fix error when describing deCONZ events of removed devices
* Apply suggestions from code review
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
* Add more types to the todoist integration.
* Update tests.
* Update homeassistant/components/todoist/calendar.py
Pass f-string directly to strftime.
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* Add back mistakenly removed local var.
Co-authored-by: Allen Porter <allen.porter@gmail.com>
* manual: add previous state for TRIGGERED as well
This will be useful to properly restore timers on restart.
* manual: correctly restore timers on startup
* Trigger reauth flow when HomeWizard API was disabled
* Add tests for reauth flow
* Fix typo in test
* Add parallel updates constant
* Improve error message when device in unreachable during config
* Set quality scale
* Remove quality scale
* Throw error instead of abort when setup fails
* Adjust test for new setup behaviour
* Trigger reauth flow when API is disabled and continue retrying
* Reload entry and raise AuthFailed during init
* Abort running config flow
* Listen for coordinator updates to trigger reload
* Use build-in backoff system
* Fix failing test
* Test reauth flow is active after disable-api init
* Test reauth flow removal
* Remove unused function in withings
* Move to tests
* Remove reference to attribute.platform
* Move WITHINGS_MEASUREMENTS_MAP to tests
* measute_type > measure_type
* One more
* Recognize more SSDP friendly names as "ours"
* Trigger on SoyeaLink devices
* Pass discovered URL through context, it does not persist via user_input
* Use manufacturer from SSDP
* Actually use serial number if available, update URL for configured
* Remove heuristic friendly name filtering against non-LTE devices
* Add language to conversation and intent response
* Move language to intent response instead of speech
* Extend intent response for voice MVP
* Add tests for error conditions in conversation/process
* Move intent response type data into "data" field
* Move intent response error message back to speech
* Remove "success" from intent response
* Add id to target in intent response
* target defaults to None
* Update homeassistant/helpers/intent.py
* Fix test
* Return conversation_id and multiple targets
* Clean up git mess
* Fix linting errors
* Fix more async_handle signatures
* Separate conversation_id and IntentResponse
* Add unknown error code
* Add ConversationResult
* Don't set domain on single entity
* Language is required for intent response
* Add partial_action_done
* Default language in almond agent
* Remove partial_action_done
* Fix linting
* Rename success/fail targets
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add language to conversation and intent response
* Move language to intent response instead of speech
* Extend intent response for voice MVP
* Add tests for error conditions in conversation/process
* Move intent response type data into "data" field
* Move intent response error message back to speech
* Remove "success" from intent response
* Add id to target in intent response
* target defaults to None
* Update homeassistant/helpers/intent.py
* Fix test
* Return conversation_id and multiple targets
* Clean up git mess
* Fix linting errors
* Fix more async_handle signatures
* Separate conversation_id and IntentResponse
* Add unknown error code
* Add ConversationResult
* Don't set domain on single entity
* Language is required for intent response
* Add partial_action_done
* Default language in almond agent
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Factor out _is_dmr_device function
* Use DMR device's MAC to match existing config entries
Some DMR devices change their every time they boot, against the DMR specs.
Try to match such devices to existing config entries by using their MAC
addresses.
* Add DMR device's MAC as a device_registry connection
* Use doc-only IPs (RFC5737) for dlna_dmr tests
* ESPHome: Use MAC as unique ID
* Normalize incoming zeroconf/dhcp macs
* Update comment
* Test ESPHome without mac in zeroconf
* Use format_mac
* Remove unique ID index from DomainData
* Make google calendar fail louder on invalid google_calendars.yaml
* Update homeassistant/components/google/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/google/__init__.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Remove duplicate object key in strings.json
* Remove async_entry_has_scopes check
This is not needed. This was copied from google calendar integration
where it was needed to reauth when the scope changed.
* Remove unused constant in application_credentials
* Move constant to the file used
* fix warning use-implicit-booleaness-not-len
* Remove not accessed parameters
* Revert "Remove async_entry_has_scopes check"
This reverts commit 63e24f84cc.
Entries took a while to setup because of the
async_wait_init_flow_finish call in _async_setup_component
The delay was so long that users thought the integration
was broken
We had a wait in place for advertisements to arrive
during discovery in case the lock was not
yet seen. Since integration discovery is deferred
until after startup this wait it no longer needed
* Copy google_sheets to google_assistant_sdk
This is to improve diff of the next commit with the actual implementation.
Commands used:
cp -r homeassistant/components/google_sheets/ homeassistant/components/google_assistant_sdk/
cp -r tests/components/google_sheets/ tests/components/google_assistant_sdk/
find homeassistant/components/google_assistant_sdk/ tests/components/google_assistant_sdk/ -type f | xargs sed -i \
-e 's@google_sheets@google_assistant_sdk@g' \
-e 's@Google Sheets@Google Assistant SDK@g' \
-e 's@tkdrob@tronikos@g'
* Google Assistant SDK integration
Allows sending commands and broadcast messages to Google Assistant.
* Remove unnecessary async_entry_has_scopes check
* Bump gassist-text to fix protobuf dependency
* Add language to conversation and intent response
* Move language to intent response instead of speech
* Extend intent response for voice MVP
* Add tests for error conditions in conversation/process
* Move intent response type data into "data" field
* Move intent response error message back to speech
* Remove "success" from intent response
* Add id to target in intent response
* target defaults to None
* Update homeassistant/helpers/intent.py
* Fix test
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add language to conversation and intent response
* Add language parameter to conversation/process service
* Move language to intent response instead of speech
* Add language to almond conversation agent
* Fix intent test
* Set last_target_temp value according the unit system
* Convert restored temperature values
* Add test
* Improve comments
* Move _last_target_temp value to constants
* Replace unit consts with enums
* Remove default entries in NWSSensorEntityDescription
* Replace wind icon property with setting device_class in Wind Speed and Wind Gust sensors
* fan.set_percentage + tests
* let's see what is not yet covered
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* tests fix
* vallox_websocket_api 3.0.0
* more coverage
* test coverage
* Update tests/components/vallox/test_fan.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* raise exceptions on user input
* Supported features are different per preset mode.
* Test fixes
* Static supported features is back.
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>