Compare commits

...

2275 Commits

Author SHA1 Message Date
G Johansson
45aab80b59 Modify query as template in SQL integration 2024-08-23 14:48:50 +00:00
Ino Dekker
611723e44b Bump aiohue to version 4.7.3 (#124436) 2024-08-23 13:43:17 +02:00
tronikos
f8e65c1161 Bump opower to 0.7.0 (#124475) 2024-08-23 12:43:16 +02:00
starkillerOG
ab064a7f36 Reolink add 100% coverage of number platform (#124465)
* Add 100% number test coverage

* review comments

* fix styling

* re-add AsyncMock for chime
2024-08-23 12:34:58 +02:00
Willem-Jan van Rootselaar
4e94ce0cc7 Refactor bsblan coordinator (#124308)
* chore: Refactor BSBLanUpdateCoordinator to improve code readability and maintainability

* feat: Add BSBLan integration models

This commit adds the models for the BSB-Lan integration. It includes a dataclass for the BSBLanCoordinatorData, which stores the state and sensor information.

* refactor: Update BSBLANClimate class to use DataUpdateCoordinator without specifying the State type

* chore: Remove unused Sensor import in BSBLan models

* feat: Refactor BSBLanEntity to use CoordinatorEntity

The BSBLanEntity class has been refactored to inherit from the CoordinatorEntity class, which provides better integration with the update coordinator. This change improves code readability and maintainability.

* refactor: Remove unused config_entry variable in BSBLanUpdateCoordinator

* refactor: Update BSBLANClimate class to use DataUpdateCoordinator

Refactor the BSBLANClimate class to use the Coordinator of the entity

* refactor: Update tests to use the new structure

* fix coverage

 it should be the same as before

* refactor: moved dataclass BSBLanCoordinatorData

* use the data class inside init

* refactor: Remove unused config_entry variable in BSBLanUpdateCoordinator

* refactor: use BSBLanData from init

* remove entry data from diagnostics

* fix: add random interval back

* refactor: Simplify coordinator_data assignment in async_get_config_entry_diagnostics

* revert back to original except dataclass import

* revert: Add MAC address back to device info in BSBLanEntity
2024-08-23 08:42:36 +02:00
Raman Gupta
7c6e3fe9c4 Fix zwave_js services.yaml schema (#124455)
Fix zwave_Js services.yaml schema
2024-08-23 08:38:08 +02:00
J. Nick Koston
7579ebc02a Replace statistics _get_unit_class function with a dict lookup (#124452) 2024-08-22 21:14:31 -05:00
J. Nick Koston
61ac4c7af7 Use identity checks for ESPHome Enums (#124334)
Enums are singletons and should use is to compare.

The valve platform was updated but cover and lock were missed.
2024-08-22 22:50:15 +03:00
J. Nick Koston
2533bde27a Bump yalexs to 8.1.4 (#124425)
changelog: https://github.com/bdraco/yalexs/compare/v8.1.2...v8.1.4
2024-08-22 22:46:54 +03:00
Raman Gupta
fc1ed7d7cb Refactor targets for zwave_js services (#115734)
* Let labels be used as targets for zwave_js services

* add coverage

* Fix test bug and switch from targets to fields

* Remove label addition

* Remove labels from service descriptions

* Remove labels from strings

* More changes
2024-08-22 21:07:21 +02:00
Joost Lekkerkerker
281a9f042b Check minimum amount of integrations for a brand (#124310) 2024-08-22 21:01:48 +02:00
J. Nick Koston
1d35c745bb Reduce ESPHome entity state write overhead (#124329) 2024-08-22 21:00:30 +02:00
Jan Bouwhuis
51dba1eec3 Cleanup redundant fixtures and move all other hassio addon fixtures to be shared (#124437) 2024-08-22 20:58:05 +02:00
Sid
6e5e96b047 Bump ruff to 0.6.2 (#124433) 2024-08-22 20:51:57 +02:00
Jan Bouwhuis
e13f8996f2 Fix Import ReceivePayloadType (#124431)
* Fix Import ReceivePayloadType

* Do not assert export `ReceivePayloadType` on mqtt integration level as helper should be used.
2024-08-22 20:13:30 +02:00
Jan Bouwhuis
7887bcba89 Allow to set options for an MQTT enum sensor (#123248)
* Add options attribute support for MQTT sensor

* Add comment
2024-08-22 19:16:08 +02:00
Michael Arthur
3a92899081 Add LawnMowerActivity.RETURNING to Lawn Mower (#124261)
* Add returning activity state

* update tests

* update tests

* set can return to returning state

* update MQTT tests

* update mqtt back to docked

* fix up other tests that I broke again

* re-add mower_can_dock
2024-08-22 19:13:54 +02:00
Petro31
5d64155bb6 Add zip to template engine (#122460)
* add zip to template engine

* fix doc strings
2024-08-22 19:11:08 +02:00
J. Nick Koston
6f66f37fc7 Shutdown database engine before waiting for executor shutdown (#117339)
* Close database connection before stopping the executor

related issue #117004

* Close database connection before waiting for database executor to finish

related issue #117004

* fix test

* fix

* drop unused arg

* Revert "drop unused arg"

This reverts commit 8a9fe6a24a.

* docstring

* comment
2024-08-22 16:47:22 +02:00
Markus Jacobsen
890c6e97fd Add Bang & Olufsen websocket testing (#123075)
* Add websocket.py testing
Convert media_player testing dispatch events to the proper websocket events

* Fix WebSocket testing by using callbacks

* Add typing

* Add caplog checking
Check dispatch events directly
Check event bus directly
Avoid using internals

* Fix event and / dispatch callbacks not necessarily being checked

* Remove unnecessary caplog log level handling
2024-08-22 16:31:15 +02:00
Erik Montnemery
404a7bab18 Wrap OSError in loader.load_yaml (#124406) 2024-08-22 09:06:41 -05:00
Markus Jacobsen
2337c3ff69 Improve Bang olufsen test typing and parameter order (#124419)
* Add proper media_player typing to tests

* Add proper typing to init tests

* Add proper typing to config_flow tests

* Fix order of parameters of tests

* Add more typing
Reorder parameters
2024-08-22 15:49:42 +02:00
Penny Wood
4a6f833fca Add supported features for iZone (#124416)
* Fix for #123462

* Set outside of constructor
2024-08-22 15:39:09 +02:00
Jakob Schlyter
c541cb5cba Automatically generate Amazon Polly list of voices and regions (#119198)
* Automatically generate list of voices and regions. Requires AWS credentials.

* add missing commit

* replace pydantic with dataclass

* dictionary values are strings or list of strings

* also generated set of supported engines

* use sets for amazon polly parameters

* move default for readability
2024-08-22 15:36:11 +02:00
J. Nick Koston
df82567356 Fix shelly available check when device is not initialized (#124182)
* Fix shelly available check when device is not initialized

available needs to check for device.initialized or if the device
is sleepy as calls to status will raise NotInitialized which results
in many unretrieved exceptions while writing state

fixes
```
2024-08-18 09:33:03.757 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 258, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 453, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 168, in async_update_listeners
    update_callback()
  File "/config/custom_components/shelly/entity.py", line 374, in _update_callback
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1005, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1130, in _async_write_ha_state
    self.__async_calculate_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1067, in __async_calculate_state
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1011, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/binary_sensor/__init__.py", line 293, in state
    if (is_on := self.is_on) is None:
                 ^^^^^^^^^^
  File "/config/custom_components/shelly/binary_sensor.py", line 331, in is_on
    return bool(self.attribute_value)
                ^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/shelly/entity.py", line 545, in attribute_value
    self._last_value = self.sub_status
                       ^^^^^^^^^^^^^^^
  File "/config/custom_components/shelly/entity.py", line 534, in sub_status
    return self.status[self.entity_description.sub_key]
           ^^^^^^^^^^^
  File "/config/custom_components/shelly/entity.py", line 364, in status
    return cast(dict, self.coordinator.device.status[self.key])
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aioshelly/rpc_device/device.py", line 390, in status
    raise NotInitialized
aioshelly.exceptions.NotInitialized
```

* tweak

* cover

* fix

* cover

* fixes
2024-08-22 16:14:45 +03:00
epenet
1bc0ec201a Drop ignore-missing-annotations from pylint tests (#120302) 2024-08-22 15:13:00 +02:00
epenet
403db6277f Improve type hints in lcn tests (#124415) 2024-08-22 14:50:45 +02:00
epenet
4e3bd55c73 Revert UnitOfReactivePower change from iotawatt (#124393)
Revert "Change POWER_VOLT_AMPERE_REACTIVE to UnitOfReactivePower (#117153)"

This reverts commit 3e53cc175f.
2024-08-22 12:11:07 +02:00
Erik Montnemery
ab6d0e3277 Handle !include without arguments in configuration.yaml (#124399)
* Prevent !include without arguments in configuration.yaml from crashing core

* Add test
2024-08-22 12:08:24 +02:00
TimL
480e748b04 Bump pysmlight to 0.0.13 (#124398)
Better handle socket uptime disconnected
Raise auth error on get/post requests that fail
2024-08-22 12:04:03 +02:00
Jan Bouwhuis
b541d214ed Fix lingering mqtt unload entry test (#124392) 2024-08-22 11:03:35 +02:00
G Johansson
0c8ed18ca5 Use setup_test_component_platform in Climate tests (#123941)
* Use setup_test_component_platform in Climate tests

* Rename mock integration helper

* Change name to register_test_integration

* Change name in tests

* Fix ruff format
2024-08-22 09:38:27 +02:00
Jan Bouwhuis
61114d8328 Install and start Mosquitto MQTT broker add on from MQTT config flow (#124106)
* Opt in to install Mosquitto broker add-on in MQTT config flow

* rephrase

* Tests with supervisor and running add-on

* Complete tests for success flows

* Also set up entry in success flow

* Use realistic names for addon and broker

* Finetuning and fail test cases

* Spelling

* Improve translation strings

* Update addon docstr

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Raise AddonError if add-on does not start

* Only show the option to use the add-on

* Simplify flow, rework and cleanup

* Revert unrelated cleanup, process suggestion

* Move ADDON_SLUG const to addon module

* Move fixture to component level

* Move back supervisor fixture

* Move addon_setup_time_fixture and superfixe to config flow model tests

* Refactor hassio fixture

* Rename helpers as they are no fixtures, remove fixture from their names

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-22 09:07:45 +02:00
spongebobberts
9b9e98a26e Fix typo in Alexa resources docstring (#124388)
Fixed typo in Alexa resources docstring
2024-08-22 09:05:13 +02:00
dependabot[bot]
60f9fbf800 Bump home-assistant/builder from 2024.08.1 to 2024.08.2 (#124341) 2024-08-22 08:55:43 +02:00
dependabot[bot]
2ff326b563 Bump github/codeql-action from 3.26.2 to 3.26.4 (#124390) 2024-08-22 08:55:16 +02:00
G Johansson
266cd623a5 Bump python-holidays to 0.55 (#124314) 2024-08-22 07:59:21 +02:00
J. Nick Koston
ad362b1d4c Bump dbus-fast to 2.23.0 (#124384) 2024-08-22 07:48:25 +02:00
epenet
47beddc6c6 Improve config flow type hints (part 4) (#124348) 2024-08-21 22:43:42 +02:00
epenet
913e5404da Improve config flow type hints (part 1) (#124343)
* Improve config flow type hints

* Revert sms
2024-08-21 22:42:58 +02:00
Mr. Bubbles
67bc568db6 Add tests for Bring integration (#123087)
* Add tests to bring integration

* use more parametrization

* json fixture loading, move notification tests
2024-08-21 22:18:33 +02:00
Patrick Frazer
5f53d3f917 Add DROP Alert product support (#117867)
* Add DROP Alert product support

* Add DROP Alert to sensor selftest

* Fix Alert sensor naming ambiguity

* Reorder a constant

* Alphabetize strings

* Remove unnecessary translation key
2024-08-21 21:56:59 +02:00
Angel Nunez Mencias
e9798cd1b4 update ttn_client - fix crash with SenseCAP devices (#124370)
update ttn_client
2024-08-21 21:14:03 +02:00
Anrijs
4ef55e5088 Add Aranet Radon Plus support (#124197)
added aranet radon plus support
2024-08-21 22:12:20 +03:00
Pete Sage
9399a54c7a Fix Spotify Media Browsing fails for new config entries (#124368)
* initial commit

* tests

* tests

* update tests

* update tests

* update tests
2024-08-21 21:05:09 +02:00
Markus Jacobsen
d86b816491 Convert Bang & Olufsen testing logging patches to caplog (#124366)
* Convert logging patches to caplog

* Remove unnecessary caplog log level handling
2024-08-21 17:11:01 +02:00
Markus Jacobsen
88b95c1236 Remove unneeded check for Bang & Olufsen events and device update (#124363)
Remove unneeded check for device and HomeAssistant availability
2024-08-21 17:03:21 +02:00
J. Nick Koston
e56c235424 Bump async-interrupt to 1.2.0 (#124360)
changelog: https://github.com/bdraco/async_interrupt/compare/v1.1.2...v1.2.0
2024-08-21 16:59:41 +02:00
mvn23
ec256166cc Rename OpenThermGatewayDevice to OpenThermGatewayHub (#124361)
* Rename OpenThermGatewayDevice to OpenThermGatewayHub
Update references accordingly

* Update tests
2024-08-21 16:56:57 +02:00
Jeef
9de90ca7d5 Fix Weatherflow Cloud lightning (#124082)
* Adding a error condition and a fix for missing lightning epoch values

* adding parentheses around the lambda

* Updating PR

* removed the dumb test

* Updated tests to support good stuff

* Updated snapshots
2024-08-21 16:16:16 +02:00
Christian Neumeier
3e53cc175f Change POWER_VOLT_AMPERE_REACTIVE to UnitOfReactivePower (#117153)
* Refactoring: exchange POWER_VOLT_AMPERE_REACTIVE with UnitOfReactivePower

* updated iotawatt and mysensors from VOLT_AMPERE_REACTIVE to UnitOfReactivePower.VOLT_AMPERE_REACTIVE

* deprecation period for POWER_VOLT_AMPERE_REACTIVE changed to one year.

* POWER_VOLT_AMPERE_REACTIVE changed to UnitOfReactivePower in blebox integration

* Update homeassistant/const.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-21 15:36:45 +02:00
Mr. Bubbles
b21b300625 Disable Habitica deprecated entities by default (#123522)
Deprecated sensor task entites disable by default
2024-08-21 14:59:08 +02:00
Christopher Fenner
52c0a09107 Add test cases for ViCare entities (#122983)
* add test case

* add test case

* add test case

* add test case

* add test case

* add test case

* remove commented code

* test only fan platform

* add test case

* remove fan mock
2024-08-21 14:42:58 +02:00
Mr. Bubbles
8d97fafb2d Add tests for IronOS integration (#123078)
Add tests
2024-08-21 14:03:40 +02:00
Joram
fa5f47127c Fix state name for binary_sensor Power from clear/detected to on/off (#116994)
Fixed state name for binary_sensor Power from clear/detected to on/off
2024-08-21 13:37:43 +02:00
Michał Jaworski
316a57864a Extend blebox shutterbox tilt support (#110547)
* blebox: extend shutterbox tilt support

* feat: add test for new open/close tilt code in blebox covers

* blebox: resign from using future compat branch for cover open/close tilt

* Update homeassistant/components/blebox/cover.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* blebox: revert changes to BLEBOX_TO_HASS_COVER_STATES

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-21 12:53:40 +02:00
Michał Jaworski
a287c8259d blebox: use blebox_uniapi.cover.BleboxCoverState enum members instead of plain integers (#124302)
* blebox: use blebox_uniapi.cover.BleboxCoverState enum members instead of plain integers

* Apply suggestion from code review

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-21 12:53:09 +02:00
Andre Lengwenus
c276cfc371 Add custom panel for LCN configuration (#108664)
* Add LCN panel using lcn-frontend module

* Move panel from sidebar to integration configuration

* Change OptionFlow to reconfigure step

* Change OptionFlow to reconfigure step

* Remove deprecation warning

* Fix docstring

* Add tests for lcn websockets

* Remove deepcopy

* Bump lcn-frontend to 0.1.3

* Add tests for lcn websockets

* Remove websocket command lcn/hosts

* Websocket scan tests cover modules not stored in config_entry

* Add comment to mock of hass.http

* Add a decorater to ensure the config_entry exists and return it

* Use entry_id instead of host_id

* Bump lcn-frontend to 0.1.5

* Use auto_id for websocket client send_json

* Create issues on yaml import errors

* Remove low level key deprecation warnings

* Method renaming

* Change issue id in issue creation

* Update tests for issue creation
2024-08-21 11:33:47 +02:00
Markus Jacobsen
f33328308c Improve Bang & Olufsen notification type comparison (#123067)
* Change notification comparison

* Use try_parse_enum to determine notification type
2024-08-21 11:31:19 +02:00
J. Nick Koston
1d1a6ee52f Bump habluetooth to 3.3.2 (#124321) 2024-08-20 12:50:37 -05:00
karwosts
d248bf596a Add missing strings for riemann options flow (#124317) 2024-08-20 18:45:16 +02:00
J. Nick Koston
ce82c79ff9 Bump yalexs to 8.1.2 (#124303) 2024-08-20 11:38:29 -05:00
Pete Sage
d327ec904c Add Sonos tests for media_player play Sonos Playlist and improve error handling (#124126)
* initial commit

* initial commit

* initial commit

* updates

* add json fixture

* use match on pytest.raises
2024-08-20 18:38:04 +02:00
Jan Bouwhuis
b74aced6f3 Subscribe per component for MQTT discovery (#119974)
* Subscribe per component for MQTT discovery

* Use single assignment

* Handle wildcard subscriptions first

* Split subsRecription handling, update helper

* Fix help_all_subscribe_calls

* Fix import

* Fix test

* Update import order

* Undo move self._last_subscribe

* Recover removed test

* Revert not needed changes to binary_sensor platform tests

* Revert line removal

* Rework interation of discovery topics

* Reduce

* Add comment

* Move comment

* Chain subscriptions
2024-08-20 17:02:48 +02:00
Erik Montnemery
a1e3e7f24f Deduplicate OTBR test fixtures (#124293) 2024-08-20 14:58:34 +02:00
Erik Montnemery
15976b8207 Disable expensive pskc computation in all otbr tests (#124292)
* Disable expensive pskc computation in all otbr tests

* Update tests and fixtures which patched compute_pskc
2024-08-20 14:53:06 +02:00
mvn23
b1d9e5580c Update opentherm_gw.sensor to use entity_description (#124283) 2024-08-20 14:51:08 +02:00
epenet
3dc83ef19d Add missing hass type hint in component tests (t) (#124274) 2024-08-20 12:55:39 +02:00
epenet
14775c822f Add missing hass type hint in component tests (y) (#124286) 2024-08-20 12:55:14 +02:00
epenet
69a5605551 Add missing hass type hint in component tests (x) (#124285) 2024-08-20 12:54:57 +02:00
epenet
c2dc4ef215 Add missing hass type hint in component tests (w) (#124284) 2024-08-20 12:54:42 +02:00
epenet
e6eedc0717 Add missing hass type hint in component tests (v) (#124281) 2024-08-20 12:54:15 +02:00
epenet
d901cb04b8 Add missing hass type hint in component tests (u) (#124275) 2024-08-20 12:53:48 +02:00
epenet
f66b539027 Add missing hass type hint in component tests (s) (#124272) 2024-08-20 12:53:29 +02:00
epenet
d961e20b15 Add missing hass type hint in component tests (p) (#124227) 2024-08-20 12:52:33 +02:00
epenet
93f791e5d0 Add missing hass type hint in component tests (n) (#124225) 2024-08-20 12:48:06 +02:00
epenet
db92f29c00 Improve type hints in homekit and homekit_controller tests (#124213)
Add missing hass type hint in homekit and homekit_controller tests
2024-08-20 12:47:41 +02:00
Stefan Agner
be255613de Add additional tests for Matter update entity (#122575)
* Add additional tests for Matter update entity

Extend test coverage for Matter update entity. This includes tests for
error handling and state store/restore.

* Improve test descriptions

* Add restore test only (using mock_restore_cache_with_extra_data)

* Fix test_update_state_save_and_restore test

* Use homeassistant constants

* Use update component constants

* Use freezer to skip time for device update check

We check device updates every 12h currently. Use the freezer to skip
time.

Still add a test which uses the service call to make sure this works
too.
2024-08-20 12:10:25 +02:00
TimL
98a007cb2f New Integration: SMLIGHT SLZB-06 Adapters Integration (#118675)
* Initial SMLIGHT integration

Signed-off-by: Tim Lunn <tl@smlight.tech>

* Generated content

Signed-off-by: Tim Lunn <tl@smlight.tech>

* Cleanup LOGGING

* Use runtime data

* Call super first

* coordinator instance attributes

* Move coordinatorEntity and attr to base class

* cleanup sensors

* update strings to use sentence case

* Improve reauth flow on incorrect credentials

* Use fixture for config_flow tests and test to completion

* Split uptime hndling into a new uptime sensor entity

* Drop server side events and internet callback

will bring this back with binary sensor Platform

* consolidate coordinator setup

* entity always include connections

* get_hostname tweak

* Add tests for init, coordinator and sensor

* Use custom type SmConfigEntry

* update sensor snapshot

* Drop reauth flow for later PR

* Use _async_setup for initial setup

* drop internet to be set later

* sensor fixes

* config flow re

* typing fixes

* Bump pysmlight dependency to 0.0.12

* dont trigger invalid auth message when first loading auth step

* Merge uptime sensors back into main sensor class

* clarify uptime handling

* Apply suggestions from code review

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* address review comments

* pass host as parameter to the dataCoordinator

* drop uptime sensors for a later PR

* update sensor test snapshot

* move coordinator unique_id to _async_setup

* fix CI

* Apply suggestions from code review

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* drop invalid_auth test tag

* use snapshot_platform, update fixtures

* Finish all tests with abort or create entry

* drop coordinator tests and remove hostname support

* add test for update failure on connection error

* use freezer for update_failed test

* fix pysmlight imports

---------

Signed-off-by: Tim Lunn <tl@smlight.tech>
Co-authored-by: Tim Lunn <tim@feathertop.org>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-20 10:44:06 +02:00
Erik Montnemery
b4648136c5 Deduplicate otbr tests (#124270) 2024-08-20 10:33:16 +02:00
Erik Montnemery
d3deaa6a82 Improve otbr error handling (#124277) 2024-08-20 10:33:02 +02:00
mvn23
e81aa1cdb2 Update opentherm_gw.binary_sensor to use entity_description (#121969)
* Update opentherm_gw.binary_sensor to use entity_description

* Move binary_sensor related code to binary_sensor.py
Move common entity code to entity.py

* Remove unused logger from binary_sensor.py

* Add type hints
Address feedback
2024-08-20 10:20:27 +02:00
Allen Porter
24f0c88123 Bump python-roborock to 2.6.0 (#124268) 2024-08-20 09:51:44 +02:00
Erik Montnemery
b31c6012ae Use HassKey in otbr (#124240) 2024-08-20 08:16:59 +02:00
Ian
d99f1631ca Add Uplink info to UniFi Device tracker attributes (#123032)
Add device uplink mac sensor
2024-08-20 07:57:03 +02:00
IceBotYT
8260264416 Bump nice-go to 0.3.0 (#124262) 2024-08-19 22:38:10 -07:00
Yuxin Wang
097162eceb Add handling for RoborockTooFrequentCodeRequests for roborock integration (#123759)
* Add handling for RoborockTooFrequentCodeRequests

* Add tests for coverage
2024-08-19 21:09:01 -07:00
J. Nick Koston
d8cbb3540f Bump aioshelly to 11.2.4 (#124080) 2024-08-19 19:13:35 -05:00
J. Nick Koston
0f90a3cf60 Bump aiohttp to 3.10.5 (#124254) 2024-08-19 15:40:32 -05:00
J. Nick Koston
108a54a4a8 Handle WebSocket client disconnect during prepare (#124173) 2024-08-19 15:28:05 -05:00
IceBotYT
fc767ee562 Add event platform to Nice G.O. (#124253)
* Add event platform to Nice G.O.

* Add icon for barrier obstructed event

* Better assertions

* More test improvements
2024-08-19 22:09:22 +02:00
Sid
566c00ef12 Skip interfaces without mac in enigma2 device_info (#124249) 2024-08-19 22:05:43 +02:00
Artur Pragacz
407e4f6ca2 Add entity matching to intent_script (#120973) 2024-08-19 15:01:35 -05:00
Andrii Mitnovych
254aa8c9ea Add entity deduplication by assist device ID in conversation agent (#123957)
* Add entities deduplication by assist device ID in default conversation agent

* Updated test.
2024-08-19 15:00:23 -05:00
epenet
b4afca3e7e Add missing hass type hint in component tests (r) (#124231) 2024-08-19 21:38:41 +02:00
IceBotYT
20f7af25e9 Add switch platform to Nice G.O. (#124237)
* Add switch platform to Nice G.O.

* Replace cover with switch in switch.py

* Use  icon translations

* Fix tests

* Use constants in test_switch.py

* Use ATTR_ENTITY_ID
2024-08-19 21:25:11 +02:00
Erik Montnemery
69652ca2ca Use PEP 695 for decorator typing with type aliases in esphome (#124234) 2024-08-19 14:13:48 -05:00
IceBotYT
89728f41e1 Bump nice-go to 0.2.1 (#124238)
* Bump nice-go to 0.2.0

* Bump nice-go to 0.2.1
2024-08-19 20:45:25 +02:00
Sid
9283d766d3 Bump ruff to 0.6.1 (#124250)
* Bump ruff to 0.6.0

* Bump ruff to 0.6.1
2024-08-19 20:43:50 +02:00
Joost Lekkerkerker
bcd92b43ce Bump aiowithings to 3.0.3 (#124154) 2024-08-19 20:40:23 +02:00
Christopher Fenner
de82f21446 Use library fork for ViCare integration (#124107)
* switch dependency to fork

* Update manifest.json

* Update requirements_all.txt

* Update requirements_test_all.txt
2024-08-19 20:14:33 +02:00
Marlon
984a534300 Bump apsystems-ez1 to 2.2.1 (#124243)
* Update apsystems library

* Bump apsystems library to 2.2.1
2024-08-19 19:44:28 +02:00
Erik Montnemery
50f3c891fa Prepare otbr.silabs_multiprotocol for multiple config entries (#124219)
* Prepare otbr.silabs_multiprotocol for multiple config entries

* Simplify
2024-08-19 17:30:48 +02:00
Marlon
e3ab30a2a5 Add support for whole apsystems ez1 series (#123356)
* Add support for whole apsystems ez1 series by configuring the max_output at setup to match the value by the inverter

* Check Max output for apsystems on startup, not setup

* Move max output check into coordinator

* Raise UpdateFailed on error in apsystems
2024-08-19 16:57:43 +02:00
Erik Montnemery
f2d41bd99c Minor improvements of otbr tests (#124224) 2024-08-19 16:29:34 +02:00
epenet
b53ae884a6 Add missing hass type hint in component tests (o) (#124226) 2024-08-19 16:16:34 +02:00
Marlon
f4997e46fb Bump apsystems-ez1 to 2.1.0 (#123225)
Library update for apsystems fixing breaking changes
2024-08-19 16:15:27 +02:00
Erik Montnemery
110ee9ff35 Strip trailing / from OTBR url (#124223) 2024-08-19 16:06:20 +02:00
epenet
c76d68503a Add missing hass type hint in history and recorder tests (#124204) 2024-08-19 15:41:09 +02:00
epenet
5470d14a11 Add missing hass type hint in component tests (m) (#124222) 2024-08-19 15:36:37 +02:00
epenet
02139fcca6 Add missing hass type hint in component tests (l) (#124220) 2024-08-19 15:36:23 +02:00
cnico
16e52f0427 Allow manually updating entity state in chacon dio (#124187)
* Addition of a reload service to manually retrieve the status of the devices.

* Removal of reload_state service replaced by the homeassistant.update_entity supported service

* remove api update to v1.2.1 for another PR

* Review corrections

* Review corrections
2024-08-19 14:05:12 +02:00
Erik Montnemery
96edaebdd3 Remove unused function otbr.async_get_active_dataset_tlvs (#124210) 2024-08-19 13:15:50 +02:00
cnico
8907b7e911 Bump dio-chacon-wifi-api to 1.2.1 (#124215)
* chacon_dio api version to 1.2.1

* corrected CI for PR
2024-08-19 12:58:00 +02:00
Philip Vanloo
fd0f093e10 Bump python-linkplay to 0.0.8 (#123875)
* Bump python-linkplay to 0.0.7

* Bump python-linkplay to 0.0.8
2024-08-19 12:45:11 +02:00
Erik Montnemery
e88007af2d Improve suggested values in homeworks config flow (#124200) 2024-08-19 12:41:47 +02:00
epenet
a24fdd1c2b Add missing hass type hint in component tests (h) (#124209)
* Add missing hass type hint in component tests (h)

* Fix import
2024-08-19 12:40:56 +02:00
epenet
f0af33bd2b Add missing hass type hint in component tests (i) (#124216) 2024-08-19 12:40:17 +02:00
Shai Ungar
057f31132b Bump pyseventeentrack to 1.0.1 (#124211) 2024-08-19 12:02:34 +02:00
epenet
197e65c3a9 Improve type hints in homematicip_cloud tests (#124207)
Add missing hass type hint in homematicip_cloud tests
2024-08-19 11:06:50 +02:00
Antoine Reversat
d9aa931fac Add reauth to fujitsu_fglair (#124166)
* Add reauth to fujitsu_fglair

* Add test for reauth when an exception occurs.

* Address comments

* Always assert

* Address comments
2024-08-19 11:04:34 +02:00
Joost Lekkerkerker
2577fb804b Add sonos snapshot test (#124036) 2024-08-19 11:00:33 +02:00
Erik Montnemery
bab930a456 Fix flapping ista_ecotrend tests (#124205) 2024-08-19 10:37:17 +02:00
Erik Montnemery
511ec4ba8a Remove test helper get_test_home_assistant (#124177) 2024-08-19 10:23:25 +02:00
IceBotYT
013b91394e Add diagnostics to Nice G.O. (#124194) 2024-08-19 10:22:36 +02:00
Erik Montnemery
d9c98316fd Bump pyhomeworks to 1.1.2 (#124199) 2024-08-19 10:20:58 +02:00
Erik Montnemery
88d79d35eb Simplify bring todo service schema (#124206) 2024-08-19 10:18:09 +02:00
epenet
25d33e96cc Add missing hass type hint in component tests (g) (#124203) 2024-08-19 00:29:26 -07:00
tdfountain
1fdcbc3f15 Fix comment typo for _serial_from_status() in NUT (#124175)
Fix comment typo for _serial_from_status()
2024-08-18 22:14:54 +01:00
G Johansson
05aeb3fbd1 Bump yalesmartalarmclient to 0.4.0 (#124165)
* Bump yalesmartalarmclient to 0.4.0

* Fix various
2024-08-18 22:41:45 +02:00
G Johansson
50f9c1e5a4 Fix Pure AQI value sensor in Sensibo (#124151)
* fix Pure AQI value sensor in Sensibo

* Fix tests

* Make enum
2024-08-18 22:41:31 +02:00
Dylan Corrales
02b26ac4e6 Add state for alarm_control_panel in Prometheus (#123753)
* Prometheus: Add state for alarm_control_panel

* Prometheus: Add pytest for alarm_control_panel
2024-08-18 22:11:37 +02:00
G Johansson
11d2258afc Improve code quality in Manual alarm (#123142)
* Improve code quality in Manual alarm

* Review

* Remove helper

* Remove unique id

* Reset demo and fix unique id

* next_state variable

* Fixes

* Is helper

* Fix unique id

* exception message

* Fix mypy
2024-08-18 21:31:44 +02:00
J. Nick Koston
14c2ca85ec Refactor websocket handler to reduce complexity (#124174) 2024-08-18 14:17:17 -05:00
ilan
1010edf4bd Add reconfigure flow to Madvr (#122477)
* feat: add reconfigure

* feat: add reconfigure step

* fix: don't abort unique on reconfigure

* fix: add success string

* fix: improve reconfigure

* fix: entry will never be none

* fix: update ip in abort

* fix: check unique id on reconfigure

* feat: add test in case of new device

* fix: fail reconfigure if mac changes

* fix: abort instead of form

* feat: use is, dont mock config flow

* fix: implement comments
2024-08-18 21:17:10 +02:00
Erik Montnemery
9e8260736b Fix schema for input_datetime.set_datetime action (#124108) 2024-08-18 21:14:57 +02:00
Erik Montnemery
06d1bbc20f Update recorder tests to async (#124161) 2024-08-18 21:14:41 +02:00
epenet
135ebaafa0 Add missing hass type hint in august tests (#124062) 2024-08-18 13:21:38 -05:00
Erik Montnemery
ce2ffde22e Update sensor recorder tests to async (#124061) 2024-08-18 13:20:58 -05:00
G Johansson
7d5ddbf51c Bump python-holidays to 0.54 (#124170) 2024-08-18 20:05:41 +02:00
Ryan Mattson
df58068e84 Update aiolyric to 2.0.1 (#123424)
update aiolyric to 2.0.1
2024-08-18 20:05:30 +02:00
epenet
7d326ff076 Add missing hass type hint in component tests (d) (#124074) 2024-08-18 18:57:29 +02:00
Shay Levy
49c59339d9 Shelly RPC - do not stop BLE scanner if a sleeping device (#124147) 2024-08-18 18:35:02 +03:00
John Hollowell
4ab3f1f41f Add Venstar air filter sensors (#115832)
* Add sensors for HVAC filter usage

The number of hours and the number of days are not linked.
The number of hours is a sum of the hours the filter has been in use (fan running). The days is just the number of days since the filter was reset.

* Update filter sensors' names

* Split consumables entity descriptions and move names to translations

* Scale filterHours to match real-world time

It looks like the integer returned by the thermostat is actually 100 times the number of hours.

* Address review comments/changes
2024-08-18 17:22:44 +02:00
Artur Pragacz
e6c61f207d Rework Onkyo discovery and interview (#120668)
* Rework Onkyo discovery and interview

* Move class outside setup function

* Revert changing default name

* Rename to volume resolution
2024-08-18 17:14:33 +02:00
Lenn
4e7e896601 Disable entities for Motiontionblinds Bluetooth (#124159)
* Set entity_registry_enabled_default to False for RSSI sensor

* Use entity description

* Update homeassistant/components/motionblinds_ble/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/motionblinds_ble/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Use entity_registry_enabled_by_default fixture for tests

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-18 17:14:05 +02:00
IceBotYT
55cf3b60eb Add light platform to Nice G.O. (#124019)
* Add light platform to Nice G.O.

* Update homeassistant/components/nice_go/light.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-18 15:57:05 +02:00
epenet
1a628588b4 Improve type hints in scripts/auth (#124049) 2024-08-18 15:43:15 +02:00
epenet
ba3872ff87 Add missing hass type in tests/*.py (#124048) 2024-08-18 15:42:41 +02:00
Eric Trudeau
69843e9ac4 Add support for Levoit EverestAir air purifiers (#123428) 2024-08-18 15:42:05 +02:00
J. Nick Koston
a4fb4e76cb Bump aiohttp to 3.10.4 (#124137)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.10.3...v3.10.4
2024-08-18 08:39:56 -05:00
epenet
489ceab4b5 Add missing hass type hint in component tests (b) (#124065) 2024-08-18 15:39:26 +02:00
Antoine Reversat
1afed8ae15 Add Fujitsu FGLair integration (#109335)
* Add support for Fujitsu HVAC devices

* Add the entity code to .coveragerc

* Only include code that can fail in the try/except block

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Remove empty keys from manifest

* Remove VERSION as it's already the default

* Remve the get_devices function and use asyncio.gather to parallelize dev updates

* Move initial step to a function

* Let KeyError bubble up. If we are passed an invalid mode it's probably worth raising an exception.

* Await the gather

* Use the async version of the refresh_auth call

* Use the serial number as unique id

* Use HA constant for precision

* Use dev instead of self._dev

* Move to property decorated methods

* Remove bidict dependency

* Setup one config entry for our api credentials instead of per device

* Remove bidict from requirements

* Signout and remove our api object on unload

* Use app credentials from ayla_iot_unofficial

* Use entry_id as a key to store our API object

* Delete unused code

* Create reverse mappings from forward mapping instead of hardcoding them

* Clean up the property methods

* Only import part of config_entries we are using

* Implement suggested changes

* Fix tests to use new API consts

* Add support for reauth

* Use a coordinator instead of doing per-entity refresh

* Auto is equivalent to HEAT_COOL not AUTO

* Add ON and OFF to list of supported features

* Use the mock_setup_entry fixture for the reauth tests

* Parametrize testing of config flow exceptions

* Only wrap fallable code in try/except

* Add tests for coordinator

* Use self.coordinator_context instead of self._dev.device_serial_number

* Move timeout to ayla_iot_unofficial

* Add description for is_europe field

* Bump version of ayla-iot-unofficial

* Remove turn_on/turn_off warning

* Move coordinator creating to __init__

* Add the type of coordinator to the CoordiatorEntity

* Update docstring for FujitsuHVACDevice constructor

* Fix missed self._dev to dev

* Abort instead of showing the form again with an error when usernames are different

* Remove useless argument

* Fix tests

* Implement some suggestions

* Use a device property the maps to the coordinator data

* Fix api sign out when unloading the entry

* Address comments

* Fix device lookup

* Move API sign in to coordinator setup

* Get rid of FujitsuHVACConfigData

* Fix async_setup_entry signature

* Fix mock_ayla_api

* Cleanup common errors

* Add test to check that re adding the same account fails

* Also patch new_ayla_api in __init__.py

* Create a fixture to generate test devices

* Add a setup_integration function that does the setup for a mock config entry

* Rework unit tests for the coordinator

* Fix typos

* Use hass session

* Rework reauth config flow to only modify password

* Update name to be more use-friendly

* Fix wrong type for entry in async_unload_entry

* Let TimeoutError bubble up as teh base class handles it

* Make the mock ayla api return some devices by default

* Move test to test_climate.py

* Move tests to test_init.py

* Remove reauth flow

* Remove useless mock setup

* Make our mock devices look real

* Fix tests

* Rename fujitsu_hvac to fujitsu_fglair and rename the integration to FGLair

* Add the Fujitsu brand

* Add a helper function to generate an entity_id from a device

* Use entity_id to remove hardcoded entity ids

* Add a test to increase code coverage

---------

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-08-18 15:37:33 +02:00
cdnninja
10c27c3189 Add Alt Core300s model to vesync integration (#124091) 2024-08-18 15:36:03 +02:00
epenet
975363b660 Add missing hass type hint in component tests (c) (#124067) 2024-08-18 15:35:31 +02:00
epenet
c8797298ea Add missing hass type hint in component tests (e) (#124075) 2024-08-18 15:34:59 +02:00
Duco Sebel
565f271c5c Bumb python-homewizard-energy to 6.3.0 (#124150) 2024-08-18 15:21:04 +02:00
Michael
0c5a3fab22 Cleanup the Fritz!Smarthome light entity (#123488)
* use self.data when ever possible

* use short hand attributes for color mode and supported color modes

* color mode can change during runtime

* group executer jobs
2024-08-18 14:53:35 +02:00
Daniel Rozycki
04b0760e27 Skip NextBus update if integration is still loading (#123564)
* Skip NextBus update if integration is still loading

Fixes a race between the loading thread and
update thread leading to an unrecoverable error

* Use async_at_started

* Use local copy of _route_stops to avoid NextBus race condition

* Update homeassistant/components/nextbus/coordinator.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-18 14:24:44 +02:00
MarkGodwin
e3287b93a5 Bump tplink-omada-api to 1.4.2 (#124136)
Fix for bad pre-registered clients
2024-08-18 14:23:47 +02:00
epenet
c4fee124b3 Add missing hass type hint in flux tests (#124078) 2024-08-18 13:53:59 +02:00
Maciej Bieniek
ec0012209d Add missing sensors for Shelly Plus RGBW PM (#123589)
* Add missing sensors for Shelly Plus RGBW PM

* Add tests
2024-08-18 12:58:51 +03:00
Michael
59d72bb4ed Use better config validation for integrations with legacy setup method, but only config entry setup (#123203)
use config_entry_only_config_schema over cv.removed

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-18 00:49:39 +02:00
J. Nick Koston
3b2893f2f4 Fix blocking I/O while validating core config schema (#124125) 2024-08-17 15:14:28 -05:00
Erik Montnemery
63d1cc10e2 Update homeassistant integration tests to async (#124117) 2024-08-17 12:11:32 -07:00
Allen Porter
d72d4286db Bump nest to 4.0.7 to increase subscriber deadline (#124131)
Bump nest to 4.0.7
2024-08-17 12:11:19 -07:00
Jordi
23fb4b50c9 Add brand selection to support additional brands who use the same API for AquaCell integration (#121817)
* Support harvey brand

* Update tests

* Moved the brand selection step to the same step as credentials

* Update tests/components/aquacell/test_init.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-17 20:45:24 +02:00
Erik Montnemery
08a76133c2 Simplify water_heater.set_temperature service schema (#124101) 2024-08-17 19:24:35 +02:00
J. Nick Koston
08234efedf Bump aiohomekit to 3.2.3 (#124115) 2024-08-17 10:32:58 -05:00
J. Nick Koston
1bab373707 Revert "Exclude aiohappyeyeballs from license check" (#124116) 2024-08-17 10:10:45 -05:00
Artem Draft
85a47ffb68 Bump pybravia to 0.3.4 (#124113) 2024-08-17 16:30:26 +02:00
Pete Sage
153eef16bb Add Sonos Test for plex media player enqueue options (#124120)
initial commit
2024-08-17 16:29:27 +02:00
Pete Sage
7efd8089c8 Add Sonos test for media_player play, pause, stop, previous, next (#122978)
* initial commit

* update to use constant

* retrigger checks
2024-08-17 13:47:27 +02:00
Erik Montnemery
533442f33e Add async friendly helper for validating config schemas (#123800)
* Add async friendly helper for validating config schemas

* Improve docstrings

* Add tests
2024-08-17 11:01:49 +02:00
Erik Montnemery
a7bca9bcea Use BIGINT SQL type for ID columns (#123973)
Redo recorder ID migration from INT to BIGINT
2024-08-17 11:01:14 +02:00
Erik Montnemery
6c01e4b99c Use BaseEventLoop._thread_id instead of a custom attribute (#124054)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-17 10:59:39 +02:00
Erik Montnemery
7deb9bf30f Do not override hass.loop_thread_id in tests (#124053) 2024-08-16 16:59:21 -05:00
Joost Lekkerkerker
1614e2c825 Use constants in Sonos media player tests (#124037) 2024-08-16 16:58:42 -05:00
Maciej Bieniek
69700f068f Migrate back from pysnmp-lextudio to pysnmp (#123579) 2024-08-16 16:57:10 -05:00
J. Nick Koston
91951ed734 Speed up initializing config flows (#124015) 2024-08-16 16:48:03 -05:00
epenet
24680b731f Add missing hass type hint in component tests (f) (#124076) 2024-08-16 21:51:58 +02:00
Kim de Vos
a8a7d01a84 Add temperature sensors for unifi device (#122518)
* Add temperature sensors for device

* Move to single line

* Use right reference

* Always return a value

* Update tests

* Use slugify for id name

* Return default value if not present

* Make _device_temperature return value

* Add default value if temperatures is None

* Set value to go over all code paths

* Add test for no matching temperatures

* make first part deterministic
2024-08-16 21:37:24 +02:00
epenet
9b11aaf1eb Add missing hass type hint in alexa tests (#124064)
* Add missing hass type hint in alexa tests

* One more
2024-08-16 19:00:44 +02:00
dontinelli
8a110abc82 Bump fyta_cli to 0.6.0 (#123816)
* Bump fyta_cli to 0.5.1

* Code adjustments to enable strit typing

* Update homeassistant/components/fyta/__init__.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update diagnostics

* Update config_flow + init (ruff)

* Update sensor

* Update coordinator

* Update homeassistant/components/fyta/diagnostics.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/fyta/diagnostics.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/fyta/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Set one ph sensor to null/none

* Update sensor

* Clean-up (ruff)

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-16 17:46:37 +02:00
Erik Montnemery
e07768412a Update ffmpeg tests to async (#124058) 2024-08-16 10:16:56 -05:00
epenet
56b4a7f291 Add missing hass type in tests/helpers (#124039) 2024-08-16 17:09:12 +02:00
epenet
2cd4456762 Add missing hass type hint in component tests (a) (#124059) 2024-08-16 17:07:57 +02:00
Erik Montnemery
115c5d1704 Fix threading in get_test_home_assistant test helper (#124056) 2024-08-16 16:59:33 +02:00
Joost Lekkerkerker
06209dd94c Bump ruff to 0.6.0 (#123985) 2024-08-16 16:54:20 +02:00
J. Nick Koston
c8b0c939e4 Ensure event entities are allowed for linked homekit config via YAML (#123994) 2024-08-16 16:48:59 +02:00
Joost Lekkerkerker
e8d57bf636 Bump aiomealie to 0.8.1 (#124047) 2024-08-16 16:48:33 +02:00
Joost Lekkerkerker
0cb0af496e Re-enable concord232 (#124000) 2024-08-16 16:46:58 +02:00
Mr. Bubbles
ea4443f79e Add statistics import to Ista EcoTrend integration (#118788)
* Add statistics import to Ista EcoTrend integration

* Use decorator for fixtures

* define recorder as after_dependency

* Increase test coverage

* remember initial statistic_id

* fix type checking
2024-08-16 16:12:15 +02:00
J. Nick Koston
cb8a6af12d Add additional blocking operations to loop protection (#124017) 2024-08-16 09:03:24 -05:00
Erik Montnemery
14a3217d7e Improve entity platform tests (#124051) 2024-08-16 15:08:37 +02:00
J. Nick Koston
c717e7a6f6 Bump bluetooth-adapters to 0.19.4 (#124018)
Fixes a call to enumerate USB devices that did blocking
I/O
2024-08-16 07:12:17 -05:00
Erik Montnemery
f1b7847d1c Simplify cv._make_entity_service_schema (#124046) 2024-08-16 14:09:09 +02:00
Erik Montnemery
69943af68a Deduplicate async_register_entity_service (#124045) 2024-08-16 14:06:35 +02:00
Sid
738cc5095d Bump openwebifpy to 4.2.7 (#123995)
* Bump openwebifpy to 4.2.6

* Bump openwebifpy to 4.2.7

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-16 13:53:11 +02:00
Joost Lekkerkerker
4cc4ec44b0 Exclude aiohappyeyeballs from license check (#124041) 2024-08-16 13:50:02 +02:00
epenet
0a846cfca8 Add missing hass type in tests/test_util (#124043) 2024-08-16 13:43:43 +02:00
Matthias Alphart
ea52acd7bd Fix loading KNX integration actions when not using YAML (#124027)
* Fix loading KNX integration services when not using YAML

* remove unnecessary comment

* Remove unreachable test
2024-08-16 13:43:02 +02:00
Erik Montnemery
799e95c1bd Do sanity check in EntityComponent.async_register_entity_service schema (#124029)
* Do sanity check in EntityComponent.async_register_entity_service schema

* Improve test
2024-08-16 13:39:25 +02:00
Jan Bouwhuis
183c191d63 Allow raw mqtt payload to be in mqtt publish action (#123900)
* Publish raw rendered mqtt payload as raw for mqtt publish action

* Move check out of try block

* Only try to eval `bytes` is payload starts with supported string

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Improve docst

* Add `evaluate_bytes` option to publish action

* Rename to `evaluate_payload`

* Update homeassistant/components/mqtt/strings.json

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Extend test to assert literal_eval is called or not

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-16 13:34:14 +02:00
epenet
f3e2d06922 Add missing hass type in tests/scripts (#124042) 2024-08-16 13:21:39 +02:00
Erik Montnemery
99ab2566c2 Correct water heater service schemas (#124038)
* Correct water heater service schemas

* Update tests
2024-08-16 12:58:05 +02:00
starkillerOG
0093276e93 Reolink add 100% coverage of binary_sensor platfrom (#123862)
* Implement 100% coverage of binary_sensor

* fix styling

* Apply suggestions from code review

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* use get().state instead of is_state

* Remove unneeded "is True"

* Remove unneeded "is True"

* reset the mock and use assert_not_called

* use freezer

* fix styling

* fix styling

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-16 12:46:51 +02:00
WebSpider
461ef33553 Bump meteoalert to 0.3.1 (#123848)
Bump meteoalertapi to 0.3.1
2024-08-16 12:27:20 +02:00
J. Nick Koston
723ea6173e Add Python-2.0.1 license to list of approved licenses (#124020)
https://spdx.org/licenses/Python-2.0.1.html
2024-08-16 12:04:57 +02:00
Pete Sage
1f214bec93 Add Sonos tests for media_player shuffle and repeat (#122816)
* initial commit

* initial commit

* update comments
2024-08-16 11:49:00 +02:00
Mr. Bubbles
4b62dcfd19 Improve rate limit handling in Habitica integration (#121763)
* Adjustments to requests and update interval due to rate limiting

* Use debounced refresh for to-do lists

* Use debounced refresh in switch and buttons

* Request refresh only if a to-do was changed

* Update task order provisionally in the coordinator
2024-08-16 11:41:04 +02:00
epenet
66a8733333 Add missing return type in test __init__ method (part 4) (#123947) 2024-08-16 10:26:12 +02:00
Erik Montnemery
f9ade788eb Do sanity check EntityPlatform.async_register_entity_service schema (#123058)
* Do a sanity check of schema passed to EntityPlatform.async_register_entity_service

* Only attempt to check schema of Schema

* Handle All/Any wrapped in schema

* Clarify comment

* Apply suggestions from code review

Co-authored-by: Robert Resch <robert@resch.dev>

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2024-08-16 10:01:12 +02:00
Andre Lengwenus
6d9764185b Bump pypck to 0.7.21 (#124023) 2024-08-16 09:22:00 +02:00
Robert Svensson
a944541c58 Bump aiounifi to v80 (#124004) 2024-08-15 21:36:06 -05:00
Brett Adams
2f8766a9ec Fix rear trunk logic in Tessie (#124011)
Allow open to be anything not zero
2024-08-15 23:52:18 +02:00
Robert Svensson
37328c78c1 Use snapshot in UniFi switch tests (#122871)
* Use snapshot in UniFi switch tests

* Fix review comment
2024-08-15 21:29:32 +02:00
Austin Mroczek
142469be95 TotalConnect state attribute deprecation warning (#122320)
* add warning comment

* make comments smaller and put at top

* Update homeassistant/components/totalconnect/alarm_control_panel.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-15 20:25:56 +02:00
Mr. Bubbles
7d552b64f7 Use clearCompletedTodos API endpoint for deleting Habitica todos (#121877)
Use clearCompletedTodos endpoint for deleting multiple completed todo items
2024-08-15 20:06:23 +02:00
Noah Husby
65fa4a34ed Add configuration url to russound device (#124001)
feat: add configuration url
2024-08-15 20:05:28 +02:00
dougiteixeira
f581066747 Add config flow for platform number in Template (#121849)
* Add config flow to select platform in Template

* Remove device id duplicate in schema

* Add config flow for number platform in Template

* Remove mode
2024-08-15 20:02:51 +02:00
Noah Husby
29c0a7f324 Bump aiorussound to 2.3.2 (#123997) 2024-08-15 19:23:35 +02:00
Mr. Bubbles
bf9d621939 Revert "Rename sensor to finished downloads in pyLoad integration" (#121483)
Revert "Rename sensor to finished downloads in pyLoad integration (#120483)"

This reverts commit 8e598ec3ff.
2024-08-15 19:09:21 +02:00
Erik Montnemery
64a68b17f4 Simplify recorder.migration._drop_foreign_key_constraints (#123968) 2024-08-15 11:58:52 -05:00
IceBotYT
46357519e0 Add Nice G.O. integration (#122748)
* Convert Linear Garage Door to Nice G.O.

* Remove useless fixtures

* Update manifest (now cloud push! 🎉)

* Fix entry unload

* Extend config entry type

* Fix circular import

* Bump nice-go (hopefully fix dep conflict)

* Bump nice-go (moves type stubs to dev deps)

* Remove lingering mentions of Linear

* Add nice-go as logger

* Convert nice_go into a new integration and restore linear_garage_door

* Add missing new lines to snapshots

* Fixes suggested by @joostlek

* More fixes

* Fixes

* Fixes

* Fix coordinator tests

* Move coordinator tests

* Move test_no_connection_state from test_cover to test_init

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-08-15 18:46:06 +02:00
G Johansson
24a20c75eb Add options flow to File (#120269)
* Add options flow to File

* Review comments
2024-08-15 18:21:07 +02:00
Michael
e39bfeac08 Allow shared Synology DSM Photo albums shown in media browser (#123613) 2024-08-15 18:18:05 +02:00
Joost Lekkerkerker
874ae15d6a Fix motionblinds ble test (#123990)
* Fix motionblinds ble test

* Fix motionblinds ble test
2024-08-15 18:16:49 +02:00
Glenn Waters
a50aeb0a66 Environment Canada weather format fix (#123960)
* Add missing isoformat.

* Move fixture loading to common conftest.py

* Add deepcopy.
2024-08-15 16:14:01 +02:00
Philip Vanloo
983806817b Add ArtSound as a virtual integration (#122636)
* Add ArtSound as a virtual integration and brand

* Remove ArtSound as brand

* Add docstring for __init__

* Address hassfest
2024-08-15 15:48:02 +02:00
cnico
21c9cd1caa Add switch platform to chacon_dio integration (#122514)
* Adding switch platform for dio devices

* Remove useless logger

* Review corrections

* review corrections
2024-08-15 15:44:49 +02:00
Lenn
c674a25eba Add Motionblinds Bluetooth full test coverage (#121878)
* Add tests

* Fix entity test

* Format

* Fix sensor tests

* Fix sensor tests

* Fix sensor tests

* Add init tests

* Change service info

* Rename test_sensor parameters

* Removce ConfigEntryState.LOADED assertion

* Remove platforms parameter from setup_platform

* Rename setup_platform to setup_integration

* Fixture for blind_type and mock_config_entry

* Use mock for MotionDevice

* Use mock for MotionDevice

* Add type hint

* Use Mock instead of patch

* Use mock_config_entry fixture

* Move constants to init

* Fix entity_id name

* Use fixture

* Use fixtures instead of constants

* Use display_name fixture

* Rename mac to mac_code

* Remove one patch

* Use fixtures for mock_config_entry

* Apply suggestion

* Replace patch with mock

* Replace patch with mock

* Replace patch with mock

* Fix

* Use pytest.mark.usefixtures if parameter not used

* Base mac code on address

* Remove if statement from entity test

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-08-15 15:39:47 +02:00
Erik Montnemery
f72d9a2c02 Raise on database error in recorder.migration._modify_columns (#123642)
* Raise on database error in recorder.migration._modify_columns

* Improve test coverage
2024-08-15 14:46:23 +02:00
Erik Montnemery
ab163c356f Bump pyhomeworks to 1.1.1 (#123981) 2024-08-15 12:39:01 +02:00
Brett Adams
b3399082a8 Gold quality for Tesla Fleet (#122235)
gold quality
2024-08-15 11:33:31 +02:00
Erik Montnemery
26e80cec3d Deduplicate some recorder migration tests (#123972) 2024-08-15 11:09:24 +02:00
Michael Hansen
f2d39feec0 Adjust VAD seconds better for microVAD (#123942) 2024-08-15 11:08:40 +02:00
Brett Adams
9b78ae5908 Handle InvalidRegion in Tesla Fleet (#123958) 2024-08-15 11:00:07 +02:00
Erik Montnemery
72e235ad9f Improve some comments in recorder migration code (#123969) 2024-08-15 10:56:56 +02:00
Erik Montnemery
629b919707 Remove unnecessary assignment of Template.hass from knx (#123977) 2024-08-15 10:56:04 +02:00
Matthias Alphart
d6d016e029 Fix KNX UI Light color temperature DPT (#123778) 2024-08-15 10:52:55 +02:00
Erik Montnemery
81c4bb5f72 Fix flaky recorder migration tests (#123971) 2024-08-15 10:32:40 +02:00
Erik Montnemery
5836f8edb5 Pass None instead of empty dict when registering entity services (#123879)
* Pass None instead of empty dict when registering entity services

* Update rainmachine
2024-08-15 10:11:43 +02:00
Phill (pssc)
2c3d97d373 Handle Yamaha ValueError (#123547)
* fix yamaha remove info logging

* ruff

* fix yamnaha supress rxv.find UnicodeDecodeError

* fix formatting

* make more realistic

* make more realistic and use parms

* add value error after more feedback

* ruff format

* Update homeassistant/components/yamaha/media_player.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* remove unused method

* add more debugging

* Increase discovery timeout add more debug allow config to overrite dicovery for name

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-08-15 10:03:03 +02:00
Brett Adams
dde1ecbf5b Improve code quality of Tesla Fleet tests (#123959) 2024-08-15 09:59:08 +02:00
dependabot[bot]
ac30efb5ac Bump home-assistant/builder from 2024.03.5 to 2024.08.1 (#123967)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-15 09:31:42 +02:00
dependabot[bot]
1f684330e0 Bump github/codeql-action from 3.26.0 to 3.26.2 (#123966)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-15 09:18:20 +02:00
Matthias Alphart
b042ebe4ff Rename KNX Climate preset modes according to specification (#123964)
* Rename KNX Climate preset modes according to specification

* change icon for "standby"
2024-08-15 08:37:10 +02:00
Thomas55555
9911aa4ede Enable confirm error button in Husqvarna Automower by default (#123927) 2024-08-15 08:29:06 +02:00
Erik Montnemery
667414a457 Raise on database error in recorder.migration._drop_foreign_key_constraints (#123645)
* Raise on database error in recorder.migration._drop_foreign_key_constraints

* Fix test

* Fix test

* Revert "Fix test"

This reverts commit 940b8cb506e912826d43d09d7697c10888bdf685.

* Update test

* Improve test coverage

* Disable test for SQLite
2024-08-15 08:25:18 +02:00
Lars
e6b3d35cdf Remove unnecessary check in fritz light (#123829)
* Remove unnecessary check in fritz light

* Revert remove SUPPORTED_COLOR_MODES
2024-08-14 22:53:29 +02:00
Erik Montnemery
e6ed3c8c5c Raise on database error in recorder.migration function (#123644)
* Raise on database error in recorder.migration._update_states_table_with_foreign_key_options

* Improve test coverage

* Fix test

* Fix test
2024-08-14 22:37:23 +02:00
ilan
392f64d33e Fix Madvr sensor values on startup (#122479)
* fix: add startup values

* fix: update snap

* fix: use native value to show None
2024-08-14 22:06:57 +02:00
Jan Bouwhuis
aee1be1e64 Use elif in alexa handlers code to avoid additional checks (#123853) 2024-08-14 21:47:47 +02:00
Andre Lengwenus
58851f0048 Bump pypck to 0.7.20 (#123948) 2024-08-14 21:36:11 +02:00
Erik Montnemery
9c4677a3c6 Add comment clarifying recorder migration to schema version 16 (#123902) 2024-08-14 14:22:06 -05:00
Michael
0790611b93 Fix PI-Hole update entity when no update available (#123930)
show installed version when no update available
2024-08-14 20:39:15 +02:00
J. Nick Koston
9b33d2f17e Fix paste error in homekit climate update (#123943) 2024-08-14 11:00:11 -05:00
epenet
3e967700fd Add missing return type in test __init__ method (part 2) (#123939)
* Add missing return type in test __init__ method (part 2)

* Adjust

* One more

* One more

* More
2024-08-14 17:59:15 +02:00
IceBotYT
3322fa0294 Bump LaCrosse View to 1.0.2, fixes blocking call (#123935) 2024-08-14 10:39:23 -05:00
epenet
178482068d Add missing return type in test __init__ method (part 3) (#123940) 2024-08-14 17:38:30 +02:00
Noah Husby
5e6f8373e1 Set quality scale to silver for Russound RIO (#123937) 2024-08-14 17:22:36 +02:00
J. Nick Koston
5958ef363f Bump pylutron_caseta to 0.21.1 (#123924) 2024-08-14 10:02:44 -05:00
epenet
5608301178 Add missing return type in test __init__ methods (#123932)
* Add missing return type in test __init__ methods

* Adjust
2024-08-14 16:48:52 +02:00
Noah Husby
faacfe3f90 Set available property in russound base entity (#123933)
* Set available property in Russound base entity

* Fix

* Fix
2024-08-14 16:38:40 +02:00
Noah Husby
bb88961968 Bump aiorussound to 2.3.1 (#123929) 2024-08-14 16:10:59 +02:00
starkillerOG
bba298a44d Add favorite position buttons to Motion Blinds (#123489) 2024-08-14 16:08:34 +02:00
epenet
ae6ac31d02 Improve type hints in smarttub tests (#123910) 2024-08-14 16:02:47 +02:00
Robert Resch
c761d75550 Fix blocking I/O of SSLContext.load_default_certs in Ecovacs (#123856) 2024-08-14 15:55:59 +02:00
epenet
e33a7ecefa Improve type hints in websocket_api tests (#123922) 2024-08-14 15:54:00 +02:00
Robert Svensson
04598c6fb1 Use more snapshot in UniFi sensor tests (#122875)
* Use more snapshot in UniFi sensor tests

* Fix comment
2024-08-14 15:45:08 +02:00
epenet
ff4dac8f3a Improve type hints in watttime tests (#123921) 2024-08-14 15:42:53 +02:00
epenet
1227cd8693 Improve type hints in zerproc tests (#123925) 2024-08-14 15:41:15 +02:00
epenet
c65f845329 Improve type hints in wemo tests (#123923)
* Improve type hints in wemo tests

* typo
2024-08-14 15:40:57 +02:00
epenet
e6fc34325d Improve type hints in zha tests (#123926) 2024-08-14 15:39:52 +02:00
J. Nick Koston
17f0d9ce45 Map pre-heating and defrosting hvac actions in homekit (#123907)
closes #123864
2024-08-14 15:36:49 +02:00
epenet
f7e017aa73 Improve type hints in sia tests (#123909) 2024-08-14 15:08:55 +02:00
epenet
3e5d0eb632 Improve type hints in owntracks tests (#123905) 2024-08-14 15:08:10 +02:00
epenet
fa8f86b672 Improve type hints in smartthings tests (#123912) 2024-08-14 15:07:55 +02:00
epenet
2c99bd178c Improve type hints in subaru tests (#123911) 2024-08-14 15:06:33 +02:00
epenet
99b1fc75d3 Improve type hints in traccar tests (#123919) 2024-08-14 15:04:51 +02:00
epenet
78c868c075 Improve type hints in tile tests (#123916) 2024-08-14 15:03:51 +02:00
epenet
1e5762fbf7 Improve type hints in tod tests (#123917) 2024-08-14 15:03:38 +02:00
epenet
7f6bf95aa6 Improve type hints in universal tests (#123920) 2024-08-14 15:02:52 +02:00
epenet
67f761c0e9 Improve type hints in template tests (#123915) 2024-08-14 14:58:16 +02:00
epenet
324b6529e8 Improve type hints in telegram_bot tests (#123914) 2024-08-14 14:56:58 +02:00
epenet
ccde51da85 Improve type hints in tasmota tests (#123913) 2024-08-14 14:56:03 +02:00
J. Nick Koston
f6cb28eb5b Bump aioesphomeapi to 25.1.0 (#123851) 2024-08-14 07:42:20 -05:00
Erik Montnemery
e050d187c4 Clarify SQLite can't drop foreign key constraints (#123898) 2024-08-14 07:04:53 -05:00
Erik Montnemery
ea7e88d000 Pass None instead of empty dict when registering entity services (#123878) 2024-08-14 07:04:29 -05:00
Erik Montnemery
80f5683cd6 Raise on database error in recorder.migration._add_constraint (#123646)
* Raise on database error in recorder.migration._add_constraint

* Fix test
2024-08-14 13:59:06 +02:00
Joost Lekkerkerker
b698dd8f32 Bump pyflic to 2.0.4 (#123895) 2024-08-14 13:49:10 +02:00
Thomas55555
3b1b600606 Bump aioautomower to 2024.8.0 (#123826) 2024-08-14 13:47:49 +02:00
G Johansson
dc2886d9b1 Use coordinator setup method in yale_smart_alarm (#123819) 2024-08-14 13:27:21 +02:00
epenet
1ddc723274 Improve type hints in powerwall tests (#123872) 2024-08-14 13:12:24 +02:00
epenet
d4082aee5a Improve type hints in owntracks tests (#123866) 2024-08-14 13:08:54 +02:00
Álvaro Fernández Rojas
903342b394 Handle timeouts on Airzone DHCP config flow (#123869)
airzone: config_flow: dhcp: catch timeout exception

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-14 13:06:52 +02:00
epenet
5f1d7e5566 Improve type hints in purpleair tests (#123874) 2024-08-14 13:05:52 +02:00
epenet
1af6528f4f Improve type hints in prusalink tests (#123873) 2024-08-14 13:05:43 +02:00
epenet
f414f5d77a Improve type hints in person tests (#123871) 2024-08-14 13:00:07 +02:00
epenet
8117532cc7 Improve type hints in rainforest_eagle tests (#123880) 2024-08-14 12:58:49 +02:00
Andrew Jackson
ac223e64f9 Migrate Mastodon unique id (#123877)
* Migrate unique id

* Fix unique id check

* Switch to minor version and other fixes
2024-08-14 12:55:59 +02:00
epenet
d50bac3b3e Improve type hints in rainmachine tests (#123881) 2024-08-14 12:52:09 +02:00
epenet
6626c63bb5 Improve type hints in recollect_waste tests (#123882) 2024-08-14 12:51:52 +02:00
epenet
7fe2f175aa Improve type hints in ridwell tests (#123886) 2024-08-14 12:50:51 +02:00
epenet
13b071fd72 Improve type hints in risco tests (#123887) 2024-08-14 12:50:29 +02:00
epenet
7ff368fe0d Improve type hints in sharkiq tests (#123888) 2024-08-14 12:50:08 +02:00
epenet
f8879a51fe Improve type hints in sma tests (#123889) 2024-08-14 12:49:53 +02:00
epenet
57902fed22 Improve type hints in smart_meter_texas tests (#123890) 2024-08-14 12:49:27 +02:00
epenet
24a8060f43 Improve type hints in sonos tests (#123891) 2024-08-14 12:48:36 +02:00
epenet
165ec62405 Improve type hints in ssdp tests (#123892) 2024-08-14 12:48:10 +02:00
epenet
a712eca70a Improve type hints in stream tests (#123894) 2024-08-14 12:47:38 +02:00
epenet
36f9b69923 Improve type hints in rfxtrx tests (#123885) 2024-08-14 12:33:26 +02:00
kingy444
cd382bcdda Bump pydaikin to 2.13.4 (#123623)
* bump pydaikin to 2.13.3

* bump pydaikin to 2.13.4
2024-08-14 12:31:18 +02:00
epenet
bd509469ab Improve type hints in reolink tests (#123883) 2024-08-14 12:16:38 +02:00
Michael
82c705e188 Fix translation for integration not found repair issue (#123868)
* correct setp id in strings

* add issue_ignored string
2024-08-14 12:09:46 +02:00
Erik Montnemery
e1a0a855d5 Support None schema in EntityComponent.async_register_entity_service (#123867) 2024-08-14 11:44:38 +02:00
Erik Montnemery
7063541733 Support None schema in EntityPlatform.async_register_entity_service (#123064) 2024-08-14 10:46:29 +02:00
Andrew Jackson
5f967fdee2 Correct case of config strings in Mastodon (#123859)
Fix string casing
2024-08-14 10:11:11 +02:00
Erik Montnemery
b7bbc938d3 Drop violating rows before adding foreign constraints in DB schema 44 migration (#123454)
* Drop violating rows before adding foreign constraints

* Don't delete rows with null-references

* Only delete rows when integrityerror is caught

* Move restore of dropped foreign key constraints to a separate migration step

* Use aliases for tables

* Update homeassistant/components/recorder/migration.py

* Update test

* Don't use alias for table we're deleting from, improve test

* Fix MySQL

* Update instead of deleting in case of self references

* Improve log messages

* Batch updates

* Add workaround for unsupported LIMIT in PostgreSQL

* Simplify

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-14 09:31:37 +02:00
Noah Husby
29887c2a17 Add base entity to Russound RIO integration (#123842)
* Add base entity to Russound RIO integration

* Set entity back to primary mac addr

* Switch to type shorthand
2024-08-13 23:40:51 +02:00
J. Nick Koston
2b6949f3c7 Bump uiprotect to 6.0.2 (#123808)
changelog: https://github.com/uilibs/uiprotect/compare/v6.0.1...v6.0.2
2024-08-13 16:29:26 -05:00
Michael
4a6e812963 Bump py-synologydsm-api to 2.4.5 (#123815)
bump py-synologydsm-api to 2.4.5
2024-08-13 22:21:48 +02:00
Paarth Shah
f8bc662620 Bump matrix-nio to 0.25.0 (#123832)
Bump matrix-nio to 0.25.0

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-13 14:31:59 -05:00
J. Nick Koston
f14d5ba5f2 Bump yalexs to 8.0.2 (#123817) 2024-08-13 14:06:38 -05:00
Joost Lekkerkerker
493859e589 Add update platform to AirGradient (#123534) 2024-08-13 18:44:12 +02:00
epenet
ba54a19d4b Simplify mock_tts_cache_dir_autouse fixture (#123783) 2024-08-13 18:01:06 +02:00
Noah Husby
995ed77849 Add error handling for Russound RIO async calls (#123756)
Add better error handling to Russound RIO
2024-08-13 16:23:13 +02:00
epenet
679baddd3d Improve type hints in openalpr_cloud tests (#123812) 2024-08-13 16:08:36 +02:00
epenet
e8157ed9a2 Improve type hints in otbr tests (#123814) 2024-08-13 16:08:15 +02:00
epenet
4cc3f7211b Improve type hints in openuv tests (#123813) 2024-08-13 16:07:17 +02:00
epenet
135f15fdc3 Improve type hints in openai_conversation tests (#123811) 2024-08-13 16:01:24 +02:00
epenet
04b1d2414d Improve type hints in mobile_app tests (#123793) 2024-08-13 15:19:08 +02:00
epenet
ae74fdf252 Improve type hints in nzbget tests (#123798) 2024-08-13 14:57:24 +02:00
Erik Montnemery
f0247e942e Remove unnecessary assignment of Template.hass from alert (#123766) 2024-08-13 14:31:12 +02:00
J. Nick Koston
2859dde697 Remove unifiprotect deprecate_package_sensor repair (#123807) 2024-08-13 06:56:10 -05:00
epenet
2c4b7c2577 Improve type hints in knx tests (#123787) 2024-08-13 13:32:44 +02:00
Matthias Alphart
b3d1d79a49 Update xknx to 3.1.0 and fix climate read only mode (#123776) 2024-08-13 13:28:37 +02:00
Aidan Timson
71e23e7849 System Bridge package updates (#123657) 2024-08-13 13:15:58 +02:00
epenet
8e0dfbcd13 Improve type hints in modbus tests (#123795) 2024-08-13 13:15:35 +02:00
Louis Christ
30994710e6 Fix status update loop in bluesound integration (#123790)
* Fix retry loop for status update

* Use 'available' instead of _is_online

* Fix tests
2024-08-13 12:55:01 +02:00
epenet
193a7b7360 Improve type hints in dsmr tests (#123785) 2024-08-13 12:18:59 +02:00
epenet
e15ac2fbe0 Improve type hints in elevenlabs tests (#123786) 2024-08-13 12:10:15 +02:00
Erik Montnemery
78f7b3340d Remove unnecessary assignment of Template.hass from event helper (#123777) 2024-08-13 12:09:30 +02:00
epenet
4ceb9b9dbf Improve type hints in anthropic tests (#123784) 2024-08-13 11:59:48 +02:00
epenet
3660c2dbb4 Improve type hints in mailgun tests (#123789) 2024-08-13 11:59:22 +02:00
epenet
2b968dfd9a Improve type hints in mfi tests (#123792) 2024-08-13 11:56:55 +02:00
epenet
5f694d9a84 Improve type hints in mochad tests (#123794) 2024-08-13 11:56:18 +02:00
Erik Montnemery
992de497f2 Remove unnecessary assignment of Template.hass from script helper (#123780) 2024-08-13 11:55:37 +02:00
Erik Montnemery
e9682fe003 Remove unnecessary assignment of Template.hass from xiaomi (#123774) 2024-08-13 11:54:56 +02:00
Erik Montnemery
dc462aa529 Remove unnecessary assignment of Template.hass from template (#123773) 2024-08-13 11:54:36 +02:00
Erik Montnemery
5837450a05 Remove unnecessary assignment of Template.hass from influxdb (#123768) 2024-08-13 11:53:39 +02:00
Erik Montnemery
f97fc8a907 Remove unnecessary assignment of Template.hass from rest (#123772) 2024-08-13 11:53:24 +02:00
Erik Montnemery
314ee9c74c Remove unnecessary assignment of Template.hass from manual_mqtt (#123771) 2024-08-13 11:53:06 +02:00
Erik Montnemery
a6f3e587bc Remove unnecessary assignment of Template.hass from manual (#123770) 2024-08-13 11:52:46 +02:00
Erik Montnemery
6317053cc6 Remove unnecessary assignment of Template.hass from condition helper (#123775) 2024-08-13 11:52:27 +02:00
Erik Montnemery
04570edb3f Remove unnecessary assignment of Template.hass from generic camera (#123767) 2024-08-13 11:00:33 +02:00
Jan Rieger
86322973d0 Migrate GPSD extra state attributes to separate states (#122193)
* Migrate GPSD extra state attributes to separate states

* Use common translations

* Address feedback
2024-08-13 10:37:43 +02:00
Ian
6406065e1f Bump py-nextbusnext to 2.0.4 (#123750) 2024-08-13 08:51:41 +02:00
Michael
a988cd050b Fix error message in html5 (#123749) 2024-08-13 08:50:02 +02:00
Allen Porter
dee06d5777 Bump python-nest-sdm to 4.0.6 (#123762) 2024-08-13 08:47:47 +02:00
Franck Nijhof
7eccb38851 Update wled to 0.20.2 (#123746) 2024-08-12 23:23:34 +02:00
J. Nick Koston
e06e9bb39c Bump pyatv to 0.15.0 (#123674) 2024-08-12 22:41:19 +02:00
J. Nick Koston
831c28e890 Bump yalexs to 6.5.0 (#123739) 2024-08-12 22:40:35 +02:00
David F. Mulcahey
732b4b95db Bump ZHA lib to 0.0.31 (#123743) 2024-08-12 22:38:59 +02:00
G Johansson
52f52394d5 Remove demo mailbox (#123741) 2024-08-12 22:36:36 +02:00
epenet
416d2fb82a Improve type hints in locative tests (#123643) 2024-08-12 21:55:44 +02:00
epenet
b0d1d7bdb2 Improve type hints in lcn tests (#123648) 2024-08-12 21:53:32 +02:00
J. Nick Koston
31dcc6f685 Bump protobuf to 4.25.4 (#123675) 2024-08-12 21:51:45 +02:00
Erik Montnemery
c49a31e0de Remove unnecessary assignment of Template.hass from script variables helper (#123712) 2024-08-12 21:51:24 +02:00
Erik Montnemery
c5e8710889 Remove unnecessary assignment of Template.hass from service helper (#123710) 2024-08-12 21:51:02 +02:00
Erik Montnemery
6caec89793 Remove unnecessary assignment of Template.hass from trigger entity helper (#123709) 2024-08-12 21:50:50 +02:00
Erik Montnemery
5e75c5faff Remove unnecessary assignment of Template.hass from mobile_app (#123702) 2024-08-12 21:50:34 +02:00
Erik Montnemery
6bde80ad65 Remove unnecessary assignment of Template.hass from esphome (#123701) 2024-08-12 21:50:23 +02:00
Erik Montnemery
bf55cc605a Remove unnecessary assignment of Template.hass from velbus (#123696) 2024-08-12 21:50:11 +02:00
Erik Montnemery
9d67956fc8 Remove unnecessary assignment of Template.hass from tensorflow (#123695) 2024-08-12 21:49:58 +02:00
Erik Montnemery
b62f216c53 Remove unnecessary assignment of Template.hass from telnet (#123694) 2024-08-12 21:49:46 +02:00
epenet
3c864322f7 Combine requirements files in CI (#123687) 2024-08-12 21:49:10 +02:00
Noah Husby
7cf5d12ec0 Fix secondary russound controller discovery failure (#123590) 2024-08-12 21:45:05 +02:00
G Johansson
b09c6654ec Replace not needed guard in command_line with type check (#123722) 2024-08-12 21:42:00 +02:00
G Johansson
178cb0659a Guard for no discovery info in command_line (#123717) 2024-08-12 21:35:02 +02:00
Álvaro Fernández Rojas
d1dff95ac8 Update aioairzone to v0.8.2 (#123718) 2024-08-12 21:33:56 +02:00
G Johansson
f46fe7eeb2 Remove deprecated yaml import for velux (#123724) 2024-08-12 21:32:28 +02:00
G Johansson
d8b13c8c02 Remove deprecated yaml import for gpsd (#123725) 2024-08-12 21:31:42 +02:00
G Johansson
05c4b1a6a9 Remove deprecated logi_circle integration (#123727) 2024-08-12 21:31:10 +02:00
Shay Levy
ff0a44cc12 Bump aioswitcher to 4.0.2 (#123734) 2024-08-12 21:28:39 +02:00
G Johansson
a4f0234841 Reduce logging in command_line (#123723) 2024-08-12 13:42:39 -05:00
Jan Bouwhuis
21987a67e7 Cleanup unneeded assignment of hass property on MQTT Template objects (#123706)
* Cleanup unneeded assignment of hass property on MQTT Template objects

* Commented out code and unneeded checks

* Consistent assign hass to Template in mqtt tests

* Remove unused hass attribute

* Missed line
2024-08-12 19:20:21 +02:00
David Knowles
74a09073c2 Bump pyschlage to 2024.8.0 (#123714) 2024-08-12 19:01:07 +02:00
Álvaro Fernández Rojas
138d229fef Update AEMET-OpenData to v0.5.4 (#123716) 2024-08-12 18:59:31 +02:00
Álvaro Fernández Rojas
93eb74d970 Update aioairzone-cloud to v0.6.2 (#123719) 2024-08-12 18:57:34 +02:00
Álvaro Fernández Rojas
b7a0bf152b Update aioqsw to v0.4.1 (#123721) 2024-08-12 18:56:54 +02:00
Erik Montnemery
5fb6c65d23 Remove unnecessary assignment of Template.hass from alexa (#123699) 2024-08-12 17:01:31 +02:00
Cyrill Raccaud
200f04bf21 Fix startup block from Swiss public transport (#123704) 2024-08-12 17:01:06 +02:00
Shay Levy
26a69458b0 Bump aioswitcher to 4.0.1 (#123697) 2024-08-12 16:52:37 +02:00
Cyrill Raccaud
5cb9901134 Cleaner unit tests for Swiss public transport (#123660)
cleaner unit tests
2024-08-12 16:19:36 +02:00
Erik Montnemery
342ba1b599 Remove unnecessary assignment of Template.hass from telegram_bot (#123693) 2024-08-12 16:06:19 +02:00
J. Nick Koston
7985974a58 Bump aiohomekit to 3.2.2 (#123669) 2024-08-12 09:02:23 -05:00
Erik Montnemery
2d41723cfe Remove unnecessary assignment of Template.hass from minio (#123679) 2024-08-12 15:54:35 +02:00
Erik Montnemery
c47fdf7074 Remove unnecessary assignment of Template.hass from intent_script (#123676) 2024-08-12 15:54:20 +02:00
Erik Montnemery
4dadf0ea1b Remove unnecessary assignment of Template.hass from snmp (#123689) 2024-08-12 15:54:06 +02:00
Erik Montnemery
81788790df Remove unnecessary assignment of Template.hass from rss_feed_template (#123683) 2024-08-12 15:53:32 +02:00
Erik Montnemery
268044cd01 Remove unnecessary assignment of Template.hass from notify (#123680) 2024-08-12 15:53:19 +02:00
Erik Montnemery
b04e3dc6fd Remove unnecessary assignment of Template.hass from serial (#123686) 2024-08-12 15:52:41 +02:00
Erik Montnemery
ecd061d46f Remove unnecessary assignment of Template.hass from rest (#123682) 2024-08-12 15:52:03 +02:00
Erik Montnemery
1c9a1c71d3 Remove unnecessary assignment of Template.hass from scrape (#123685) 2024-08-12 15:51:37 +02:00
Erik Montnemery
efa3f228a5 Remove unnecessary assignment of Template.hass from slack (#123688) 2024-08-12 15:51:26 +02:00
Erik Montnemery
533e383d5d Remove unnecessary assignment of Template.hass from sql (#123690) 2024-08-12 15:51:02 +02:00
Erik Montnemery
4639e7d5c7 Remove unnecessary assignment of Template.hass from tcp (#123691) 2024-08-12 08:49:37 -05:00
Erik Montnemery
78b6cdb201 Remove unnecessary assignment of Template.hass from logi_circle (#123678) 2024-08-12 15:39:34 +02:00
Erik Montnemery
11fd1086af Remove unnecessary assignment of Template.hass from logbook (#123677) 2024-08-12 15:39:18 +02:00
Erik Montnemery
5b5b9ac4ef Remove unnecessary assignment of Template.hass from influxdb (#123673) 2024-08-12 14:56:29 +02:00
J. Nick Koston
b20623447e Ensure HomeKit connection is kept alive for devices that timeout too quickly (#123601) 2024-08-12 14:54:57 +02:00
Erik Montnemery
f6e82ae0ba Remove unnecessary assignment of Template.hass from camera (#123663) 2024-08-12 14:54:41 +02:00
Erik Montnemery
82bedb1ab5 Remove unnecessary assignment of Template.hass from dweet (#123667) 2024-08-12 14:54:31 +02:00
Erik Montnemery
33a22ae208 Remove unnecessary assignment of Template.hass from triggers (#123672) 2024-08-12 14:54:03 +02:00
Erik Montnemery
77e9acd864 Remove unnecessary assignment of Template.hass from emulated_kasa (#123670) 2024-08-12 14:53:22 +02:00
Erik Montnemery
b9010e96a0 Remove unnecessary assignment of Template.hass from emoncms (#123668) 2024-08-12 14:52:51 +02:00
Erik Montnemery
27d76f5953 Remove unnecessary assignment of Template.hass from history_stats (#123671) 2024-08-12 14:52:34 +02:00
Robert Resch
64ceb11f8c Remove libcst constraint (#123661) 2024-08-12 14:44:52 +02:00
Erik Montnemery
32d2218ff0 Remove unnecessary assignment of Template.hass from doods (#123666) 2024-08-12 14:31:11 +02:00
Erik Montnemery
ecc308c326 Remove unnecessary assignment of Template.hass from command_line (#123664) 2024-08-12 14:30:48 +02:00
Erik Montnemery
840d9a0923 Remove unnecessary assignment of Template.hass from arest (#123662) 2024-08-12 14:30:35 +02:00
Barry vd. Heuvel
81faf1b582 Add homematicip_cloud service set cooling home (#121943)
* [homematicip_cloud] Add service to set cooling mode

* Create seperate test for cooling

* Rename service to set_home_cooling_mode

* Raise exception when accesspoint not found
2024-08-12 14:01:12 +02:00
epenet
ecf22e4c4f Improve type hints in logbook tests (#123652) 2024-08-12 13:29:38 +02:00
Joost Lekkerkerker
e8d7eb05ae Delete unused snapshots (#123656)
* Delete unused snapshots

* Delete unused snapshots
2024-08-12 13:28:09 +02:00
Robert Resch
8c5748dcc1 Remove regex constraint (#123650) 2024-08-12 13:23:10 +02:00
Cyrill Raccaud
0803ac9b0b Add Swiss public transport fetch connections service (#114671)
* add service to fetch more connections

* improve error messages

* better errors

* wip

* fix service register

* add working tests

* improve tests

* temp availability

* test availability

* remove availability test

* change error type for coordinator update

* fix missed coverage

* convert from entity service to integration service

* cleanup changes

* add more tests for the service
2024-08-12 11:26:42 +02:00
Willem-Jan van Rootselaar
8cfac68317 Bump BSBLan to 0.6.2 (#123594)
* chore: Update bsblan library to version 0.6.1

* add dataclass BSBLANConfig

remove session as bsblan has it's own session

* Update temperature unit handling in BSBLANClimate

* chore: Remove unused constant in bsblan/const.py

* chore: Update python-bsblan library to version 0.6.2

* feat: Add async_get_clientsession to BSBLAN initialization

This commit adds the `async_get_clientsession` function to the initialization of the `BSBLAN` class in both `__init__.py` and `config_flow.py` files. This allows the `BSBLAN` instance to have its own session for making HTTP requests. This change improves the performance and reliability of the BSBLAN integration.
2024-08-12 10:57:51 +02:00
epenet
e64ca7c274 Enable implicit-return (RET503) rule in ruff (#122771) 2024-08-12 10:04:16 +02:00
epenet
0bb8c4832d Enable raise-within-try (TRY301) rule in ruff (#123351) 2024-08-12 09:16:33 +02:00
J. Nick Koston
b15ea58851 Relocate code to get scheduled TimerHandles (#123546) 2024-08-12 09:15:33 +02:00
G Johansson
86df43879c Define Manual alarm as a helper (#123587) 2024-08-12 09:14:48 +02:00
Amit Finkelstein
4527de18d5 Bump pycoolmasternet-async to 0.2.2 (#123634) 2024-08-12 09:13:52 +02:00
G Johansson
bbefe47aeb Add unique id to Manual alarm (#123588) 2024-08-12 09:12:26 +02:00
G Johansson
b19758ff71 Change WoL to be secondary on device info (#123591) 2024-08-12 09:11:44 +02:00
G Johansson
401e36b885 Remove deprecated yaml import from Ecovacs (#123605) 2024-08-12 09:09:51 +02:00
G Johansson
6343a086e4 Remove deprecated process sensor from System monitor (#123616) 2024-08-12 09:08:40 +02:00
Joost Lekkerkerker
5b6bfa9ac8 Remove Spotify scope check (#123545) 2024-08-12 09:04:12 +02:00
Matthias Alphart
e1336a1975 Update knx-frontend to 2024.8.9.225351 (#123557) 2024-08-12 08:55:24 +02:00
G Johansson
ca34bac479 Remove deprecated horn switch in starline (#123608) 2024-08-11 22:38:59 +02:00
G Johansson
4a099ab942 Remove deprecated yaml import from lupusec (#123606) 2024-08-11 22:38:20 +02:00
G Johansson
4daefe0b6e Remove deprecated fan as light in lutron (#123607)
* Remove deprecated fan as light in lutron

* Remove more
2024-08-11 22:37:33 +02:00
Maciej Bieniek
a040f1a9d1 Bump aioshelly to version 11.2.0 (#123602)
Bump aioshelly to version 11.2.0
2024-08-11 20:56:12 +03:00
wittypluck
766733b3b2 Avoid Exception on Glances missing key (#114628)
* Handle case of sensors removed server side

* Update available state on value update

* Set uptime to None if key is missing

* Replace _attr_available by _data_valid
2024-08-11 19:14:43 +02:00
Carlos Gustavo Sarmiento
b392d61391 Update MPD Player to use HOST and PORT to detect duplicate configs (#123410)
* Allow Monetary device_class to accept `Measurement` state_class

* Update MPD Player to use HOST and PORT to detect duplicate configs
2024-08-11 18:50:11 +02:00
Andrew Jackson
be3e720c57 Add diagnostics platform to Mastodon (#123592)
Diagnostics
2024-08-11 14:53:44 +02:00
G Johansson
e93d0dfdfc Use setup method in coordinator for Trafikverket Train (#123138)
* Use setup method in coordinator for Trafikverket Train

* Overwrite types
2024-08-11 14:15:20 +02:00
Pavel Skuratovich
9be8616cc0 Add state_class to starline sensors to generate long-term statistics (#123540)
* starline: Add state_class to sensors to generate long-term statistics

* starline: Add 'errors' unit to 'errors' sensor
2024-08-11 12:54:31 +02:00
J. Nick Koston
7aed35b3f0 Bump aiohttp to 3.10.3 (#123549) 2024-08-10 15:09:18 -05:00
Joakim Plate
f69507527b Make sure diagnostic data is output in deterministic order ZHA (#123551)
Make sure diagnostic data is output in deterministic order

Sets are not ordered, so the tests for this failed sporadically since it is
converted into a list when converted to json.
2024-08-10 20:55:31 +02:00
Joakim Plate
f53da62026 Extend ZHA attribute diagnostic information (#123199)
* Include full attribute representation in in data

* Extend attribute diagnostics for zha
2024-08-10 19:25:21 +02:00
Franck Nijhof
0558c85b5d Revert "Remove ESPHome legacy entity naming" (#123453) 2024-08-10 18:38:20 +02:00
J. Nick Koston
ef2ddbf86d Revert "Bump chacha20poly1305-reuseable to 0.13.2" (#123505) 2024-08-10 18:37:00 +02:00
Joost Lekkerkerker
778194f7a0 Bump AirGradient to 0.8.0 (#123527) 2024-08-10 18:31:17 +02:00
Joost Lekkerkerker
13b12a7657 Clean up codespell words (#123541) 2024-08-10 18:28:01 +02:00
Michael
257742de46 Fix cleanup of old orphan device entries in AVM Fritz!Tools (#123516)
fix cleanup of old orphan device entries
2024-08-10 18:01:15 +02:00
cnico
ace6385f5e Upgrade chacon_dio_api to version 1.2.0 (#123528)
Upgrade api version 1.2.0 with the first user feedback improvement
2024-08-10 17:01:49 +02:00
Evgeny
4f8a6979d9 Bump OpenWeatherMap to 0.1.1 (#120178)
* add owm modes

* fix tests

* fix modes

* remove sensors

* Update homeassistant/components/openweathermap/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-10 17:01:26 +02:00
Duco Sebel
f02fceed5b Bumb python-homewizard-energy to 6.2.0 (#123514) 2024-08-10 17:01:17 +02:00
David F. Mulcahey
cfd2ca3abb Bump zha lib to 0.0.30 (#123499) 2024-08-10 08:07:08 -04:00
Sid
9b678e474b Bump ruff to 0.5.7 (#123531) 2024-08-10 14:04:27 +02:00
Michael
5f73c73a88 Improve test coverage for Proximity (#123523)
* remove unneccessary type checking

* remove unused method after #123158

* test when tracked zone is removed
2024-08-10 13:21:01 +02:00
Matt Way
5f03589d3e Bump pydaikin to 2.13.2 (#123519) 2024-08-10 13:06:29 +02:00
Willem-Jan van Rootselaar
089d855c47 Bump bsblan to 0.5.19 (#123515)
* bump bsblan lib version

* chore: Update bsblan diagnostics to use to_dict() instead of dict() method
2024-08-10 12:28:48 +02:00
dupondje
750bce2b86 Also migrate dsmr entries for devices with correct serial (#123407)
dsmr: also migrate entries for devices with correct serial

When the dsmr code could not find the serial_nr for the gas meter,
it creates the gas meter device with the entry_id as identifier.

But when there is a correct serial_nr, it will use that as identifier
for the dsmr gas device.

Now the migration code did not take this into account, so migration to
the new name failed since it didn't look for the device with correct
serial_nr.

This commit fixes this and adds a test for this.
2024-08-10 10:40:11 +02:00
Michael
94af95c95b Post merge review for Proximity (#123500)
remove commented code
2024-08-10 01:25:38 +02:00
Brett Adams
ec9944b92a Add missing logger to Tessie (#123413) 2024-08-09 20:33:13 +02:00
J. Nick Koston
2b95a642fc Remove august IPv6 workaround (#123408) 2024-08-09 20:32:11 +02:00
Franck Nijhof
eb1c2f5d9f Update frontend to 20240809.0 (#123485) 2024-08-09 20:30:39 +02:00
Michael
ac28d34ad5 Improve test coverage for AVM Fritz!Smarthome (#122974) 2024-08-09 20:23:00 +02:00
starkillerOG
65f33f58e9 Bump motionblinds to 0.6.24 (#123395) 2024-08-09 20:22:16 +02:00
Louis Christ
86c4ded4cd Fix startup blocked by bluesound integration (#123483) 2024-08-09 19:36:58 +02:00
YogevBokobza
57da71c537 Bump aioswitcher to 4.0.0 (#123260)
* Bump aioswitcher to 4.0.0

* switcher fix version

* swithcer fix test

* switcher fix tests
2024-08-09 20:04:11 +03:00
Jake Martin
8e34a0d3c7 Bump monzopy to 1.3.2 (#123480) 2024-08-09 11:52:07 -05:00
Steve Easley
1ad1a2d51e Bump pyjvcprojector to 1.0.12 to fix blocking call (#123473) 2024-08-09 11:51:50 -05:00
J. Nick Koston
acda7bc5c4 Bump uiprotect to 6.0.1 (#123481) 2024-08-09 11:50:05 -05:00
yangqian
618efdb326 Bump chacha20poly1305-reuseable to 0.13.2 (#123471)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-09 11:25:53 -05:00
J. Nick Koston
b445517244 Bump orjson to 3.10.7 (#123465) 2024-08-09 17:34:21 +02:00
J. Nick Koston
6e1978971a Bump PyYAML to 6.0.2 (#123466) 2024-08-09 17:33:48 +02:00
J. Nick Koston
572293fb8b Bump uiprotect to 6.0.0 (#123402) 2024-08-09 17:27:16 +02:00
David Knowles
85cbc2437c Bump pydrawise to 2024.8.0 (#123461) 2024-08-09 17:25:25 +02:00
Franck Nijhof
228db1c063 Support action YAML syntax in old-style notify groups (#123457) 2024-08-09 17:18:42 +02:00
puddly
97410474f5 Bump ZHA library to 0.0.29 (#123464)
* Bump zha to 0.0.29

* Pass the Core timezone to ZHA

* Add a unit test
2024-08-09 10:31:55 -04:00
Andrew Jackson
e6e985af24 Remove type checking of config entry in Mastodon (#123467)
Remove type checking of configentry
2024-08-09 16:28:55 +02:00
Andrew Jackson
aee5d5126f Add sensor platform for Mastodon (#123434)
* Add account sensors

* Sensor icons

* Change sensors to use value_fn

* Add native unit of measurement

* Update native unit of measurement

* Change toots to posts

* Fix sensor icons

* Add device entry type

* Explain conditional naming

* Fixes from review

* Remove unnecessary constructor
2024-08-09 16:02:27 +02:00
Matrix
55eb11055c Bump YoLink API to 0.4.7 (#123441) 2024-08-09 12:21:49 +02:00
Jesse Hills
84d6f5ed07 Remove ESPHome legacy entity naming (#123436)
* Remove ESPHome legacy entity naming

* Update test entity_ids to use sanitized name instead of object_id
2024-08-09 11:43:02 +02:00
Brett Adams
f8e1c2cfd4 Rework OAuth in Tesla Fleet (#123324)
* Rework Oauth

* Improve docstrings

* Update homeassistant/components/tesla_fleet/oauth.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* review feedback

* Add tests for user creds

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-08-09 08:38:12 +02:00
J. Nick Koston
00c1a3fd4e Ensure legacy event foreign key is removed from the states table when a previous rebuild failed (#123388)
* Ensure legacy event foreign key is removed from the states table

If the system ran out of disk space removing the FK, it would
fail. #121938 fixed that to try again, however that PR was made
ineffective by #122069 since it will never reach the check.

To solve this, the migration version is incremented to 2, and
the migration is no longer marked as done unless the rebuild
/fk removal is successful.

* fix logic for mysql

* fix test

* asserts

* coverage

* coverage

* narrow test

* fixes

* split tests

* should have skipped

* fixture must be used
2024-08-09 06:19:12 +02:00
J. Nick Koston
03ba8f6173 Bump aiohttp to 3.10.2 (#123394) 2024-08-08 17:07:22 -05:00
J. Nick Koston
69740e865c Reduce number of aiohttp.TCPConnector cleanup_closed checks to one per minute (#123268) 2024-08-08 15:52:09 -05:00
starkillerOG
2343f5e40f Reolink Chime online status and ability to remove (#123301)
* Add chime available

* allow removing a Reolink chime

* Allow removal if doorbell itself removed

* fix tests

* Add tests

* fix styling
2024-08-08 19:28:46 +02:00
Álvaro Fernández Rojas
634a2b22dc Improve Airzone Cloud sensors availability (#123383)
airzone_cloud: improve sensors availability

Make sensor entities unavailable instead of providing an unknown state.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-08 19:23:52 +02:00
epenet
b498c89860 Fix raise-within-try in language util (#123354) 2024-08-08 18:51:19 +02:00
epenet
ddc94030a6 Fix raise-within-try in config validation helper (#123353) 2024-08-08 18:50:49 +02:00
fustom
c2f2a868c4 Fix limit and order property for transmission integration (#123305) 2024-08-08 18:49:47 +02:00
Erik Montnemery
60117ae150 Revert "Fix blocking I/O while validating config schema" (#123377) 2024-08-08 17:30:39 +02:00
epenet
a406068f13 Fix implicit-return in homematic (#122922) 2024-08-08 16:32:46 +02:00
Tom Brien
baceb2a92a Add support for v3 Coinbase API (#116345)
* Add support for v3 Coinbase API

* Add deps

* Move tests
2024-08-08 12:26:03 +02:00
Sid
d08f4fbace Enable Ruff RET501 (#115031)
* Enable Ruff RET501

* add noqa and type hints

* use Any for fixtures

* Review comments, typing fixes

* Review comments

* fix new occurrences, clean up

* Fix typing

* clean up rebase

* more cleanup

* Remove old occurrences

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-08-08 11:56:18 +02:00
epenet
02a404081a Fix implicit-return in yeelight (#122943) 2024-08-08 11:33:49 +02:00
Franck Nijhof
8a8fac46e0 Remove unneeded logs from Yamaha (#123349) 2024-08-08 11:32:22 +02:00
dependabot[bot]
984bbf60ef Bump sigstore/cosign-installer from 3.5.0 to 3.6.0 (#123335)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-08 10:25:32 +02:00
epenet
b7f5236a0a Fix implicit-return in konnected (#122915)
* Fix implicit-return in konnected

* Adjust

* Adjust

* Adjust tests
2024-08-08 10:09:36 +02:00
Franck Nijhof
6a89080ce7 Merge branch 'master' into dev 2024-08-08 09:12:16 +02:00
Joost Lekkerkerker
7dea5d2fe6 Refactor spc tests (#123287) 2024-08-08 08:59:30 +02:00
J. Nick Koston
135c80186f Fix doorbird with externally added events (#123313) 2024-08-08 08:56:40 +02:00
Noah Husby
2144a9a7b2 Bump aiorussound to 2.2.2 (#123319) 2024-08-08 08:56:02 +02:00
Franck Nijhof
86722ba05e 2024.8.0 (#123276) 2024-08-07 20:20:43 +02:00
Franck Nijhof
be4810731a Bump version to 2024.8.0 2024-08-07 19:04:33 +02:00
Franck Nijhof
ac6abb363c Bump version to 2024.8.0b9 2024-08-07 18:24:15 +02:00
Michael Hansen
5367886732 Bump intents to 2024.8.7 (#123295) 2024-08-07 18:24:08 +02:00
Stefan Agner
7a51d4ff62 Drop Matter Microwave Oven Mode select entity (#123294) 2024-08-07 18:24:05 +02:00
ashalita
ef564c537d Revert "Upgrade pycoolmasternet-async to 0.2.0" (#123286) 2024-08-07 18:24:02 +02:00
Michael Hansen
f8fa6e4309 Bump intents to 2024.8.7 (#123295) 2024-08-07 10:42:59 -05:00
Stefan Agner
f1029596d2 Drop Matter Microwave Oven Mode select entity (#123294) 2024-08-07 16:45:46 +02:00
ashalita
4cd3fce555 Revert "Upgrade pycoolmasternet-async to 0.2.0" (#123286) 2024-08-07 14:19:05 +02:00
Franck Nijhof
082290b092 Bump version to 2024.8.0b8 2024-08-07 13:15:23 +02:00
Franck Nijhof
4a212791a2 Update wled to 0.20.1 (#123283) 2024-08-07 13:15:12 +02:00
Brett Adams
6bb55ce79e Add missing application credential to Tesla Fleet (#123271)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-08-07 13:15:04 +02:00
Franck Nijhof
9717a867a7 Update wled to 0.20.1 (#123283) 2024-08-07 13:12:29 +02:00
Brett Adams
764166342e Add missing application credential to Tesla Fleet (#123271)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-08-07 13:11:03 +02:00
Paulus Schoutsen
45ce0fed0a Reload config entry for anthropic on update (#123280)
* Reload config entry for anthropic on update

* Fix tests
2024-08-07 12:22:50 +02:00
Franck Nijhof
782ff12e6e Bump version to 2024.8.0b7 2024-08-07 11:26:03 +02:00
lunmay
af6f78a784 Fix typo on one of islamic_prayer_times calculation_method option (#123281) 2024-08-07 11:25:55 +02:00
Paulus Schoutsen
db32460f3b Reload conversation entries on update (#123279) 2024-08-07 11:25:52 +02:00
Erwin Douna
270990fe39 Tado change repair issue (#123256) 2024-08-07 11:25:48 +02:00
lunmay
799888df2f Fix typo on one of islamic_prayer_times calculation_method option (#123281) 2024-08-07 11:20:36 +02:00
Paulus Schoutsen
933fba84a9 Reload conversation entries on update (#123279) 2024-08-07 11:18:48 +02:00
Erwin Douna
cba6273ac6 Tado change repair issue (#123256) 2024-08-07 11:18:09 +02:00
Franck Nijhof
a10fed9d72 Bump version to 2024.8.0b6 2024-08-07 10:22:39 +02:00
tronikos
cc5699bf08 Fix Google Cloud TTS not respecting config values (#123275) 2024-08-07 10:22:30 +02:00
Jesse Hills
ad674a1c2b Update ESPHome voice assistant pipeline log warning (#123269) 2024-08-07 10:22:27 +02:00
J. Nick Koston
b0269faae4 Allow non-admins to subscribe to newer registry update events (#123267) 2024-08-07 10:22:24 +02:00
starkillerOG
1143efedc5 Bump reolink-aio to 0.9.7 (#123263) 2024-08-07 10:22:21 +02:00
Matthias Alphart
9e75b63925 Update knx-frontend to 2024.8.6.211307 (#123261) 2024-08-07 10:22:18 +02:00
puddly
940327dccf Bump ZHA to 0.0.28 (#123259)
* Bump ZHA to 0.0.28

* Drop redundant radio schema conversion
2024-08-07 10:22:14 +02:00
Steve Repsher
0270026f7c Adapt static resource handler to aiohttp 3.10 (#123166) 2024-08-07 10:22:11 +02:00
Jesse Hills
bf28419851 Update ESPHome voice assistant pipeline log warning (#123269) 2024-08-07 10:17:01 +02:00
tronikos
27b9965b10 Fix Google Cloud TTS not respecting config values (#123275) 2024-08-07 10:16:07 +02:00
Terence Honles
be7f3ca439 remove unneeded type attributes on WebsocketNotification (#123238) 2024-08-07 10:10:18 +02:00
J. Nick Koston
185b6e5908 Allow non-admins to subscribe to newer registry update events (#123267) 2024-08-07 09:13:23 +02:00
Matthias Alphart
7ec0b8b331 Update knx-frontend to 2024.8.6.211307 (#123261) 2024-08-07 09:12:20 +02:00
dependabot[bot]
95f92ababf Bump actions/upload-artifact from 4.3.5 to 4.3.6 (#123272)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-07 09:05:23 +02:00
dependabot[bot]
89337091b2 Bump github/codeql-action from 3.25.15 to 3.26.0 (#123273)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-07 09:04:48 +02:00
puddly
78154f5daf Bump ZHA to 0.0.28 (#123259)
* Bump ZHA to 0.0.28

* Drop redundant radio schema conversion
2024-08-06 21:46:25 -04:00
starkillerOG
f4db9e09c8 Bump reolink-aio to 0.9.7 (#123263) 2024-08-07 00:16:57 +02:00
Franck Nijhof
b636096ac3 Bump version to 2024.8.0b5 2024-08-06 18:08:19 +02:00
Franck Nijhof
a243ed5b23 Update frontend to 20240806.1 (#123252) 2024-08-06 18:07:49 +02:00
Joost Lekkerkerker
3cf3780587 Bump mficlient to 0.5.0 (#123250) 2024-08-06 18:06:50 +02:00
Robert Resch
3d0a0cf376 Bump deebot-client to 8.3.0 (#123249) 2024-08-06 18:05:00 +02:00
J. Nick Koston
7aae9d9ad3 Fix sense doing blocking I/O in the event loop (#123247) 2024-08-06 18:04:57 +02:00
Franck Nijhof
870bb7efd4 Mark FFmpeg integration as system type (#123241) 2024-08-06 18:04:53 +02:00
Robert Resch
35a6679ae9 Delete mobile_app cloudhook if not logged into the cloud (#123234) 2024-08-06 18:04:49 +02:00
Yehazkel
a09d0117b1 Fix Tami4 device name is None (#123156)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-08-06 18:04:44 +02:00
Franck Nijhof
abaac519c9 Update frontend to 20240806.1 (#123252) 2024-08-06 17:54:40 +02:00
Joost Lekkerkerker
f9f3c7fb51 Bump mficlient to 0.5.0 (#123250) 2024-08-06 16:28:37 +02:00
Yehazkel
2000db57c8 Fix Tami4 device name is None (#123156)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-08-06 16:21:34 +02:00
Steve Repsher
9414e6d472 Adapt static resource handler to aiohttp 3.10 (#123166) 2024-08-06 09:17:54 -05:00
Robert Resch
4627a565d3 Bump deebot-client to 8.3.0 (#123249) 2024-08-06 16:16:22 +02:00
Franck Nijhof
c612cf95a8 Mark FFmpeg integration as system type (#123241) 2024-08-06 16:04:29 +02:00
J. Nick Koston
1eaaa00687 Detect blocking ssl context creation in the event loop (#123240) 2024-08-06 16:00:37 +02:00
J. Nick Koston
fe4e6f24f5 Fix sense doing blocking I/O in the event loop (#123247) 2024-08-06 15:32:58 +02:00
Franck Nijhof
f94bf51bb5 Remove myself from DSMR codeowners (#123243) 2024-08-06 14:55:37 +02:00
Robert Resch
260642345d Delete mobile_app cloudhook if not logged into the cloud (#123234) 2024-08-06 14:55:14 +02:00
Joost Lekkerkerker
7cb94e6392 Bump uvcclient to 0.12.1 (#123237) 2024-08-06 14:01:48 +02:00
Franck Nijhof
e9fe98f7f9 Bump version to 2024.8.0b4 2024-08-06 13:22:46 +02:00
Franck Nijhof
5b2e188b52 Mark Google Assistant integration as system type (#123233) 2024-08-06 13:22:03 +02:00
Franck Nijhof
c1953e938d Mark Alexa integration as system type (#123232) 2024-08-06 13:21:59 +02:00
Franck Nijhof
9d2c2d90c8 Mark Google Assistant integration as system type (#123233) 2024-08-06 13:20:32 +02:00
Franck Nijhof
d24a87145d Mark Alexa integration as system type (#123232) 2024-08-06 13:18:22 +02:00
Franck Nijhof
77bcbbcf53 Update frontend to 20240806.0 (#123230) 2024-08-06 12:51:24 +02:00
Joost Lekkerkerker
97587fae08 Bump yt-dlp to 2023.08.06 (#123229) 2024-08-06 12:51:21 +02:00
Matthias Alphart
01b54fe1a9 Update knx-frontend to 2024.8.6.85349 (#123226) 2024-08-06 12:51:17 +02:00
Clifford Roche
f796950493 Update greeclimate to 2.1.0 (#123210) 2024-08-06 12:51:14 +02:00
flopp999
495fd946bc Fix growatt server tlx battery api key (#123191) 2024-08-06 12:51:10 +02:00
Jesse Hills
6af1e25d7e Show project version as sw_version in ESPHome (#123183) 2024-08-06 12:51:07 +02:00
Jesse Hills
6d47a4d7e4 Add support for ESPHome update entities to be checked on demand (#123161) 2024-08-06 12:51:04 +02:00
Petro31
fd5533d719 Fix yamaha legacy receivers (#122985) 2024-08-06 12:50:59 +02:00
Franck Nijhof
bc380859e8 Update frontend to 20240806.0 (#123230) 2024-08-06 12:48:15 +02:00
Petro31
1fc6ce3acd Fix yamaha legacy receivers (#122985) 2024-08-06 12:35:47 +02:00
Joost Lekkerkerker
78d1cd79af Bump yt-dlp to 2023.08.06 (#123229) 2024-08-06 12:22:14 +02:00
Guy Lowe
a2dd017229 Add unit tests for SNMP integer Switches (#123094)
* Add unit tests for SNMP Switches (integer only)

* Add unit test for SNMP switches (integer unknown)

* log a warning when SNMP response is not a recognised payload

* Use a single configuration for all test_integer_switch tests

* Tweak unknown SNMP response warning

* Apply suggestions from code review

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* import STATE_ consts

* rename tests/components/snmp/test_integer_switch.py to test_switch.py

* check that a warning is logged if the SNMP response payload is unknown

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-06 11:56:39 +02:00
Matthias Alphart
86d8c3b31a Update knx-frontend to 2024.8.6.85349 (#123226) 2024-08-06 11:51:04 +02:00
flopp999
bc02925630 Fix growatt server tlx battery api key (#123191) 2024-08-06 10:21:48 +02:00
dontinelli
b9251e94a9 Bump solarlog_cli to v0.1.6 (#123218)
bump solarlog_cli to v0.1.6
2024-08-06 10:15:48 +02:00
Michael
0d4ca35784 Remove unused async_setup method in insteon (#123201) 2024-08-06 10:13:12 +02:00
Jesse Hills
164cfa85da Add support for ESPHome update entities to be checked on demand (#123161) 2024-08-06 10:12:31 +02:00
Jesse Hills
21da79a249 Show project version as sw_version in ESPHome (#123183) 2024-08-06 10:11:08 +02:00
Clifford Roche
1b73b2a12a Update greeclimate to 2.1.0 (#123210) 2024-08-06 10:06:35 +02:00
J. Nick Koston
54f8f24c2c Bump PyJWT to 2.9.0 (#123209) 2024-08-05 15:51:15 -05:00
Franck Nijhof
d530137bec Bump version to 2024.8.0b3 2024-08-05 21:12:09 +02:00
Franck Nijhof
4f722e864c Mark webhook as a system integration type (#123204) 2024-08-05 21:11:46 +02:00
Franck Nijhof
62d38e786d Mark assist_pipeline as a system integration type (#123202) 2024-08-05 21:10:49 +02:00
Franck Nijhof
859874487e Mark tag to be an entity component (#123200) 2024-08-05 21:09:50 +02:00
Bram Kragten
b16bf29819 Update frontend to 20240805.1 (#123196) 2024-08-05 21:09:46 +02:00
Marius
6b10dbb38c Fix state icon for closed valve entities (#123190) 2024-08-05 21:09:43 +02:00
Joost Lekkerkerker
ea20c4b375 Fix MPD issue creation (#123187) 2024-08-05 21:09:40 +02:00
musapinar
0427aeccb0 Add Matter Leedarson RGBTW Bulb to the transition blocklist (#123182) 2024-08-05 21:09:37 +02:00
Matthias Alphart
4898ba932d Use KNX UI entity platform controller class (#123128) 2024-08-05 21:09:32 +02:00
Franck Nijhof
5142cb5e98 Mark assist_pipeline as a system integration type (#123202) 2024-08-05 21:07:11 +02:00
Franck Nijhof
bb1efe56b6 Mark webhook as a system integration type (#123204) 2024-08-05 21:06:58 +02:00
Franck Nijhof
9c2ba9b157 Mark tag to be an entity component (#123200) 2024-08-05 20:40:44 +02:00
Joakim Plate
f51cc8fe12 Change zha diagnostic to snapshot (#123198) 2024-08-05 19:02:07 +02:00
Bram Kragten
537d7728a7 Update frontend to 20240805.1 (#123196) 2024-08-05 18:23:44 +02:00
Michael
844ccf461f Remove unnecessary config schema definitions (#123197) 2024-08-05 17:44:14 +02:00
Marius
94542d42fa Fix state icon for closed valve entities (#123190) 2024-08-05 17:17:46 +02:00
Michael
b223931ac0 Remove deprecated proximity entity (#123158) 2024-08-05 15:44:00 +02:00
Joost Lekkerkerker
42ab8d0445 Remove deprecated asterisk_mbox integration (#123174) 2024-08-05 15:28:49 +02:00
Joost Lekkerkerker
ef237a8431 Fix MPD issue creation (#123187) 2024-08-05 15:07:01 +02:00
Joost Lekkerkerker
96364f0452 Remove deprecated asterisk_cdr integration (#123180) 2024-08-05 14:43:39 +02:00
Joost Lekkerkerker
b73ca874bb Bump uvcclient to 0.11.1 (#123185) 2024-08-05 14:23:07 +02:00
musapinar
a6dfa6d4e0 Add Matter Leedarson RGBTW Bulb to the transition blocklist (#123182) 2024-08-05 14:21:01 +02:00
Matthias Alphart
f2d99cb059 Use KNX UI entity platform controller class (#123128) 2024-08-05 12:34:48 +02:00
Franck Nijhof
35a3d2306c Bump version to 2024.8.0b2 2024-08-05 12:22:03 +02:00
Calvin Walton
cdb378066c Add Govee H612B to the Matter transition blocklist (#123163) 2024-08-05 12:21:40 +02:00
Brett Adams
85700fd80f Fix class attribute condition in Tesla Fleet (#123162) 2024-08-05 12:21:37 +02:00
J. Nick Koston
73a2ad7304 Bump aiohttp to 3.10.1 (#123159) 2024-08-05 12:21:34 +02:00
dupondje
f6c4b6b045 dsmr: migrate hourly_gas_meter_reading to mbus device (#123149) 2024-08-05 12:21:30 +02:00
Steve Repsher
0b4d921762 Restore old service worker URL (#123131) 2024-08-05 12:21:27 +02:00
David F. Mulcahey
c8a0e5228d Bump ZHA lib to 0.0.27 (#123125) 2024-08-05 12:21:23 +02:00
Kim de Vos
832bac8c63 Use slugify to create id for UniFi WAN latency (#123108)
Use slugify to create id for latency
2024-08-05 12:21:20 +02:00
Arie Catsman
eccce7017f Bump pyenphase to 1.22.0 (#123103) 2024-08-05 12:21:16 +02:00
Louis Christ
fdb1baadbe Fix wrong DeviceInfo in bluesound integration (#123101)
Fix bluesound device info
2024-08-05 12:21:12 +02:00
Shay Levy
7623ee49e4 Ignore Shelly IPv6 address in zeroconf (#123081) 2024-08-05 12:20:20 +02:00
Mr. Bubbles
fa241dcd04 Catch exception in coordinator setup of IronOS integration (#123079) 2024-08-05 12:20:17 +02:00
Denis Shulyaka
bee77041e8 Change enum type to string for Google Generative AI Conversation (#123069) 2024-08-05 12:20:13 +02:00
Paulus Schoutsen
50b7eb44d1 Add CONTROL supported feature to Google conversation when API access (#123046)
* Add CONTROL supported feature to Google conversation when API access

* Better function name

* Handle entry update inline

* Reload instead of update
2024-08-05 12:20:10 +02:00
Clifford Roche
7b1bf82e3c Update greeclimate to 2.0.0 (#121030)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-08-05 12:20:01 +02:00
J. Nick Koston
5b7fd29797 Improve performance of logbook processor humanify (#123157) 2024-08-05 11:33:37 +02:00
Chris Buckley
ab811f70b1 Todoist service validation error consistency (#123122) 2024-08-05 11:24:49 +02:00
Artur Pragacz
67e3139dcf Clean up useless logging handler setting (#120974)
Setting level of the handler does effectively nothing,
because HomeAssistantQueueHandler ignores this setting.
Also make the convention of getting the root logger uniform.
2024-08-05 11:22:13 +02:00
David F. Mulcahey
3257bdeed2 Bump ZHA lib to 0.0.27 (#123125) 2024-08-05 11:19:57 +02:00
Clifford Roche
1163cc7cab Update greeclimate to 2.0.0 (#121030)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-08-05 11:18:34 +02:00
Barry vd. Heuvel
e9e357b12e Add spaces for readability in licenses.py (#123173) 2024-08-05 11:18:04 +02:00
Simon Hörrle
d246d02ab8 Add apsystems diagnostic binary sensors (#123045)
* add diagnostic sensors

* select output_data from data

* split sensor and binary_sensor configurations

* adjust module description

* convert values to bool

* add strings

* add tests

* add tests

* update translations

* remove already available _attr_has_entity_name

* use dataclass instead of TypedDict

* Update tests/components/apsystems/test_binary_sensor.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-05 11:08:27 +02:00
dupondje
a7fbac5185 dsmr: migrate hourly_gas_meter_reading to mbus device (#123149) 2024-08-05 10:32:58 +02:00
Calvin Walton
b45fe0ec73 Add Govee H612B to the Matter transition blocklist (#123163) 2024-08-05 10:02:15 +02:00
Brett Adams
d7e3df1974 Fix class attribute condition in Tesla Fleet (#123162) 2024-08-05 09:59:33 +02:00
dependabot[bot]
31fd4efa36 Bump actions/upload-artifact from 4.3.4 to 4.3.5 (#123170) 2024-08-05 09:21:37 +02:00
Mr. Bubbles
7308912b39 Catch exception in coordinator setup of IronOS integration (#123079) 2024-08-05 08:43:29 +02:00
J. Nick Koston
4d103c1fc2 Bump aiohttp to 3.10.1 (#123159) 2024-08-05 08:39:04 +02:00
J. Nick Koston
4fd92c17f0 Optimize logbook row matching (#123127) 2024-08-04 17:06:32 -05:00
J. Nick Koston
6b7307df81 Speed up logbook timestamp processing (#123126) 2024-08-04 16:43:43 -05:00
J. Nick Koston
b09dd95dbd Improve alignment of live logbook and historical logbook models (#123070)
* Improve alignment of live logbook and historical logbook models

- Make EventAsRow as NamedType which is better aligned with
  sqlalchemy Row
- Use getitem to fetch results for both Row and EventAsRow
  since its an order of magnitude faster fetching sqlalchemy
  Row object values.

* final

* fix

* unused

* fix more tests

* cleanup

* reduce

* tweak
2024-08-04 23:09:10 +02:00
J. Nick Koston
3353c3c205 Remove unneeded formatter argument from logbook websocket_api (#123095) 2024-08-04 23:05:56 +02:00
G Johansson
ccd157dc26 Use coordinator setup method in filesize (#123139) 2024-08-04 23:03:40 +02:00
Maciej Bieniek
a9d8e47979 Support DeviceInfo.model_id in MQTT integration (#123152)
Add support for model_id
2024-08-04 23:02:41 +02:00
epenet
30f4d1b958 Fix implicit-return in overkiz (#123000) 2024-08-04 20:18:19 +02:00
Yaroslav Halchenko
e682d8c6e2 Handle command_line missing discovery_info (#116873)
* command_line: Do not lead to erroring out code indexing None or empty discovery_info

* Apply suggestions from code review

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-08-04 16:39:41 +02:00
c0ffeeca7
70704f67d3 Recorder system info: fix capitalization (#123141)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-04 15:17:54 +02:00
Steve Repsher
232f78e7b6 Restore old service worker URL (#123131) 2024-08-04 07:28:45 -05:00
J. Nick Koston
b6de2cd741 Unpack non-performant any expressions in config flow discovery path (#123124) 2024-08-03 17:33:46 -05:00
Louis Christ
02f81ec481 Fix wrong DeviceInfo in bluesound integration (#123101)
Fix bluesound device info
2024-08-03 22:32:47 +02:00
Arie Catsman
b7d56ad38a Bump pyenphase to 1.22.0 (#123103) 2024-08-03 10:21:12 -05:00
Kim de Vos
eb5ee1ffd1 Use slugify to create id for UniFi WAN latency (#123108)
Use slugify to create id for latency
2024-08-03 15:08:01 +02:00
J. Nick Koston
cdec43ec06 Remove unreachable suppress in logbook (#123096) 2024-08-03 08:03:28 -05:00
J. Nick Koston
0fe23c82a4 Remove unused variables in logbook LazyEventPartialState (#123097) 2024-08-03 06:26:54 -05:00
J. Nick Koston
61cbb77042 Remove unneeded cast in logbook rest api (#123098) 2024-08-03 06:26:32 -05:00
David Bonnes
bb31fc1ec7 Test storage save and load for evohome (#122510)
* test storage save and load

* fix bug exposed by test

* refactor test

* add JSON for test account/location

* create helpers to load JSON

* refactor test

* baseline refactor

* tweak

* update requiremenst

* rationalise code

* remove conditional in test

* refactor test

* mypy fix

* tweak tests

* working test

* working test 4

* working test 5

* add typed dicts

* working dtms

* lint

* fix dtm asserts

* doc strings

* list

* tweak conditional

* tweak test data sets to extend coverage

* leverage conftest.py for subsequent tests

* revert test storage

* revert part two

* rename symbols

* remove anachronism

* stop unwanted DNS lookup

* Clean up type ignores

* Format

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-08-03 10:41:30 +02:00
Chris Buckley
6684f61a54 Add support for Todoist sections (#115671)
* Add support for Todoist sections

* ServiceValidationError & section name tweaks from PR comments

* Remove whitespace

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* More natural error message

Co-authored-by: Erik Montnemery <erik@montnemery.com>

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-03 09:07:13 +02:00
Paulus Schoutsen
aa6f0cd55a Add CONTROL supported feature to Google conversation when API access (#123046)
* Add CONTROL supported feature to Google conversation when API access

* Better function name

* Handle entry update inline

* Reload instead of update
2024-08-02 23:16:30 -07:00
Denis Shulyaka
f6ad018f8f Change enum type to string for Google Generative AI Conversation (#123069) 2024-08-02 23:14:24 -07:00
Shay Levy
8687c32c15 Ignore Shelly IPv6 address in zeroconf (#123081) 2024-08-02 21:56:49 +03:00
epenet
34b561b211 Bump ruff to 0.5.6 (#123073) 2024-08-02 19:04:00 +02:00
epenet
e32a48ac55 Improve type hints in google_assistant (#122895) 2024-08-02 17:55:46 +02:00
Franck Nijhof
fe82e7f24d Bump version to 2024.8.0b1 2024-08-02 17:46:01 +02:00
Bram Kragten
433c1a57e7 Update frontend to 20240802.0 (#123072) 2024-08-02 17:45:50 +02:00
Joost Lekkerkerker
b36059fc64 Do not raise repair issue about missing integration in safe mode (#123066) 2024-08-02 17:45:47 +02:00
Philip Vanloo
13c9d69440 Add additional items to REPEAT_MAP in LinkPlay (#123063)
* Upgrade python-linkplay, add items to REPEAT_MAP

* Undo dependency bump
2024-08-02 17:45:43 +02:00
Philip Vanloo
9c7134a865 LinkPlay: Bump python-linkplay to 0.0.6 (#123062)
Bump python-linkplay to 0.0.6
2024-08-02 17:45:39 +02:00
Erik Montnemery
d7cc2a7e9a Correct squeezebox service (#123060) 2024-08-02 17:45:36 +02:00
Fabian
f9276e28b0 Add device class (#123059) 2024-08-02 17:45:32 +02:00
H. Árkosi Róbert
15ad6db1a7 Add LinkPlay models (#123056)
* Add some LinkPlay models

* Update utils.py

* Update utils.py

* Update utils.py

* Update homeassistant/components/linkplay/utils.py

* Update homeassistant/components/linkplay/utils.py

* Update utils.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-02 17:45:29 +02:00
Erik Montnemery
c1043ada22 Correct type annotation for EntityPlatform.async_register_entity_service (#123054)
Correct type annotation for EntityPlatform.async_register_entity_service

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-08-02 17:45:26 +02:00
Paulus Schoutsen
d141122008 Ollama implement CONTROL supported feature (#123049) 2024-08-02 17:45:23 +02:00
Paulus Schoutsen
abeba39842 OpenAI make supported features reflect the config entry options (#123047) 2024-08-02 17:45:19 +02:00
Matthias Alphart
bb597a908d Use freezer in KNX tests (#123044)
use freezer in tests
2024-08-02 17:45:16 +02:00
Matthias Alphart
dcae2f35ce Mitigate breaking change for KNX climate schema (#123043) 2024-08-02 17:45:12 +02:00
Matthias Alphart
b06a5af069 Address post-merge reviews for KNX integration (#123038) 2024-08-02 17:45:09 +02:00
J. Nick Koston
a624ada8d6 Fix doorbird models are missing the schedule API (#123033)
* Fix doorbird models are missing the schedule API

fixes #122997

* cover
2024-08-02 17:45:06 +02:00
David F. Mulcahey
d87366b1e7 Make ZHA load quirks earlier (#123027) 2024-08-02 17:45:03 +02:00
Michael Hansen
5ce8a2d974 Standardize assist pipelines on 10ms chunk size (#123024)
* Make chunk size always 10ms

* Fix voip
2024-08-02 17:44:59 +02:00
Robert Resch
a42615add0 Fix and improve tedee lock states (#123022)
Improve tedee lock states
2024-08-02 17:44:56 +02:00
Matrix
ecbff61332 Bump yolink api to 0.4.6 (#123012) 2024-08-02 17:44:53 +02:00
Paulus Schoutsen
e9bfe82582 Make the Android timer notification high priority (#123006) 2024-08-02 17:44:50 +02:00
Ivan Belokobylskiy
55abe68a5f Bump aioymaps to 1.2.5 (#123005)
Bump aiomaps, fix sessionId parsing
2024-08-02 17:44:46 +02:00
amccook
acf523b5fb Fix handling of directory type playlists in Plex (#122990)
Ignore type directory
2024-08-02 17:44:43 +02:00
Matrix
0216455137 Fix yolink protocol changed (#122989) 2024-08-02 17:44:40 +02:00
J. Nick Koston
cb37ae6608 Update doorbird error notification to be a repair flow (#122987) 2024-08-02 17:44:37 +02:00
karwosts
3b462906d9 Restrict nws.get_forecasts_extra selector to nws weather entities (#122986) 2024-08-02 17:44:34 +02:00
Matrix
dfb4e9c159 Yolink device model adaptation (#122824) 2024-08-02 17:44:31 +02:00
karwosts
6a6814af61 Use text/multiple selector for input_select.set_options (#122539) 2024-08-02 17:44:27 +02:00
Denis Shulyaka
1a7085b068 Add aliases to script llm tool description (#122380)
* Add aliases to script llm tool description

* Also add name
2024-08-02 17:44:24 +02:00
Christopher Fenner
804d7aa4c0 Fix translation key for power exchange sensor in ViCare (#122339) 2024-08-02 17:44:21 +02:00
DeerMaximum
1b1d86409c Velux use node id as fallback for unique id (#117508)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-08-02 17:44:18 +02:00
Ryan Mattson
2520fcd284 Lyric: Properly tie room accessories to the data coordinator (#115902)
* properly tie lyric accessories to the data coordinator so sensors recieve updates

* only check for accessories for LCC devices

* revert: meant to give it its own branch and PR
2024-08-02 17:44:13 +02:00
Markus Jacobsen
b0ece4bbaa Improve Bang olufsen media_player dispatcher formatting (#123065)
* Avoid repeating almost the same command 8 times

* Remove debugging
2024-08-02 17:07:23 +02:00
Bram Kragten
a18166e3f8 Update frontend to 20240802.0 (#123072) 2024-08-02 16:48:37 +02:00
Robert Resch
b89a859f14 Fix and improve tedee lock states (#123022)
Improve tedee lock states
2024-08-02 15:58:41 +02:00
Matrix
a4aefe43dc Yolink device model adaptation (#122824) 2024-08-02 15:57:15 +02:00
Christopher Fenner
115303faf5 Fix translation key for power exchange sensor in ViCare (#122339) 2024-08-02 15:44:19 +02:00
epenet
1eadb00fce Fix implicit-return in google_assistant (#123002) 2024-08-02 15:31:09 +02:00
epenet
b609f8e962 Fix implicit-return in macos script (#122945) 2024-08-02 15:30:29 +02:00
epenet
e734971d33 Enable collections-named-tuple (PYI024) rule in ruff (#123019) 2024-08-02 15:28:32 +02:00
Paulus Schoutsen
b6c9fe86e1 Ensure claude supported feature reflect latest config entry options (#123050) 2024-08-02 15:27:11 +02:00
Ryan Mattson
db238a75e3 Lyric: Properly tie room accessories to the data coordinator (#115902)
* properly tie lyric accessories to the data coordinator so sensors recieve updates

* only check for accessories for LCC devices

* revert: meant to give it its own branch and PR
2024-08-02 15:13:56 +02:00
karwosts
fb76e70c3f Use text/multiple selector for input_select.set_options (#122539) 2024-08-02 15:10:04 +02:00
H. Árkosi Róbert
a40dce449f Add LinkPlay models (#123056)
* Add some LinkPlay models

* Update utils.py

* Update utils.py

* Update utils.py

* Update homeassistant/components/linkplay/utils.py

* Update homeassistant/components/linkplay/utils.py

* Update utils.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-02 14:25:43 +02:00
Joost Lekkerkerker
d2dd5ba0e6 Do not raise repair issue about missing integration in safe mode (#123066) 2024-08-02 13:38:56 +02:00
Philip Vanloo
3de8828358 Add additional items to REPEAT_MAP in LinkPlay (#123063)
* Upgrade python-linkplay, add items to REPEAT_MAP

* Undo dependency bump
2024-08-02 13:38:05 +02:00
Philip Vanloo
b610b29d28 LinkPlay: Bump python-linkplay to 0.0.6 (#123062)
Bump python-linkplay to 0.0.6
2024-08-02 13:23:45 +02:00
Matthias Alphart
42234e6a09 Address post-merge reviews for KNX integration (#123038) 2024-08-02 12:53:39 +02:00
Paulus Schoutsen
4a06e20318 Ollama implement CONTROL supported feature (#123049) 2024-08-02 12:31:31 +02:00
epenet
ad26db7dc8 Replace pylint broad-exception-raised rule with ruff (#123021) 2024-08-02 12:24:03 +02:00
David F. Mulcahey
5446dd92a9 Make ZHA load quirks earlier (#123027) 2024-08-02 12:22:36 +02:00
Fabian
7670ad0a72 Add device class (#123059) 2024-08-02 12:19:55 +02:00
Marc Mueller
b2d5f9c742 Update generator typing (#123052) 2024-08-02 12:17:51 +02:00
Paulus Schoutsen
adf8515698 OpenAI make supported features reflect the config entry options (#123047) 2024-08-02 12:08:44 +02:00
Erik Montnemery
449afe9e6f Correct type annotation for EntityPlatform.async_register_entity_service (#123054)
Correct type annotation for EntityPlatform.async_register_entity_service

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-08-02 11:58:07 +02:00
Erik Montnemery
0058d42ca2 Correct squeezebox service (#123060) 2024-08-02 11:49:47 +02:00
Matthias Alphart
4da385898b Mitigate breaking change for KNX climate schema (#123043) 2024-08-02 08:50:19 +02:00
Matthias Alphart
8ec8aef02e Use freezer in KNX tests (#123044)
use freezer in tests
2024-08-02 08:48:41 +02:00
Denis Shulyaka
ed6d6575d7 Add aliases to script llm tool description (#122380)
* Add aliases to script llm tool description

* Also add name
2024-08-02 08:05:06 +02:00
Denis Shulyaka
262d778a38 Anthropic Claude conversation integration (#122526)
* Initial commit

* Use add_suggested_values

* Update homeassistant/components/anthropic/conversation.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update strings.json

* Update config_flow.py

* Update config_flow.py

* Fix tests

* Update homeassistant/components/anthropic/conversation.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Removed agent registration

* Moved message_convert inline function outside

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-08-01 22:50:10 +02:00
Michael Hansen
80aa2c269b Standardize assist pipelines on 10ms chunk size (#123024)
* Make chunk size always 10ms

* Fix voip
2024-08-01 22:39:17 +02:00
J. Nick Koston
a3b5dcc21b Fix doorbird models are missing the schedule API (#123033)
* Fix doorbird models are missing the schedule API

fixes #122997

* cover
2024-08-01 22:37:26 +02:00
amccook
fef9c92eb7 Fix handling of directory type playlists in Plex (#122990)
Ignore type directory
2024-08-01 10:24:09 -04:00
epenet
4f3d624353 Enable pytest-fixture-param-without-value (PT019) rule in ruff (#122953) 2024-08-01 14:46:15 +02:00
DeerMaximum
f5e88b8293 Velux use node id as fallback for unique id (#117508)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-08-01 14:32:37 +02:00
epenet
faedba0407 Rename variable in knx tests (#122994)
* Rename variable in knx tests

* Type hints

* Type hints
2024-08-01 13:44:30 +02:00
epenet
adf20b60dc Rename variable in landisgyr_heat_meter tests (#122995) 2024-08-01 13:43:09 +02:00
karwosts
ab522dab71 Restrict nws.get_forecasts_extra selector to nws weather entities (#122986) 2024-08-01 12:59:19 +02:00
epenet
c2a23bce50 Fix implicit-return in python_script (#123004) 2024-08-01 12:20:05 +02:00
Paulus Schoutsen
bc91bd3293 Make the Android timer notification high priority (#123006) 2024-08-01 11:51:45 +02:00
Matrix
6bf59a8dfc Bump yolink api to 0.4.6 (#123012) 2024-08-01 11:49:58 +02:00
Marc Mueller
cd80cd5caa Update audit licenses run conditions [ci] (#123009) 2024-08-01 11:30:29 +02:00
Ivan Belokobylskiy
25d4dd82a0 Bump aioymaps to 1.2.5 (#123005)
Bump aiomaps, fix sessionId parsing
2024-08-01 10:51:41 +02:00
epenet
d16a2fac80 Rename variable in async tests (#122996) 2024-08-01 09:20:21 +02:00
epenet
2fd3c42e63 Fix implicit-return in squeezebox (#122928) 2024-08-01 09:19:16 +02:00
Matrix
55e5428443 Fix yolink protocol changed (#122989) 2024-08-01 08:32:16 +02:00
J. Nick Koston
8375b58eac Update doorbird error notification to be a repair flow (#122987) 2024-08-01 08:31:22 +02:00
Franck Nijhof
352f0953f3 Skip binary wheels for pymicro-vad (#122982) 2024-08-01 01:00:17 +02:00
Franck Nijhof
bdd6f57975 Bump version to 2024.9.0dev0 (#122975) 2024-07-31 23:24:30 +02:00
Franck Nijhof
18afe07c16 Bump version to 2024.8.0b0 2024-07-31 22:38:50 +02:00
Michael Hansen
6baee603a5 Bump pymicro-vad to 1.0.1 (#122973) 2024-07-31 22:10:50 +02:00
Simon
5fefa606b6 Add ElevenLabs text-to-speech integration (#115645)
* Add ElevenLabs text-to-speech integration

* Remove commented out code

* Use model_id instead of model_name for elevenlabs api

* Apply suggestions from code review

Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>

* Use async client instead of sync

* Add ElevenLabs code owner

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Set entity title to voice

* Rename to elevenlabs

* Apply suggestions from code review

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Allow multiple voices and options flow

* Sort default voice at beginning

* Rework config flow to include default model and reloading on options flow

* Add error to strings

* Add ElevenLabsData and suggestions from code review

* Shorten options and config flow

* Fix comments

* Fix comments

* Add wip

* Fix

* Cleanup

* Bump elevenlabs version

* Add data description

* Fix

---------

Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Michael Hansen <mike@rhasspy.org>
Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-07-31 21:31:09 +02:00
Mr. Bubbles
7bc2381a45 Add Pinecil virtual integration supported by IronOS (#122803) 2024-07-31 21:24:15 +02:00
Jack Gaino
2910369647 Optionally return response data when calling services through the API (#115046)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-07-31 21:00:04 +02:00
alexfp14
17f34b452e Add HVAC mode support for AtlanticPassAPCHeatPumpMainComponent (heati… (#122175)
Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
2024-07-31 20:52:32 +02:00
epenet
220f686078 Remove invalid type hint and assignment in number (#122906) 2024-07-31 20:51:24 +02:00
epenet
d878d744e7 Fix implicit-return in irish_rail_transport (#122916) 2024-07-31 20:50:31 +02:00
epenet
b31263b747 Fix implicit-return in itunes (#122917) 2024-07-31 20:50:11 +02:00
epenet
4a4209647e Fix implicit-return in humidifier (#122921) 2024-07-31 20:49:40 +02:00
epenet
9860109db9 Fix implicit-return in satel_integra (#122925) 2024-07-31 20:49:19 +02:00
epenet
b8ac86939b Fix implicit-return in smartthings (#122927) 2024-07-31 20:49:06 +02:00
epenet
9023d80d1b Fix implicit-return in twitter (#122931) 2024-07-31 20:48:51 +02:00
epenet
c702ffa7dd Fix implicit-return in uk_transport (#122932) 2024-07-31 20:48:30 +02:00
epenet
be8186126e Fix implicit-return in valve (#122933) 2024-07-31 20:47:48 +02:00
epenet
4fda025106 Fix implicit-return in wsdot (#122935) 2024-07-31 20:47:33 +02:00
J. Nick Koston
c7f863a141 Drop some unnecessary lambdas in powerwall (#122936) 2024-07-31 20:47:19 +02:00
epenet
4aacec2de7 Fix implicit-return in xiaomi (#122938) 2024-07-31 20:46:30 +02:00
epenet
a6aae4e857 Fix implicit-return in xiaomi_miio (#122939) 2024-07-31 20:45:48 +02:00
epenet
dde97a02f0 Fix implicit-return in xiaomi_aqara (#122940) 2024-07-31 20:45:29 +02:00
epenet
d393317eb2 Fix implicit-return in yamaha (#122942) 2024-07-31 20:45:10 +02:00
J. Nick Koston
2f3f124aa1 Drop unnecessary lambdas in the entity filter (#122941) 2024-07-31 20:44:47 +02:00
epenet
79a741486c Fix implicit-return in wyoming (#122946) 2024-07-31 20:42:57 +02:00
epenet
c0fe65fa60 Fix unnecessary-return-none in homematic (#122948) 2024-07-31 20:42:42 +02:00
J. Nick Koston
8de0e4ca7c Remove aiohappyeyeballs license exception (#122969) 2024-07-31 13:42:33 -05:00
epenet
7c179c33b5 Fix unnecessary-return-none in tradfri (#122950) 2024-07-31 20:42:19 +02:00
epenet
177690bcb3 Rename variable in sensor tests (#122954) 2024-07-31 20:42:05 +02:00
epenet
a23b3f84f0 Fix implicit-return in garadget (#122923) 2024-07-31 20:41:44 +02:00
Michael Hansen
d5388452d4 Use finished speaking detection in ESPHome/Wyoming (#122962) 2024-07-31 20:39:03 +02:00
Marcel van der Veldt
8a4206da99 Matter handle FeatureMap update (#122544) 2024-07-31 20:37:57 +02:00
Pete Sage
f1084a57df Fix Sonos media_player control may fail when grouping speakers (#121853) 2024-07-31 20:36:59 +02:00
Marcel van der Veldt
0189a05297 Extend Matter select entity (#122513) 2024-07-31 20:36:43 +02:00
Steven B.
7276b4b3ad Bump python-kasa to 0.7.1 (#122967) 2024-07-31 13:31:53 -05:00
epenet
93bcd413a7 Fix unnecessary-return-none in iotty (#122947) 2024-07-31 20:21:26 +02:00
epenet
bc25657f0a Fix unnecessary-return-none in telnet (#122949) 2024-07-31 20:21:04 +02:00
Steven B.
9db42beade Fix handling of tplink light effects for scenes (#122965)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-31 12:57:12 -05:00
Thomas55555
cc1a6d60c0 Add override for work areas in Husqvarna Automower (#120427)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-31 19:28:46 +02:00
G Johansson
a913587eb6 Climate validate temperature(s) out of range (#118649)
* Climate temperature out of range

* Fix test sensibo

* use temp converting for min/max

* Fix

* Fix mqtt tests

* Fix honeywell tests

* Fix Balboa tests

* Fix whirlpool test

* Fix teslemetry test

* Fix plugwise test

* Fix tplink test

* Fix generic thermostat test

* Fix modbus test

* Fix fritzbox tests

* Honewell
2024-07-31 19:17:53 +02:00
Louis Christ
ae9e8ca419 Simplify async_setup_entry in bluesound integration (#122874)
* Use async_added_to_hass and async_will_remove_from_hass

* Remove self._hass
2024-07-31 19:04:17 +02:00
epenet
69a8c5dc9f Fix implicit-return in hddtemp (#122919) 2024-07-31 18:44:36 +02:00
epenet
3f091470fd Use pytest.mark.usefixtures in risco tests (#122955) 2024-07-31 18:28:35 +02:00
Marcel van der Veldt
c888908cc8 Add default warning for installing matter device updates (#122597) 2024-07-31 18:23:40 +02:00
J. Nick Koston
172e2125f6 Switch to using update for headers middleware (#122952) 2024-07-31 18:17:45 +02:00
Michael
69f54656c4 Fix cleanup of orphan device entries in AVM Fritz!Box Tools (#122937)
* fix cleanup of orphan device entries

* add test for cleanup button
2024-07-31 17:58:11 +02:00
Bram Kragten
c359d4a419 Update frontend to 20240731.0 (#122956) 2024-07-31 17:53:52 +02:00
epenet
a1b8545568 Fix unnecessary-return-none in nest (#122951) 2024-07-31 17:13:53 +02:00
starkillerOG
8c0d9a1320 Add Reolink chime support (#122752) 2024-07-31 17:04:09 +02:00
Christopher Fenner
f764705629 Add support for ventilation device to ViCare (#114175)
* add ventilation program & mode

* add ventilation device

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Update const.py

* Create fan.py

* Update fan.py

* Update types.py

* add test case

* add translation key

* use translation key

* update snapshot

* fix ruff findings

* fix ruff findings

* add log messages to setter

* adjust test case

* reset climate entity

* do not display speed if not in permanent mode

* update snapshot

* update test cases

* add comment

* mark fan as always on

* prevent turning off device

* allow to set permanent mode

* make speed_count static

* add debug outputs

* add preset state translations

* allow permanent mode

* update snapshot

* add test case

* load programs only on init

* comment on ventilation modes

* adjust test cases

* add exception message

* ignore test coverage on fan.py

* Update test_fan.py

* simplify

* Apply suggestions from code review

* remove tests

* remove extra state attributes

* fix leftover

* add missing labels

* adjust label

* change state keys

* use _attr_preset_modes

* fix ruff findings

* fix attribute access

* fix from_ha_mode

* fix ruff findings

* fix mypy findings

* simplify

* format

* fix typo

* fix ruff finding

* Apply suggestions from code review

* change fan mode handling

* add test cases

* remove turn_off

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Apply suggestions from code review

* Update fan.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-07-31 16:23:27 +02:00
karwosts
3df78043c0 Add enable_millisecond to duration selector (#122821)
* Add enable_milliseconds to duration selector.

* One more test
2024-07-31 16:13:05 +02:00
epenet
97de1c2b66 Fix implicit-return in recorder (#122924) 2024-07-31 15:46:13 +02:00
Michael
f7f0f49015 Move lifespan attributes into own sensors for legacy Ecovacs bots (#122740)
* move available property to base entity class

* add lifespan sensors

* apply suggestion, simplify the method

* don't touch internals in tests

* apply suggestion

* apply suggestions
2024-07-31 15:36:57 +02:00
J. Nick Koston
a35fa0e95a Warn that the minimum SQLite version will change to 3.40.1 as of 2025.2 (#104298)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-31 08:13:04 -05:00
Kevin Stillhammer
cddb3bb668 Add reconfigure step for here_travel_time (#114667)
* Add reconfigure step for here_travel_time

* Add comments, reuse step_user, TYPE_CHECKING, remove defaults
2024-07-31 15:08:25 +02:00
epenet
e64e3c2778 Fix implicit-return in time_date (#122929) 2024-07-31 15:00:53 +02:00
epenet
5e1cca1c58 Fix implicit-return in shelly (#122926) 2024-07-31 14:54:52 +02:00
epenet
2f181cbe41 Fix implicit-return in vera (#122934) 2024-07-31 14:53:05 +02:00
epenet
e706ff0564 Fix implicit-return in transport_nsw (#122930) 2024-07-31 14:44:14 +02:00
Allen Porter
8d0e998e54 Improve conversation agent tracing to help with eval and data collection (#122542) 2024-07-31 14:38:44 +02:00
Allen Porter
4f5eab4646 Improve quality of ollama tool calling by repairing arguments (#122749)
* Improve quality of ollama function calling by repairing function call arguments

* Fix formatting of the tests

* Run ruff format on ollama conversation

* Add test for non-string arguments
2024-07-31 14:37:39 +02:00
Franck Nijhof
8b96c7873f Rename 'service' to 'action' in automations and scripts (#122845) 2024-07-31 14:36:53 +02:00
Allen Porter
f14471112d Improve LLM tool quality by more clearly specifying device_class slots (#122723)
* Limit intent / llm API device_class slots to only necessary services and limited set of values

* Fix ruff errors

* Run ruff format

* Fix typing and improve output schema

* Fix schema and improve flattening

* Revert conftest

* Revert recorder

* Fix ruff format errors

* Update using latest version of voluptuous
2024-07-31 14:36:02 +02:00
epenet
7c7b408df1 Fix implicit-return in homekit_controller (#122920) 2024-07-31 14:21:58 +02:00
epenet
3bf00822b0 Fix implicit-return in kodi (#122914) 2024-07-31 13:42:07 +02:00
Yuxin Wang
bf3a2cf393 Add graceful handling for LASTSTEST sensor in APCUPSD (#113125)
* Add handling for LASTSTEST sensor

* Set the state to unknown instead of unavailable

* Use LASTSTEST constant and revise the logic to add it to the entity list

* Use LASTSTEST constant
2024-07-31 13:01:48 +02:00
Maikel Punie
c8dccec956 Bump velbusaio to 2024.07.06 (#122905)
bumpo velbusaio to 2024.07.06
2024-07-31 12:48:08 +02:00
epenet
ed9c4e0c0d Fix implicit-return in landisgyr_heat_meter (#122912) 2024-07-31 12:41:10 +02:00
epenet
cd552ceb2b Fix implicit-return in mystrom (#122911) 2024-07-31 12:40:48 +02:00
epenet
c4398efbbb Fix implicit-return in meteo_france (#122910) 2024-07-31 12:40:30 +02:00
epenet
8b1a527602 Fix implicit-return in meraki (#122909) 2024-07-31 12:39:59 +02:00
epenet
01f41a597e Fix implicit-return in melissa (#122908) 2024-07-31 12:39:39 +02:00
epenet
c32f1efad0 Fix implicit-return in maxcube (#122907) 2024-07-31 12:39:21 +02:00
epenet
47c96c52b1 Fix implicit-return in niko_home_control (#122904) 2024-07-31 12:39:01 +02:00
epenet
dbdb148e12 Fix implicit-return in plaato (#122902) 2024-07-31 12:38:36 +02:00
epenet
6a45124878 Fix implicit-return in qnap (#122901) 2024-07-31 12:38:15 +02:00
Diogo Gomes
02d4d1a75b Adds new sensors and configuration entities to V2C Trydan (#122883)
* Adds new controls and sensors

* update snapshot

* Update homeassistant/components/v2c/strings.json

Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>

* Add unit

* move icons to icons.json

* update snapshot

* missing translation fix

---------

Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
2024-07-31 12:31:35 +02:00
Alex MF
233c04a469 Add number entity for Ecovacs mower cut direction (#122598) 2024-07-31 12:22:07 +02:00
epenet
8b4f607806 Fix implicit-return in plant (#122903) 2024-07-31 11:39:51 +02:00
Diogo Gomes
68f06e63e2 Bump pytrydan to 0.8.0 (#122898)
bump pytrydan to 0.8.0
2024-07-31 10:32:13 +01:00
Matthias Alphart
67ed8b207a KNX: use xknx 3.0.0 eager telegram decoding (#122896)
* Use KNX xknx 3.0.0 eager telegram decoding

* review suggestion
2024-07-31 11:08:05 +02:00
Erik Montnemery
222011fc5c Log tests in test group (#122892)
* Log tests in test group

* Simplify print
2024-07-31 10:36:46 +02:00
Erik Montnemery
f6f7459c36 Add support for login credentials to homeworks (#122877)
* Add support for login credentials to homeworks

* Store credentials in config entry data
2024-07-31 10:35:05 +02:00
Franck Nijhof
718bc61c88 Merge branch 'master' into dev 2024-07-31 10:31:28 +02:00
Paarth Shah
015a1a6ebc Fix blocking event loop call in matrix (#122730)
Wrap load_json_object in async_add_executor_job
2024-07-31 09:45:30 +02:00
Paarth Shah
e0a1aaa1b9 Fix matrix blocking call by running sync_forever in background_task (#122800)
Fix blocking call by running sync_forever in background_task
2024-07-31 09:44:59 +02:00
Michael Hansen
7f4dabf546 Switch from WebRTC to microVAD (#122861)
* Switch WebRTC to microVAD

* Remove webrtc-noise-gain from licenses
2024-07-31 09:42:45 +02:00
Denis Shulyaka
beb2ef121e Update todo intent slot schema (#122335)
* Update todo intent slot schema

* Update intent.py

* ruff
2024-07-31 09:37:55 +02:00
Denis Shulyaka
5a04d982d9 Bump ollama to 0.3.1 (#122866) 2024-07-31 09:35:45 +02:00
David Bonnes
35bfd0b88f Evohome drops use of async_call_later to avoid lingering task (#122879)
initial commit
2024-07-31 09:35:21 +02:00
Matthias Alphart
9351f300b0 Update xknx to 3.0.0 - more DPT definitions (#122891)
* Support DPTComplex objects and validate sensor types

* Gracefully start and stop xknx device objects

* Use non-awaitable XknxDevice callbacks

* Use non-awaitable xknx.TelegramQueue callbacks

* Use non-awaitable xknx.ConnectionManager callbacks

* Remove unnecessary `hass.async_block_till_done()` calls

* Wait for StateUpdater logic to proceed when receiving responses

* Update import module paths for specific DPTs

* Support Enum data types

* New HVAC mode names

* HVAC Enums instead of Enum member value strings

* New date and time devices

* Update xknx to 3.0.0

* Fix expose tests and DPTEnumData check

* ruff and mypy fixes
2024-07-31 09:10:36 +02:00
Thomas55555
0d678120e4 Bump aioautomower to 2024.7.3 (#121983)
* Bump aioautomower to 2024.7.0

* tests

* Bump to 2024.7.1

* bump to 2024.7.2

* use timezone Europe/Berlin

* bump to 2024.7.3

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-07-31 08:28:39 +02:00
Lukas Kolletzki
5766ea9541 Add generic URL handler to blueprint importer (#110576)
* Add generic url handler to blueprint importer

* Update tests/components/blueprint/test_importer.py

* Update tests/components/blueprint/test_importer.py

* Update test_importer.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-07-31 08:26:57 +02:00
Erik Montnemery
6d8bc84db3 Allow [##:##:##:##:##] type device address in homeworks (#122872)
* Allow [##:##:##:##:##] type device address in homeworks

* Simplify regex
2024-07-31 08:02:15 +02:00
J. Nick Koston
823910b69e Bump ulid-transform to 0.13.1 (#122884)
* Bump ulid-transform to 0.13.0

changelog: https://github.com/bdraco/ulid-transform/compare/v0.10.1...v0.13.0

* Bump ulid-transform to 0.13.1
2024-07-31 07:20:09 +02:00
J. Nick Koston
aa801d9cc6 Bump bluetooth-data-tools to 1.19.4 (#122886) 2024-07-30 18:20:55 -05:00
Jeef
067acce4de Add SimpleFin sensor to show age of data (#122550) 2024-07-30 23:42:10 +02:00
J. Nick Koston
6999c6b0cf Bump aiohttp to 3.10.0 (#122880) 2024-07-30 16:40:38 -05:00
Michael Hansen
da18aae2d8 Bump intents to 2024.7.29 (#122811) 2024-07-30 15:27:16 -05:00
Erik Montnemery
6362ca1052 Bump pyhomeworks to 1.1.0 (#122870) 2024-07-30 21:52:25 +02:00
Bill Flood
022e1b0c02 Add other medium types to Mopeka sensor (#122705)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-30 14:07:12 -05:00
Erik Montnemery
94c0b9fc06 Bump pyhomeworks to 1.0.0 (#122867) 2024-07-30 19:39:53 +02:00
Robert Svensson
5eff4f9816 Unifi improve fixture typing (#122864)
* Improve typing of UniFi fixtures

* Improve fixture typing, excluding image, sensor, switch

* Improve fixture typing in image tests

* Improve fixtures typing in sensor tests

* Improve fixture typing in switch tests

* Fix review comment
2024-07-30 19:33:25 +02:00
Erik Montnemery
fb229fcae8 Improve test coverage of the homeworks integration (#122865)
* Improve test coverage of the homeworks integration

* Revert changes from the future

* Revert changes from the future
2024-07-30 18:40:36 +02:00
Mr. Bubbles
50b35ac4bc Add number platform to IronOS integration (#122801)
* Add setpoint temperature number entity to IronOS integration

* Add tests for number platform

* Initialize settings in coordinator

* Remove unused code
2024-07-30 18:14:01 +02:00
Simon Hörrle
ea727546d6 Add apsystems power switch (#122447)
* bring back power switch

* fix pylint issues

* add SWITCH to platform list

* improve run_on and turn_off functions

* ruff formatting

* replace _state with _attr_is_on

* Update homeassistant/components/apsystems/switch.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* remove unused dependencies

* Update homeassistant/components/apsystems/switch.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* use async functions from api

* convert Api IntEnum Status Information to bool

* add translation key

* implement async_update again

* replace finally with else

* better handling of bool value

* Update homeassistant/components/apsystems/switch.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/apsystems/switch.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* rename power switch to inverter switch

* add test_number and test_switch module

* remove test_number

* Add mock entry for get_device_power_status

* Add mock entry for get_device_power_status

* Update test snapshots

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-30 18:11:08 +02:00
bdowden
18a7d15d14 Add Traffic Rule switches to UniFi Network (#118821)
* Add Traffic Rule switches to UniFi Network

* Retrieve Fix unifi traffic rule switches

Poll for traffic rule updates; have immediate feedback in the UI for modifying traffic rules

* Remove default values for unifi entity; Remove unnecessary code

* Begin updating traffic rule unit tests

* For the mock get request, allow for meta and data properties to not be appended to support v2 api requests

Fix traffic rule unit tests;

* inspect path to determine json response instead of passing an argument

* Remove entity id parameter from tests; remove unused code; rename traffic rule unique ID prefix

* Remove parameter with default.

* More code removal;

* Rename copy/paste variable; remove commented code; remove duplicate default code

---------

Co-authored-by: ViViDboarder <ViViDboarder@gmail.com>
2024-07-30 17:26:08 +02:00
Denis Shulyaka
be24475cee Update selector converters for llm script tools (#122830) 2024-07-30 08:24:03 -07:00
epenet
8066c7dec6 Fix implicit-return in deconz (#122836) 2024-07-30 17:21:45 +02:00
Kim de Vos
896cd27bea Add sensors for Unifi latency (#116737)
* Add sensors for Unifi latency

* Add needed guard and casting

* Use new types

* Add WAN2 support

* Add literals

* Make ids for WAN and WAN2 unique

* Make methods general

* Update sensor.py

* add more typing

* Simplify usage make_wan_latency_sensors

* Simplify further

* Move latency entity creation to method

* Make method internal

* simplify tests

* Apply feedback

* Reduce boiler copied code and add support function

* Add external method for share logic between

* Remove none

* Add more tests

* Apply feedback and change code to improve code coverage
2024-07-30 17:20:56 +02:00
David Bonnes
1ffde403f0 Ensure evohome leaves no lingering timers (#122860) 2024-07-30 17:18:33 +02:00
Guido Schmitz
b69b927795 Set parallel updates in devolo_home_network (#122847) 2024-07-30 17:17:20 +02:00
Erik Montnemery
6840f27bc6 Verify respx mock routes are cleaned up when tests finish (#122852) 2024-07-30 17:12:58 +02:00
epenet
4a34855a92 Fix implicit-return in scripts (#122831) 2024-07-30 16:57:42 +02:00
Joakim Plate
b3f7f379df Upgrade dsmr-parser to 1.4.2 (#121929) 2024-07-30 16:51:02 +02:00
Marius
4994e46ad0 Add mdi:alert-circle-outline to degrade status (#122859) 2024-07-30 16:44:04 +02:00
Erik Montnemery
1382f7a3dc Fix generic IP camera tests affecting other tests (#122858) 2024-07-30 16:29:59 +02:00
Erik Montnemery
b973455037 Fix template image test affecting other tests (#122849) 2024-07-30 16:28:55 +02:00
Thomas55555
a5136a1021 Speed up slow tests in Husqvarna Automower (#122854) 2024-07-30 16:27:58 +02:00
Erik Montnemery
d9e996def5 Fix template binary sensor test (#122855) 2024-07-30 16:18:47 +02:00
Erik Montnemery
224228e448 Fix Axis tests affecting other tests (#122857) 2024-07-30 16:16:33 +02:00
epenet
c8372a3aa5 Fix implicit-return in ecobee (#122832) 2024-07-30 15:33:57 +02:00
epenet
2135691b90 Fix implicit-return in dublin bus transport (#122833) 2024-07-30 15:33:05 +02:00
epenet
ea508b2629 Fix implicit-return in dialogflow (#122834) 2024-07-30 15:32:29 +02:00
epenet
09cd79772f Fix implicit-return in airtouch4 (#122839) 2024-07-30 15:29:53 +02:00
epenet
7b5db6521c Fix implicit-return in advantage_air (#122840) 2024-07-30 15:29:23 +02:00
epenet
27eba3cd46 Fix implicit-return in fixer (#122841) 2024-07-30 15:24:35 +02:00
epenet
41c7414d97 Fix implicit-return in forked_daapd (#122842) 2024-07-30 15:23:53 +02:00
epenet
fd7c92879c Fix implicit-return in foursquare (#122843) 2024-07-30 15:23:04 +02:00
Sébastien Clément
e7971f5a67 Fix qbittorent current_status key in strings.json (#122848) 2024-07-30 15:03:36 +02:00
epenet
72f9d85bbe Fix implicit-return in whirlpool tests (#122775) 2024-07-30 14:57:43 +02:00
Matthias Alphart
956cc6a85c Add UI to create KNX switch and light entities (#122630)
Update KNX frontend to 2024.7.25.204106
2024-07-30 13:54:44 +02:00
epenet
015c50bbdb Fix implicit-return in ddwrt (#122837) 2024-07-30 14:44:11 +03:00
epenet
b6f0893c33 Fix implicit-return in denon (#122835) 2024-07-30 13:05:38 +02:00
Luke Wale
7c92287f97 Add Airtouch5 cover tests (#122769)
add airtouch5 cover tests
2024-07-30 12:34:49 +02:00
Kristof Mariën
53a59412bb Add Foscam sleep switch (#109491)
* Add sleep switch

* Replace awake with sleep switch
2024-07-30 11:34:30 +02:00
Sébastien Clément
d78acd480a Add QBittorent switch to control alternative speed (#107637)
* Fix key in strings.json for current_status in QBittorrent

* Add switch on QBittorent to control alternative speed

* Add switch file to .coveragerc

* Fix some typo

* Use coordinator for switch

* Update to mach new lib

* Import annotation

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Remove quoted coordinator

* Revert "Fix key in strings.json for current_status in QBittorrent"

This reverts commit 962fd0474f.

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-07-30 11:23:55 +02:00
Franck Nijhof
17930a6d66 2024.7.4 (#122770) 2024-07-30 11:12:45 +02:00
Bruno Pantaleão Gonçalves
d825ac346e Add 'use_custom_colors' to iOS Action configuration (#122767) 2024-07-30 11:00:08 +02:00
Denis Shulyaka
fa53055485 Bump voluptuous-openapi (#122828) 2024-07-30 10:57:56 +02:00
epenet
b4cba01870 Fix implicit-return in command_line (#122838) 2024-07-30 10:17:01 +02:00
Robert Svensson
70e368a57e Use snapshot in Axis switch tests (#122680) 2024-07-30 07:14:56 +02:00
David F. Mulcahey
004eccec89 Fix supported_features for ZHA fans (#122813) 2024-07-30 02:10:02 +02:00
David F. Mulcahey
36c01042c1 Enhance ZHA device removal (#122815) 2024-07-30 02:08:21 +02:00
David F. Mulcahey
bd3f0da385 Bump ZHA lib to 0.0.24 and universal-silabs-flasher to 0.0.22 (#122812)
* Bump ZHA lib to 0.0.24

* update for node state change for coordinator data

* bump flasher
2024-07-29 18:16:54 -04:00
Louis Christ
9450744b3b Add device _info to bluesound integration (#122795)
* Add device_info

* Use _attr_unique_id instead of custom methode

* Use different DeviceInfo if port is not DEFAULT_PORT

* Remove name method; Add has_entity_name=True

* Remove self._name completely

* move _attr_has_entity_name and _attr_name out of __init__

* log error if status update fails

* use error for remaining info logs
2024-07-29 23:11:51 +02:00
J. Nick Koston
1c03c83c0a Fix blocking stat() via is_file in image_upload (#122808) 2024-07-29 22:38:58 +02:00
epenet
fdab23c3f9 Fix implicit-return in test schema extractions (#122787) 2024-07-29 22:16:00 +02:00
epenet
7b08e625b4 Fix implicit-return in websocket_api tests (#122779) 2024-07-29 22:14:41 +02:00
epenet
2102a104d2 Adjust DOMAIN imports in homeassistant integration (#122774) 2024-07-29 22:14:05 +02:00
J. Nick Koston
3e1aee4cbc Remove unused constant in august (#122804) 2024-07-29 15:13:39 -05:00
Milan Meulemans
b5b01d97f1 Add support for ASIN Pool devices to ASEKO (#122773) 2024-07-29 22:12:34 +02:00
epenet
02581bbf02 Enforce HOMEASSISTANT_DOMAIN alias for core DOMAIN (#122763) 2024-07-29 22:10:44 +02:00
epenet
4ac85829c8 Fix implicit-return in season tests (#122784) 2024-07-29 22:09:40 +02:00
Robert Resch
ad50136dbd Add created_at/modified_at to config entries (#122456) 2024-07-29 22:08:46 +02:00
Markus Jacobsen
20c4f84a4e Fix incorrect Bang & Olufsen MDNS announcements (#122782) 2024-07-29 22:04:54 +02:00
epenet
bf38db0035 Fix implicit-return in surepetcare tests (#122785) 2024-07-29 22:03:44 +02:00
epenet
b8c363a82c Fix implicit-return in tplink_omada tests (#122776) 2024-07-29 22:03:14 +02:00
epenet
9393dcddb7 Fix implicit-return in nx584 tests (#122788) 2024-07-29 21:59:59 +02:00
epenet
5b434ee336 Fix implicit-return in xiaomi tests (#122778) 2024-07-29 21:58:03 +02:00
epenet
6ba6334512 Fix implicit-return in enigma2 tests (#122790) 2024-07-29 21:57:35 +02:00
J. Nick Koston
8de7a2e3c7 Bump aiohttp to 3.10.0rc0 (#122793) 2024-07-29 21:55:22 +02:00
epenet
197ac8b950 Fix implicit-return in netatmo tests (#122789) 2024-07-29 21:53:22 +02:00
epenet
1958a149c3 Fix implicit-return in ipma tests (#122791) 2024-07-29 21:52:47 +02:00
epenet
7bbbda8d2b Fix implicit-return in sonos tests (#122780) 2024-07-29 21:52:15 +02:00
epenet
5d87a74c3c Fix implicit-return in unifiprotect tests (#122781) 2024-07-29 21:50:45 +02:00
puddly
1f488b00f8 Abstract SkyConnect firmware config flow to the hardware platform (#122140)
* Move the SkyConnect config flow to hardware;

* Clean up

* Get SkyConnect unit tests passing

* Split apart `test_util.py`

* Migrate `test_config_flow`

* Remove unnecessary constants

* Re-apply `contextmanager` typing from #122250

* Move the SkyConnect translation strings into hardware
2024-07-29 12:39:25 -04:00
epenet
570725293c Fix implicit-return in arcam_fmj tests (#122792) 2024-07-29 17:13:31 +02:00
Christian Neumeier
732b9e47c8 Add missing variable 'energy_today' to Zeversolar diagnostics. (#122786)
added var 'energy_today' to zeversolar diagnostics.
2024-07-29 16:48:58 +02:00
Erik Montnemery
ea75c8864f Remove support for live schema migration of old recorder databases (#122399)
* Remove support for live schema migration of old recorder databases

* Update test
2024-07-29 15:52:18 +02:00
epenet
9514a38320 Fix implicit-return rule in zha tests (#122772) 2024-07-29 15:22:08 +02:00
Bram Kragten
d94e79d57a Add Macedonian language (#122768) 2024-07-29 14:49:34 +02:00
Franck Nijhof
02c592d6af Bump version to 2024.7.4 2024-07-29 14:40:02 +02:00
J. Nick Koston
d51d584aed Retry later on OSError during apple_tv entry setup (#122747) 2024-07-29 14:39:27 +02:00
G Johansson
e5fd9819da Return unknown when data is missing in Trafikverket Weather (#122652)
Return unknown when data is missing
2024-07-29 14:23:09 +02:00
Marcel van der Veldt
00c3b0d888 Bump aiohue to version 4.7.2 (#122651) 2024-07-29 14:23:06 +02:00
Robert Resch
aa44c54a19 Bump deebot-client to 8.2.0 (#122612) 2024-07-29 14:23:02 +02:00
Avi Miller
9940d0281b Bump aiolifx to 1.0.6 (#122569) 2024-07-29 13:48:19 +02:00
Andrew Jackson
586a0b12ab Fix target service attribute on Mastodon integration (#122546)
* Fix target

* Fix
2024-07-29 13:48:16 +02:00
Marcel van der Veldt
75f0384a15 Fix typo in Matter lock platform (#122536) 2024-07-29 13:48:13 +02:00
Denis Shulyaka
56f51d3e35 Fix gemini api format conversion (#122403)
* Fix gemini api format conversion

* add tests

* fix tests

* fix tests

* fix coverage
2024-07-29 13:48:10 +02:00
starkillerOG
7135a919e3 Bump reolink-aio to 0.9.5 (#122366) 2024-07-29 13:48:06 +02:00
Denis Shulyaka
9d6bd359c4 Ensure script llm tool name does not start with a digit (#122349)
* Ensure script tool name does not start with a digit

* Fix test name
2024-07-29 13:48:03 +02:00
Denis Shulyaka
f739644735 Goofle Generative AI: Fix string format (#122348)
* Ignore format for string tool args

* Add tests
2024-07-29 13:48:00 +02:00
Christopher Fenner
b63bc72450 Fix device class on sensor in ViCare (#122334)
update device class on init
2024-07-29 13:47:57 +02:00
Alexander Schneider
683069cb98 Add Z-Wave discovery schema for ZVIDAR roller shades (#122332)
Add discovery schema for ZVIDAR roller shades
2024-07-29 13:47:53 +02:00
Jan Bouwhuis
cf20e67f1f Ensure mqtt subscriptions are in a set (#122201) 2024-07-29 13:47:50 +02:00
Maciej Bieniek
74d10b9824 Bump aiotractive to 0.6.0 (#121155)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-29 13:47:46 +02:00
Mick Vleeshouwer
61d4bc1430 Fix device class of water consumption sensor in Overkiz (#122766)
Fixes #118959
2024-07-29 13:38:58 +02:00
epenet
07c7bb8b2a Use HOMEASSISTANT_DOMAIN alias for core DOMAIN (#122760) 2024-07-29 13:35:36 +02:00
epenet
9ce7779bde Use correct constant in rest tests (#122765) 2024-07-29 12:59:57 +02:00
epenet
9e10126505 Revert "Small refactor to cleanup unnecessary returns (#121653)" (#122756) 2024-07-29 12:59:25 +02:00
Pete Sage
cfef72ae57 Add Sonos tests for media_player volume (#122283) 2024-07-29 12:56:26 +02:00
Andrew Jackson
86bfc7ada8 Remove UE Smart Radio integration (#122578) 2024-07-29 12:52:37 +02:00
Rami Mosleh
0de75aeee1 Wait for initial scan to finish before setting up platforms (#122360) 2024-07-29 12:52:01 +02:00
epenet
075550b7ba Use HOMEASSISTANT_DOMAIN alias for core DOMAIN in tests (#122762) 2024-07-29 12:51:12 +02:00
Allen Porter
e5bb1b2cc6 Update LLM prompt to improve quality for local LLMs (#122746) 2024-07-29 12:04:23 +02:00
Marcel van der Veldt
85aca4f095 Fix default turn_on without explicit preset or percentage in Matter Fan platform (#122591) 2024-07-29 12:03:40 +02:00
Richard Kroegel
745eea9a29 Bump bimmer_connected to 0.16.1 (#122699)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-07-29 12:02:47 +02:00
J. Nick Koston
d586e7df33 Retry later on OSError during apple_tv entry setup (#122747) 2024-07-29 11:59:31 +02:00
Marcel van der Veldt
6d4711ce43 Bump aiohue to version 4.7.2 (#122651) 2024-07-29 11:59:13 +02:00
Erik Montnemery
8a84addc54 Add test of recorder platform with statistics support (#122754)
* Add test of recorder platform with statistics support

* Remove excessive line breaks
2024-07-29 11:57:53 +02:00
J. Nick Koston
1879db9f8f Revert to using call_soon for event triggers and state changed event trackers (#122735) 2024-07-29 11:45:39 +02:00
Alexey ALERT Rubashёff
869ec3f670 Bump pyOverkiz to 1.13.14 (#122691) 2024-07-29 11:44:28 +02:00
Mr. Bubbles
70df4ca461 Integration for IronOS (Pinecil V2) soldering irons (#120802)
* Add Pinecil integration

* Refactor with new library

* Add tests for config flow, remove unused code

* requested changes

* update requirements

* Move some sensor values to diagnostics, add tests for sensors

* User service uuid in discovery

* fix manufacturer name

* Bump pynecil to version 0.2.0

* Rename integration to IronOS

* Recreate snapshot

* Update strings

* type checking

* Update snapshot

* Add async_setup to coordinator

* Show device id with serial number

* Added missing boost to operation mode states

* remove super call

* Refactor

* tests
2024-07-29 11:44:01 +02:00
Robert Svensson
06ee8fdd47 Do not use get_hub in deCONZ tests (#122706) 2024-07-29 11:43:04 +02:00
Erik Montnemery
5467685bd8 Adjust warning message when recorder is doing offline migration (#122509)
* Adjust warning message when recorder is doing offline migration

* Address review comments
2024-07-29 11:38:36 +02:00
Erik Montnemery
efaf75f2e6 Rename recorder INTEGRATION_PLATFORMS_RUN_IN_RECORDER_THREAD (#122758) 2024-07-29 11:38:21 +02:00
J. Nick Koston
ca430f0e7b Add coverage for fixing missing params in the doorbird schedule (#122745) 2024-07-29 11:36:44 +02:00
danielsmyers
fa61ad072d Add Bryant Evolution Integration (#119788)
* Add an integration for Bryant Evolution HVAC systems.

* Update newly created tests so that they pass.

* Improve compliance with home assistant guidelines.

* Added tests

* remove xxx

* Minor test cleanups

* Add a test for reading HVAC actions.

* Update homeassistant/components/bryant_evolution/__init__.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/config_flow.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Address reviewer comments.

* Address additional reviewer comments.

* Use translation for exception error messages.

* Simplify config flow.

* Continue addressing comments

* Use mocking rather than DI to provide a for-test client in tests.

* Fix a failure in test_config_flow.py

* Track host->filename in strings.json.

* Use config entry ID for climate entity unique id

* Guard against fan mode returning None in async_update.

* Move unavailable-client check from climate.py to init.py.

* Improve test coverage

* Bump evolutionhttp version

* Address comments

* update comment

* only have one _can_reach_device fn

* Auto-detect which systems and zones are attached.

* Add support for reconfiguration

* Fix a few review comments

* Introduce multiple devices

* Track evolutionhttp library change that returns additional per-zone information during enumeration

* Move construction of devices to init

* Avoid triplicate writing

* rework tests to use mocks

* Correct attribute name to unbreak test

* Pull magic tuple of system-zone into a constant

* Address some test comments

* Create test_init.py

* simplify test_reconfigure

* Replace disable_auto_entity_update with mocks.

* Update tests/components/bryant_evolution/test_climate.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_climate.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/bryant_evolution/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* fix test errors

* do not access runtime_data in tests

* use snapshot_platform and type fixtures

---------

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-29 11:25:04 +02:00
Michael
686598b6b3 Don't block HA startup while set up legacy Ecovacs bot (#122732)
wait for connection in background
2024-07-29 11:24:14 +02:00
Erik Montnemery
5f5dcec0b9 Revert unneeded type annotation in the api integration (#122757) 2024-07-29 10:57:49 +02:00
Erik Montnemery
2a5cb8da32 Fix copy-paste errors in alarm_control_panel tests (#122755) 2024-07-29 10:57:34 +02:00
Erik Montnemery
9b497aebb4 Fix bug in timeout util related to multiple global freezes (#122466) 2024-07-29 10:12:18 +02:00
dependabot[bot]
5f08883227 Bump github/codeql-action from 3.25.14 to 3.25.15 (#122753)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 09:58:15 +02:00
Denis Shulyaka
4b2073ca59 Add LLM tools support for Ollama (#120454)
* Add LLM tools support for Ollama

* fix tests

* coverage

* Separate call for tool parameters

* Fix example

* hint on parameters schema if LLM forgot to request it

* Switch to native tool call functionality

* Fix tests

* Fix tools list

* update strings and default model

* Ignore mypy error until fixed upstream

* Ignore mypy error until fixed upstream

* Add missing prompt part

* Update default model
2024-07-28 18:19:53 -07:00
Louis Christ
f98487ef18 Add config_flow to bluesound integration (#115207)
* Add config flow to bluesound

* update init

* abort flow if connection is not possible

* add to codeowners

* update unique id

* add async_unload_entry

* add import flow

* add device_info

* add zeroconf

* fix errors

* formatting

* use bluos specific zeroconf service type

* implement requested changes

* implement requested changes

* fix test; add more tests

* use AsyncMock assert functions

* fix potential naming collision

* move setup_services back to media_player.py

* implement requested changes

* add port to zeroconf flow

* Fix comments

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-07-28 20:48:20 +02:00
starkillerOG
dff964582b Bump reolink-aio to 0.9.6 (#122738) 2024-07-28 19:47:37 +02:00
Arie Catsman
e5c36c8d56 Refactor asserts in enphase_envoy test_sensor (#122726)
refactor asserts in enphase_envoy test_sensor
2024-07-28 16:36:36 +02:00
Michael
d765b92cca Unsubscribe event listeners on remove of Ecovacs legacy bot entities (#122731)
* unsubscribe on entity remove, create base EcovacsLegacyEntity

* fix name and model in device info

* apply suggestion

* add manufacturer to device info

* fix device info
2024-07-28 15:01:34 +02:00
J. Nick Koston
ba266ab13c Add coverage for calling doorbird webhook with the wrong token (#122700) 2024-07-28 07:11:56 -05:00
Bill Flood
d4aa981fd7 Bump mopeka-iot-ble to version 0.8.0 (#122717) 2024-07-28 07:07:00 -05:00
dependabot[bot]
ac0d0b21e2 Bump github/codeql-action from 3.25.13 to 3.25.14 (#122632) 2024-07-28 11:50:00 +02:00
Michael
092ab823d1 Add device info for legacy Ecovacs bots (#122671)
* add device info

* add tests
2024-07-28 11:06:32 +02:00
Phill (pssc)
3ad2456dd9 Add yamaha platform retry if receiver unavailable at setup (#122679)
* Add platform retry if recieiver unavailable at setup

* Fix Excpetion handling after testing
2024-07-28 10:39:41 +02:00
Avi Miller
146ec4e760 Create theme select entities on matrix devices (#122695)
Signed-off-by: Avi Miller <me@dje.li>
2024-07-28 10:28:42 +02:00
Jafar Atili
f563817b98 Bump pyElectra to 1.2.4 (#122724)
* Bump PyElectra to 1.2.3

* one more thing

* Bump PyElectra to 1.2.4

* fixed pyElectra license
2024-07-28 10:18:21 +02:00
Sid
ec15a66a68 Bump ruff to 0.5.5 (#122722) 2024-07-28 09:37:38 +02:00
Jafar Atili
e708e30c33 Bump pyswitchbee to 1.8.3 (#122713)
* Bump pyswitchbee to 1.8.3

* fix license
2024-07-27 23:11:42 +02:00
J. Nick Koston
383dd80919 Bump aiohomekit to 3.2.1 (#122704) 2024-07-27 12:13:11 -05:00
Robert Svensson
6752bd450b Use snapshot in Axis light tests (#122703) 2024-07-27 17:41:42 +02:00
Arie Catsman
b0780e1db5 Remove conditions from enphase_envoy test_switch (#122693) 2024-07-27 14:32:37 +02:00
Joakim Plate
02a5df0aee Update nibe library to 2.11.0 (#122697)
Update nibe library to 2.11.0 with changes

Addition of BT71 for F1155/F1255
Addition of climate zones for S1155/S1255
Include log information on incomplete reads
Correct fan speeds from being a percentage to a mapping on F series pumps
Corrections for airflow units
Let denied alarm resets writes be considered as a valid connection on setup
2024-07-27 14:01:58 +02:00
Andrew Jackson
cb4a48ca02 Migrate Mastodon integration to config flow (#122376)
* Migrate to config flow

* Fixes & add code owner

* Add codeowners

* Import within notify module

* Fixes from review

* Fixes

* Remove config schema
2024-07-27 13:07:02 +02:00
Luke Wale
64f997718a Add AirTouch5 cover (#122462)
* AirTouch5 - add cover

Each zone has a damper that can be controlled as a cover.

* remove unused assignment

* remove opinionated feature support

* Revert "remove unused assignment"

This reverts commit b4205a60a22ae3869436229b4a45547348496d39.

* ruff formatting changes

* git push translation and refactor
2024-07-27 12:36:48 +02:00
J. Nick Koston
482cf261c0 Small speedups to unifi (#122684)
- Use a set for event_is_on to avoid linear search
- Avoid many duplicate property lookups
2024-07-27 10:19:53 +02:00
J. Nick Koston
1a5706a693 Cache unifi device_tracker properties that never change (#122683) 2024-07-27 10:14:40 +02:00
Phill (pssc)
13c320902e Fix yamaha uid where host in config is defined (#122676)
Fix for uid where host in config is defined
2024-07-27 08:23:41 +02:00
Joost Lekkerkerker
bfbd01a4e5 Add typing to Comfoconnect (#122669) 2024-07-27 08:07:36 +02:00
SplicedNZ
09622e180e Add virtual integraion for "Mercury NZ Limited" (opower) (#122650)
* Add virtual integraion for "Mercury NZ Limited" and bump opower version requirement

* revert opower version bump, fix newlines

* Update name
2024-07-26 20:00:01 -07:00
Phill (pssc)
84486bad78 Yamaha device setup enhancement with unique id based on serial (#120764)
* fix server unavailale at HA startup Fixes #111108

Remove receiver zone confusion for mediaplayer instances
fix uniq id based on serial where avaialble
get serial suppiled by discovery for config entries.

* Fix linter errors

* ruff format

* Enhance debug to find setup code path for tests

* Enhance debug to find setup code path for tests

* Fix formatting

* Revered uid chanages as not needed yet and cuases other issues

* Revert "Fix formatting"

This reverts commit f3324868d2.

* Fix formatting

* Refector tests to cope with changes to plaform init to get serial numbers

* Update test patch

* Update test formatting

* remove all fixes revert code to only make clear we deal with zones and improve debuging
2024-07-26 23:36:34 +02:00
Robert Svensson
c486baccaa Patch import where its used in Axis hub test (#122674) 2024-07-26 23:33:37 +02:00
David Bonnes
57554aba57 Fix broken token caching for evohome (#122664)
* bugfix token caching
2024-07-26 21:28:58 +01:00
Álvaro Fernández Rojas
c9eb1a2e9c Fix Airzone Cloud WebServer memory usage unit (#122670)
airzone_cloud: sensor: fix webserver memory usage unit

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-26 21:59:16 +02:00
Álvaro Fernández Rojas
1a64489121 Add Airzone Cloud low thermostat battery binary sensor (#122665)
airzone_cloud: binary_sensor: add low thermostat battery

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-26 21:36:39 +02:00
Álvaro Fernández Rojas
888ffc002f Add Airzone Cloud WebServer CPU/Memory sensors (#122667)
airzone_cloud: sensor: add WebServer CPU/Memory

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-26 21:36:21 +02:00
Robert Svensson
58419f14e8 Less use of hass.data[DECONZ_DOMAIN] in deCONZ tests (#122657)
* Less use of hass.data[DECONZ_DOMAIN] in deCONZ tests

* Fix review comment

* Change patch path
2024-07-26 20:58:00 +02:00
Álvaro Fernández Rojas
57a5c7c8b6 Update aioairzone-cloud to v0.6.1 (#122661)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-26 20:41:31 +02:00
SplicedNZ
b2b40d9ed6 Bump opower to 6.0.0 (#122658)
* Bump opower to 0.6.0

* Bump opower to 0.6.0
2024-07-26 20:19:58 +02:00
J. Nick Koston
8e578227c3 Add test coverage for doorbird cameras (#122660) 2024-07-26 20:04:23 +02:00
Álvaro Fernández Rojas
d3d522c463 Add Airzone Cloud zone thermostat sensors (#122648)
* airzone_cloud: sensor: add zone thermostat sensors

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone_cloud: sensor: add missing signal percentage icon

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone_cloud: sensor: add signal percentage translation

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone_cloud: sensor: disable thermostat_coverage

Also add to diagnostics category.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Update homeassistant/components/airzone_cloud/strings.json

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-26 19:28:39 +02:00
Robert Svensson
53131390ac Use snapshot in UniFi image tests (#122608)
* Use snapshot in UniFi image tests

* Make Image access_token deterministic
2024-07-26 19:22:09 +02:00
David Knowles
7820bcf218 Add entity services to the Hydrawise integration (#120883)
* Add services to the Hydrawise integration

* Add validation of duration ranges

* Remove clamping test

* Fix duration type in test

* Changes requested during review

* Add back the HydrawiseZoneBinarySensor class
2024-07-26 17:25:56 +02:00
Mr. Bubbles
49e2bfae31 Bump bring-api to v0.8.1 (#122653)
* Bump bring-api to v0.8.1

* update imports
2024-07-26 16:59:28 +02:00
G Johansson
55a1082866 Return unknown when data is missing in Trafikverket Weather (#122652)
Return unknown when data is missing
2024-07-26 16:59:12 +02:00
J. Nick Koston
5bb6272dfa Add test coverage for doorbird events (#122617) 2024-07-26 09:55:14 -05:00
Álvaro Fernández Rojas
850703824b Update aioairzone-cloud to v0.6.0 (#122647)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-26 14:15:48 +02:00
Robert Svensson
72fdcd1cb1 Final steps to runtime_data in Axis integration (#122641)
* Rework connection error test to check config entry status

* Remove final dependencies to hass.data[AXIS_DOMAIN]
2024-07-26 12:29:47 +02:00
Robert Svensson
33ea67e1d0 Remove last references to hass.data[UNIFI_DOMAIN] (#122642) 2024-07-26 12:29:21 +02:00
Robert Svensson
047100069b Clean up some fixtures not referenced within deCONZ tests (#122637) 2024-07-26 11:21:48 +02:00
Andrew Jackson
ecadf6a330 Log line wrap in Mealie integration (#122635)
Log line wrap
2024-07-26 10:21:39 +02:00
Robert Svensson
b41b7aeb5b Remove validation of state==UNAVAILABLE on config entry unload in deCONZ test (#122558)
Only test remove entry marks entities unavailable in one place
2024-07-26 10:06:58 +02:00
Robert Svensson
c9b81a5c04 Replace ConfigEntry with MockConfigEntry in Axis tests (#122629)
* Remove unused fixtures in Axis tests

* Replace ConfigEntry with MockConfigEntry
2024-07-26 09:48:37 +02:00
Robert Svensson
51d5e21203 Remove unused fixtures in UniFi tests (#122628) 2024-07-26 09:48:12 +02:00
Brett Adams
621bd5f0c3 Add dynamic coordinator interval to Tesla Fleet (#122234)
* Add dynamic rate limiter

* tweaks

* Revert min polling back to 2min

* Set max 1 hour

* Remove redundant update_interval

* Tuning and fixes

* Reduce double API calls

* Type test

* Remove RateCalculator
2024-07-26 09:40:49 +02:00
Robert Svensson
9b4cf873c1 Replace ConfigEntry with MockConfigEntry in deCONZ tests (#122631) 2024-07-26 09:36:41 +02:00
J. Nick Koston
e262f759af Speed up bluetooth matching (#122626)
- use a defaultdict to avoid lots of setdefault
- move the intersection outside of the genexpr
  to avoid entering the genexpr if there is no
  intersection
2024-07-26 09:22:56 +02:00
Denis Shulyaka
78a98afb8d Remove obsolete string from openai_conversation strings.json (#122623) 2024-07-26 03:48:26 +02:00
Marc Mueller
e5f2046b19 Update mypy-dev to 1.12.0a2 (#122613) 2024-07-25 21:48:10 +02:00
Robert Resch
d77b5cbbbf Bump deebot-client to 8.2.0 (#122612) 2024-07-25 21:23:14 +02:00
Erik Montnemery
5dbd7684ce Fail tests if recorder creates nested sessions (#122579)
* Fail tests if recorder creates nested sessions

* Adjust import order

* Move get_instance
2024-07-25 21:18:55 +02:00
Robert Resch
32a0463f47 Update Ecovacs translations (#122610)
* Update Ecovacs translations

* Update tests
2024-07-25 21:18:42 +02:00
Robert Resch
62a3902de7 Set mode for Ecovacs clean count entity (#122611) 2024-07-25 21:18:28 +02:00
huettner94
eb3686af06 Add shelly overcurrent sensor for switches (#122494)
shelly: add overcurrent sensor for switches

just like overvoltage shelly switches can react to overcurrent and
diable the switch. Unfortunately this is is not mentioned anywhere in
the documentation.
It can be triggered by a device using more amps than set in
"Output protections" under the name "Overcurrent in amperes".
2024-07-25 21:22:18 +03:00
Erik Montnemery
81983d66f4 Avoid nesting sessions in recorder auto repairs tests (#122596) 2024-07-25 12:52:13 -05:00
Robert Svensson
e015c0a6ae Use snapshot in UniFi device tracker tests (#122603) 2024-07-25 18:16:58 +02:00
Robert Svensson
81c8ba87ab Use snapshot in UniFi button tests (#122602) 2024-07-25 18:16:25 +02:00
Erik Montnemery
ec957e4a94 Run statistics on 5-minute intervals in tests (#122592)
* Run statistics on 5-minute intervals in tests

* Fix test failing when mysql does not return rows in insert order
2024-07-25 17:32:49 +02:00
Robert Svensson
08d7beb803 Use snapshots in UniFi update tests (#122599) 2024-07-25 17:32:31 +02:00
Andrew Jackson
131ce09490 Allow nightly Mealie versions to pass (#121761)
* Allow invalid versions to pass

* Add log warning

* Change log message

* Add assert for log
2024-07-25 17:27:08 +02:00
Allen Porter
e8eb1ed35c Bump airgradient to 0.7.1 removing mashumaro direct dependency (#122534) 2024-07-25 07:46:09 -07:00
Erik Montnemery
0c7ab2062f Avoid creating nested sessions in recorder migration (#122580) 2024-07-25 15:44:48 +02:00
Josef Zweck
f1b933ae0c Add uncalibrated sensor for tedee (#122594)
* add uncalibrated sensor

* change off icon
2024-07-25 15:42:10 +02:00
G Johansson
e6d0bc7d5d Add device to Worldclock (#122557)
* Add device to Worldclock

* has_entity_name
2024-07-25 14:16:21 +02:00
J. Nick Koston
e795f81f73 Add support for govee presence sensor h5127 (#122568) 2024-07-25 13:35:00 +02:00
Álvaro Fernández Rojas
3caffa4dad Update aioqsw to v0.4.0 (#122586)
* Update aioqsw to v0.4.0

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* trigger CI

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-25 13:34:02 +02:00
Erik Montnemery
1f2c54f112 Avoid nesting sessions in recorder purge tests (#122581) 2024-07-25 13:12:10 +02:00
Erik Montnemery
c12a79ecba Deduplicate sensor recorder tests (#122516) 2024-07-25 12:31:11 +02:00
J. Nick Koston
a94e9d472b Add support for govee H5124 vibration sensors (#122562) 2024-07-25 12:29:52 +02:00
Philip Vanloo
cde22a44db Add LinkPlay integration (#113940)
* Intial commit

* Add artsound as virtual integration

* Add config_flow test
Add linkplay to .coveragerc
Add linkplay to .strict-typing

* Remove artsound component

* Bump package version

* Address mypy and coveragerc

* Address comments

* Address more feedback, add zeroconf and user flow

* Catch broken bridge in async_setup_entry

* Raise ConfigEntryNotReady, add __all__

* Implement new tests for the config_flow

* Fix async warning

* Fix test

* Address feedback

* Address comments

* Address comment

---------

Co-authored-by: Philip Vanloo <26272906+pvanloo@users.noreply.github.com>
2024-07-25 12:27:10 +02:00
Erik Montnemery
33d5ed52e6 Avoid nesting sessions in recorder statistics tests (#122582) 2024-07-25 12:26:44 +02:00
J. Nick Koston
78e24be1e7 Convert qingping to use entry.runtime_data (#122528) 2024-07-25 12:19:55 +02:00
J. Nick Koston
a89853da9d Migrate switchbot to use entry.runtime_data (#122530) 2024-07-25 12:18:24 +02:00
J. Nick Koston
3b01a57de3 Bump aioesphomeapi to 24.6.2 (#122566) 2024-07-25 12:16:16 +02:00
J. Nick Koston
256a2276ef Bump govee-ble to 0.40.0 (#122564) 2024-07-25 12:15:40 +02:00
Erik Montnemery
6223fe93c8 Fix typo in conftest.py (#122583) 2024-07-25 12:08:52 +02:00
J. Nick Koston
7348a1fd0c Convert homekit to use entry.runtime_data (#122533) 2024-07-25 11:06:55 +02:00
karwosts
8687b438f1 Use appropriate selector for homeassistant.update_entity (#122497) 2024-07-25 11:05:31 +02:00
Avi Miller
4901ecba7f Bump aiolifx to 1.0.6 (#122569) 2024-07-24 18:44:56 -05:00
G Johansson
59637d2391 Address Wake on Lan post-merge feedback (#122549)
Address Wake on Late post-merge feedback
2024-07-25 00:26:18 +02:00
Alexandre CUER
fcccd85ac4 Add tests to emoncms (#122547)
* Add tests to emoncms

* Reduce snapshot size

* Reduce snapshot size

* run hassfest to update CODEOWNERS file

* Update requirements_test_all.txt

* Update tests/components/emoncms/test_sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Dont use snapshot when testing state change

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-24 21:40:05 +02:00
Stefano Semeraro
34b32ced25 Add CCT support to WLED (#122488) 2024-07-24 20:37:38 +02:00
Marcel van der Veldt
d7c713d18d Fix typo in Matter lock platform (#122536) 2024-07-24 20:12:51 +02:00
Marcel van der Veldt
4876e35fd8 Matter event follow up (#122553) 2024-07-24 20:12:20 +02:00
Robert Svensson
9198234465 Use snapshot in deCONZ light tests (#122548) 2024-07-24 20:08:42 +02:00
Robert Svensson
be8e432bea Use snapshot in deCONZ alarm control panel tests (#122551)
* Use snapshot in deCONZ alarm control panel tests

* Clean up comments
2024-07-24 20:08:06 +02:00
Andrew Jackson
943b1afb55 Fix target service attribute on Mastodon integration (#122546)
* Fix target

* Fix
2024-07-24 18:19:12 +02:00
Ian
3e8d3083ac Refactor NextBus integration to use new API (#121133)
* Refactor NextBus integration to use new API

This removes the `messages`, `directions`, and `attribution` attributes
from the sensor. Those may be added back in the future with additional
refactoring.

Some existing sensors may be broken today because of deprecated Agency
names. This patch will not migrate them as the migration path is
ambiguous. Setting up again should work though.

* Move result indexing outside of try/except
2024-07-24 18:18:21 +02:00
Robert Svensson
3c4f2c2dcf Use snapshot in deCONZ select tests (#122541) 2024-07-24 18:07:40 +02:00
Robert Svensson
277883e756 Use snapshot in deCONZ sensor tests (#122543) 2024-07-24 18:07:18 +02:00
Robert Svensson
5bda072141 Use snapshot in deCONZ scene tests (#122540) 2024-07-24 17:32:57 +02:00
Robert Svensson
a8e60a6c53 Use snapshot in deCONZ number tests (#122538) 2024-07-24 17:28:47 +02:00
Robert Svensson
50da3c5c5b Use snapshot in deCONZ climate tests (#122535) 2024-07-24 17:15:01 +02:00
Robert Svensson
c5f9ff6ac5 Use snapshot in deCONZ cover tests (#122537) 2024-07-24 17:14:40 +02:00
J. Nick Koston
6393f1f02d Convert rainmachine to use entry.runtime_data (#122532) 2024-07-24 08:52:14 -06:00
J. Nick Koston
c81b9d624b Convert oralb to use entry.runtime_data (#122527) 2024-07-24 16:23:42 +02:00
Noah Husby
cae992f5e6 Add volume step to Russound media player (#122523)
* Add volume step to Russound media player

* Add return types
2024-07-24 14:44:44 +02:00
Joost Lekkerkerker
9ecdee3b78 Extract Evohome base entities to separate module (#122515)
* Extract Evohome base entities to separate module

* Extract Evohome base entities to separate module
2024-07-24 13:22:48 +02:00
Erik Montnemery
c9f0fe3c5d Rename recorder INTEGRATION_PLATFORMS_LOAD_IN_RECORDER_THREAD (#122511) 2024-07-24 11:37:49 +02:00
Robert Svensson
a90d41d9e7 Use snapshot in deCONZ binary sensor tests (#122507)
* Use snapshot in deCONZ binary sensor tests

* Fix typing in button test
2024-07-24 09:01:34 +02:00
Robert Svensson
4c7828fd50 Improve deCONZ fan tests (#122493)
* Improve fan tests

* Use snapshots
2024-07-24 09:01:09 +02:00
Jan Stienstra
99aa68c93f Use runtime_data instead of hass.data for Jellyfin (#122410)
* Use runtime_data instead of hass.data

* Process review
2024-07-24 08:53:01 +02:00
ribbal
6dd43be6ac Fix incorrect enum option in Hive heating sensor (#122496)
* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* Fix defect with Hive heating sensor options
2024-07-24 08:50:44 +02:00
Avi Miller
67f7e97b4c Bump aiolifx-themes to v0.5.0 (#122503)
Signed-off-by: Avi Miller <me@dje.li>
2024-07-24 08:46:29 +02:00
Robert Svensson
902bf4ae86 Use snapshot in deCONZ button tests (#122505)
Use snapshot in button tests
2024-07-24 08:44:10 +02:00
Noah Husby
b7b3094a49 Bump aiorussound to 2.2.0 (#122500) 2024-07-24 08:40:54 +02:00
J. Nick Koston
e1e64be3c9 Remigrate device_registry created_at/modified_at (#122490)
* Remigrate device_registry created_at/modified_at

Nightly current does not boot up because the device registry
will have KeyError: created_at if the previous nightly was
installed.

* reduce

* split migration per discord comments
2024-07-23 15:47:27 -05:00
Christopher Fenner
f135d3d16c Fix device class on sensor in ViCare (#122334)
update device class on init
2024-07-23 22:56:46 +03:00
Álvaro Fernández Rojas
fd6f1cfbdc Update aioairzone-cloud to v0.5.5 (#122482)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-23 22:55:18 +03:00
Marc Mueller
ac86738572 Update pylutron to 0.2.15 (#122455) 2024-07-23 22:41:16 +03:00
Robert Svensson
ad38b9e9e1 Use snapshot validation on Axis binary sensor (#122483)
* Use snapshot validation on binary sensor

* Use snapshot_platform

* Clean up

* Improve typign
2024-07-23 22:30:03 +03:00
Robert Svensson
e6ef8a34a7 Tweak deCONZ init and hub tests (#122484)
* Improve typing of init tests

* Clean up gateway test

* Validate deconz device registry entry

* Rename gateway to hub

* Snake case BRIDGEID to BRIDGE_ID
2024-07-23 22:29:48 +03:00
Álvaro Fernández Rojas
2730713b39 Update aioairzone to v0.8.1 (#122481)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-23 14:22:42 -05:00
Robert Resch
e00f159ebe Fix loading created_at/modified_at from entity registry store (#122486) 2024-07-23 21:15:12 +02:00
Álvaro Fernández Rojas
57c554f516 Update AEMET-OpenData to v0.5.3 (#122480) 2024-07-23 13:48:34 -05:00
Robert Svensson
34f1443a5a Improve Axis hub tests (#122472)
* Improve some of the hub tests

* Replace constant "name" with "home"

* Add snapshot

* Simplify

* Clean up
2024-07-23 19:54:43 +02:00
Robert Svensson
b53800a69d Tweak axis test fixtures (#122469)
* Don't automatically add config entry to hass

* Improve RTSP fixture typing

* Improve typing of config entry factory and remove unnecessary use of it

* Remove redundant fixture in config flow tests

* Parametrize config flow error test
2024-07-23 19:27:38 +02:00
ribbal
1b7fb9ae12 Create additional sensors in Hive integration (#122453)
* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors

* add temperature and mode sensors
2024-07-23 19:21:58 +02:00
J. Nick Koston
6bdc5be433 Bump aiohttp to 3.10.0b1 (#122409) 2024-07-23 12:10:22 -05:00
Noah Husby
d78327a72f Add dynamic media player features to Russound (#122475)
Add dynamic media player features
2024-07-23 18:37:24 +02:00
ilan
0a62a4459f Add 100% test coverage to Madvr (#122350)
* feat: add 100% test coverage

* fix: dont patch logger

* fix: better names

* fix: use consts

* fix: use built in const
2024-07-23 18:06:26 +02:00
Michael Hansen
3ba2a0518e Switch to official ollama library, update models (#122471)
* Switch to mainstream ollama library, update models

* Fix mypy error
2024-07-23 10:57:54 -05:00
Matthias Alphart
d7b0d1a50e Use dispatcher for KNX GroupMonitor instead of custom HassJob (#122384) 2024-07-23 17:47:45 +02:00
David Bonnes
42b9c0448c Add coordinator to evohome and prune async_update code (#119432)
* functional programming tweak

* doctweak

* typing hint

* rename symbol

* Switch to DataUpdateCoordinator

* move from async_setup to EvoBroker

* tweaks - add v1 back in

* tidy up

* tidy up docstring

* lint

* remove redundant logging

* rename symbol

* split back to inject authenticator clas

* rename symbols

* rename symbol

* Update homeassistant/components/evohome/__init__.py

Co-authored-by: Joakim Plate <elupus@ecce.se>

* allow exception to pass through

* allow re-authentication with diff credentials

* lint

* undo unrelated change

* use async_refresh instead of async_config_entry_first_refresh

* assign None instead of empty dict as Falsey value

* use class attrs instead of type hints

* speed up mypy hint

* speed up mypy check

* small tidy up

* small tidy up

---------

Co-authored-by: Joakim Plate <elupus@ecce.se>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-07-23 16:47:53 +02:00
Marc Mueller
da6a7ebd42 Update clientsession socket family typing (#122464) 2024-07-23 09:04:09 -05:00
Phill (pssc)
f260d63c58 Add squeezebox server device with common init (#122396)
* squeezebox moves common elements into __init__ to allow for server sensors and device, improves player device

* Update with feedback from PR

* squeezebox Formating fixes, Logging Fixes, remove nasty stored callback

* squeezebox Formating fixes, Logging Fixes, remove nasty stored callback

* squeezebox refactor to use own ConfigEntry and Data

* squeezebox remove own data class

* Update homeassistant/components/squeezebox/__init__.py

Correct typo

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/squeezebox/media_player.py

Stronger typing on entry setup SqueezeboxConfigEntry

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* squeezebox add SqueezeboxConfigEntry

* squeezebox fix mypy type errors

* squeezebox use right Callable

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-23 15:53:58 +02:00
Marc Mueller
ff467463f8 Update pytest warnings filter (#122459) 2024-07-23 15:50:14 +02:00
Marc Mueller
5727f30026 Changes for aiohttp 3.10.0 (#122463) 2024-07-23 15:37:26 +02:00
starkillerOG
32cd54b1e3 Fix flaky Reolink tests (#122451) 2024-07-23 08:35:02 -05:00
Robert Resch
51ef5cd3ba Add model_id to Ecovacs integration (#122457) 2024-07-23 15:28:16 +02:00
Stefan Agner
07b2a7537b Add Matter update entities for devices with OTA requestor (#120304)
* Add Matter update entities for devices with OTA requestor

Matter devices which support the OTA requestor cluster can receive
updates from a OTA provider. The Home Assistant Python Matter Server
implements such an OTA provider now.

Add update entities for devices which support the OTA requestor cluster
and check for available updates. Allow the user to update the firmware.
The update progress will be read directly from the devices' OTA
requestor cluster.

* Update homeassistant/components/matter/update.py

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>

* Bump python-matter-server to 6.3.0

This includes models and commands required for device firmware updates.

* Fix tests by including the new bluetooth_enabled field

* Add update entity tests

* Fix update entity test

* Update entity picture docstring

* Add note about reasons for progress state change update

* Enable polling for update entities by default

Matter entities don't enable polling any longer. Enable polling for
update entities by default.

* Add comment about why Update entities are polled

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-07-23 15:25:02 +02:00
starkillerOG
b46b74df90 Check for incompatible special chars in Reolink password (#122461) 2024-07-23 15:22:23 +02:00
Marc Mueller
156a2427ff Use aiohttp.ClientTimeout for timeout (#122458) 2024-07-23 08:20:04 -05:00
Robert Resch
545514c5cd Add created_at/modified_at to category registry (#122454) 2024-07-23 14:39:38 +02:00
Erik Montnemery
92acfc1464 Indicate database migration in /api/core/state response (#122445)
* Indicate database migration in /api/core/state response

* Change API response according to review comment

* Adjust API response

* Update test

* Add test
2024-07-23 14:13:08 +02:00
Stefan Agner
73ea62edd4 Disable polling for Matter entities by default (#122452)
Matter entities don't implement async_update, they get their update
from the Matter subscriptions through the WebSocket from the Matter
Server. This change disables polling for all Matter Entities by
default.
2024-07-23 13:43:12 +02:00
starkillerOG
1fd3c9d6dd Replace Reolink HDR switch by HDR select entity (#122373)
* Add HDR select

* Update strings.json

* Update strings.json

* add icon

* remove HDR switch

* cleanup old HDR switch

* add tests

* Keep HDR switch entity around untill HA 2025.2.0

* Add repair issue

* Update strings.json

* fixes and review comments

* Add tests

* Update homeassistant/components/reolink/strings.json

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/reolink/switch.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* fixes and simplify

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-23 13:28:33 +02:00
Robert Resch
0d765a27c9 Add created_at/modified_at to entity registry (#122444) 2024-07-23 13:12:29 +02:00
Brett Adams
8d14095cb9 Improve API calls in Teslemetry (#122449)
* Improve API calls

* Small tweak

* typing fixtures
2024-07-23 12:59:25 +02:00
fustom
77282ed4b0 Use external temp if needed in Broadlink (#118375)
* Use external temp for current temp depends on the sensor state

* Add SensorMode enum

* Add tests for Broadlink climate

* Check is the sensor included in the data

* Use IntEnum as parent of SensorMode

* Use SensorMode enum value for sensor test data

* Parametrizing tests

* Readd accidentally removed assert

* Use local sensor variable

Co-authored-by: Robert Resch <robert@resch.dev>

* Refactor test_climate. Check call_counts.

* Add parameter types

Co-authored-by: Robert Resch <robert@resch.dev>

* Update homeassistant/components/broadlink/climate.py

---------

Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-23 12:30:06 +02:00
Marcel van der Veldt
632dec614a Fix several issues with the Matter Generic Switch Cluster (#122191) 2024-07-23 10:10:32 +02:00
Franck Nijhof
d3d91a83e5 Update wled to 0.20.0 (#122441) 2024-07-23 09:56:23 +02:00
Erik Montnemery
108dc3795e Remove incorrect use of Mock.assert_has_calls from recorder tests (#122439)
* Remove incorrect use of Mock.assert_has_calls from recorder tests

* Fix test
2024-07-23 09:39:27 +02:00
Joost Lekkerkerker
cd48278671 Extract Geniushub base entities in separate module (#122331) 2024-07-23 09:34:00 +02:00
Allen Porter
be4c7291bd Update google tasks to return completed items (#122437) 2024-07-23 09:31:22 +02:00
dependabot[bot]
4674502b92 Bump docker/login-action from 3.2.0 to 3.3.0 (#122440)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-23 09:24:52 +02:00
Robert Svensson
4ee256633b Deduplicate light data with deCONZ websocket fixture (#122421) 2024-07-23 08:40:30 +02:00
J. Nick Koston
0039f1bb49 Make frontend url and route a cached_property (#122430) 2024-07-23 08:39:18 +02:00
Denis Shulyaka
975cfa6457 Fix gemini api format conversion (#122403)
* Fix gemini api format conversion

* add tests

* fix tests

* fix tests

* fix coverage
2024-07-22 17:56:13 -07:00
Erik Montnemery
5d3c57ecfe Freeze integration setup timeout for recorder during non-live migration (#122431) 2024-07-22 18:48:55 -05:00
Erik Montnemery
f4125eaf4c Remove loop shutdown indicator when done with test hass (#122432) 2024-07-23 00:56:06 +02:00
Erik Montnemery
96de0a4c94 Correct off-by-one bug in recorder non live schema migration (#122428)
* Correct off-by-one bug in recorder non live schema migration

* Remove change from the future
2024-07-23 00:30:31 +02:00
J. Nick Koston
d0ba5534cd Bump async-upnp-client to 0.40.0 (#122427) 2024-07-22 17:04:29 -05:00
Erik Montnemery
9b2118e556 Remove recorder from websocket_api after dependencies (#122422)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-22 16:50:05 -05:00
Erik Montnemery
42716723e6 Register WS command recorder/info early (#122425) 2024-07-22 16:26:52 -05:00
ribbal
ba276a5cb6 Add missing binary sensors to Hive integration (#122296)
* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors

* add missing sensors
2024-07-22 23:15:36 +02:00
Erik Montnemery
3df6b34a03 Split recorder and frontend bootstrap steps (#122420) 2024-07-22 23:07:49 +02:00
Denis Shulyaka
ee30510b23 Remove deprecated DALL-E image formats (#122388) 2024-07-22 21:57:48 +02:00
Alexandre CUER
489457c47b Add async_update_data to emoncms coordinator (#122416)
* Add async_update_data to coordinator

* Add const module
2024-07-22 21:47:01 +02:00
Joakim Plate
a1cdd91d23 Continue transition from legacy dict to attr in dsmr (#121906) 2024-07-22 21:41:24 +02:00
Mr. Bubbles
fed17a4905 Add DeviceInfo to OTP integration (#122392) 2024-07-22 21:39:22 +02:00
Robert Svensson
c61efe931a Deduplicate more fixture data related to deCONZ websocket sensor (#122412) 2024-07-22 21:37:58 +02:00
Erik Montnemery
d3df903d1e Make device registry migration unconditional (#122414) 2024-07-22 21:37:47 +02:00
Erik Montnemery
db6704271c Avoid repeated calls to utc_from_timestamp(0).isoformat() when migrating (#122413) 2024-07-22 21:36:36 +02:00
Erik Montnemery
3dc36cf068 Improve error handling when creating new SQLite database (#122406)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-22 14:16:11 -05:00
Erik Montnemery
20fc5233a1 Add recorder data migrator class to clean up states table (#122069) 2024-07-22 13:04:01 -05:00
Robert Resch
4c853803f1 Add created_at/modified_at to device registry (#122369) 2024-07-22 19:15:23 +02:00
Noah Husby
19d9a91392 Add device info to Russound RIO (#122395)
* Add device info to Russound RIO

* Set device info name to Russound model

* Add device class to Russound media player

* Move device info to constructor

* Use connections instead of identifiers for russound

* Add via_device attr to Russound

* Reinstate russound identifiers

* Move has entity name attr
2024-07-22 19:06:13 +02:00
Erik Montnemery
76cd53a864 Improve error handling when recorder schema migration fails (#122397) 2024-07-22 18:55:12 +02:00
Noah Husby
02c34ba3f8 Bump aiorussound to 2.0.7 (#122389) 2024-07-22 18:01:54 +02:00
Erik Montnemery
b14e8d1609 Remove SchemaValidationStatus.valid (#122394) 2024-07-22 17:33:13 +02:00
Erik Montnemery
e8b88557ee Refactor recorder schema migration (#122372)
* Refactor recorder schema migration

* Simplify

* Remove unused imports

* Refactor _migrate_schema according to review comments

* Add comment
2024-07-22 16:53:54 +02:00
Erik Montnemery
c73e7ae178 Handle integration with missing dependencies (#122386) 2024-07-22 15:41:55 +02:00
Joost Lekkerkerker
7ec41275d5 Add mealie service to set mealplan (#122317) 2024-07-22 15:34:10 +02:00
Erik Montnemery
debebcfd25 Improve language in loader error messages (#122387) 2024-07-22 15:32:36 +02:00
Pete Sage
186ca49b16 Fix group media player play_media not passing kwargs (#122258) 2024-07-22 14:30:23 +02:00
Robert Resch
243a68fb1f Frontend wants a timestamp for the created_at/modified_at attributes (#122377) 2024-07-22 14:10:16 +02:00
J. Nick Koston
bd97a09cae Complete coverage for doorbird init (#122272) 2024-07-22 13:57:43 +02:00
J. Nick Koston
d421525f1b Fix missing translation key for august doorbells (#122251) 2024-07-22 13:15:43 +02:00
Allen Porter
7ec332f857 Fix platforms on media pause and unpause intents (#122357) 2024-07-22 13:15:05 +02:00
Brett Adams
31d3b3b675 Handle empty energy sites in Tesla integrations (#122355) 2024-07-22 13:14:15 +02:00
cdnninja
ea94cdb668 Bump pyvesync to 2.1.12 (#122318) 2024-07-22 13:09:08 +02:00
Erik Montnemery
cbe94c4706 Fix typo in recorder persistent notification (#122374) 2024-07-22 12:02:17 +02:00
Duco Sebel
5612e3a92b Bumb python-homewizard-energy to 6.1.1 to embed model in upstream library (#122365) 2024-07-22 11:26:38 +02:00
Paul Bottein
33f0840a26 Add translations for xiaomi miio fan preset modes (#122367) 2024-07-22 11:21:54 +02:00
starkillerOG
8d538fcd52 Add Reolink model_id / item number (#122371) 2024-07-22 11:20:02 +02:00
Marc Mueller
9793aa0a5e Update pytest to 8.3.1 (#122368) 2024-07-22 11:16:05 +02:00
Denis Shulyaka
064d7261b4 Ensure script llm tool name does not start with a digit (#122349)
* Ensure script tool name does not start with a digit

* Fix test name
2024-07-22 11:11:09 +02:00
starkillerOG
0c6dc9e43b Bump reolink-aio to 0.9.5 (#122366) 2024-07-22 11:09:03 +02:00
Marc Mueller
c70e611822 Fix homewizard api close not being awaited on unload (#122324) 2024-07-22 10:19:08 +02:00
J. Nick Koston
02c64c7861 Bump cryptography to 43.0.0 and pyOpenSSL to 24.2.1 and chacha20poly1305-reuseable >= 0.13.0 (#122308) 2024-07-22 10:15:02 +02:00
dependabot[bot]
5b32efb6d6 Bump github/codeql-action from 3.25.12 to 3.25.13 (#122362)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-22 10:05:15 +02:00
Matthias Alphart
34e72ea16a Add support for KNX UI to create light entities (#122342)
* Add light to KNX UI-createable entity platforms

* review from switch

* Add a test
2024-07-22 09:35:29 +02:00
Noah Husby
f30c6e01f9 Bump aiorussound to 2.0.6 (#122354)
bump aiorussound to 2.0.6
2024-07-22 08:56:48 +02:00
J. Nick Koston
db9fc27a5c Convert enphase_envoy to use entry.runtime_data (#122345) 2024-07-22 07:44:00 +02:00
Denis Shulyaka
ac1ad9680b Goofle Generative AI: Fix string format (#122348)
* Ignore format for string tool args

* Add tests
2024-07-21 21:54:31 -07:00
Marc Mueller
4eb096cb0a Update pylint to 3.2.6 (#122338) 2024-07-22 01:44:52 +02:00
Maciej Bieniek
bc5849e4ef Bump aiotractive to 0.6.0 (#121155)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-21 18:11:05 -05:00
Alexander Schneider
9a3c7111f7 Add Z-Wave discovery schema for ZVIDAR roller shades (#122332)
Add discovery schema for ZVIDAR roller shades
2024-07-21 23:51:10 +02:00
Allen Porter
c98c80ce69 Change OpenAI default recommended model to gpt-4o-mini (#122333) 2024-07-21 13:37:18 -07:00
Lorzware
453848bcdc APSystems - add configuration option 'port' in config flow (#122144)
* Add configuration option 'port' in config flow
2024-07-21 22:03:41 +02:00
Joost Lekkerkerker
7d46890804 Add support for grouping notify entities (#122123)
* Add support for grouping notify entities

* Add support for grouping notify entities

* Add support for grouping notify entities

* Fix test

* Fix feedback

* Update homeassistant/components/group/notify.py

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>

* Test config flow changes

* Test config flow changes

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-07-21 20:57:49 +02:00
Michael
7e1fb88e4e Post merge review for Feedreader (#122327)
* remove unneccessary typing

* assert type list while type checking

* remove summary, since feedparser parse it already into content

* add further tests
2024-07-21 20:55:02 +02:00
epenet
94ce02f406 Bump renault-api to 2.0.5 (#122326)
* Bump renault-api to 2.0.5

* Update requirements_all.txt

* Update requirements_test_all.txt
2024-07-21 13:18:43 -05:00
Matthias Alphart
d418a40856 Create, update and delete KNX entities from UI / WS-commands (#104079)
* knx entity CRUD - initial commit - switch

* platform dependent schema

* coerce empty GA-lists to None

* read entity configuration from WS

* use entity_id instead of unique_id for lookup

* Add device support

* Rename KNXEntityStore to KNXConfigStore

* fix test after rename

* Send schema options for creating / editing entities

* Return entity_id after entity creation

* remove device_class config in favour of more-info-dialog settings

* refactor group address schema for custom selector

* Rename GA keys and remove invalid keys from schema

* fix rebase

* Fix deleting devices and their entities

* Validate entity schema in extra step - return validation infos

* Use exception to signal validation error; return validated data

* Forward validation result when editing entities

* Get proper validation error message for optional GAs

* Add entity validation only WS command

* use ulid instead of uuid

* Fix error handling for edit unknown entity

* Remove unused optional group address sets from validated schema

* Add optional dpt field for ga_schema

* Move knx config things to sub-key

* Add light platform

* async_forward_entry_setups only once

* Test crate and remove devices

* Test removing entities of a removed device

* Test entity creation and storage

* Test deleting entities

* Test unsuccessful entity creation

* Test updating entity data

* Test get entity config

* Test validate entity

* Update entity data by entity_id instead of unique_id

* Remove unnecessary uid unique check

* remove schema_options

* test fixture for entity creation

* clean up group address schema

class can be used to add custom serializer later

* Revert: Add light platfrom

* remove unused optional_ga_schema

* Test GASelector

* lint tests

* Review

* group entities before adding

* fix / ignore mypy

* always has_entity_name

* Entity name: check for empty string when no device

* use constants instead of strings in schema

* Fix mypy errors for voluptuous schemas

---------

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-07-21 20:01:48 +02:00
GeoffAtHome
890b54e36f Add config flow to Genius hub (#116173)
* Adding config flow

* Fix setup issues.

* Added test for config_flow

* Refactor schemas.

* Fixed ruff-format on const.py

* Added geniushub-cleint to requirements_test_all.txt

* Updates from review.

* Correct multiple logger comment errors.

* User menu rather than check box.

* Correct logger messages.

* Correct test_config_flow

* Import config entry from YAML

* Config flow integration

* Refactor genius hub test_config_flow.

* Improvements and simplification from code review.

* Correct tests

* Stop device being added twice.

* Correct validate_input.

* Changes to meet code review three week ago.

* Fix Ruff undefined error

* Update homeassistant/components/geniushub/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/geniushub/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Change case Cloud and Local to CLOUD and LOCAL.

* More from code review

* Fix

* Fix

* Update homeassistant/components/geniushub/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-21 19:57:41 +02:00
Marc Mueller
6de824e875 Fix test RuntimeWarning for upb (#122325) 2024-07-21 18:50:00 +02:00
Joost Lekkerkerker
273dc0998f Clean up Mealie service tests (#122316) 2024-07-21 10:15:28 -05:00
J. Nick Koston
5f4dedb4a8 Add binary sensor platform to govee-ble (#122111) 2024-07-21 09:47:59 -05:00
Joost Lekkerkerker
6f4a8a4a14 Add Mealie service to set a random mealplan (#122313)
* Add Mealie service to set a random mealplan

* Fix coverage

* Fix coverage
2024-07-21 16:43:46 +02:00
J. Nick Koston
39068bb786 Add sleepy device support to govee-ble (#122085) 2024-07-21 09:38:00 -05:00
J. Nick Koston
7e82b3ecdb Add event platform to govee-ble (#122031)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-21 09:32:58 -05:00
Joost Lekkerkerker
8d01ad98eb Clean up Mealie coordinator (#122310)
* Clean up Mealie coordinator

* Clean up Mealie coordinator

* Clean up Mealie coordinator

* Fix

* Fix
2024-07-21 16:24:46 +02:00
Joost Lekkerkerker
a78d6b8c36 Set polling interval for airgradient to 1 minute (#122266) 2024-07-21 16:22:45 +02:00
Joost Lekkerkerker
e8796cd725 Improve Hive typing (#122314) 2024-07-21 16:21:45 +02:00
J. Nick Koston
b0a4140b4d Convert sensorpush to use entry.runtime_data (#122315) 2024-07-21 09:11:18 -05:00
J. Nick Koston
30373a668c Migrate harmony to use entry.runtime_data (#122312) 2024-07-21 09:06:51 -05:00
J. Nick Koston
272f0bc21c Migrate oncue to use entry.runtime_data (#122307) 2024-07-21 08:19:58 -05:00
J. Nick Koston
7f852d0f73 Update bthome to use entry.runtime_data (#122304) 2024-07-21 08:19:46 -05:00
J. Nick Koston
8994c18f73 Update xiaomi-ble to use entry.runtime_data (#122306) 2024-07-21 08:19:33 -05:00
Joost Lekkerkerker
874b1ae873 Add sensor platform to Mealie (#122280)
* Bump aiomealie to 0.7.0

* Add sensor platform to Mealie

* Fix
2024-07-21 14:59:22 +02:00
Joost Lekkerkerker
7f82fb8cb8 Bump aiomealie to 0.8.0 (#122295)
* Bump aiomealie to 0.8.0

* Bump aiomealie to 0.8.0
2024-07-21 14:52:18 +02:00
J. Nick Koston
a8cbfe5159 Make TemplateStateBase.entity_id a cached_property (#122279) 2024-07-21 07:49:59 -05:00
Marcel Vriend
0ab1ccc5ae Fix to prevent Azure Data Explorer JSON serialization from failing (#122300) 2024-07-21 14:08:58 +02:00
Robert Svensson
48661054d9 Improve fixture usage for sensor based deCONZ tests (#122297) 2024-07-21 13:56:16 +02:00
Jan Bouwhuis
87e377cf84 Ensure mqtt subscriptions are in a set (#122201) 2024-07-21 12:36:06 +02:00
Arie Catsman
8da630f8c6 Improve sensor test coverage for enphase_envoy (#122229)
* Improve sensor platform test COV for enphase_envoy

* Use async_fire_time_changed to trigger next data update in enphase_envoy test
2024-07-21 12:26:32 +02:00
Louis Christ
f629364dc4 Use pyblu library in bluesound (#117257)
* Integrate pypi libraray: pyblu

* Raise PlatformNotReady if _sync_status is not available yet

* Revert "Raise PlatformNotReady if _sync_status is not available yet"

This reverts commit a649a6bccd00cf16f80e40dc169ca8797ed3b6b2.

* Replace 'async with timeout' with parameter in library

* Set timeout back to 10 seconds

* ruff fixes

* Update homeassistant/components/bluesound/media_player.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-21 12:24:54 +02:00
ilan
fcca475e36 Add sensor platform to MadVR (#121617)
* feat: add sensors

* feat: add tests for sensors

* feat: add options flow

* feat: add tests for options flow

* fix: remove options flow

* fix: remove names and mac sensor, add incoming signal type

* feat: add enum types to supported sensors

* fix: consolidate tests into snapshot

* fix: use consts

* fix: update names and use snapshot platform

* fix: fix test name for new translations

* fix: comment

* fix: improve sensor names

* fix: address comments

* feat: disable uncommon sensors by default

* fix: update sensors

* fix: revert config_flow change
2024-07-21 08:43:52 +02:00
Sid
5075f0aac8 Bump ruff to 0.5.4 (#122289) 2024-07-21 08:42:06 +02:00
Joost Lekkerkerker
537a76d049 Add model id to airgradient (#122271) 2024-07-21 08:41:42 +02:00
J. Nick Koston
b3698a59e1 Bump uiprotect to 5.4.0 (#122282) 2024-07-20 17:24:16 -05:00
Joost Lekkerkerker
9b9db86f1c Bump aiomealie to 0.7.0 (#122278) 2024-07-21 00:00:31 +02:00
ilan
1e28ae49f9 Bump py-madvr to 1.6.29 (#122275)
chore: bump version
2024-07-20 22:44:14 +02:00
Joost Lekkerkerker
24b6f71f94 Bump twitchAPI to 4.2.1 (#122269) 2024-07-20 21:29:51 +02:00
Joost Lekkerkerker
ae4360b0e5 Bump airgradient to 0.7.0 (#122268) 2024-07-20 21:26:00 +02:00
Marc Mueller
769d7214a3 Improve tests.common typing (#122257) 2024-07-20 17:34:43 +02:00
Marc Mueller
90e7d82049 Use correct enum in UnitSystem tests (#122256) 2024-07-20 17:33:48 +02:00
Marc Mueller
5e8b022246 Improve shopping_list test typing (#122255) 2024-07-20 16:46:39 +02:00
J. Nick Koston
43aeaf7a9b Upgrade CI to use ubuntu 24.04 (#122254) 2024-07-20 09:43:10 -05:00
Brian Rogers
63b0feeae7 Add calendar for Rachio smart hose timer (#120030) 2024-07-20 09:38:51 -05:00
Brett Adams
0f079454bb Add device tracker to Tesla Fleet (#122222) 2024-07-20 14:37:57 +02:00
Marc Mueller
6be4ef8a1f Improve contextmanager typing (#122250) 2024-07-20 14:09:37 +02:00
Marc Mueller
5fd3b929f4 Update types packages (#122245) 2024-07-20 14:09:10 +02:00
Marc Mueller
55abbc51a4 Update pip-licenses to 4.5.1 (#122240) 2024-07-20 13:52:55 +02:00
Marc Mueller
651fb95010 Update uv to 0.2.27 (#122246) 2024-07-20 13:24:21 +02:00
Marc Mueller
c6713edc8b Update pytest-unordered to 0.6.1 (#122243) 2024-07-20 13:24:01 +02:00
Marc Mueller
ee49c57e95 Update pytest to 8.2.2 (#122244) 2024-07-20 13:16:36 +02:00
Erik Montnemery
2f47312eeb Fix recorder setup hanging if non live schema migration fails (#122242) 2024-07-20 13:10:23 +02:00
Marc Mueller
293ad99dae Update pytest-asyncio to 0.23.8 (#122241) 2024-07-20 13:10:09 +02:00
Marc Mueller
0fe7aa1a43 Update bcrypt to 4.1.3 (#122236) 2024-07-20 13:06:22 +02:00
Marc Mueller
b54b08479d Update pipdeptree to 2.23.1 (#122239) 2024-07-20 12:59:44 +02:00
Marc Mueller
ab2f38216d Update coverage to 7.6.0 (#122238) 2024-07-20 12:59:08 +02:00
Marc Mueller
13da20ddf4 Update Pillow to 10.4.0 (#122237) 2024-07-20 12:58:49 +02:00
Erik Montnemery
436a38c1d2 Revert "Fix recorder setup hanging if non live schema migration fails" (#122232) 2024-07-20 12:29:08 +02:00
Brett Adams
2b93de1348 Add binary sensor to Tesla Fleet (#122225) 2024-07-20 11:28:30 +02:00
Robert Svensson
ecffae0b4f Improve fixture usage for light based deCONZ tests (#122209) 2024-07-20 11:25:00 +02:00
Brett Adams
6f9e39cd3f Add diagnostics to Tesla Fleet (#122223) 2024-07-20 11:22:15 +02:00
Arie Catsman
221480add1 Improve switch platform test COV for enphase_envoy (#122227) 2024-07-20 11:20:46 +02:00
Erik Montnemery
153b69c971 Fix recorder setup hanging if non live schema migration fails (#122207) 2024-07-20 11:17:40 +02:00
Pete Sage
d1d2ce1270 Sonos tests snapshot and restore services (#122198) 2024-07-20 11:16:48 +02:00
Marc Mueller
a6068dcdf2 Update import locations in tests (#122216) 2024-07-20 11:16:04 +02:00
Marc Mueller
0637e342f6 Fix ConfigFlowResult annotations in tests (#122215) 2024-07-20 11:13:13 +02:00
Marc Mueller
e9f5c4188e Fix incompatible signature overwrite async_turn_on + off (#122208) 2024-07-20 11:12:41 +02:00
Marc Mueller
24b12bc509 Improve HA snapshot serializer typing (#122218) 2024-07-20 11:12:02 +02:00
Marc Mueller
f0b9a806d1 Fix missing type[..] annotation in tests (#122217) 2024-07-20 11:11:16 +02:00
Marc Mueller
f8c4ffc060 Update freezegun to 1.5.1 (#122219) 2024-07-20 11:10:46 +02:00
Marc Mueller
768d20c645 Fix recorder datetime annotations (#122214) 2024-07-20 11:10:25 +02:00
Erik Montnemery
a0332d049b Fix flaky recorder test (#122205) 2024-07-20 11:09:52 +02:00
Álvaro Fernández Rojas
4ee2c445d1 Update home_connect to v0.8.0 (#121788)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-20 05:28:04 +02:00
Marc Mueller
458c81cdae Improve vizio tests typing (#122213) 2024-07-20 02:50:12 +02:00
Marc Mueller
8e024ad20f Fix invalid Any annotations (#122212) 2024-07-20 02:46:27 +02:00
Mr. Bubbles
a46fffd550 Fix wrong deprecation date in Habitica integration (#122206)
Fix wrong deprecation date
2024-07-20 00:40:29 +02:00
G Johansson
288faf48e7 Add config flow to Wake on LAN (#121605) 2024-07-19 21:20:43 +02:00
HarvsG
7e0970e917 Log timeouts for assist_pipeline end of speech detection (#122182)
* log timeouts

* import logger the right way
2024-07-19 13:43:38 -05:00
Sean Chen
e6e748ae0a Add timestamp sensor for observation (#121752) 2024-07-19 19:50:38 +02:00
dougiteixeira
75b1700ed3 Move constants to const.py in generic Thermostat (#120789) 2024-07-19 19:49:11 +02:00
Franck Nijhof
267dfac737 2024.7.3 (#122194) 2024-07-19 19:38:08 +02:00
Steven B.
099110767a Add tests for ring camera platform for 100% coverage (#122197) 2024-07-19 19:35:44 +02:00
Pierre Mavro
cafff3eddf Add PrusaLink nozzle and mmu support (#120436)
Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-07-19 19:15:42 +02:00
Steven Looman
c0732fbb1d Add options flow for force_poll setting in upnp (#120843) 2024-07-19 19:02:28 +02:00
Stefan Agner
7b5b6c7b85 Tolerate integration removed device (#120722) 2024-07-19 19:00:31 +02:00
Franck Nijhof
a08ffdc8d3 Bump version to 2024.7.3 2024-07-19 18:50:21 +02:00
Mr. Bubbles
1ef4332af6 Fix KeyError in config flow of Bring integration (#122136) 2024-07-19 18:49:45 +02:00
Marc Mueller
d0d2fd7918 Update yt-dlp to 2024.07.16 (#122124) 2024-07-19 18:49:41 +02:00
Steven B.
c518c4756b Bump tplink dependency python-kasa to 0.7.0.5 (#122119) 2024-07-19 18:49:38 +02:00
Shay Levy
a3a99cc631 Prevent connecting to a Shelly device that is already connected (#122105) 2024-07-19 18:49:35 +02:00
Steven B.
977a55e3b8 Update tplink device config during reauth flow (#122089) 2024-07-19 18:49:31 +02:00
Harry Martland
002db3c3e9 Fix hive not updating when boosting (#122042)
* fixes issue where hive does not update when boosting

* formats files
2024-07-19 18:49:28 +02:00
Robert Svensson
d9e44bab69 Mark UniFi power cycle button as unavailable if PoE is not enabled on port (#122035) 2024-07-19 18:49:25 +02:00
G Johansson
4b93fc61b5 Bump python-holidays to 0.53 (#122021) 2024-07-19 18:49:21 +02:00
J. Nick Koston
214b5efd72 Narrow sqlite database corruption check to ensure disk image is malformed (#121947)
* Narrow sqlite database corruption check to ensure disk image is malformed

The database corruption check would also replace the database when it
locked externally instead of only when its malformed.

This was discovered in https://github.com/home-assistant/core/issues/121909#issuecomment-2227409124
when a user did a manual index creation while HA was online

* tweak

* tweak

* fix

* fix
2024-07-19 18:49:16 +02:00
Maciej Bieniek
9bd822d693 Fix configuration_url for Shelly device using IPv6 (#121939)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-19 18:48:32 +02:00
Tomasz Gorochowik
bf89eaae25 Fix enigma2 mute (#121928) 2024-07-19 18:42:44 +02:00
Scott K Logan
f9b359ae30 Fix rainforest_raven closing device due to timeout (#121905) 2024-07-19 18:42:41 +02:00
mvn23
24ed003471 Fix opentherm_gw availability (#121892) 2024-07-19 18:42:38 +02:00
J. Nick Koston
a835750252 Log add/remove index complete at the same level as when it starts (#121852) 2024-07-19 18:42:35 +02:00
Avi Miller
ad07bdb62b Bump aiolifx to 1.0.5 (#121824) 2024-07-19 18:42:32 +02:00
Avi Miller
41104324ec Bump aiolifx to 1.0.4 (#121267) 2024-07-19 18:42:28 +02:00
ollo69
e9344ae101 Bump PySwitchbot to 0.48.1 (#121804) 2024-07-19 18:40:25 +02:00
starkillerOG
56a9167ed2 Reolink media second lens (#121800)
DUO lens camera distinguish between lenses for media playback
2024-07-19 18:40:22 +02:00
Jan Bouwhuis
e0b90c4b36 Fix alexa does to check current_position correctly when handling cover range changes (#121798) 2024-07-19 18:40:19 +02:00
Jan-Philipp Benecke
976902f22c Add missing translations to Roborock (#121796) 2024-07-19 18:40:16 +02:00
Steven B
0f69c58ba9 Bump python-kasa to 0.7.0.4 (#121791) 2024-07-19 18:40:13 +02:00
Glenn Waters
1e6c96c6eb Use async_connect in newly bumped 0.5.8 UPB library (#121789) 2024-07-19 18:40:09 +02:00
J. Nick Koston
63b14d14c1 Add some missing tplink ouis (#121785) 2024-07-19 18:40:06 +02:00
Josef Zweck
6aaaba6419 Bump pytedee_async to 0.2.20 (#121783) 2024-07-19 18:40:03 +02:00
Allen Porter
3b8e736fe3 Pin mashumaro version >= 3.13.1 for python 3.12.4 compatibility. (#121782)
Pin mashumaro version for python 3.12.4 compatibility.
2024-07-19 18:40:00 +02:00
tronikos
68841b3d8a Bump opower to 0.5.2 to fix 403 forbidden errors for users with multiple accounts (#121762) 2024-07-19 18:39:56 +02:00
Abílio Costa
3d8afe7cb8 Update Idasen Desk library to 2.6.2 (#121729) 2024-07-19 18:29:45 +02:00
Robert Svensson
8595242142 Fix bad access to UniFi runtime_data when not assigned (#121725)
* Fix bad access to runtime_data when not assigned

* Fix review comment

* Clean up if statements
2024-07-19 18:29:42 +02:00
Joost Lekkerkerker
ebe7bc0686 Bump knocki to 0.3.1 (#121717) 2024-07-19 18:29:39 +02:00
J. Nick Koston
4ab180f016 Fix update happening too early in unifiprotect (#121714) 2024-07-19 18:29:36 +02:00
Mr. Bubbles
372649069e Bump pyloadapi to v1.3.2 (#121709) 2024-07-19 18:29:33 +02:00
Joost Lekkerkerker
98df46f3ea Bump knocki to 0.3.0 (#121704) 2024-07-19 18:29:30 +02:00
Steven B
269fb23527 Fix tplink bug changing color temp on bulbs with light effects (#121696) 2024-07-19 18:29:27 +02:00
Sid
ad5cbf0da6 Allow enigma2 devices to use different source bouquets (#121686) 2024-07-19 18:29:24 +02:00
Lucas Mindêllo de Andrade
10cdf64f90 Bump sunweg 3.0.2 (#121684) 2024-07-19 18:29:21 +02:00
Tomek Porozynski
ec8e639804 Update Supla async_set_cover_position to use "REVEAL_PARTIALLY" (#121663) 2024-07-19 18:29:17 +02:00
Jan Stienstra
37f37f7287 Retain Jellyfin config flow input on connection issue (#121618) 2024-07-19 18:29:13 +02:00
Mr. Bubbles
ef7d68bfd6 Fix reauth error and exception in ista EcoTrend integration (#121482) 2024-07-19 18:29:08 +02:00
Jan Rieger
12ec66c2c2 Avoid blocking I/O in gpsd (#122176) 2024-07-19 18:25:07 +02:00
Mr. Bubbles
72d37036b9 Remove filtering of user data in Habitica integration (#121759)
Remove context-based userFields filtering
2024-07-19 17:56:52 +02:00
Sid
e029dad0eb Add data update coordinator to enigma2 (#122046)
* Add data update coordinator to enigma2

* Apply suggestions from code review

Co-authored-by: Robert Resch <robert@resch.dev>

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-19 17:51:34 +02:00
G Johansson
0cde518a89 Allow to add optional holiday categories in workday (#121396)
* Allow to add optional holiday categories in workday

* Add tests

* Fix coverage
2024-07-19 17:49:27 +02:00
Christopher Fenner
dab66990c0 Ignore E3_TCU41_x04 gateway device in ViCare (#122179)
skip gateway device
2024-07-19 11:40:17 -04:00
Steven Looman
d3029af888 Address post merge review changes in upnp (#122189)
Post merge review change
2024-07-19 11:38:38 -04:00
Marcel Vriend
419bf0165a Bump azure-kusto dependencies to 4.5.1 (#121805) 2024-07-19 17:33:02 +02:00
Shai Ungar
978ee918cb Use new 17track api library (#121910) 2024-07-19 17:09:50 +02:00
Marc Mueller
8bca9a3449 Fix return type annotations in tests (#122184) 2024-07-19 16:44:03 +02:00
Malte Franken
87ecf5d85e Bump georss-qld-bushfire-alert-client to 0.8 (#122185) 2024-07-19 16:12:26 +02:00
Marc Mueller
2f8dfb424b Use Generator as return type for fixtures (#122183) 2024-07-19 14:55:23 +02:00
Marc Mueller
53c85a5c9b Fix test fixture annotations (#122180) 2024-07-19 14:46:30 +02:00
Marc Mueller
281c66b6c2 Fix invalid dict annotations in tests (#122178) 2024-07-19 14:45:42 +02:00
Bram Kragten
6788c43775 Add static routes for frontend modern and legacy service workers (#120488) (#122174)
* Bump frontend to 20240719.0

* restore #120488
2024-07-19 14:40:50 +02:00
Josef Zweck
f006716173 Add async_setup method to DataUpdateCoordinator (#116677)
* init

* Update homeassistant/helpers/update_coordinator.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* fix typo, ruff

* consistency with rest, test

* pylint suppression

* ruff

* ruff

* switch to one test

* add last exc

* add tests for auth & Entry Errors

* move exceptions to correct test

* Update update_coordinator.py

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* test setup call

* simplify

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-07-19 14:24:25 +02:00
dougiteixeira
de5b5f6d36 Add string for value template description in switch Template (#121865)
Add string for value template descrition in switch Template
2024-07-19 13:58:22 +02:00
Harry Martland
e9ea90dc82 Fix hive not updating when boosting (#122042)
* fixes issue where hive does not update when boosting

* formats files
2024-07-19 13:47:28 +02:00
Marc Mueller
0be68dcd7f Fix deconz conftest typing (#122173) 2024-07-19 13:10:38 +02:00
Marc Mueller
c92d9dcb74 Use TypeVar defaults for Generator (#122170) 2024-07-19 13:06:45 +02:00
Marc Mueller
2b486c3bd5 Replace unnecessary typing_extensions imports for Generator (#122169) 2024-07-19 12:56:27 +02:00
Bram Kragten
c28a138dfe Revert "Add static routes for frontend modern and legacy service workers" (#122172) 2024-07-19 12:55:40 +02:00
Mr. Bubbles
3ddcffb7b7 Fix reauth error and exception in ista EcoTrend integration (#121482) 2024-07-19 12:26:40 +02:00
Matrix
8cb7e9785f Add YoLink YS8017 support (#122064) 2024-07-19 12:20:30 +02:00
Jan Bouwhuis
16434b5306 Add command_template option to mqtt switch schema (#122103) 2024-07-19 12:10:49 +02:00
Paolo Burgio
c1c5cff993 Add integration for iotty Smart Home (#103073)
* Initial import 0.0.2

* Fixes to URL, and removed commits

* Initial import 0.0.2

* Fixes to URL, and removed commits

* Added first test for iotty

* First release

* Reviewers request #1
- Removed clutter
- Added support for new naming convention for IottySmartSwitch entity

* Removed commmented code

* Some modifications

* Modified REST EP for iotty CloudApi

* Initial import 0.0.2

* Fixes to URL, and removed commits

* Added first test for iotty

* First release

* Rebased and resolved conflicts

* Reviewers request #1
- Removed clutter
- Added support for new naming convention for IottySmartSwitch entity

* Removed commmented code

* Some modifications

* Modified REST EP for iotty CloudApi

* Removed empty entries in manifest.json

* Added test_config_flow

* Fix as requested by @edenhaus

* Added test_init

* Removed comments, added one assert

* Added TEST_CONFIG_FLOW

* Added test for STORE_ENTITY

* Increased code coverage

* Full coverage for api.py

* Added tests for switch component

* Converted INFO logs onto DEBUG logs

* Removed .gitignore from commits

* Modifications to SWITCH.PY

* Initial import 0.0.2

* Fixes to URL, and removed commits

* Added first test for iotty

* First release

* Rebased and resolved conflicts

* Fixed conflicts

* Reviewers request #1
- Removed clutter
- Added support for new naming convention for IottySmartSwitch entity

* Removed commmented code

* Some modifications

* Modified REST EP for iotty CloudApi

* Removed empty entries in manifest.json

* Added test_config_flow

* Some modifications

* Fix as requested by @edenhaus

* Added test_init

* Removed comments, added one assert

* Added TEST_CONFIG_FLOW

* Added test for STORE_ENTITY

* Increased code coverage

* Full coverage for api.py

* Added tests for switch component

* Converted INFO logs onto DEBUG logs

* Removed .gitignore from commits

* Modifications to SWITCH.PY

* Fixed tests for SWITCH

* First working implementation of Coordinator

* Increased code coverage

* Full code coverage

* Missing a line in testing

* Update homeassistant/components/iotty/__init__.py

Co-authored-by: Robert Resch <robert@resch.dev>

* Update homeassistant/components/iotty/__init__.py

Co-authored-by: Robert Resch <robert@resch.dev>

* Modified coordinator as per request by edenhaus

* use coordinator entities for switches

* move platforms to constants

* fix whitespace with ruff-format

* correct iotty entry in application_credentials list

* minor style improvements

* refactor function name

* handle new and deleted devices

* improve code for adding devices after first initialization

* use typed config entry instead of adding known devices to hass.data

* improve iotty entity removal

* test listeners update cycle

* handle iotty as devices and not only as entities

* fix test typing for mock config entry

* test with fewer mocks for an integration test style opposed to the previous unit test style

* remove useless tests and add more integration style tests

* check if device_to_remove is None

* integration style tests for turning switches on and off

* remove redundant coordinator tests

* check device status after issuing command in tests

* remove unused fixtures

* add strict typing for iotty

* additional asserts and named snapshots in tests

* fix mypy issues after enabling strict typing

* upgrade iottycloud version to 0.1.3

* move coordinator to runtime_data

* remove entity name

* fix typing issues

* coding style fixes

* improve tests coding style and assertion targets

* test edge cases when apis are not working

* improve tests comments and assertions

---------

Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Shapour Nemati <shapour.nemati@iotty.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: shapournemati-iotty <130070037+shapournemati-iotty@users.noreply.github.com>
2024-07-19 12:10:39 +02:00
Sid
4620a54582 Bump Ruff to 0.5.3 (#122167) 2024-07-19 12:06:53 +02:00
Arie Catsman
0b691f9393 Improve number platform test COV for enphase_envoy (#122163)
* Improve number platform COV for enphase_envoy

* remove use of rand in pytest_number of enphase_envoy
2024-07-19 11:47:40 +02:00
Franck Nijhof
bcf4c73f32 Migrate Wiz to config entry runtime data (#122091) 2024-07-19 11:36:59 +02:00
G Johansson
ca4c617d4b Add TURN_OFF/TURN_ON feature flags for fan (#121447) 2024-07-19 11:35:24 +02:00
Åke Strandberg
172778053c Add select platform to myuplink (#118661) 2024-07-19 11:29:58 +02:00
G Johansson
f5f9480b5a Deprecate simulated integration (#122166) 2024-07-19 11:26:05 +02:00
Steve Repsher
e50802aca3 Add static routes for frontend modern and legacy service workers (#120488) 2024-07-19 10:53:37 +02:00
Jeef
de18be235d Add Sensors to Weatherflow Cloud (#111651)
* continue

* Rebase dev

* signle function to generate attr_entity info

* rewrite icon determination as an if block

* handling PR

* Removing wind sensors for now - separate future PR

* ruff

* Update coordinator.py

Thought i already did this

* Update sensor.py

* Update icons.json

* Update sensor.py

* Update homeassistant/components/weatherflow_cloud/entity.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* working on a unified entity

* working on a unified entity

* sensor refactor

* addressing entity comment

* Update homeassistant/components/weatherflow_cloud/entity.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/weatherflow_cloud/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* doc

* pr comments again

* fixing PR

* fixing PR

* applying entity class in sensor

* Update homeassistant/components/weatherflow_cloud/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Cleaning up weather.py

* station id cleanup for weather class

* rewrite adding sensors the correct way

* Adding snapshot testing

* snapshot update

* added total class

* updated snapshots

* minor tweak

* snapshot away

* adding more coverage

* switch back to total

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-19 10:30:01 +02:00
Kristof Mariën
7810dc213a Load correct Renson fan speed when breeze level is set (#121960)
Renson: Load correct fan speed when breeze level is set
2024-07-19 10:17:45 +02:00
Brent Petit
ba5e3ca44b Remove use of deprecated set_aux_heat call from climate _async_reproduce_states (#121873) 2024-07-19 10:14:12 +02:00
rrooggiieerr
e2c6b7915e Buienradar textual improvements (#122095) 2024-07-19 10:12:58 +02:00
Jan Bouwhuis
5b4dd07189 Deprecate topic_template and payload_template for mqtt publish action (#122098)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-19 10:10:38 +02:00
G Johansson
362c772d67 Add config flow to worldclock (#121775) 2024-07-19 10:08:14 +02:00
Matrix
339b5117c5 Add default value for YoLink thermostat (#122114) 2024-07-19 10:05:24 +02:00
Sid
c8a6c6a5c1 Add fallback for webmin systems without MAC address (#113261) 2024-07-19 10:01:46 +02:00
Austin Mroczek
53870617e8 Add binary sensors to TotalConnect (#121888)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-19 09:35:54 +02:00
Mr. Bubbles
24144c5855 Fix KeyError in config flow of Bring integration (#122136) 2024-07-19 09:11:29 +02:00
ashalita
978de5b8b0 Upgrade pycoolmasternet-async to 0.2.0 (#122139) 2024-07-19 09:10:47 +02:00
Dave T
1e59ce2909 Update deprecation warning for data_entry_flow (#122154) 2024-07-19 09:08:45 +02:00
J. Nick Koston
fb5443fe2f Add missing coverage for doorbird config_flow (#122146) 2024-07-19 09:08:43 +02:00
J. Nick Koston
dae23a8153 Add coverage for doorbird button platform (#122145) 2024-07-19 09:07:58 +02:00
Brett Adams
a2c2488c8b Add Tesla Fleet integration (#122019)
* Add Tesla Fleet

* Remove debug

* Improvements

* Fix refresh and stage tests

* Working oauth flow test

* Config Flow tests

* Fixes

* fixes

* Remove comment

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

* Remove TYPE_CHECKING

* Add more tests

* More tests

* More tests

* revert teslemetry change

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-07-19 09:05:27 +02:00
Duco Sebel
474e8b7a43 Implement model_id in HomeWizard (#122130)
* Add model_id and use hardcoded model names for HomeWizard

* Update names
2024-07-19 08:22:06 +02:00
b3nj1
243c16d194 Opower: add date sensors (#122138)
opower: Add diagnostic date sensors
2024-07-18 23:07:09 -07:00
J. Nick Koston
a0a5f640dc Add some basic tests for doorbird (#122135)
* basic tests

* basic tests

* basic tests

* basic tests

* cover

* cover

* Update tests/components/doorbird/test_init.py
2024-07-18 22:36:54 +02:00
Shay Levy
d2cc25cee6 Prevent connecting to a Shelly device that is already connected (#122105) 2024-07-18 15:27:03 -05:00
Steven B.
cf0aef079b Bump tplink dependency python-kasa to 0.7.0.5 (#122119) 2024-07-18 15:20:10 -05:00
Arie Catsman
6d725b5e34 Extend sensor platform tests for enphase_envoy (#122132)
* EnphaseTestSensor

* refactor chain use in sensor test of enphase_envoy
2024-07-18 21:50:50 +02:00
Marcel van der Veldt
3d3bc1cab1 Revert "Add mac address as connection for matter device (#121257)" (#122133) 2024-07-18 17:38:30 +02:00
Maciej Bieniek
bf0e5baa76 Add support for Shelly enum virtual component (#121997)
* Support enum virtual component

* Add tests

* Cleaning

* Improve test for select

* Use values

* Update tests

* Use the option title for sensor

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-18 17:55:14 +03:00
MatthewFlamm
f479b64ff9 Add forecast service call for extra attributes for nws (#117254)
* add service call

* fix snapshots in test

* add tests

* fix no data service;add test

* remove unreachable code

* use only extra attributes+context attributes

* detailed descr. only in twice daily; add dewpoint

* fix import from merge

* Remove dewpoint from twice daily.

nws recently removed it

* cleanup unused snapshots

* remove dewpoint; use short_forecast

* return [] for forecasts instead of None

* Use str for short_description

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-07-18 16:26:07 +02:00
Marc Mueller
ec937781ca Update pylint to 3.2.5 (#122126)
* Update pylint to 3.2.5

* Remove unused pylint disable comment
2024-07-18 15:54:54 +02:00
Arie Catsman
37426f7366 Add number platform test to enphase_envoy (#122117)
* Add number platform test to enphase_envoy

* Use ATTR_VALUE in enphase_envoy number test
2024-07-18 15:42:57 +02:00
Arie Catsman
d983e3b25d Add select platform test to enphase_envoy (#122127) 2024-07-18 14:20:05 +02:00
Marc Mueller
58d4e72996 Update yt-dlp to 2024.07.16 (#122124) 2024-07-18 14:07:31 +02:00
Josef Zweck
02bb1ec8e7 Add reconfigure step to tedee (#122008)
* Add reconfigure to tedee

* assert data update

* add rconfigure_confirm to strings

* Update integration name

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-07-18 13:00:35 +02:00
Arie Catsman
f551130d65 Add binary_sensor platform test to enphase_envoy (#122120) 2024-07-18 12:45:03 +02:00
Joakim Plate
42610f4e09 Add diagnostic information to DSMR (#122041)
* Add diagnostic information to DSMR

Switches to runtime_data to get access
to the last telegram received.

* Correct import of domain

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-07-18 11:57:11 +02:00
Franck Nijhof
41d75e159b Update wled to 0.19.2 (#122101)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-18 10:09:12 +02:00
Brett Adams
b06d3fe3b7 Platinum quality for Tessie (#121962) 2024-07-18 09:38:26 +02:00
J. Nick Koston
e4ef4b81ba Skip poll of HKC accessory if reachable and chars are watchable (#116200) 2024-07-18 08:36:45 +02:00
Erik Montnemery
0927dd9090 Raise repair issues when scripts can't be set up (#122087) 2024-07-18 08:34:41 +02:00
J. Nick Koston
e2276458ed Fix homekit_controller tests to avoid global aid generation (#119852) 2024-07-17 19:10:02 -05:00
Paulus Schoutsen
454ca0ce95 Add timer support to mobile app (#121469)
* Add timer support to mobile app

* Fix tests

* Make it time-sensitive
2024-07-17 18:40:05 -05:00
J. Nick Koston
4ae6e38800 Bump govee-ble to 0.38.0 (#122099) 2024-07-17 22:05:27 +02:00
Steven B.
55cee89392 Update tplink device config during reauth flow (#122089) 2024-07-17 14:07:53 -05:00
Michael Hansen
fa0a5451b9 Split up tests to avoid CI timeouts (#122096) 2024-07-17 20:32:26 +02:00
Aidan Timson
52b90621c7 System Bridge coordinator and connector refactor (#114896)
* Update systembridgeconnector to 5.0.0.dev2

* Refactor

* Move out of single use method

* Update systembridgeconnector to 4.1.0.dev0 and systembridgemodels to 4.1.0

* Refactor WebSocket connection handling in SystemBridgeDataUpdateCoordinator

* Remove unnessasary fluff

* Update system_bridge requirements to version 4.1.0.dev1

* Set systembridgeconnector to 4.1.0

* Fix config flow tests

We'll make this better later

* Add missing tests for media source

* Update config flow tests

* Add missing check

* Refactor WebSocket connection handling in SystemBridgeDataUpdateCoordinator

* Move inside try

* Move log

* Cleanup log

* Fix disconnection update

* Set unregistered on disconnect

* Remove bool, use listener task

* Fix eager start

* == -> is

* Reduce errors

* Update test
2024-07-17 18:39:24 +02:00
Jan Bouwhuis
843fae825f Revert "Remove stale template_topic code for mqtt publish service" (#121758)
Revert "Remove stale `template_topic` code for mqtt publish service (#121604)"

This reverts commit 5b25c24539.
2024-07-17 17:56:34 +02:00
Franck Nijhof
e6dec7c856 Migrate HomeWizard to config entry runtime data (#122088) 2024-07-17 10:20:31 -05:00
Franck Nijhof
7a4e40ade0 Remove Markdown from service action descriptions (#122077) 2024-07-17 10:20:19 -05:00
Robert Resch
10c084c6e0 Add created_at/modified_at to label registry (#122078) 2024-07-17 16:36:14 +02:00
Franck Nijhof
8ae4c4445d Clean up old migration in HomeWizard (#122086) 2024-07-17 16:18:21 +02:00
Erik Montnemery
07ceafed62 Enable strict typing on script integration (#122079) 2024-07-17 15:11:06 +02:00
Arie Catsman
1e8da192b6 Add switch platform test to enphase_envoy (#122068)
* Add switch platform test to enphase_envoy

* review feedback Use HA SWITCH_DOMAIN

* Only use SWITCH_DOMAIN for service call
2024-07-17 14:51:02 +02:00
Brett Adams
57e233d30f Bump tesla-fleet-api (#122073) 2024-07-17 13:59:52 +02:00
Erik Montnemery
efb7bede40 Enable strict typing on script helper (#122075) 2024-07-17 13:51:59 +02:00
Robert Resch
a0f91d27a3 Add created_at/modified_at to floor registry (#122071) 2024-07-17 13:18:26 +02:00
Erik Montnemery
385f5be7e8 Remove dead code from script helper (#122074) 2024-07-17 13:16:57 +02:00
Guido Schmitz
7bf4e4779c Use model_id in devolo_home_control (#122066) 2024-07-17 13:09:56 +02:00
Erik Montnemery
6921e053e4 Move recorder data migration implementation to migrators (#122045) 2024-07-17 10:59:58 +02:00
ashionky
7f76de2c7a Bump refoss to v1.2.4 (#122063)
* 1.2.2

* 1.2.3

* 1.2.4

* 1.2.4
2024-07-17 10:29:41 +02:00
Robert Resch
35f84f32d6 Add created_at/modified_at for area registry (#122014) 2024-07-17 09:54:06 +02:00
Erik Montnemery
054242ff0f Require specifying extended address in otbr WS API calls (#108282)
Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-07-17 09:04:54 +02:00
Maciej Bieniek
14ec7e5f76 Set DeviceInfo.model_id in Shelly integration (#122040) 2024-07-17 09:04:40 +02:00
Stefan Agner
0aea9b0edb Read color temperature range from Matter device if supported (#122054) 2024-07-17 01:25:28 +02:00
Franck Nijhof
1b6f880a27 Add model_id to Tuya devices, mark services correctly (#122043) 2024-07-17 00:09:18 +02:00
Stefan Agner
d0c1632976 Drop spurious log messages in Matter bridge device removal (#122036)
Don't log a message when a device is removed from the Matter bridge.
2024-07-16 23:55:33 +02:00
Franck Nijhof
dc9b25af1c Change model to model_id in LaMetric (#122044) 2024-07-16 23:48:34 +02:00
Guido Schmitz
0ad2398bda Use model_id in devolo_home_network (#122048) 2024-07-16 22:39:00 +02:00
Michael
89198b0512 Fix flakey tibber tests (#121993) 2024-07-16 22:36:31 +02:00
Joakim Plate
8d290dd9d6 Convert arcam_fmj to runtime data (#122047) 2024-07-16 22:35:04 +02:00
Erik Montnemery
9970b7eece Refactor recorder data migration (#121009)
* Refactor recorder data migration

* Fix stale docstrings

* Don't store a session object in BaseRunTimeMigration instances

* Simplify logic in EntityIDMigration.migration_done

* Fix tests
2024-07-16 21:50:19 +02:00
Arie Catsman
baa97ca981 Add fixture files to Enphase_Envoy tests (#121864)
* Add fixture files to Enphase_Envoy tests

* optimize fixtures in enphase_envoy conftest

* combine setup_enphase_envoy and mock_envoy in enphase_envoy tests

* Revert "combine setup_enphase_envoy and mock_envoy in enphase_envoy tests"

This reverts commit ec072c4726.

* Rework enphase tests

* Rework enphase tests

* reset diagnostics test snapshot

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-07-16 21:14:46 +02:00
Erik Montnemery
a22e12dac9 Refactor function recorder.migration._apply_update (#122023)
* Refactor function recorder.migration._apply_update

* Remove _SchemaVersionMigrators dict
2024-07-16 20:28:03 +02:00
Erik Montnemery
d8440e809a Avoid mutating database schema definitions during schema migration (#122012)
* Avoid mutating database schema definitions during schema migration

* Adjust test when using mysql

* Address review comment
2024-07-16 20:27:49 +02:00
J. Nick Koston
c860b6cd4b Bump govee-ble to 0.37.0 (#122037) 2024-07-16 13:17:15 -05:00
Robert Svensson
aeabe3ab95 Mark UniFi power cycle button as unavailable if PoE is not enabled on port (#122035) 2024-07-16 20:16:36 +02:00
J. Nick Koston
4bcdb551d4 Bump govee-ble to 0.36.1 (#122030)
changelog: https://github.com/Bluetooth-Devices/govee-ble/compare/v0.34.0...v0.36.1

more prep to add the event platform
2024-07-16 17:29:43 +02:00
Joost Lekkerkerker
b122c2932a Add JakeBosh as Knocki codeowner (#122026) 2024-07-16 15:54:40 +02:00
J. Nick Koston
8082808ec2 Bump govee-ble to 0.34.0 (#122028) 2024-07-16 15:47:58 +02:00
HarvsG
3a0b3a4589 Log tools sent to OpenAI (#122024) 2024-07-16 15:16:50 +02:00
Joost Lekkerkerker
f8ba4d41ba Add support for adding model_id in device info (#121989) 2024-07-16 15:12:25 +02:00
Erik Montnemery
336740dbfa Add recorder migration test starting with schema version 9 (#122011) 2024-07-16 15:12:23 +02:00
Erik Montnemery
ea29c2c4d4 Improve tests/patch_time.py (#122017) 2024-07-16 14:22:22 +02:00
Erik Montnemery
dbe68ca057 Minor adjustment of recorder migration (#122020) 2024-07-16 14:20:23 +02:00
G Johansson
62cc868150 Bump python-holidays to 0.53 (#122021) 2024-07-16 13:47:11 +02:00
Jan Bouwhuis
3304e18316 Bump incomfortclient to v0.6.3-1 (#122013) 2024-07-16 13:23:39 +02:00
Glenn Waters
6645932fb7 Fix for Environment Canada date being wrong after midnight (#121850)
* Use async_connect in newly bumped 0.5.8 UPB library.

* Fix tests.

* Fix date being wrong after midnight for Environment Canada

* Fix typing.

* Add test.

* Formatting.

* Remove tests until can be added properly.

* Add weather tests back.

* Fix tests

* Change of tactic for determining previous day's data.

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-07-16 11:57:37 +02:00
jan iversen
bc7d2d2195 Remove modbus codeowner, and downgrade to quality "No score" (#122010)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-16 11:26:44 +02:00
Joakim Plate
22d977acb0 Rename dsmr integration to be more generic (#121968) 2024-07-16 11:15:17 +02:00
Stefan Agner
234870538d Prevent removal of complete bridge when removing a device from Matter (#121987)
* Prevent removal of complete bridge when removing a device from Matter

Currently, when a device is removed from Matter, the complete bridge is
being removed. This might not be the user intention. Bridged devices
themselves can't be deleted really, as they are still part of the
bridge.

Ideally, this should be fixed in the UI (remove the Delete button in
this case). But as a workaround, we can prevent the removal of the
complete bridge by disallowing to remove the bridged device itself.

This also improves deleting when the bridge is already removed from
the Server through some other means: In this case, we delete all devices
at once.

* Update homeassistant/components/matter/__init__.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-07-16 10:19:55 +02:00
Franck Nijhof
2f0870a063 Adjust issue description in automations fix flow (#122007) 2024-07-16 09:27:54 +02:00
J. Nick Koston
2160f981c2 Convert mopeka to use entry.runtime_data (#121973) 2024-07-16 09:02:32 +02:00
J. Nick Koston
e01c605d04 Bump uiprotect to 5.3.0 (#122005) 2024-07-16 09:01:45 +02:00
Joost Lekkerkerker
d81f6fa8f2 Make filter a helper (#121994) 2024-07-16 08:47:46 +02:00
J. Nick Koston
d0233d01da Bump govee-ble to 0.33.0 (#122004) 2024-07-16 08:37:33 +02:00
Björn Ebbinghaus
2723ab3b27 Add mac address as connection for matter device (#121257) 2024-07-16 00:54:16 +02:00
Maciej Bieniek
260e98c3f7 Add support for Shelly number virtual component (#121894)
* Support number component in field mode

* Support number in label mode

* Add tests

* Add mode_fn

* Add support for number component in slider mode

* Add comment

* Suggested change

* Revert max_fn

* Change unit 'min' to 'Hz' in test

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-15 22:26:12 +02:00
Franck Nijhof
a9bf12f102 Rename Services to Actions in translation strings (#121777) 2024-07-15 21:19:25 +02:00
Michael
190f12cead Bump python-homeassistant-analytics to 0.7.0 (#121992)
bump python-homeassistant-analytics to 0.7.0
2024-07-15 21:08:00 +02:00
Joost Lekkerkerker
026538b6dc Disable concord232 integration (#121974)
* Disable concord232 integration

* Fix
2024-07-15 20:54:07 +02:00
Álvaro Fernández Rojas
e9d4c03300 Update aioairzone to v0.8.0 (#121991)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-15 20:49:21 +02:00
Joost Lekkerkerker
74f04a1ede Move licenses to right list (#121986) 2024-07-15 20:06:52 +02:00
J. Nick Koston
33cb674a4b Bump yalexs to 6.4.3 (#121984) 2024-07-15 19:35:52 +02:00
Joost Lekkerkerker
d7e33429e3 Disable MVG integration (#121975)
Disable MVGLive integration
2024-07-15 17:51:41 +02:00
Joost Lekkerkerker
77f10a23b0 Make Bayesian a helper (#121976) 2024-07-15 16:53:21 +02:00
Joost Lekkerkerker
c6a0c20c64 Disable Dovado integration (#121871) 2024-07-15 10:22:01 +02:00
Richard Kroegel
99f01ac61e Fix BMW remaining fuel device class (#119172)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-07-15 09:23:05 +02:00
mvn23
894f3fe439 Fix opentherm_gw availability (#121892) 2024-07-15 09:20:32 +02:00
Scott K Logan
df00e1a65b Fix rainforest_raven closing device due to timeout (#121905) 2024-07-15 09:10:50 +02:00
Tomasz Gorochowik
ef7a84d3f4 Fix enigma2 mute (#121928) 2024-07-15 09:09:19 +02:00
Sid
3b95e88ff7 Bump ruff to 0.5.2 (#121946) 2024-07-15 09:00:48 +02:00
dependabot[bot]
6109b9206c Bump github/codeql-action from 3.25.11 to 3.25.12 (#121963)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-15 08:57:39 +02:00
Maciej Bieniek
50751574b4 Fix configuration_url for Shelly device using IPv6 (#121939)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-15 08:31:44 +02:00
Álvaro Fernández Rojas
9f53d0ccd9 Rename Airzone system_zone_id to system_id (#121931) 2024-07-15 01:39:59 +02:00
Kevin Stillhammer
ab945ee76e Add Broadlink select platform (#121797)
* Add broadlink select platform

* Apply strings.json feedback

* Remove obsolete Service Exception

* Use day names instead of IDs

* Use list()
2024-07-14 23:59:24 +02:00
J. Nick Koston
6d8f99903d Migrate lutron_caseta to use entry.runtime_data (#121903)
* Migrate lutron_caseta to use entry.runtime_data

* Migrate lutron_caseta to use entry.runtime_data
2024-07-14 23:26:12 +02:00
J. Nick Koston
73b836df55 Use dispatcher for doorbird event entities (#121825)
* Use dispatcher for doorbird event entities

https://github.com/home-assistant/core/pull/121114#discussion_r1668171539

* Update homeassistant/components/doorbird/view.py
2024-07-14 23:25:04 +02:00
J. Nick Koston
73f6e3c07b Narrow sqlite database corruption check to ensure disk image is malformed (#121947)
* Narrow sqlite database corruption check to ensure disk image is malformed

The database corruption check would also replace the database when it
locked externally instead of only when its malformed.

This was discovered in https://github.com/home-assistant/core/issues/121909#issuecomment-2227409124
when a user did a manual index creation while HA was online

* tweak

* tweak

* fix

* fix
2024-07-14 23:23:07 +02:00
J. Nick Koston
19d2d023ab Ensure states table rebuild still happens if the event_id index was removed (#121938)
* Ensure states table rebuild still happens if the event_id index was removed

If ix_states_event_id was removed by the foreign key still
exists, the states table would not get rebuilt. This should
not happen under normal circumstances and seems to only be
possible if the index was removed manually or Home
Assistant was restarted forcefully in the middle
of a previous migration from years ago.

* cover

* fix tests

* mysql wont allow at that point but thats ok as long as its gone at the end
2024-07-14 23:20:52 +02:00
David F. Mulcahey
1d62f0e380 Bump ZHA lib to 0.0.23 (#121900) 2024-07-14 03:59:29 +02:00
David F. Mulcahey
342e6a503a Fix group operations in ZHA websocket API (#121881) 2024-07-14 03:25:15 +02:00
Álvaro Fernández Rojas
c044417837 Dynamically add Airzone entities (#121891)
* airzone: reload entry on new devices

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Revert "airzone: reload entry on new devices"

This reverts commit 3ecc0844e4.

* airzone: sensor: dynamically add new entities

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* tests: restore reverted airzone tests

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: sensor: code fixes

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: water_heater: dynamically add entities

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: binary_sensor: dynamically add entities

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: select: dynamically add entities

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: climate: dynamically add entities

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* tests: airzone: use freezer

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: call async_add_entities once

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: wrap async_add_listener on async_on_unload

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: reduce number of entity listeners

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-07-13 21:45:08 +02:00
Jan Bouwhuis
3111951757 Fix alexa does to check current_position correctly when handling cover range changes (#121798) 2024-07-13 16:10:09 +02:00
Maciej Bieniek
a34858a567 Use parametrize in tests for Shelly boolean virtual component (#121895)
Use parametrize in tests

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-13 15:27:17 +03:00
J. Nick Koston
62613af033 Migrate hunterdouglas_powerview to use entry.runtime_data (#121887) 2024-07-13 12:38:47 +02:00
Shai Ungar
2dec7136c8 Address post merge review on israel rail (#121872)
* Address late israel rail review

* transfers => trains
2024-07-13 10:54:27 +02:00
Jordi
662760360a Bump aioaquacell to 0.2.0 (#121876) 2024-07-13 10:04:51 +02:00
J. Nick Koston
9e259cbf2d Remove unused code in doorbird (#121884) 2024-07-12 22:39:58 -07:00
Avi Miller
5f33e85b30 Initial support for LIFX Ceiling SKY effect (#121820) 2024-07-12 21:16:16 -05:00
dougiteixeira
162b734be7 Add config flow for select platform in Template (#121809) 2024-07-12 17:50:02 +02:00
Allen Porter
a2fab98358 Remove an unneeded test dependency on pydantic in matrix (#121860) 2024-07-12 17:45:04 +02:00
Klaas Schoute
0d27cdc845 Add inverters to Autarco integration (#121779) 2024-07-12 16:54:22 +02:00
J. Nick Koston
a8321fac95 Add reauth support to doorbird (#121815) 2024-07-12 16:53:39 +02:00
Franck Nijhof
726fcb485d Extend search with support for integrations (#121765) 2024-07-12 16:31:49 +02:00
J. Nick Koston
2e71c8d43b Fix homekit linked doorbell and motion firing on reload (#121818) 2024-07-12 16:29:55 +02:00
J. Nick Koston
a67b6c5ba6 Avoid recording additional light attributes (#121776) 2024-07-12 16:27:50 +02:00
J. Nick Koston
8a52ffb967 Use a listcomp for more history results (#121830) 2024-07-12 16:10:21 +02:00
Marcel Vriend
156e92a4cd Fix too verbose HTTP logging for Azure Data Explorer (#121802) 2024-07-12 16:09:44 +02:00
Joost Lekkerkerker
5f02f3caa9 Disable blinkstick integration (#121846) 2024-07-12 16:09:07 +02:00
Dave T
62b9b34561 Fix typo in Template switch (#121856) 2024-07-12 16:03:24 +02:00
G Johansson
df85067cae Add device link to History stats helper (#121848) 2024-07-12 16:01:50 +02:00
Joakim Plate
a0d0e0f4a9 Correct deprecated telegram usage in dsmr (#121847) 2024-07-12 16:00:27 +02:00
J. Nick Koston
244af091b8 Bump DoorBirdPy to 3.0.2 (#121823) 2024-07-12 15:59:10 +02:00
Simone Chemelli
f260b048d6 Bump boto3, botocore and aiobotocore (#121773) 2024-07-12 15:55:08 +02:00
J. Nick Koston
ebd50d327b Log add/remove index complete at the same level as when it starts (#121852) 2024-07-12 15:54:38 +02:00
Jan-Philipp Benecke
6a86cdf3f5 Add missing translations to Roborock (#121796) 2024-07-12 15:51:18 +02:00
G Johansson
1acbcf921a Fix schema and strings in template switch (#121843) 2024-07-12 15:50:21 +02:00
Joost Lekkerkerker
12384104f4 Fix Mealie mealplan service date parsing (#121844) 2024-07-12 15:21:48 +02:00
Maciej Bieniek
3ef1e5816e Add support for Shelly text virtual component (#121735)
* Add support for text component

* Add tests

* Improve const names

* Remove unnecessary code

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-12 12:58:21 +02:00
Jan Rieger
48978fb7f6 Add configuration_url to AVM FRITZ!Box Call Monitor (#121836) 2024-07-12 09:51:17 +02:00
starkillerOG
97aaae1372 Reolink media second lens (#121800)
DUO lens camera distinguish between lenses for media playback
2024-07-12 09:13:55 +02:00
J. Nick Koston
cdf7ecebc0 Make BaseCoordinatorEntity.should_poll a cached_property since it never changes (#121826) 2024-07-12 00:39:22 -05:00
Shay Levy
cdb26ef8a3 Cleanup Shelly unused strings for removed valve switch (#121813) 2024-07-12 05:44:25 +01:00
J. Nick Koston
76d6a1fe13 Use identity check for ESPHome sensor device_class (#121828) 2024-07-11 22:47:32 -05:00
J. Nick Koston
df8c949884 Migrate esphome to use shorthand available attr (#121827) 2024-07-11 22:47:10 -05:00
Avi Miller
adb88f0165 Bump aiolifx to 1.0.5 (#121824) 2024-07-11 22:21:45 -05:00
Glenn Waters
c84fe04d6b Use async_connect in newly bumped 0.5.8 UPB library (#121789) 2024-07-11 16:14:22 -05:00
ollo69
86db976ed7 Bump PySwitchbot to 0.48.1 (#121804) 2024-07-11 16:12:33 -05:00
Steven B
e269ff617c Bump python-kasa to 0.7.0.4 (#121791) 2024-07-11 19:19:31 +02:00
Álvaro Fernández Rojas
414aee395e Update aioairzone-cloud to v0.5.4 (#121787) 2024-07-11 18:45:09 +02:00
Joost Lekkerkerker
3be95ebc87 Add verify SSL option to Mealie (#121767) 2024-07-11 17:23:26 +02:00
Allen Porter
ede130aa53 Pin mashumaro version >= 3.13.1 for python 3.12.4 compatibility. (#121782)
Pin mashumaro version for python 3.12.4 compatibility.
2024-07-11 08:23:10 -07:00
Josef Zweck
21d35ff311 Bump pytedee_async to 0.2.20 (#121783) 2024-07-11 17:22:10 +02:00
J. Nick Koston
8fb700c30e Add some missing tplink ouis (#121785) 2024-07-11 17:18:45 +02:00
Steven B
2148cfc899 Fix tplink bug changing color temp on bulbs with light effects (#121696) 2024-07-11 10:10:47 -05:00
mkmer
c40a9ac4b5 Remove unused code in blink (#121780)
Remove unused code
2024-07-11 16:12:05 +02:00
J. Nick Koston
ab7c4244d2 Pre-configure default doorbird events (#121692) 2024-07-11 11:31:29 +02:00
Tsvi Mostovicz
f40897b54c Add Jewish Calendar reconfiguration test (#118833)
* Revert "Remove flaky tests"

This reverts commit c4de9fdcbe.

* Change reconfigure test to be based on data

* Don't assert using internals

* Fix assertions to be on config entry
2024-07-11 11:17:12 +02:00
Joost Lekkerkerker
73475aa675 Dynamically create and delete todo lists in mealie (#121710) 2024-07-11 10:19:45 +02:00
tronikos
c223709c7c Bump opower to 0.5.2 to fix 403 forbidden errors for users with multiple accounts (#121762) 2024-07-11 10:14:11 +02:00
dougiteixeira
52454f5218 Add config flow for platform switch in Template (#121639) 2024-07-11 10:11:31 +02:00
Franck Nijhof
f94b28f72d Add button group support (#121715)
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-07-11 09:37:32 +02:00
Jan Bouwhuis
acb4a92628 Revert "Add mqtt automation publish test with template rendering" (#121757) 2024-07-11 09:36:14 +02:00
Brett Adams
f8015a7abc Add test coverage for Tessie seat coolers (#121742) 2024-07-11 09:13:50 +02:00
Joost Lekkerkerker
4c972694cd Add reconfigure flow to Mealie (#121750) 2024-07-11 09:11:59 +02:00
Mr. Bubbles
c6f1ec34e2 Fix bugs Habitica to-do lists (#121755) 2024-07-11 09:11:04 +02:00
J. Nick Koston
43596f22a4 Fix recorder max backlog calculation being too small (#121739) 2024-07-11 09:09:35 +02:00
Abílio Costa
67fee5be31 Update Idasen Desk library to 2.6.2 (#121729) 2024-07-11 09:07:18 +02:00
Luca Angemi
c89de2e6a6 Append multiple rows in Google Sheets (#120829)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-07-11 09:05:22 +02:00
Brett Adams
307ae53066 Add sunroof to Tessie (#121743) 2024-07-11 09:03:46 +02:00
J. Nick Koston
322553b8a9 Bump pyserial-asyncio-fast to 0.13 (#121745) 2024-07-11 08:58:09 +02:00
dependabot[bot]
fc770434f1 Bump actions/setup-python from 5.1.0 to 5.1.1 (#121749)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-11 08:52:35 +02:00
Shai Ungar
56b6747bc0 Add Israel rail integration (#121418)
* Add Israel Rail integration

* israel_rail tests

* israel_rail tests

* 1. use entry.runtime
2. DataConnection - data class
3. remove unique id from coordinator
4. use EntityDescription

* add a list of stations in user form

* 1. extend ConfigEntry
2. remove unused pop
3. use IsraelRailSensorEntityDescription to have only one kind of Sensor
4. add test for already configured
5. use snapshot in test

* change user step description

* 1. ConfigEntry[IsraelRailDataUpdateCoordinator]
2. remove redundant attributes
3. use snapshot_platform helper

* remove attr

* remove attr

* move test to test_init.py

* Fix

* Fix

* Fix

* Fix

* fix timezone

* fix

* fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-11 08:45:32 +02:00
Kevin Stillhammer
ea5eb0f8f2 Add Broadlink time platform (#121470)
* Add time platform

* Apply PR feedback

* Remove obsolete Exception raise
2024-07-11 08:18:10 +02:00
Klaas Schoute
bb81cfa57a Add diagnostics to Autarco integration (#121732) 2024-07-11 06:49:38 +02:00
J. Nick Koston
22c89356c0 Bump DoorBirdPy to 3.0.1 (#121733) 2024-07-10 18:22:56 -05:00
Joost Lekkerkerker
385576bfb2 Add reauth flow to Mealie (#121697) 2024-07-11 00:24:48 +02:00
atinsley
90af40b5c4 Add ability to control ventilated seats with Tessie integration (#121624) 2024-07-11 00:22:01 +02:00
Michael Hansen
417abda649 Add HassGetCurrentDate and HassGetCurrentTime intents (#121707) 2024-07-11 00:17:04 +02:00
Joost Lekkerkerker
0462582da3 Use new constants in todo tests (#121727) 2024-07-11 00:01:17 +02:00
Jan Stienstra
2fce71ea52 Retain Jellyfin config flow input on connection issue (#121618) 2024-07-10 23:54:02 +02:00
Robert Svensson
61111f5d71 Fix bad access to UniFi runtime_data when not assigned (#121725)
* Fix bad access to runtime_data when not assigned

* Fix review comment

* Clean up if statements
2024-07-10 23:53:11 +02:00
Maciej Bieniek
70f05e5f13 Add support for Shelly virtual boolean component (#119932)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-10 23:51:51 +02:00
Dave T
311b1e236a Don't patch libraries that aren't installed in pytest (#121628) 2024-07-10 23:50:47 +02:00
dougiteixeira
e0c7073da1 Add config flow for image platform in Template (#121648) 2024-07-10 23:49:24 +02:00
Tomek Porozynski
088717926d Update Supla async_set_cover_position to use "REVEAL_PARTIALLY" (#121663) 2024-07-10 23:48:08 +02:00
Klaas Schoute
664c4e6189 Fix small issue on Autarco integration (#121723) 2024-07-10 23:37:32 +02:00
J. Nick Koston
d87bbaa67a Migrate resetting doorbird favorites to a button (#121720) 2024-07-10 16:34:02 -05:00
Joost Lekkerkerker
af6c28983d Bump knocki to 0.3.1 (#121717) 2024-07-10 23:22:03 +02:00
puddly
9fcfc6d9f3 Bump ZHA dependencies (#121716) 2024-07-10 23:17:41 +02:00
Joost Lekkerkerker
e56f8d795f Add constants for todo services (#121616) 2024-07-10 23:15:03 +02:00
Joakim Plate
7ed5feee92 Extend generic hygrostat/thermostat actuators using config flow (#121690) 2024-07-10 23:11:02 +02:00
Mr. Bubbles
f3fe61f929 Bump pyloadapi to v1.3.2 (#121709) 2024-07-10 23:08:25 +02:00
J. Nick Koston
4fd5ced1f5 Fix update happening too early in unifiprotect (#121714) 2024-07-10 23:06:58 +02:00
Klaas Schoute
fce68018b7 Add Autarco integration (#121600)
* Init Autarco integration

* Add integration code with tests

* Update every 5 minutes

* Process all feedback from Joost

* Bump lib to v2.0.0

* Add more then one site if present

* Fix issue with entity translation

* Update the test for sensor entities

* Fix round two based on feedback from Joost

* Add autarco to strict typing

* Update tests/components/autarco/test_config_flow.py

* Update tests/components/autarco/test_config_flow.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-10 23:05:31 +02:00
Noah Husby
abeac3f3aa Add config flow to Russound RIO integration (#121262)
* Add config flow to Russound RIO

* Ensure Russound RIO connection is handled at entry setup

* Add tests for Russound RIO config flow

* Add yaml configuration import to Russound RIO

* Use runtime_data to store Russound RIO client

* Seperate common import and user config logic for Russound RIO

* Update config flow to use aiorussound

* Add MAC address as unique ID for Russound RIO

* Fix pre-commit for Russound RIO

* Refactor config flow error handling for Russound RIO

* Add config flow import abort message for no primary controller

* Add common strings to Russound RIO

* Use reference strings for Russound RIO issue strings

* Remove commented out test fixture from Russound RIO

* Clean up test fixtures for Russound RIO

* Remove model from entry data in Russound RIO

* Clean up Russound client mock

* Clean up Russound test fixtures

* Remove init tests and clean up Russound config flow cases
2024-07-10 23:02:33 +02:00
Joost Lekkerkerker
924e767736 Bump knocki to 0.3.0 (#121704) 2024-07-10 21:53:11 +02:00
Sid
3142f52a79 Add Ruff refurb rules (#121701) 2024-07-10 21:47:40 +02:00
Andrew Jackson
a9c9963f0f Mealie min version check (#121677) 2024-07-10 21:25:49 +02:00
Jan Bouwhuis
71e5ffb2bd Add mqtt automation publish test with template rendering (#121695) 2024-07-10 21:17:27 +02:00
Sid
319fdf42c3 Enable Ruff RUF017 (#121693) 2024-07-10 21:09:47 +02:00
Joost Lekkerkerker
1e0c03257c Add diagnostics to Mealie (#121700) 2024-07-10 21:09:03 +02:00
Lucas Mindêllo de Andrade
5dbf907323 Bump sunweg 3.0.2 (#121684) 2024-07-10 20:16:36 +02:00
Sid
cd4358ed9e Allow enigma2 devices to use different source bouquets (#121686) 2024-07-10 17:46:39 +02:00
Richard Kroegel
865190f0b0 Get suggested_unit_of_measurement via unit converter's UNIT_CLASS (#119196)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-07-10 17:45:07 +02:00
J. Nick Koston
0e0a339517 Convert doorbird to use asyncio (#121569) 2024-07-10 17:34:12 +02:00
puddly
020961d2d8 Fix ZHA select platform state restoration (#121646)
* Ensure `select` entities do not restore state if they were unavailable

* Add a unit test
2024-07-10 10:55:27 -04:00
J. Nick Koston
c81d5a1ac2 Handle empty entity_id in the recorder filter (#121681)
fixes #111745
2024-07-10 09:53:38 -05:00
Ravaka Razafimanantsoa
8b729e3c7d Bump switchbot-api to 2.2.1 (#121676) 2024-07-10 15:16:57 +02:00
J. Nick Koston
02b12837d4 Small cleanups to bond entities (#121641) 2024-07-10 15:12:46 +02:00
epenet
e812b0e02f Cleanup unnecessary returns (#121652) 2024-07-10 15:11:56 +02:00
epenet
b0837dd98f Use service_calls fixture in zha tests (#120996) 2024-07-10 15:06:49 +02:00
Joost Lekkerkerker
43806553fc Add service to import recipe to mealie (#121598) 2024-07-10 14:33:17 +02:00
Noah Husby
f762359abf Bump aiorussound to 1.1.2 (#121674) 2024-07-10 14:05:24 +02:00
Franck Nijhof
058b012e6c 2024.7.2 (#121671) 2024-07-10 13:18:48 +02:00
Jeef
0213f1c5c0 Add SimpleFIN integration (#108336)
* reset to latest dev branch

* Update homeassistant/components/simplefin/sensor.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* formatting tweak

* Removed info errors

* fix bad billing error message

* addressing PR

* addressing PR

* reauth abort and already_confiugred added to strings.json

* adding the reauth message

* ruff

* update reqs

* reset to latest dev branch

* Update homeassistant/components/simplefin/sensor.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* formatting tweak

* Removed info errors

* fix bad billing error message

* addressing PR

* addressing PR

* reauth abort and already_confiugred added to strings.json

* adding the reauth message

* ruff

* update reqs

* Update homeassistant/components/simplefin/__init__.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Addressing a few PR comments - removing nix - and adding runtime data

* updated comments

* rename config flow

* pulling reauth :( - inline stuff

* inline more

* fixed a tab issue

* reverting changes

* various PR updates and code removal

* generator async add

* Update homeassistant/components/simplefin/__init__.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/simplefin/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/simplefin/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/simplefin/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/simplefin/sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* always callable

* Update homeassistant/components/simplefin/coordinator.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* no-verify

* type

* fixing missing domain

* it looks like this file is gone now

* typing

* sorta pass

* fix license

* Update homeassistant/components/simplefin/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/simplefin/entity.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* addressing PR

* Update homeassistant/components/simplefin/strings.json

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* move property to entity.py

* moved stuff out to else block

* Initial Snappshot Testing ... still have unadressed changes to make

* Addressing PR Comments

* pushing back to joost

* removing non-needed file

* added more asserts

* reducing mocks - need to fix patch paths still

* Changed patch to be more localized to config_flow

* Removed unneeded fixture

* Moved coordinator around

* Cleaning up the code

* Removed a NOQA"

* Upping the number of asserts

* cleanup

* fixed abort call

* incremental update - for Josot... changed a function signature and removed an annotatoin

* no-verify

* Added an abort test

* ruff

* increased coverage but it might not pass muster for JOOST

* increased coverage but it might not pass muster for JOOST

* Much nicer test now

* tried to simplify

* Fix nits

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-10 12:44:04 +02:00
Franck Nijhof
71370758a8 Bump version to 2024.7.2 2024-07-10 12:06:02 +02:00
Franck Nijhof
38a44676eb Block variable <=3.4.4 custom integration from breaking the recorder (#121670) 2024-07-10 12:01:11 +02:00
Marcel van der Veldt
05ce3d35b3 Matter lock state follow-up (#121669) 2024-07-10 12:01:08 +02:00
Marcel van der Veldt
2151086b0a Fix state for Matter Locks (including optional door sensor) (#121665) 2024-07-10 12:01:05 +02:00
Franck Nijhof
9c83af3789 Block places <=2.7.0 custom integration from breaking the recorder (#121662) 2024-07-10 12:01:01 +02:00
tronikos
ac3eecc879 Handle errors in Fully Kiosk camera (#121659) 2024-07-10 12:00:58 +02:00
Franck Nijhof
ec0910e3da Block icloud3 custom integration from breaking the recorder (#121658) 2024-07-10 12:00:55 +02:00
Maikel Punie
fd0c26cd56 Small fix in velbus cover for the assumed states (#121656) 2024-07-10 12:00:52 +02:00
Paul Bottein
a4c5dee082 Update frontend to 20240710.0 (#121651) 2024-07-10 12:00:48 +02:00
Joakim Plate
37c09dbdb6 Allow ambilight when we have connection (philips_js) (#121620) 2024-07-10 12:00:45 +02:00
Arie Catsman
73d1973625 Bump pyenphase to 1.20.6 (#121583)
bump pyenphase to 1.20.6
2024-07-10 12:00:42 +02:00
Glenn Waters
5a04a886cf Fix upb config flow connect (#121571) 2024-07-10 12:00:39 +02:00
Franck Nijhof
50802f84f0 Update tailscale to 0.6.1 (#121557) 2024-07-10 12:00:36 +02:00
Franck Nijhof
138b68ecc0 Update vehicle to 2.2.2 (#121556) 2024-07-10 12:00:33 +02:00
Christoph
e0b01ee94e Remove homematic state_class from GAS_POWER sensor (#121533) 2024-07-10 12:00:30 +02:00
J. Nick Koston
4f2c3df518 Fix person tracking in unifiprotect (#121528) 2024-07-10 12:00:26 +02:00
Paulus Schoutsen
51a6bb1c22 Include hass device ID in mobile app get_config webhook (#121496) 2024-07-10 12:00:23 +02:00
Ovidiu D. Nițan
6bf9ec69f3 Bump xiaomi-ble to 0.30.2 (#121471) 2024-07-10 12:00:19 +02:00
Joost Lekkerkerker
21309eeb5d Bump xiaomi-ble to 0.30.1 (#120743) 2024-07-10 12:00:14 +02:00
J. Nick Koston
0a1b46c52f Bump yalexs to 6.4.2 (#121467) 2024-07-10 11:52:56 +02:00
Jason R. Coombs
9512f9eec3 Bump jaraco.abode to 5.2.1 (#121446)
Bump dependency on jaraco.abode to 5.2.1.

Closes #121300
2024-07-10 11:52:53 +02:00
jan iversen
ab94422c18 Bump pymodbus to 3.6.9 (#121445)
Bump pymodbus 3.6.9.
2024-07-10 11:52:50 +02:00
Joost Lekkerkerker
ec105e5265 Fix Mealie URL field (#121434) 2024-07-10 11:52:47 +02:00
Joost Lekkerkerker
cadd8521ae Sort mealie mealplans (#121433) 2024-07-10 11:52:43 +02:00
Joost Lekkerkerker
8825c50671 Fix MPD config flow (#121431) 2024-07-10 11:52:40 +02:00
Michael
a72cc3c248 Allow current empty feeds to be configured in Feedreader (#121421) 2024-07-10 11:52:37 +02:00
G Johansson
780f7254c1 Fix feature flag in climate (#121398) 2024-07-10 11:52:34 +02:00
G Johansson
37621e77ae Fix timezone issue in smhi weather (#121389) 2024-07-10 11:52:31 +02:00
G Johansson
8017386c73 Fix unnecessary logging of turn on/off feature flags in Climate (#121387) 2024-07-10 11:52:28 +02:00
G Johansson
a5f4c25a2c Bump psutil to 6.0.0 (#121385) 2024-07-10 11:52:25 +02:00
Brett Adams
1d7bddf449 Fix initial Wall Connector values in Tessie (#121353) 2024-07-10 11:52:21 +02:00
Luke Lashley
711bdaf373 Bump anova-wifi to 0.17.0 (#121337)
* Bump anova-wifi to 0.16.0

* Bump to .17
2024-07-10 11:52:18 +02:00
Jan Temešinko
803d9c5a8e Fix ombi configuration validation (#121314) 2024-07-10 11:52:15 +02:00
Rasmus Lundsgaard
1133c41fa8 Fix empty list in kodi media_player (#121250)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-07-10 11:52:12 +02:00
Alan
a06af7ee93 LLM to handle int attributes (#121037) 2024-07-10 11:52:08 +02:00
Robert C. Maehl
c54717707e Direct Users to App-Specific Passwords for iCloud integration to prevent MFA spam (#120945)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-07-10 11:52:05 +02:00
J. Nick Koston
440d83d754 Remove legacy foreign key constraint from sqlite states table (#120779) 2024-07-10 11:51:59 +02:00
Franck Nijhof
42dcd693d5 Block variable <=3.4.4 custom integration from breaking the recorder (#121670) 2024-07-10 11:30:16 +02:00
tronikos
1925614a14 Handle errors in Fully Kiosk camera (#121659) 2024-07-10 11:21:38 +02:00
Marcel van der Veldt
42003ae5ac Matter lock state follow-up (#121669) 2024-07-10 11:20:26 +02:00
Maikel Punie
33df857283 Small fix in velbus cover for the assumed states (#121656) 2024-07-10 11:11:54 +02:00
Marcel van der Veldt
6702d232e2 Fix state for Matter Locks (including optional door sensor) (#121665) 2024-07-10 10:32:42 +02:00
Franck Nijhof
e9b7cc1eba Block places <=2.7.0 custom integration from breaking the recorder (#121662) 2024-07-10 10:24:44 +02:00
Franck Nijhof
65e03f952a Block icloud3 custom integration from breaking the recorder (#121658) 2024-07-10 09:47:15 +02:00
epenet
30b5297fde Small refactor to cleanup unnecessary returns (#121653) 2024-07-10 09:34:48 +02:00
epenet
86f7718c1f Adjust type hints for unnecessary returns in tests (#121657) 2024-07-10 09:30:50 +02:00
Paul Bottein
d10aa6656b Update frontend to 20240710.0 (#121651) 2024-07-10 09:29:22 +02:00
epenet
ff59adc661 Adjust type hints for unnecessary returns (#121650) 2024-07-10 09:26:29 +02:00
epenet
5d809f88ba Improve type hints in calendar tests (#121654) 2024-07-10 09:12:56 +02:00
Mike Lewis
8b0f28e7f4 Add Bromley to list of london air authorities (#121498) 2024-07-10 09:10:26 +02:00
epenet
7a337ecd1d Cleanup unnecessary definition in lamarzocco tests (#121655) 2024-07-10 09:08:39 +02:00
J. Nick Koston
fb758bd8b6 Migrate screenlogic to use entry.runtime_data (#121644) 2024-07-10 08:36:02 +02:00
J. Nick Koston
6f15352eda Convert nexia to use entry.runtime_data (#121640) 2024-07-10 08:35:13 +02:00
J. Nick Koston
bf09cee66f Migrate emonitor to entry.runtime_data (#121645) 2024-07-10 08:34:20 +02:00
David F. Mulcahey
0aa6a17da8 Prevent entity creation errors from causing all entities for a platform from loading in ZHA (#121631) 2024-07-10 08:31:24 +02:00
J. Nick Koston
4245357403 Convert solaredge to use entry.runtime_data (#121642) 2024-07-10 08:22:44 +02:00
David F. Mulcahey
72c3c0eb53 Bump ZHA lib to 0.0.19 (#121637) 2024-07-10 08:22:08 +02:00
J. Nick Koston
8d0d8fd006 Convert powerwall to use entry.runtime_data (#121643) 2024-07-10 08:20:29 +02:00
CrazyMan2000
9120115577 Split media player select input test (#121633) 2024-07-09 23:28:41 +02:00
Jan Bouwhuis
805d4fcc40 Do not use curr as abbreviation in alexa tests and remove conditions (#121627) 2024-07-09 22:58:22 +02:00
Diogo Gomes
92e6dacf14 Update CODEOWNERS of enphase_envoy (#121623) 2024-07-09 22:53:49 +02:00
dougiteixeira
d783813ba0 Add config flow for platform button in Template (#120886) 2024-07-09 21:20:18 +02:00
jan iversen
5e56c27703 Modbus, Remove duplicate address check (#121579) 2024-07-09 21:16:47 +02:00
G Johansson
9d2cf70ba5 Add constant for climate feature flag check (#121619) 2024-07-09 21:14:19 +02:00
Jan Stienstra
c5ced14473 Jellyfin - Improve unloading/reloading config entry (#121613) 2024-07-09 21:14:03 +02:00
epenet
bff663b3c1 Improve type hints in recorder result_processor (#121593) 2024-07-09 21:12:03 +02:00
Joakim Plate
f14777d0ae Allow ambilight when we have connection (philips_js) (#121620) 2024-07-09 21:10:15 +02:00
epenet
a4980cf0fd Improve type hints in zwave_js tests (#121594) 2024-07-09 20:13:47 +02:00
ilan
31dc80c616 Add binary sensor to madVR integration (#121465)
* feat: add binary sensor and tests

* fix: update test

* fix: use entity description

* feat: use translation key

* feat: implement base entity

* fix: change device classes

* fix: remove some types

* fix: coordinator.data none on init

* fix: names, tests

* feat: parameterize tests
2024-07-09 19:11:08 +02:00
Andrew Jackson
898803abe9 Add shopping lists to Mealie integration (#121534)
* Add mealie shopping lists & tests

* Add shopping_lists init failure

* Fix coordinator name

* Fixes

* Add available, fix merge

* Fixes

* Fixes

* Add todo failure tests

* Fix tests
2024-07-09 18:39:22 +02:00
Jan Bouwhuis
5b25c24539 Remove stale template_topic code for mqtt publish service (#121604) 2024-07-09 18:22:08 +02:00
CrazyMan2000
e44f00cf7c Add alexa remote support (#120878)
* Updated the AlexaModeController to support the remote domain. Also added an alexa entitiy adapter for the remote domain.

* Fixed copy paste mistake.

* Fixed power state for remove domain.

* Updated the CapabilityResource to support labels with the corresponding locale. This local is read from the users config.

* Add the alexa display category 'REMOTE' and use it for the remote capability.

* Revert "Updated the CapabilityResource to support labels with the corresponding locale. This local is read from the users config."

This reverts commit fbdf37904a.

* Fix error when the remote does not have an activtiy list.

* Add tests for the state report of a remote entity.

* Add a test for alexas set mode directive for a remote entitiy.

* Add a test for alexas TurnOn and TurnOff directives for a remote entity.

* Apply suggestions from code review

Fix copy paste mistakes.

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

* Improve attribute name as suggested.

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

* Add test case with zero and one activity.

* Add a comment why we use the mode controller instead of the input controller.

* Add test to check of the discovery returns all required interfaces for a remote entitiy.

* Tweak comment

* Add line breaks to fix max allowed chars per line.

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-07-09 18:03:47 +02:00
Paulus Schoutsen
154da1b18b Allow targeting conversation agent as pipeline (#119556)
* Allow targetting conversation agent as pipeline

* Test that we can use a conversation entity as an assist pipeline

* Add test for WS get

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2024-07-09 10:56:53 -05:00
Michael Hansen
69ed730101 Bump hassil to 1.7.3 for number word caching (#121608)
* Bump hassil to 1.7.3

* Add wildcard slot list name
2024-07-09 17:25:40 +02:00
Paulus Schoutsen
01861cd240 Ensure we prepare conversation pipeline when speech-to-text starts (#114665)
* Ensure we prepare conversation pipeline when speech-to-text starts

* Add lock around recognize

* Update homeassistant/components/conversation/default_agent.py

* Add lock around load intents
2024-07-09 09:58:52 -05:00
Michael Hansen
4498bf9ec4 Remove language lock from default agent and move around tests (#121531)
* Remove language lock

* Remove unsub for change events

* Remove redundant check

* Simplify intent loading

* Cache intent loading error

* Revert "Remove unsub for change events"

This reverts commit 575266abcd.

* guard instead of assert

* Some more cleanup

* No need to warn during prepare

* Some more cleanup

* Add more timing logs

* Split up tests and rely less on http

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-07-09 16:05:43 +02:00
Leonard Sperry
4a22b95620 Remove "unavailable" and "unknown" filters from Kafka integration (#121602) 2024-07-09 07:16:14 -06:00
Arie Catsman
592cfc9c17 Bump pyenphase to 1.20.6 (#121583)
bump pyenphase to 1.20.6
2024-07-09 12:52:04 +02:00
epenet
d4cc44d352 Improve type hints for webhook implementation in push (#121589)
Improve type hints in push webhook implementation
2024-07-09 12:16:23 +02:00
epenet
ba0cd595ff Improve type hints in device tracker implementations (#121585) 2024-07-09 12:06:49 +02:00
epenet
9ca398ef82 Improve type hints in webhook implementations (#121588) 2024-07-09 12:05:23 +02:00
epenet
7aada39b77 Improve type hints for webhook implementation in dialogflow (#121592) 2024-07-09 12:04:28 +02:00
Joost Lekkerkerker
a1fae0e0ce Fix missing validation and service definition in Mealie (#121578) 2024-07-09 11:55:12 +02:00
Leonard Sperry
cfabb778dd Add entity_id as key for kafka message (#121519)
Co-authored-by: Aaron Bach <bachya1208@gmail.com>
2024-07-09 08:44:49 +02:00
Brett Adams
48d9df74ed Add sunroof to Teslemetry (#121476) 2024-07-09 08:36:34 +02:00
Glenn Waters
b07fcb6a4a Fix upb config flow connect (#121571) 2024-07-09 08:32:34 +02:00
Robert Contreras
3ea694a069 Home Connect unit tests for light platform (#121576) 2024-07-09 08:31:41 +02:00
Franck Nijhof
9321bba61e Update vehicle to 2.2.2 (#121556) 2024-07-09 08:30:10 +02:00
Franck Nijhof
c13d5a663a Update tailscale to 0.6.1 (#121557) 2024-07-09 08:29:57 +02:00
Michael Hansen
6e85f09722 Revert webrtc to 1.2.3 (#121561) 2024-07-08 22:50:55 +02:00
Markus Jacobsen
45843a3112 Add Bang & Olufsen media_player testing (#120580) 2024-07-08 22:19:02 +02:00
Michael Hansen
2a31774f91 Bump webrtc-noise-gain to 1.2.5 (#121539) 2024-07-08 21:57:10 +02:00
Markus Jacobsen
f801649e9c Fix Bang & Olufsen wrong source being compared (#121512) 2024-07-08 21:48:07 +02:00
Cris-ET
60e1df2a87 Add new entities for the Growatt Storage inverter (#121507) 2024-07-08 21:47:40 +02:00
Christoph
5dbaaa9068 Remove homematic state_class from GAS_POWER sensor (#121533) 2024-07-08 21:38:09 +02:00
Franck Nijhof
10f3813ffd Update Home Assistant Wheels action to 2024.07.1 (#121555) 2024-07-08 21:35:12 +02:00
Franck Nijhof
71300b197a Update Home Assistant Wheels action to 2024.07.0 (#121552) 2024-07-08 21:18:01 +02:00
puddly
b754f03c11 ZHA as an external library (#120190)
Co-authored-by: David Mulcahey <david.mulcahey@icloud.com>
Co-authored-by: David Mulcahey <david.mulcahey@me.com>
2024-07-08 20:18:30 +02:00
Andrew Jackson
e11d24f06f Add myself as co-codeowner for Mealie integration (#121536)
* Add myself as co-codeowner for Mealie integration

* Update manifest.json

* Update homeassistant/components/mealie/manifest.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-08 18:58:10 +02:00
Joost Lekkerkerker
5f088e0501 Add Mealie service to get recipe (#121462) 2024-07-08 17:11:35 +02:00
J. Nick Koston
93cf8c1311 Fix person tracking in unifiprotect (#121528) 2024-07-08 07:58:18 -07:00
Cris-ET
3e8335f61b Define state_class for Growatt inverter entities (#121516) 2024-07-08 15:08:08 +02:00
tronikos
5f909d0c52 Fix unreleased breaking change in Google Cloud (#121523) 2024-07-08 14:34:18 +02:00
epenet
98651cbd2e Improve type hints in lovelace tests (#121520) 2024-07-08 14:04:11 +02:00
epenet
19e272a901 Improve type hints in iotawatt tests (#121505) 2024-07-08 13:31:05 +02:00
epenet
10ee554f1f Improve type hints in logi_circle tests (#121518) 2024-07-08 13:30:29 +02:00
epenet
f7825eb5b1 Improve type hints in lyric tests (#121517) 2024-07-08 13:30:01 +02:00
Kevin Stillhammer
8ab6a505a4 Write data to state after Broadlink entity added (#121493)
* Write data to ha after entity added

* Properly mock api return values

Some values like _attr_is_on were mapped to MagicMocks which led to them evaluating to True. Actually calling the update state method when adding the entities made that improper mocking come to the surface.

* Call _update_state instead of _recv_data
2024-07-08 13:15:17 +02:00
Cris-ET
bd4ef4b2ff Define state_class for Growatt storage entities (#121514) 2024-07-08 13:03:06 +02:00
epenet
242b28377d Improve type hints in kodi tests (#121508) 2024-07-08 12:57:52 +02:00
epenet
b048ad8afe Improve type hints in iqvia tests (#121506) 2024-07-08 12:57:19 +02:00
epenet
148803460b Improve type hints in kitchen_sink tests (#121509) 2024-07-08 12:54:43 +02:00
epenet
c4c623ea99 Improve type hints in kulersky tests (#121510) 2024-07-08 12:54:18 +02:00
epenet
4d68ae1199 Improve type hints in ipma tests (#121501) 2024-07-08 11:38:27 +02:00
epenet
3059bf0536 Improve type hints in insteon tests (#121504) 2024-07-08 11:34:50 +02:00
Paulus Schoutsen
1aa9588dcb Include hass device ID in mobile app get_config webhook (#121496) 2024-07-08 11:00:21 +02:00
Mr. Bubbles
00aafc0cf7 Add entity base class in Habitica integration (#121320)
* Sensor refactoring

* Change todo entities to use common base entity

* Requested changes

* Update button platform to use base class

* Update swtich platform to use base entity class
2024-07-08 10:18:09 +02:00
Mr. Bubbles
6350c5479b Add rest in the inn switch to Habitica integration (#121472)
* Add rest in the inn swich  to Habitica

* Move api call execution to coordinator
2024-07-08 09:58:33 +02:00
dependabot[bot]
ad47a7b8c6 Bump actions/upload-artifact from 4.3.3 to 4.3.4 (#121491)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 09:22:07 +02:00
dependabot[bot]
617db25efb Bump actions/download-artifact from 4.1.7 to 4.1.8 (#121490)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-08 09:21:52 +02:00
Mr. Bubbles
ea65ff5876 Add button platform to Habitica integration (#121461) 2024-07-08 09:10:28 +02:00
dougiteixeira
cf4bd7fd1c Refactor schema generation in Template integration (#120889)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-08 09:06:15 +02:00
Markus Jacobsen
e30f315565 Fix BangOlufsenSource enum member names (#116052) 2024-07-07 23:53:49 +02:00
Ovidiu D. Nițan
cd478c356e Bump xiaomi-ble to 0.30.2 (#121471) 2024-07-07 23:13:43 +02:00
J. Nick Koston
27a2114ba9 Bump yalexs to 6.4.2 (#121467) 2024-07-07 13:41:31 -07:00
J. Nick Koston
4cf733b9a2 Small cleanups to doorbird (#121454) 2024-07-07 13:25:13 -07:00
Jan Bouwhuis
8a28cbe9e2 Wait for conversation test init (#121464)
* Wait for conversation test init

* typo
2024-07-07 22:24:20 +02:00
J. Nick Koston
6129a37bb0 Fix flakey homekit reload test (#121463) 2024-07-07 21:52:44 +02:00
Michael
0558e480ce Add event entity to Feedreader (#118147) 2024-07-07 21:44:41 +02:00
Joost Lekkerkerker
f126360c67 Add Mealie service to get mealplan (#120824)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-07 21:19:20 +02:00
G Johansson
833ac4db49 Add config flow to history_stats helper (#121381) 2024-07-07 21:06:37 +02:00
David Knowles
72458d143d Add valve support to Hydrawise (#116302) 2024-07-07 20:42:45 +02:00
ilan
12228d8a00 Add madvr envy integration (#120382)
* feat: Add madvr envy

* fix: await and pass entry directly

* fix: add attributes and unique id for sensors

* fix: reflect power state well, improve state detection

* fix: don't connect on init, add options, add reload on change, keep on during test

* fix: cancel tasks on unload

* fix: test connection via library

* fix: wait for boot time

* docs: add readme and license

* fix: broken pipe in lib

* fix: detect out of band power off

* fix: improve extra attributes

* fix: fix unloading, add config flow test, limit to one platform

* fix: use conf, refresh coordinator, other comments

* fix: remove event data

* fix: fix tests passing, remove wake on lan

* fix: dont allow to proceed unless connection works

* chore: update dep

* fix: update config flow, add constants

* fix: write state, use runtime data instead

* fix: remove await

* fix: move unloading and stuff to coordinator/init

* fix: pass in config entry with correct type

* fix: move queue and tasks to library

* fix: config flow error flow, tests, name, and update lib

* fix: update lib, leave connection open on setup

* fix: update lib

* fix: address comments, remove wol from lib

* fix: remove unneeded options

* fix: remove fields

* fix: simplify code, address comments

* fix: move error to lib

* fix: fix test

* fix: stronger types

* fix: update lib

* fix: missing text from options flow

* chore: remove options flow

* chore: remove import

* chore: update comments

* fix: get mac from device, persist

* fix: add mac stuff to test

* fix: startup import errors

* chore: stale comment

* fix: get mac from persisted config

* chore: update lib

* fix: persist mac in a better way

* feat: use mac as unique ID for entry

* fix: use unique ID from mac, add proper device

* fix: will not be set in init potentially

* fix: access mac

* fix: optimize, move error to lib

* feat: add coordinator test, use conf

* fix: use one mock, add init test

* fix: not async

* feat: add remote test

* fix: types

* fix: patch client, expand remote tests

* fix: use snapshot test

* fix: update branding

* fix: add description, fix type check

* fix: update tests

* fix: test

* fix: update test

* fix: camelcase

* Fix

* feat: strict typing

* fix: strict typing in lib

* fix: type will never be None

* fix: reference to mac, all tests passing

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-07-07 20:41:53 +02:00
Christophe Gagnier
8110b60fc9 Use ConfigEntry runtime_data in TechnoVE (#121410) 2024-07-07 20:21:28 +02:00
Elliott Balsley
cd72bdd851 Add Prometheus fan_mode and climate_mode metrics (#120267)
Co-authored-by: Anton Tolchanov <1687799+knyar@users.noreply.github.com>
2024-07-07 19:39:54 +02:00
G Johansson
26bc37195e Add defrosting as HVACAction in ClimateEntity (#121448) 2024-07-07 18:54:40 +02:00
Robert Contreras
2def33b168 Home Connect unit tests for switch platform (#115456) 2024-07-07 18:30:59 +02:00
Jason R. Coombs
a5c9aa44bd Bump jaraco.abode to 5.2.1 (#121446)
Bump dependency on jaraco.abode to 5.2.1.

Closes #121300
2024-07-07 18:02:47 +02:00
Mr. Bubbles
751935539a Migrate Habitica Dailies and To-Do's to the todo platform (#116655)
* Add todo platform

* update for DataUpdateCoordinator

* set lastCron as dailies due date

* parse alternative duedate format

* fix tests

* send notification on item drop

* fix drop message

* update exception messages

* Simplified the update of user_fields by using set union

* move userFields to const

* Issue deprecation only if entity is acutally used

* Resolve issues

* user entity registry to get entity_id

* raise ServiceValidationError

* requested changes

* Move next_due_date helper function to util.py module

* some changes

* Move function to util.py
2024-07-07 17:50:27 +02:00
jan iversen
866cdcc993 Bump pymodbus to 3.6.9 (#121445)
Bump pymodbus 3.6.9.
2024-07-07 17:38:17 +02:00
Paulus Schoutsen
eb0f6f7088 Ensure intents_changed variable is always initialized (#121444) 2024-07-07 17:32:35 +02:00
Erwin Douna
fb8eeac563 Refactor Tado to use runtime_data (#121373) 2024-07-07 17:15:38 +02:00
Joost Lekkerkerker
1fefd396b9 Add mealie version to device info (#121443) 2024-07-07 17:13:15 +02:00
Thomas55555
67facdf3a5 Generate translation in vscode taks: Code Coverage (#120434)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-07-07 17:05:44 +02:00
Clifford Roche
27975c7517 Fix incorrect temperature in Gree if temp units changed on device (#121041) 2024-07-07 17:05:14 +02:00
J. Nick Koston
792c6a9cd9 Migrate doorbird to use entry.runtime_data (#121413) 2024-07-07 16:57:10 +02:00
Shai Ungar
b6609fa77c Deprecate the dynamic package sensors in seventeentrack (#116102)
* Add deprecation comments for the dynamic package sensors

* Add deprecation comments for the dynamic package sensors

* Add deprecation comments for the dynamic package sensors

add more information when retrieving packages from service call

* Add deprecation comments for the dynamic package sensors

update deprecation comment

* 1. 17Track repair flow
2. update deprecation comment

* 1. remove description_placeholders
2. 2024.8 deprecated

* Update homeassistant/components/seventeentrack/repairs.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* 1. extract deprecated to constant
2. fix types
3. check for issue_id
4. add listener only when not deprecated
5. update which service to call

* Update homeassistant/components/seventeentrack/strings.json

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/seventeentrack/repairs.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* 1. move deprecate_sensor_issue to where needed
2. add entry_id to issue_id
3. use constant where needed

* update breaks in ha version

* Update homeassistant/components/seventeentrack/strings.json

* Remove obsolete tests

* Fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-07 16:55:38 +02:00
Joost Lekkerkerker
a66631f1ee Bump aiomealie to 0.6.0 (#121439) 2024-07-07 16:55:25 +02:00
Tsvi Mostovicz
de8415d5c7 Set Jewish Calendar quality scale (#120604) 2024-07-07 16:42:43 +02:00
dougiteixeira
0d48d5a5ec Remove device ID from config schema via YAML in helper template (#120708) 2024-07-07 16:40:02 +02:00
srwareham
76bdc4f5c4 Add configurable keep_alive to Ollama integration, change default to 5m (#119341)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-07 16:38:01 +02:00
Zack Cerza
6937aed9fe Handle more pushover exceptions during setup (#115802)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-07-07 16:36:16 +02:00
Jetsada Machom
959298d121 Add Tuya Smart Gardening system (#118335) 2024-07-07 16:34:30 +02:00
kingy444
9b4e64ab62 Bump pydaikin to 2.13.1 (#118679)
Co-authored-by: Fredrik Erlandsson <fredrik.e@gmail.com>
2024-07-07 16:34:05 +02:00
Elliott Balsley
275a7499b1 Add prometheus fan handler (#119805)
Co-authored-by: Anton Tolchanov <1687799+knyar@users.noreply.github.com>
2024-07-07 16:32:15 +02:00
Sid
e2141dc208 Add _attr class attributes to TextToSpeechEntity (#115684) 2024-07-07 16:21:04 +02:00
Jan Rieger
790d22dc46 Migrate QNAP extra state attributes to separate states (#109221) 2024-07-07 16:18:37 +02:00
Marc Mueller
37ffe09add Update mypy-dev to 1.12.0a1 (#121428) 2024-07-07 16:10:17 +02:00
J. Nick Koston
dc5ae9e0b2 Add event platform to august (#121392) 2024-07-07 15:39:58 +02:00
Angel Nunez Mencias
4c1cb6cce8 Add support for SenseCAP (#121405) 2024-07-07 15:29:46 +02:00
Christophe Gagnier
643dcb1429 Change TechnoVE quality scale to platinum (#121275) 2024-07-07 15:28:25 +02:00
Joost Lekkerkerker
e9b62dd203 Fix missing placeholder in intergration issue (#121425) 2024-07-07 15:22:02 +02:00
rappenze
fc6906a12f Enable remove device entry in fibaro integration (#121427) 2024-07-07 15:21:38 +02:00
Michael
846528131e Allow current empty feeds to be configured in Feedreader (#121421) 2024-07-07 15:11:28 +02:00
Joost Lekkerkerker
1c2e6ab3db Fix Mealie URL field (#121434) 2024-07-07 15:03:32 +02:00
xLarry
8e45eb6168 Minor changes to laundrify binary_sensor platform (#121435) 2024-07-07 15:02:57 +02:00
Joost Lekkerkerker
d95b28bdee Sort mealie mealplans (#121433) 2024-07-07 15:01:58 +02:00
Joost Lekkerkerker
17172d841c Fix MPD config flow (#121431) 2024-07-07 14:54:29 +02:00
Florent Thoumie
5ea1601c2c Use shared httpx client in iaqualink integration (#121407) 2024-07-06 21:51:16 -07:00
G Johansson
44f989ae38 Fix feature flag in climate (#121398) 2024-07-06 23:36:53 +02:00
Michael
f1693f2fde Add @mib1185 as codeowner for Feedreader (#121399)
add @mib1185 as codeowner
2024-07-06 22:28:47 +02:00
Richard Kroegel
52de706a85 Set BMW quality scale to platinum (#121388) 2024-07-06 21:19:50 +02:00
G Johansson
6e8cfb3376 Fix timezone issue in smhi weather (#121389) 2024-07-06 21:18:02 +02:00
G Johansson
ac8ea8356c Fix unnecessary logging of turn on/off feature flags in Climate (#121387) 2024-07-06 19:32:27 +02:00
Yaroslav Barov
f115efe51d Add support for Xiaomi airpurifier and humidifier (#117791) 2024-07-06 19:25:05 +02:00
Rasmus Lundsgaard
99476d9337 Fix empty list in kodi media_player (#121250)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-07-06 19:20:14 +02:00
G Johansson
98370fd9a0 Bump psutil to 6.0.0 (#121385) 2024-07-06 19:09:00 +02:00
Barry vd. Heuvel
d113ea8e47 Convert Hue scenes brightness to 0..255 (#105871)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-06 19:04:52 +02:00
atlflyer
ec536bda3d Add json_attributes_path configuration for command_line sensor (#116656)
Add json attributes path config to command line sensor
2024-07-06 18:52:27 +02:00
Alberto Geniola
490dd53edf Improve Elmax alarm control panel (#117689) 2024-07-06 18:21:15 +02:00
Richard Kroegel
131d9ec51b Add BMW tire pressure sensors (#120949) 2024-07-06 18:20:01 +02:00
Richard Kroegel
48145c1a7d Refactor BMW sensors and migrate unique_ids (#121380) 2024-07-06 17:34:20 +02:00
Joost Lekkerkerker
cf34b46b5a Fix Audit license script comments (#121374) 2024-07-06 15:24:45 +02:00
Joost Lekkerkerker
3c14aa12ab Add repair issue when trying to set up unknown integration (#121089)
* Add repair issue when trying to set up unknown integration

* Add repair issue when trying to set up unknown integration

* Add repair issue when trying to set up unknown integration

* Fix

* Update homeassistant/components/homeassistant/strings.json

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

* Update homeassistant/components/homeassistant/strings.json

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

* Update homeassistant/setup.py

* Fix

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-07-06 15:02:58 +02:00
Christophe Gagnier
df9ced9768 Implement TechnoVE diagnostic (#121278) 2024-07-06 13:46:19 +02:00
djtimca
b5a0e89c03 Remove old codeowners who no longer maintain the Omnilogic integration (#117987)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-06 13:11:32 +02:00
Brett Adams
f46c127423 Add energy switch entities to Tessie (#121360) 2024-07-06 12:45:27 +02:00
Brett Adams
e04d612874 Add energy number entities for Tessie (#121354) 2024-07-06 12:29:18 +02:00
Xidorn Quan
2bc7904b51 Add demand window sensor for amberelectric (#121356) 2024-07-06 12:28:52 +02:00
Marius
be0cf545b2 Add valve-open/closed state icons (#121312) 2024-07-06 12:26:35 +02:00
Brett Adams
8f7c3da456 Add energy select entities to Tessie (#120641) 2024-07-06 11:49:53 +02:00
tronikos
17daccd38a Refactor the validation in Google Cloud TTS (#120853) 2024-07-06 11:44:46 +02:00
Alan
8ff4991f07 LLM to handle int attributes (#121037) 2024-07-06 11:41:18 +02:00
Luke Lashley
43481ffeac Add support for Roborock Zeo (#121334) 2024-07-06 11:24:32 +02:00
Robert C. Maehl
ac8bbe9db4 Direct Users to App-Specific Passwords for iCloud integration to prevent MFA spam (#120945)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-07-06 11:12:38 +02:00
Brett Adams
696ae91c35 Add energy binary sensors to Tessie (#121349) 2024-07-06 11:05:52 +02:00
Richard Kroegel
f29094f41d Refactor BMW send_message and add tests (#119170)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-07-06 11:00:00 +02:00
Brett Adams
294c31f6f5 Fix initial Wall Connector values in Tessie (#121353) 2024-07-06 10:54:09 +02:00
Robert Svensson
cce77affc7 Provide default values for common keys in deCONZ websocket fixture (#121359) 2024-07-06 10:52:50 +02:00
Michael Hansen
1ec95f900d Bump webrtc-noise-gain to 1.2.4 (#121346) 2024-07-06 10:51:40 +02:00
Dave T
a358609609 Improve user message if stream is not set up in generic camera (#121308) 2024-07-06 10:50:16 +02:00
Brett Adams
18370bdbb4 Add diagnostics to Tessie (#121348)
* Add diag

* Add snapshot

* Redact serial number
2024-07-06 09:00:03 +02:00
Luke Lashley
e86f2220d0 Bump anova-wifi to 0.17.0 (#121337)
* Bump anova-wifi to 0.16.0

* Bump to .17
2024-07-06 08:39:24 +02:00
Sid
9f839dbb77 Bump ruff to 0.5.1 (#121324)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-07-05 16:44:14 -05:00
Robert Svensson
1b8944dab6 Improve deCONZ websocket fixture (#121332) 2024-07-05 22:35:06 +02:00
Devin
9d204613e8 Expose Twitch "Started At" attribute (#121265) 2024-07-05 22:33:04 +02:00
Joost Lekkerkerker
f2c9188e46 Add audit license script (#120683)
* Add license script

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Remove packages

* Remove packages

* Remove packages

* Remove packages

* Fix

* Remove packages

* Remove packages

* Fix

* Fix

* Fix

* Fix exceptions
2024-07-05 22:04:21 +02:00
Joost Lekkerkerker
1561324274 Fix Netatmo snapshot (#121333) 2024-07-05 22:02:43 +02:00
Erwin Douna
34b5df50cc Match comments with refactoring (#121330)
Change comments
2024-07-05 21:50:50 +02:00
Cris-ET
130dbcb3f1 Add PPV2 entity for Growatt storage inverter (#121052) 2024-07-05 20:20:56 +01:00
J. Nick Koston
89ffee9ad5 Update ulid-transform to 0.10.1 (#121321) 2024-07-05 14:07:39 -05:00
Robert Svensson
94db251aea Finally remove all legacy test stubs from deCONZ tests (#121323) 2024-07-05 20:47:43 +02:00
tronikos
ad2d794fd6 Get languages and voices from the API in Google Cloud TTS (#120852) 2024-07-05 20:03:06 +02:00
Robert Svensson
178655647d Use fixtures in deCONZ init tests (#121217) 2024-07-05 19:17:47 +02:00
Jan Temešinko
6e5c3904b6 Fix ombi configuration validation (#121314) 2024-07-05 19:12:09 +02:00
Robert Svensson
a773d0c8f6 Use fixtures on deCONZ event tests (#121303) 2024-07-05 19:11:21 +02:00
Erik Montnemery
6eeb70151d Use BIGINT SQL type for ID columns (#121025) 2024-07-05 10:42:39 -05:00
Joost Lekkerkerker
fd815beb2d Add valve to base platform (#121313) 2024-07-05 17:41:13 +02:00
Franck Nijhof
1cf62916a7 2024.7.1 (#121289) 2024-07-05 17:25:40 +02:00
Robert Svensson
8c459959ee Use fixtures in deCONZ gateway tests (#121305) 2024-07-05 16:59:10 +02:00
epenet
4b4b17e774 Improve hass type hints for autouse fixtures in tests (#121311) 2024-07-05 15:49:22 +01:00
epenet
9383920b1a Improve type hints in hdmi_cec tests (#121302) 2024-07-05 16:42:55 +02:00
Luke Lashley
ffc39585ed Add ability to select current map for Roborock (#120882)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-05 09:38:26 -05:00
epenet
45ab9cae1a Improve type hints for silent_ssdp_scanner in tests (#121309) 2024-07-05 16:32:10 +02:00
Mariusz Kubisz
bf8cef3337 Add support for min mode in Netatmo public sensor (#118613) 2024-07-05 16:25:05 +02:00
Richard Kroegel
324755b8f5 Separate BMW base entity into separate file (#120830)
* Refactor BMW base entity

* Update snapshots

* Changes from review
2024-07-05 16:08:27 +02:00
Bram Kragten
e3958d4adb Update frontend to 20240705.0 (#121295) 2024-07-05 15:04:01 +02:00
Dave T
94d010a4c0 Fix vscode debug launch deprecation warning by swapping python to debugpy (#120866) 2024-07-05 14:49:41 +02:00
dougiteixeira
4289efb506 Device change test improvements in Template (#120884) 2024-07-05 14:47:31 +02:00
epenet
b9cfd4e8ce Improve type hints in hue tests (#121298) 2024-07-05 14:40:23 +02:00
epenet
7332bc5faf Improve type hints in http tests (#121294) 2024-07-05 14:37:00 +02:00
Bram Kragten
641d6382fd Update frontend to 20240705.0 (#121295) 2024-07-05 14:35:21 +02:00
epenet
288c297c9c Improve type hints in homeassistant_alerts tests (#121293) 2024-07-05 13:25:31 +02:00
epenet
e4731c07cb Add monkeypatch to enforce-type-hints plugin (#121051) 2024-07-05 11:35:56 +02:00
Franck Nijhof
dfccd4abf9 Bump version to 2024.7.1 2024-07-05 11:21:36 +02:00
Steven B
994d6f552c Fix tplink light effect behaviour when activating a scene (#121288) 2024-07-05 11:21:07 +02:00
G Johansson
b015611a2a Bump python-holidays to 0.52 (#121283) 2024-07-05 11:21:04 +02:00
Shay Levy
f4e362c5d0 Bump aiowebostv to 0.4.2 (#121258) 2024-07-05 11:21:00 +02:00
Jordi
a542236614 Bump aioaquacell to 0.1.8 (#121253) 2024-07-05 11:20:57 +02:00
Shay Levy
651439ea06 Fix WebOS TV media player status when OFF after IDLE (#121251) 2024-07-05 11:20:54 +02:00
Robert Resch
eda450838e Bump deebot-client to 8.1.1 (#121241) 2024-07-05 11:20:50 +02:00
hahn-th
b906daa493 Revert Homematic IP Cloud unique ID changes (#121231) 2024-07-05 11:20:47 +02:00
Thomas55555
ac668dce7d Fix work area sensor in Husqvarna Automower (#121228) 2024-07-05 11:20:44 +02:00
Luke Lashley
1bb4d62a3e Bump anova-wifi to 0.15.0 (#121222) 2024-07-05 11:20:40 +02:00
Marcel van der Veldt
0b970f9a85 Listen for attribute changes of OnOff cluster in appliances (#121198) 2024-07-05 11:20:37 +02:00
Marcel van der Veldt
d2b695e7b5 Fix Matter light discovery schema for DimmerSwitch (#121185) 2024-07-05 11:20:34 +02:00
Steven B
b2f23c1a5e Bump python-kasa to 0.7.0.3 (#121183) 2024-07-05 11:20:31 +02:00
Gerben Jongerius
f403afb012 Bump youless library version 2.1.2 (#121181) 2024-07-05 11:20:27 +02:00
Maciej Bieniek
ee276aff44 Fix pulse counter frequency sensors for Shelly Plus Uni (#121178)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-05 11:20:23 +02:00
Maikel Punie
0acd1dc5d1 Bump velbusaio to 2024.7.5 (#121156)
* Bump velbusaio to 2024.7.4

* bump to 2024.7.5 to remove print functions
2024-07-05 11:20:20 +02:00
Martin Weinelt
21815e1621 Fix broken pathlib import in august integration (#121135) 2024-07-05 11:20:17 +02:00
J. Nick Koston
15933bb16f Bump inkbird-ble to 0.5.8 (#121134) 2024-07-05 11:20:13 +02:00
Pavel Skuratovich
930cd0dc50 Starline: Fix "Error updating SLNet token" message in Log (#121122)
Fixes https://github.com/home-assistant/core/issues/116715
2024-07-05 11:20:10 +02:00
Christoph
fc4af48179 Fix HmIP-ESI GAS sensor DeviceClass (#121106)
should be SensorDeviceClass:GAS instead of SensorDeviceClass:VOLUME to be supported in the Energy Dashboard
2024-07-05 11:20:07 +02:00
Marcel van der Veldt
ba1cf84ea5 Fix locking/unlocking transition state in Matter lock platform (#121099) 2024-07-05 11:20:04 +02:00
dougiteixeira
59cf01e252 Add device class translations in Random (#120890) 2024-07-05 11:20:00 +02:00
Allen Porter
46e681f4fc Improve redaction for stream error messages (#120867) 2024-07-05 11:19:56 +02:00
Steven B
d42dced852 Fix tplink light effect behaviour when activating a scene (#121288) 2024-07-05 11:19:04 +02:00
epenet
d0c10c961d Improve type hints in broadlink (#121285) 2024-07-05 11:12:01 +02:00
Joost Lekkerkerker
0088765268 Bump pynx584 to 0.8.2 (#120910) 2024-07-05 11:10:48 +02:00
Franck Nijhof
afb184db73 Remove coveragerc (#121286) 2024-07-05 11:03:31 +02:00
Robert Svensson
eb5a98e7ea Use fixtures in deCONZ light tests PT2 (#121208) 2024-07-05 10:57:17 +02:00
epenet
2ab02c06c6 Add monkeypatch type hints to rflink tests (#121053) 2024-07-05 10:54:16 +02:00
G Johansson
0cf5b4f965 Bump python-holidays to 0.52 (#121283) 2024-07-05 10:02:52 +02:00
Thomas55555
ad02afe7be Extend wrapper for sending commands to all platforms in Husqvarna Automower (#120255) 2024-07-05 10:02:38 +02:00
Paulus Schoutsen
daaf35d4c1 Simplify conversation tests (#121060)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-05 09:46:36 +02:00
J. Nick Koston
229e54d0b1 Remove unneeded blocking sleep in srp_energy tests (#121141) 2024-07-05 09:46:12 +02:00
hahn-th
97de9c9f69 Revert Homematic IP Cloud unique ID changes (#121231) 2024-07-05 09:45:20 +02:00
Allen Porter
700675042b Improve redaction for stream error messages (#120867) 2024-07-05 09:42:29 +02:00
Marcel van der Veldt
1c1e1a7bfa Listen for attribute changes of OnOff cluster in appliances (#121198) 2024-07-05 09:41:57 +02:00
Marcel van der Veldt
98dfb47448 Fix Matter light discovery schema for DimmerSwitch (#121185) 2024-07-05 09:41:41 +02:00
Thomas55555
1b42b32ac1 Fix work area sensor in Husqvarna Automower (#121228) 2024-07-05 09:41:21 +02:00
Maciej Bieniek
dbe98de82a Fix pulse counter frequency sensors for Shelly Plus Uni (#121178)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-05 09:40:43 +02:00
Christophe Gagnier
b28f528a7a Add max current number entity for TechnoVE (#121148)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-05 09:39:58 +02:00
J. Nick Koston
d3f424227f Cleanup unifiprotect entity classes (#121184) 2024-07-05 09:31:31 +02:00
Paulus Schoutsen
22718ca32a Assist Pipeline minor cleanup (#121187) 2024-07-05 09:26:32 +02:00
J. Nick Koston
2b9bddc3fc Make device_tracker fallback defaults cached_property (#121260) 2024-07-05 09:25:57 +02:00
Filipe Pina
213bbae63c Respect icloud Enable polling updates (#117984)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-05 09:24:02 +02:00
Matthew FitzGerald-Chamberlain
def27a082c Add Aprilaire humidifier (#120270) 2024-07-05 09:19:24 +02:00
Maikel Punie
c3830a58cc Bump velbusaio to 2024.7.5 (#121156)
* Bump velbusaio to 2024.7.4

* bump to 2024.7.5 to remove print functions
2024-07-05 09:12:47 +02:00
epenet
b054c037fe Improve type hints in hassio tests (#121221) 2024-07-05 09:05:21 +02:00
Robert Svensson
dcef25c0fa Use fixtures in deCONZ climate tests (#121242) 2024-07-05 09:01:45 +02:00
J. Nick Koston
5a24ee0bc0 Fix blocking I/O while validating config schema (#121263) 2024-07-05 08:58:30 +02:00
J. Nick Koston
e71f6c5948 Small speedup to processing entity customize (#121271) 2024-07-05 08:57:08 +02:00
J. Nick Koston
cdb2ec4231 Small speed up to entity state calculation (#121273) 2024-07-05 08:56:20 +02:00
J. Nick Koston
adee8094e7 Cache is_official_image/is_docker_env in bootstrap to fix blocking I/O (#121261)
* Cache is_official_image and is_docker_env in bootstrap to fix blocking I/O

These do blocking I/O later in the startup process

discovered in https://github.com/home-assistant/core/pull/120273

* comment
2024-07-05 08:30:07 +02:00
Avi Miller
6c42596bdd Bump aiolifx to 1.0.4 (#121267) 2024-07-04 22:26:44 -05:00
Sarabveer Singh
b3a62a97b4 Update HomeKit PM2.5 mappings based on new 2024 US EPA AQI (#109900) 2024-07-04 22:10:35 -05:00
Robert Svensson
62d9020261 Remove legacy method from deCONZ fan and sensor tests (#121244) 2024-07-04 18:17:15 -05:00
Erik Montnemery
e47cbf3cf7 Use async_setup_recorder_instance fixture in recorder v32_migration tests (#121081)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-04 17:49:51 -05:00
Shay Levy
d799a4575b Bump aiowebostv to 0.4.2 (#121258) 2024-07-04 17:27:56 -05:00
Jordi
b406438fa7 Bump aioaquacell to 0.1.8 (#121253) 2024-07-05 01:05:35 +03:00
Shay Levy
b14f22926a Fix WebOS TV media player status when OFF after IDLE (#121251) 2024-07-05 00:19:24 +03:00
xLarry
276f6c7ee7 Update laundrify_aio to v1.2.2 (#121068)
* refactor: upgrade laundrify_aio to v1.2.1

* refactor: update laundrify_aio to v1.2.2
2024-07-04 22:08:50 +02:00
epenet
83fac6192d Use service_calls fixture in webostv tests (#120999) 2024-07-04 23:07:38 +03:00
epenet
84a8259103 Improve type hints in ezviz tests (#120679) 2024-07-04 21:59:02 +02:00
Pavel Skuratovich
3ca66be268 Starline: Fix "Error updating SLNet token" message in Log (#121122)
Fixes https://github.com/home-assistant/core/issues/116715
2024-07-04 21:54:39 +02:00
Maciej Bieniek
001bb3a04e Bump nettigo_air_monitor to version 3.3.0 (#120901)
* Bump nam library

* Update snaphots (increasing accuracy)

* Update lib and snapshot

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-07-04 21:40:25 +02:00
dougiteixeira
50cc31e9cc Add device class translations in Random (#120890) 2024-07-04 21:36:31 +02:00
Richard Kroegel
0afebf744f Add MINI Connected virtual integration (#120874) 2024-07-04 21:30:02 +02:00
Matthew FitzGerald-Chamberlain
df7be501d3 Fix AprilAire case (#120895)
* Fix AprilAire case

* Fix test
2024-07-04 21:27:56 +02:00
G Johansson
ebe7a4747d Bump pytrafikverket to 1.0.0 (#121210)
* Update all related files and tests to new version

* Fix missed modal

* Bump requirements
2024-07-04 21:09:19 +02:00
Robert Resch
10d3c3d341 Bump deebot-client to 8.1.1 (#121241) 2024-07-04 21:03:33 +02:00
Gerben Jongerius
6ab6ce30ef Bump youless library version 2.1.2 (#121181) 2024-07-04 20:51:57 +02:00
epenet
fe0bafd067 Add warnings for deprecated json helpers (#121161) 2024-07-04 20:48:08 +02:00
epenet
04a6285e62 Add .coveragerc to core files (#121182) 2024-07-04 20:46:36 +02:00
epenet
e07bf61f03 Import AsyncGenerator from collections.abc in tests (#121019)
* Force import of Async/Generator from collections.abc

* Adjust

* Don't force
2024-07-04 20:24:27 +02:00
Marcel van der Veldt
df1b02d44e Use Generator from abc instead of typing_extensions in Matter discovery (#121236)
Use Generator from abc instead of typing_extensions
2024-07-04 20:06:23 +02:00
J. Nick Koston
79f4cc9c12 Update uiprotect to 5.2.2 (#121227) 2024-07-04 19:57:30 +02:00
Patrick Koenig
7d5341cab2 Update short_name in web app manifest (#121223) 2024-07-04 18:55:30 +02:00
jvmahon
d5135d4956 Add support for the Select platform in Matter (#119769)
* Add support for ModeSelect Cluster

* Update discovery.py

* Add files via upload

* refactor part 1

* Update discovery.py

* add remaining mode discovery schemas

* add test

* type alias

---------

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
2024-07-04 18:29:10 +02:00
Luke Lashley
950c72a04c Bump anova-wifi to 0.15.0 (#121222) 2024-07-04 11:05:22 -05:00
Erik Montnemery
6df15ad8fc Drop use of async_setup_recorder_instance fixture in recorder purge tests (#121193) 2024-07-04 10:39:24 -05:00
Erik Montnemery
a1e6f8c2ec Drop use of async_setup_recorder_instance fixture in recorder migration tests (#121196) 2024-07-04 10:39:13 -05:00
cnico
092e362f01 Add new integration for Dio Chacon cover devices (#116267)
* Dio Chacon integration addition with config flow and cover entity

* Addition of model information for device

* Addition of light and service to force reloading states

* Logger improvements

* Convert light to switch and usage of v1.0.0 of the api

* 100% for tests coverage

* Invalid credential implementation and rebase on latest ha dev code

* Simplify PR with only one platform

* Ruff correction

* restore original .gitignore content

* Correction of cover state bug when using cover when using actions on cover group.

* Begin of corrections following review.

* unit tests correction

* Refactor with a coordinator as asked by review

* Implemented a post constructor callback init method via dio-chacon-api-1.0.2. Improved typing.

* Corrections for 2nd review

* Reimplemented without coordinator as reviewed with Joostlek

* Review improvement

* generalize callback in entity

* Other review improvements

* Refactored tests for readability

* Test 100% operationals

* Tests review corrections

* Tests review corrections

* Review tests improvements

* simplified tests with snapshots and callback method

* Final fixes

* Final fixes

* Final fixes

* Rename to chacon_dio

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-07-04 16:45:20 +02:00
epenet
28f06cb5a0 Add type hints to homekit events fixture (#121211) 2024-07-04 16:32:01 +02:00
epenet
411630429d Improve type hints in habitica tests (#121212) 2024-07-04 16:27:57 +02:00
epenet
9a1f7f020c Add type hints to matrix events fixtures (#121213) 2024-07-04 16:17:18 +02:00
Robert Svensson
d12f2384c5 Use fixtures in deCONZ config flow tests PT2 (#121203)
* Use fixtures in deCONZ config flow tests PT2

* Update tests/components/deconz/test_config_flow.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-07-04 15:53:25 +02:00
Robert Svensson
24c82c2475 Use fixtures in deCONZ sensor tests PT2 (#121204) 2024-07-04 15:48:49 +02:00
epenet
b949240d4a Improve type hints in google tests (#121169) 2024-07-04 05:56:01 -07:00
Robert Svensson
f78933235d Use fixtures in deCONZ service tests (#121108)
* Use fixtures in deCONZ service tests

* Update tests/components/deconz/test_services.py

Co-authored-by: J. Nick Koston <nick@koston.org>

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-04 14:23:40 +02:00
Robert Svensson
ece8b74967 Use fixtures in deCONZ device trigger tests (#121103) 2024-07-04 14:23:15 +02:00
Robert Svensson
1d8382a498 Use fixtures in deCONZ light tests PT1 (#121112)
Use fixtures in deCONZ light tests part 1
2024-07-04 14:22:10 +02:00
Robert Svensson
873d96bab3 Use fixtures in deCONZ binary sensor tests (#120966) 2024-07-04 14:21:26 +02:00
Robert Svensson
31ed32da6c Use fixtures in deCONZ alarm control panel tests (#120967) 2024-07-04 14:20:57 +02:00
Erik Montnemery
f1d6ad9073 Add test fixture to control recorder migration (#121180)
* Add test fixture to control recorder migration

* Update tests/components/recorder/conftest.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Update tests/components/recorder/conftest.py

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-04 13:10:08 +02:00
Erik Montnemery
d1264655a0 Fix some typos in core.py (#121189) 2024-07-04 13:04:52 +02:00
Giuliano Riccio
ad1ba1a5e5 Fix Google assistant SDK broadcasting command for italian (#116198)
Fixed broadcasting command for italian

Co-authored-by: tronikos <tronikos@users.noreply.github.com>
2024-07-04 03:47:32 -07:00
Erik Montnemery
255778d0c7 Use recorder test fixtures in recorder init tests (#121176) 2024-07-04 04:54:40 -05:00
epenet
3c69301365 Improve type hints in guardian tests (#121175) 2024-07-04 04:53:49 -05:00
J. Nick Koston
67a4c2c884 Add support for event entity motion sensors to HomeKit (#121123) 2024-07-04 04:50:50 -05:00
Robert Svensson
d429bcef16 Use fixtures in deCONZ sensor tests PT1 (#121116) 2024-07-04 11:50:23 +02:00
Robert Svensson
02e7707f91 Use fixtures in deCONZ config flow tests PT1 (#121121) 2024-07-04 04:49:46 -05:00
Franck Nijhof
ee2df9c4b3 Merge branch 'master' into dev 2024-07-04 11:48:03 +02:00
J. Nick Koston
0be1f773a2 Add event platform to doorbird (#121114) 2024-07-04 04:41:56 -05:00
epenet
a6f6221f16 Add monkeypatch type hints to numato tests (#121056)
* Add monkeypatch type hints to numato tests

* Adjust

* Improve
2024-07-04 02:33:47 -07:00
Steven B
4958e8e5c1 Bump python-kasa to 0.7.0.3 (#121183) 2024-07-04 04:31:58 -05:00
epenet
8aedb1201d Improve type hints in google_pubsub tests (#121172)
* Improve type hints in google_pubsub tests

* Remove from .coveragerc
2024-07-04 02:31:35 -07:00
J. Nick Koston
aa74ad0061 Enable ruff asyncio event loop blocking detection rules (#120799) 2024-07-04 04:17:57 -05:00
epenet
43e4223a8e Improve type hints in google_generative_ai tests (#121170) 2024-07-04 02:09:34 -07:00
Paulus Schoutsen
869f24df49 Convert async_get_conversation_languages from async to callback (#121162)
* Convert get_languages to callback

* One more callback
2024-07-04 10:41:31 +02:00
epenet
cf96084ea3 Improve type hints in generic tests (#121166) 2024-07-04 10:32:00 +02:00
epenet
1eec49696a Improve type hints in generic_hygrostat/thermostat tests (#121167) 2024-07-04 10:30:17 +02:00
epenet
1f22f0d89b Improve type hints in google_travel_time tests (#121171) 2024-07-04 10:27:55 +02:00
epenet
dd8ba0828a Improve type hints in geofency tests (#121168) 2024-07-04 10:27:37 +02:00
epenet
c9acd1711c Improve type hints in gpslogger tests (#121173) 2024-07-04 10:23:14 +02:00
epenet
4589be2d11 Improve type hints in group tests (#121174) 2024-07-04 10:22:39 +02:00
Erik Montnemery
d55d02623a Add recorder test fixture to enable persistent SQLite database (#121137)
* Add recorder test fixture to enable persistent SQLite database

* Fix tests directly using async_test_home_assistant context manager
2024-07-04 09:59:37 +02:00
Marcel van der Veldt
24f6e6e885 Fix locking/unlocking transition state in Matter lock platform (#121099) 2024-07-04 09:20:55 +02:00
Steven Looman
ac9c08f52c Add port mapping entry count sensor to upnp (#120263)
Add port mapping entry count sensor
2024-07-04 09:07:41 +02:00
J. Nick Koston
8a5b201d75 Fix blocking I/O in event loop in core test (#121128) 2024-07-04 07:43:46 +02:00
J. Nick Koston
0e9acf2685 Bump thermobeacon-ble to 0.7.0 (#121136)
changelog: https://github.com/Bluetooth-Devices/thermobeacon-ble/compare/v0.6.2...v0.7.0
2024-07-04 07:42:49 +02:00
Christophe Gagnier
3b023367d7 Update pytechnove to 1.3.1 (#121146) 2024-07-04 05:55:36 +01:00
J. Nick Koston
3dbab1a580 Bump inkbird-ble to 0.5.8 (#121134) 2024-07-04 05:51:05 +01:00
J. Nick Koston
1144e23d8d Fix blocking I/O in config tests (#121144) 2024-07-04 05:21:30 +01:00
J. Nick Koston
e8ef2c2822 Fix blocking I/O in tts tests (#121143) 2024-07-04 05:21:01 +01:00
J. Nick Koston
a4d4fc6827 Fix blocking I/O in stream tests (#121142) 2024-07-04 05:15:26 +01:00
J. Nick Koston
7002042119 Fix blocking I/O in mqtt tests (#121140) 2024-07-04 05:13:13 +01:00
J. Nick Koston
c59fc4e3c7 Fix blocking I/O in media_extractor tests (#121139) 2024-07-04 05:08:53 +01:00
Erik Montnemery
cc2782edc7 Use async_test_recorder fixture in recorder auto_repairs tests (#121125) 2024-07-04 01:38:01 +02:00
Martin Weinelt
b6a23fad35 Fix broken pathlib import in august integration (#121135) 2024-07-03 18:18:28 -05:00
MeIchthys
cfef09d653 Bump nextcloudmonitor to 1.5.1 (#120356) 2024-07-04 01:08:38 +02:00
J. Nick Koston
84d8bc711d Fix blocking I/O in event loop in google_assistant test (#121126)
found by ruff in #120799
2024-07-03 23:35:23 +01:00
J. Nick Koston
595e688c56 Fix blocking I/O in event loop in kira test (#121127) 2024-07-03 23:35:02 +01:00
Erik Montnemery
408e524551 Add recorder test fixture for skipping tests by DB engine (#121118)
* Add recorder test fixture for skipping tests by DB engine

* Fix mistake
2024-07-04 00:02:46 +02:00
epenet
73716ea529 Add monkeypatch type hints to webostv tests (#121054)
* Add monkeypatch type hints to webostv

* Improve
2024-07-03 23:49:31 +03:00
epenet
c9240b8e34 Add monkeypatch type hints to switcher_kis tests (#121055)
* Add monkeypatch type hints to switch_kis

* Improve
2024-07-03 23:49:01 +03:00
J. Nick Koston
7958c0825e Fix blocking process call in process tests (#121104)
Discovered by ruff in https://github.com/home-assistant/core/pull/120799
2024-07-03 22:26:03 +02:00
J. Nick Koston
291f309c0e Remove unnecessary lambdas in timeout tests (#121101) 2024-07-03 22:24:41 +02:00
Christoph
f85c356522 Fix HmIP-ESI GAS sensor DeviceClass (#121106)
should be SensorDeviceClass:GAS instead of SensorDeviceClass:VOLUME to be supported in the Energy Dashboard
2024-07-03 22:19:59 +02:00
J. Nick Koston
8017bc6776 Fix blocking I/O in demo mailbox (#121097) 2024-07-03 14:37:29 -05:00
Jan Bouwhuis
2040c285b1 Remove schema option for mqtt vacuum configs (#121093) 2024-07-03 21:35:20 +02:00
J. Nick Koston
53767b6159 Fix event loop blocking I/O in generic tests (#121100) 2024-07-03 20:24:25 +01:00
J. Nick Koston
4881205831 Fix event loop blocking I/O in command_line tests (#121098) 2024-07-03 14:22:38 -05:00
Erik Montnemery
5029da6919 Make the async_setup_recorder_instance fixture a context manager (#121086) 2024-07-03 14:05:34 -05:00
Erik Montnemery
61f1c8d963 Fix leak of SQLAlchemy engine objects in recorder (#121085) 2024-07-03 12:17:52 -05:00
J. Nick Koston
48172b0426 Small speed up to writing entity state (#121043) 2024-07-03 12:16:41 -05:00
Franck Nijhof
2b64f6f2ab 2024.7.0 (#120579) 2024-07-03 18:52:01 +02:00
Franck Nijhof
1080a4ef1e Bump version to 2024.7.0 2024-07-03 17:55:58 +02:00
J. Nick Koston
44c89e6c3b Cleanup v32 recorder migration test (#121083) 2024-07-03 10:45:19 -05:00
Franck Nijhof
d94b36cfbb Bump version to 2024.7.0b11 2024-07-03 17:29:08 +02:00
Marcel van der Veldt
85168239cd Matter fix Energy sensor discovery schemas (#121080) 2024-07-03 17:28:59 +02:00
Robert Resch
547b24ce58 Bump deebot-client to 8.1.0 (#121078) 2024-07-03 17:28:56 +02:00
Michael Hansen
e8bcb3e11e Bump intents to 2024.7.3 (#121076) 2024-07-03 17:28:53 +02:00
Marcel van der Veldt
c89a9b5ce0 Bump python-matter-server to 6.2.2 (#121072) 2024-07-03 17:28:49 +02:00
Robert Svensson
13631250b4 Bump axis to v62 (#121070) 2024-07-03 17:28:46 +02:00
Bram Kragten
6621cf475a Update frontend to 20240703.0 (#121063) 2024-07-03 17:28:43 +02:00
Anton Tolchanov
36e74cd9a6 Generate Prometheus metrics in an executor job (#121058) 2024-07-03 17:28:38 +02:00
Kevin Stillhammer
16827ea09e Bump here-transit to 1.2.1 (#120900) 2024-07-03 17:27:10 +02:00
Kevin Stillhammer
c4956b66b0 Bump here-routing to 1.0.1 (#120877) 2024-07-03 17:27:06 +02:00
J. Nick Koston
e4a0a21b67 Bump uiprotect to 5.2.0 (#121079) 2024-07-03 10:18:46 -05:00
Joost Lekkerkerker
bc363c385f Fix async knocki function (#121048) 2024-07-03 17:17:37 +02:00
Marcel van der Veldt
7a9792c111 Matter fix Energy sensor discovery schemas (#121080) 2024-07-03 17:16:51 +02:00
Robert Resch
1a715d7b89 Bump deebot-client to 8.1.0 (#121078) 2024-07-03 17:11:09 +02:00
Erik Montnemery
46a488d871 Use async_setup_recorder_instance fixture in recorder auto_repairs tests (#121077) 2024-07-03 17:04:39 +02:00
Michael Hansen
0b76d5c9ca Bump intents to 2024.7.3 (#121076) 2024-07-03 16:55:21 +02:00
Marcel van der Veldt
355c7399d7 Bump python-matter-server to 6.2.2 (#121072) 2024-07-03 16:27:45 +02:00
Erik Montnemery
e26b4554e6 Improve logic when retrying establishing database connection (#121047) 2024-07-03 16:22:21 +02:00
Paulus Schoutsen
976cb434c9 Add CONTROL supported feature to OpenAI conversation entities (#121064)
Add CONTROL supported feature to OpenAI
2024-07-03 09:19:46 -05:00
Robert Svensson
f284aa41eb Bump axis to v62 (#121070) 2024-07-03 16:16:13 +02:00
epenet
1332e39f9e Cleanup deprecated json utils (#121069)
* Cleanup deprectated json utils

* Adjust pylint
2024-07-03 15:57:32 +02:00
epenet
8709c668cc Remove unused diagnostics fixtures (#121066) 2024-07-03 15:57:02 +02:00
Erik Montnemery
87f7703f3c Use async_setup_recorder_instance fixture in recorder migration tests (#121050) 2024-07-03 08:56:05 -05:00
Bram Kragten
e7ffd7b9ad Update frontend to 20240703.0 (#121063) 2024-07-03 15:41:43 +02:00
Anton Tolchanov
9b2233e65e Generate Prometheus metrics in an executor job (#121058) 2024-07-03 15:41:01 +02:00
Kevin Stillhammer
fbb98a668c Bump here-transit to 1.2.1 (#120900) 2024-07-03 15:35:08 +02:00
Paulus Schoutsen
a885bdfe76 Add conversation supported feature CONTROL (#121036) 2024-07-03 14:30:51 +02:00
epenet
ac57eb7614 Add monkeypatch type hints to shelly tests (#121057)
* Add monkeypatch type hints to shelly tests

* Improve
2024-07-03 12:08:40 +02:00
Franck Nijhof
84204c38be Bump version to 2024.7.0b10 2024-07-03 08:59:52 +02:00
J. Nick Koston
febd1a3772 Bump inkbird-ble to 0.5.7 (#121039)
changelog: https://github.com/Bluetooth-Devices/inkbird-ble/compare/v0.5.6...v0.5.7
2024-07-03 08:59:45 +02:00
Allen Porter
1665cb40ac Bump gcal_sync to 6.1.4 (#120941) 2024-07-03 08:59:41 +02:00
J. Nick Koston
c33cbf8312 Bump inkbird-ble to 0.5.7 (#121039)
changelog: https://github.com/Bluetooth-Devices/inkbird-ble/compare/v0.5.6...v0.5.7
2024-07-02 21:12:17 -05:00
J. Nick Koston
23e061ccbd Bump uiprotect to 5.0.0 (#121034)
changelog: https://github.com/uilibs/uiprotect/compare/v4.2.0...v5.0.0

Breaking change in the lib is not auto converting enum values to
their underlying values. They are mostly StrEnums so this should
not have any impact unless I missed one.
2024-07-02 21:11:31 -05:00
Christophe Gagnier
399548a973 Bump pytechnove to 1.3.0 (#120975) 2024-07-03 02:32:34 +02:00
Erik Montnemery
a4d889e958 Remove BaseTableManager active attribute (#121020) 2024-07-02 18:29:12 -05:00
Markus Jacobsen
510315732a Add Beoconnect Core as selectable Bang & Olufsen device (#121015)
Add Beoconnect Core as available device
2024-07-02 21:22:22 +01:00
epenet
476efb1d36 Improve type hints in home_connect tests (#121014) 2024-07-02 22:19:33 +02:00
J. Nick Koston
bdc6805771 Bump orjson to 3.10.6 (#121028) 2024-07-02 13:17:25 -07:00
Franck Nijhof
1b9f27fab7 Bump version to 2024.7.0b9 2024-07-02 22:15:17 +02:00
Bram Kragten
d1e76d5c3c Update frontend to 20240702.0 (#121032) 2024-07-02 22:15:09 +02:00
Jan-Philipp Benecke
4377f4cbea Temporarily set apprise log level to debug in tests (#121029)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-02 22:15:05 +02:00
Jan-Philipp Benecke
7d31d553d0 Temporarily set apprise log level to debug in tests (#121029)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-02 22:13:19 +02:00
Bram Kragten
9749cf113a Update frontend to 20240702.0 (#121032) 2024-07-02 22:13:07 +02:00
Marc Mueller
0e52d149e4 Update voluptuous to 0.15.2 (#120631)
* Update voluptuous to 0.15.1

* Fix typing issues

* Add type ignores for json result type

* Update voluptuous to 0.15.2

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-07-02 12:57:09 -07:00
Franck Nijhof
6b045a7d7b Bump version to 2024.7.0b8 2024-07-02 21:09:55 +02:00
Marcel van der Veldt
1fa6972a66 Handle mains power for Matter appliances (#121023) 2024-07-02 21:09:39 +02:00
Marcel van der Veldt
b3e833f677 Fix setting target temperature for single setpoint Matter thermostat (#121011) 2024-07-02 21:09:36 +02:00
starkillerOG
807ed0ce10 Do not hold core startup with reolink firmware check task (#120985) 2024-07-02 21:09:32 +02:00
starkillerOG
5cb41106b5 Reolink replace automatic removal of devices by manual removal (#120981)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-02 21:09:28 +02:00
Joost Lekkerkerker
98a2e46d4a Remove Aladdin Connect integration (#120980) 2024-07-02 21:08:14 +02:00
Joost Lekkerkerker
24afbde79e Bump yt-dlp to 2024.07.01 (#120978) 2024-07-02 21:05:52 +02:00
starkillerOG
65d2ca53cb Bump reolink-aio to 0.9.4 (#120964) 2024-07-02 21:05:49 +02:00
Joost Lekkerkerker
23b905b422 Bump airgradient to 0.6.1 (#120962) 2024-07-02 21:05:46 +02:00
Joost Lekkerkerker
de458493f8 Fix missing airgradient string (#120957) 2024-07-02 21:05:42 +02:00
Erik Montnemery
efd3252849 Create log files in an executor thread (#120912) 2024-07-02 21:05:39 +02:00
Jesse Hills
3b6acd5380 [ESPHome] Disable dashboard based update entities by default (#120907)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-07-02 21:05:36 +02:00
Teemu R
1e6dc74812 Minor polishing for tplink (#120868) 2024-07-02 21:05:22 +02:00
Marcel van der Veldt
0d0ca22103 Fix setting target temperature for single setpoint Matter thermostat (#121011) 2024-07-02 21:03:01 +02:00
Marcel van der Veldt
52627b9aed Handle mains power for Matter appliances (#121023) 2024-07-02 21:02:29 +02:00
Myles Eftos
ba7e45e157 Bump amberelectric to 1.1.1 (#121010) 2024-07-02 19:40:30 +02:00
epenet
592ef59c5a Use common fixtures in tasmota tests (#121000) 2024-07-02 17:38:20 +02:00
epenet
195f07a18a Use service_calls fixture in nest tests (#120987) 2024-07-02 08:02:17 -07:00
Erik Montnemery
5b39989869 Fix typo in post_schema_migration (#121017) 2024-07-02 15:52:54 +02:00
Erik Montnemery
b8b7c23258 Create log files in an executor thread (#120912) 2024-07-02 15:48:35 +02:00
epenet
faf43ed4c7 Adjust Generator type hints in tests (#121013) 2024-07-02 14:12:02 +02:00
epenet
bd234db48f Improve type hints in analytics tests (#121012) 2024-07-02 13:58:11 +02:00
Joost Lekkerkerker
2edb7eb42c Remove Aladdin Connect integration (#120980) 2024-07-02 13:51:44 +02:00
Jesse Hills
72d706ab52 [ESPHome] Disable dashboard based update entities by default (#120907)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-07-02 13:51:14 +02:00
starkillerOG
e322cada48 Reolink replace automatic removal of devices by manual removal (#120981)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-07-02 13:31:23 +02:00
Robert Svensson
baf2ebf1f2 Use fixtures in deCONZ diagnostics tests (#120968) 2024-07-02 12:43:34 +02:00
epenet
326d24d78b Use service_calls fixture in xiaomi_ble tests (#120998) 2024-07-02 12:37:50 +02:00
epenet
3adea1ada9 Use service_calls fixture in zwave_js tests (#120994) 2024-07-02 12:37:21 +02:00
epenet
02dffcde1a Use common registry fixtures in solarlog (#121005) 2024-07-02 12:36:30 +02:00
Joost Lekkerkerker
cdc3897319 Bump yt-dlp to 2024.07.01 (#120978) 2024-07-02 12:35:10 +02:00
epenet
22f5f59478 Use service_calls fixture in core platform tests [m-z] (#121001) 2024-07-02 12:34:11 +02:00
epenet
76a62028ad Use common registry fixtures in lifx (#121004) 2024-07-02 12:32:17 +02:00
epenet
6fd1f0a34f Use common fixtures in philips_js tests (#120988) 2024-07-02 12:31:10 +02:00
epenet
e544550380 Use service_calls fixture in yolink tests (#120997) 2024-07-02 12:30:52 +02:00
epenet
8819a9aa52 Use service_calls fixture in sun tests (#120990) 2024-07-02 12:29:51 +02:00
epenet
1f6744847d Use service_calls fixture in zone tests (#120995) 2024-07-02 12:29:21 +02:00
starkillerOG
4a8436d6bc Do not hold core startup with reolink firmware check task (#120985) 2024-07-02 12:28:32 +02:00
epenet
b13e78f3a3 Use service_calls fixture in microsoft tests (#120983) 2024-07-02 12:27:54 +02:00
epenet
71b7ee40e5 Use common registry fixtures in tplink (#121002) 2024-07-02 12:27:15 +02:00
epenet
9ca9377cad Use common registry fixtures in hue (#121003) 2024-07-02 12:26:25 +02:00
epenet
e3516be3e3 Use service_calls fixture in mqtt tests (#120984) 2024-07-02 11:23:46 +02:00
epenet
fac511aa46 Use service_calls fixture in samsungtv tests (#120992) 2024-07-02 10:37:14 +02:00
epenet
3df3e6d081 Use service_calls fixture in shelly tests (#120991) 2024-07-02 10:36:50 +02:00
epenet
07d80d5ad9 Use service_calls fixture in netatmo tests (#120986) 2024-07-02 10:17:41 +02:00
starkillerOG
2d054fb5df Bump reolink-aio to 0.9.4 (#120964) 2024-07-02 09:25:33 +02:00
Joost Lekkerkerker
2635573bbc Bump airgradient to 0.6.1 (#120962) 2024-07-02 08:23:31 +02:00
Teemu R
90d622cd02 Minor polishing for tplink (#120868) 2024-07-02 08:23:07 +02:00
Robert Svensson
0ffebd4853 Use fixtures in deCONZ button tests (#120958) 2024-07-01 20:48:33 +02:00
Joost Lekkerkerker
383de96549 Fix missing airgradient string (#120957) 2024-07-01 20:36:35 +02:00
Robert Svensson
690164a518 Use fixtures in deCONZ cover tests (#120954) 2024-07-01 20:31:42 +02:00
Robert Svensson
167a8c6613 Use fixtures in deCONZ fan tests (#120953) 2024-07-01 19:49:12 +02:00
Franck Nijhof
74687f3b60 Bump version to 2024.7.0b7 2024-07-01 19:44:51 +02:00
Markus Jacobsen
2f307d6a8a Fix Bang & Olufsen jumping volume bar (#120946) 2024-07-01 19:44:37 +02:00
J. Nick Koston
d8f55763c5 Downgrade logging previously reported asyncio block to debug (#120942) 2024-07-01 19:44:34 +02:00
Steven B
4b2be448f0 Bump python-kasa to 0.7.0.2 (#120940) 2024-07-01 19:44:31 +02:00
Marcel van der Veldt
8a7e2c05a5 Mark dry/fan-only climate modes as supported for Panasonic room air conditioner (#120939) 2024-07-01 19:44:28 +02:00
Paulus Schoutsen
887ab1dc58 Bump openai to 1.35.1 (#120926)
Bump openai to 1.35.7
2024-07-01 19:44:25 +02:00
Jan Bouwhuis
a787ce8633 Bump incomfort-client dependency to 0.6.3 (#120913) 2024-07-01 19:44:22 +02:00
Robert Resch
88ed43c779 Improve add user error messages (#120909) 2024-07-01 19:44:19 +02:00
dougiteixeira
16d7764f18 Add missing translations for device class in Template (#120893) 2024-07-01 19:44:15 +02:00
dougiteixeira
a0f8012f48 Add missing translations for device class in SQL (#120892) 2024-07-01 19:44:12 +02:00
dougiteixeira
5a052feb87 Add missing translations for device class in Scrape (#120891) 2024-07-01 19:44:09 +02:00
Allen Porter
779a7ddaa2 Bump ical to 8.1.1 (#120888) 2024-07-01 19:44:06 +02:00
Shay Levy
a9740faeda Fix Shelly device shutdown (#120881) 2024-07-01 19:44:03 +02:00
Thomas55555
3a0e85beb8 Bump aioautomower to 2024.6.4 (#120875) 2024-07-01 19:43:59 +02:00
Yuxin Wang
c19fb35d02 Add handling for different STATFLAG formats in APCUPSD (#120870)
* Add handling for different STATFLAG formats

* Just use removesuffix
2024-07-01 19:43:56 +02:00
J. Nick Koston
6f716c1753 Fix publish cancellation handling in MQTT (#120826) 2024-07-01 19:43:53 +02:00
Jan Bouwhuis
40384b9acd Split mqtt client tests (#120636) 2024-07-01 19:43:50 +02:00
Jan Bouwhuis
3bbf8df6d6 Cleanup mqtt platform tests part 4 (init) (#120574) 2024-07-01 19:43:46 +02:00
epenet
07f095aa42 Use service_calls fixture in core platform tests [a-l] (#120904) 2024-07-01 19:27:50 +02:00
Markus Jacobsen
c2dc9e9b67 Simplify Bang & Olufsen media_image_url property (#120951)
Simplify media_image_url property
2024-07-01 20:23:27 +03:00
Shay Levy
b5367e5994 Fix Shelly device shutdown (#120881) 2024-07-01 19:06:56 +02:00
Robert Svensson
1209abc944 Use fixtures in deCONZ switch tests (#120944) 2024-07-01 19:03:32 +02:00
Markus Jacobsen
a29dc4ef1e Fix Bang & Olufsen jumping volume bar (#120946) 2024-07-01 19:02:43 +02:00
Robert Svensson
7a3039aecb Use fixtures in deCONZ lock tests (#120948) 2024-07-01 19:01:32 +02:00
Robert Svensson
d506c30b38 Use fixtures in deCONZ logbook tests (#120947) 2024-07-01 18:58:43 +02:00
Robert Resch
a0b604f98c Improve add user error messages (#120909) 2024-07-01 18:27:40 +02:00
J. Nick Koston
001ee0cc0b Downgrade logging previously reported asyncio block to debug (#120942) 2024-07-01 18:26:20 +02:00
epenet
e5c7ff6a5b Use service_calls fixture in conversation tests (#120906) 2024-07-01 17:57:40 +02:00
epenet
918ac5d67c Use service_calls fixture in geo_location tests (#120911) 2024-07-01 17:56:58 +02:00
epenet
afb0a6e0ab Use service_calls fixture in homekit_controller tests (#120927) 2024-07-01 17:55:39 +02:00
epenet
b3a50893cf Use service_calls fixture in kodi tests (#120929) 2024-07-01 17:55:01 +02:00
Paulus Schoutsen
c6cfe073ea Bump openai to 1.35.1 (#120926)
Bump openai to 1.35.7
2024-07-01 17:52:30 +02:00
Allen Porter
d53cfbbb4e Bump gcal_sync to 6.1.4 (#120941) 2024-07-01 17:52:19 +02:00
tronikos
8354aa434e Remove a useless line in Google Generative AI test (#120903) 2024-07-01 17:48:39 +02:00
tronikos
5ce54c2174 Replace GoogleAPICallError with GoogleAPIError (#120902) 2024-07-01 17:48:12 +02:00
epenet
813fee663e Use service_calls fixture in litejet tests (#120933) 2024-07-01 17:47:21 +02:00
Robert Svensson
dcf4e91234 Use fixtures in deCONZ number tests (#120938) 2024-07-01 17:46:46 +02:00
Robert Svensson
361e81821c Use fixtures in deCONZ scene tests (#120936) 2024-07-01 17:42:32 +02:00
Aidan Timson
52b743e88a Add exception translations (#120937) 2024-07-01 17:39:01 +02:00
epenet
788d1999ff Use service_calls fixture in lg_netcast tests (#120932) 2024-07-01 17:37:29 +02:00
epenet
c4903dd982 Use service_calls fixture in media_extractor tests (#120935) 2024-07-01 17:32:17 +02:00
Marcel van der Veldt
8a23e37837 Mark dry/fan-only climate modes as supported for Panasonic room air conditioner (#120939) 2024-07-01 17:30:23 +02:00
Robert Svensson
77fc1c991c Use fixtures in deCONZ select tests (#120943) 2024-07-01 17:29:57 +02:00
epenet
ce54ca9c8e Use service_calls fixture in lcn tests (#120931) 2024-07-01 17:27:32 +02:00
epenet
c8bb64882e Use service_calls fixture in homeassistant tests (#120922) 2024-07-01 17:26:41 +02:00
epenet
2815c43f3e Use service_calls fixture in lutron_caseta tests (#120934) 2024-07-01 17:24:36 +02:00
Steven B
38aa6bcf19 Bump python-kasa to 0.7.0.2 (#120940) 2024-07-01 16:50:35 +02:00
Allen Porter
2506acc095 Improve flume test coverage (#120851)
* Add Flume init tests

* Increase test coverage

* Improve readability

* Fix pydoc for tests

* Use pytest.mark.usefixtures
2024-07-01 07:41:47 -07:00
epenet
c9911fa8ce Use service_calls fixture in hue tests (#120928) 2024-07-01 16:16:19 +02:00
epenet
bc3562a9e8 Use service_calls fixture in knx tests (#120930) 2024-07-01 14:33:01 +02:00
dougiteixeira
5513682de4 Add missing translations for device class in Scrape (#120891) 2024-07-01 14:21:41 +02:00
epenet
61b2e4ca32 Add Context to service_calls fixture (#120923) 2024-07-01 14:05:30 +02:00
Robert Resch
546d6b22f1 Remove OverloadUT as codeowner from Ecovacs (#120517) 2024-07-01 14:03:21 +02:00
Marc Mueller
414525503c Use TypeVar defaults for Generator (#120921)
* Use TypeVar defaults for Generator

* Code review
2024-07-01 14:02:54 +02:00
epenet
4cc414fbf8 Use service_calls fixture in google_translate tests (#120920) 2024-07-01 13:10:39 +02:00
Jan Bouwhuis
09ff44e59e Bump incomfort-client dependency to 0.6.3 (#120913) 2024-07-01 13:06:14 +02:00
Robert Svensson
44640ef9e8 First step towards fixtures in deCONZ tests (#120863)
* config entry fixture

* Mock web request

* Make siren tests use new fixtures

* Replace old constants

* Add mock put request

* Change comment
2024-07-01 12:33:51 +02:00
Joost Lekkerkerker
f08638eead Add typing to Panasonic Viera (#120772)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-07-01 12:30:20 +02:00
Marc Mueller
921430d497 Import Generator from collections.abc (3) (#120916) 2024-07-01 12:09:11 +02:00
Marc Mueller
2f0dd6f704 Import Generator from collections.abc (2) (#120915) 2024-07-01 11:58:49 +02:00
Marc Mueller
f11b316dac Import Generator from collections.abc (4) (#120917) 2024-07-01 11:54:42 +02:00
Marc Mueller
ca55986057 Import Generator from collections.abc (1) (#120914) 2024-07-01 11:51:51 +02:00
Allen Porter
aa5ebaf613 Bump ical to 8.1.1 (#120888) 2024-07-01 10:46:10 +02:00
epenet
88583149ea Use service_calls fixture in deconz tests (#120905) 2024-07-01 10:33:31 +02:00
dependabot[bot]
d5d77db4f9 Bump github/codeql-action from 3.25.10 to 3.25.11 (#120899)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 08:47:52 +02:00
dougiteixeira
295cfd26aa Add missing translations for device class in Template (#120893) 2024-07-01 07:55:13 +02:00
dougiteixeira
74c2f000d8 Add missing translations for device class in SQL (#120892) 2024-07-01 07:44:59 +02:00
Yuxin Wang
269b8b07c4 Add handling for different STATFLAG formats in APCUPSD (#120870)
* Add handling for different STATFLAG formats

* Just use removesuffix
2024-07-01 07:30:08 +02:00
Thomas55555
6af9527310 Bump aioautomower to 2024.6.4 (#120875) 2024-07-01 01:12:33 +02:00
Kevin Stillhammer
eceecbb07b Bump here-routing to 1.0.1 (#120877) 2024-07-01 00:23:42 +02:00
Franck Nijhof
14af3661f3 Bump version to 2024.7.0b6 2024-06-30 20:42:10 +02:00
Michael
af733425c2 Bump pyfritzhome to 0.6.12 (#120861) 2024-06-30 20:41:51 +02:00
Allen Porter
4fc89e8861 Rollback PyFlume to 0.6.5 (#120846) 2024-06-30 20:39:47 +02:00
Tsvi Mostovicz
bcec268c04 Fix Jewish calendar unique id move to entity (#120842) 2024-06-30 20:39:44 +02:00
Shay Levy
becf9fcce2 Bump aiowebostv to 0.4.1 (#120838) 2024-06-30 20:39:41 +02:00
Etienne Soufflet
ad9e0ef8e4 Fix Tado fan mode (#120809) 2024-06-30 20:39:38 +02:00
Simon Lamon
f58eafe8fc Fix routes with transfer in nmbs integration (#120808) 2024-06-30 20:39:35 +02:00
mkmer
a7246400b3 Allow EM heat on from any mode in Honeywell (#120750) 2024-06-30 20:39:32 +02:00
Joost Lekkerkerker
38a30b343d Bump pizzapi to 0.0.6 (#120691) 2024-06-30 20:39:28 +02:00
Etienne Soufflet
1a63bb89cb Fix Tado fan mode (#120809) 2024-06-30 20:38:35 +02:00
Sander Peterse
2f5ec41fa6 Add valve domain to HomeKit (#115901)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-30 12:04:20 -05:00
Richard Kroegel
f672eec515 Fix unifi device tracker test imports (#120864) 2024-06-30 16:27:03 +02:00
mkmer
419d89f863 Allow EM heat on from any mode in Honeywell (#120750) 2024-06-30 15:30:52 +02:00
Robert Resch
05ffd637f5 Migrate Ecowitt to runtime_data (#120675) 2024-06-30 15:29:00 +02:00
Joost Lekkerkerker
b375f5227b Bump pizzapi to 0.0.6 (#120691) 2024-06-30 15:28:01 +02:00
Robert Svensson
8b3319b772 Improve UniFi device tracker tests (#120795) 2024-06-30 15:26:45 +02:00
Robert Svensson
289a630578 Improve UniFi device tracker tests Pt2 (#120796) 2024-06-30 15:25:38 +02:00
dontinelli
bb62a8a7dc Change schema to TextSelector to enable autocomplete (#120771) 2024-06-30 15:22:36 +02:00
Robert Svensson
e961ddd5fe Simplify UniFi uptime sensor test (#120794) 2024-06-30 15:22:15 +02:00
Simon Lamon
be68255ca4 Fix routes with transfer in nmbs integration (#120808) 2024-06-30 15:16:41 +02:00
Richard Kroegel
57aced50aa Use SelectSelector in BMW config flow (#120831) 2024-06-30 15:04:55 +02:00
tronikos
5deb69d492 Correctly return file extension in Google Cloud TTS (#120849) 2024-06-30 15:02:06 +02:00
dontinelli
255cc9ed74 Store runtime data inside the config entry in fyta (#120761) 2024-06-30 14:57:48 +02:00
Michael
7aca7cf858 Bump pyfritzhome to 0.6.12 (#120861) 2024-06-30 14:56:12 +02:00
Robert Svensson
ca7fb906cc Axis improve fixture naming (#120844) 2024-06-30 14:52:20 +02:00
Richard Kroegel
d15d001cfc Use runtime_data for BMW (#120837) 2024-06-30 14:51:39 +02:00
tronikos
d55be79e6a Handle error when validating options in Google Cloud TTS (#120850) 2024-06-30 02:03:58 -07:00
tronikos
bf608691d5 Do not set gender if voice name is specified in Google Cloud TTS (#120848)
* Use TextToSpeechAsyncClient in Google Cloud TTS

* Do not set gender if voice name is specified in Google Cloud TTS
2024-06-30 02:03:24 -07:00
tronikos
75e3afd369 Use TextToSpeechAsyncClient in Google Cloud TTS (#120847) 2024-06-29 23:28:18 -07:00
tronikos
72fdebeb88 Bump google-cloud-texttospeech to 2.16.3 (#120845) 2024-06-29 22:38:56 -07:00
Allen Porter
f65304957a Rollback PyFlume to 0.6.5 (#120846) 2024-06-29 21:35:48 -07:00
J. Nick Koston
5280291f98 Add linked doorbell event support to HomeKit (#120834) 2024-06-29 18:43:20 -05:00
Tsvi Mostovicz
7172d798f8 Fix Jewish calendar unique id move to entity (#120842) 2024-06-30 00:08:24 +02:00
Shay Levy
e0b0959b3f Bump aiowebostv to 0.4.1 (#120838) 2024-06-29 22:07:37 +03:00
dontinelli
bcee5f4d9f Store runtime data inside the config entry in solarlog (#120773) 2024-06-29 19:32:22 +02:00
Steven Looman
559caf4179 Use eventing for some of the upnp sensors, instead of polling (#120262) 2024-06-29 12:11:22 -05:00
jjlawren
b5f1076bb2 Bump plexapi to 4.15.14 (#120832) 2024-06-29 11:10:35 -05:00
J. Nick Koston
8f98fb2ec4 Fix publish cancellation handling in MQTT (#120826) 2024-06-29 11:06:56 -05:00
Franck Nijhof
08a0eaf184 Bump version to 2024.7.0b5 2024-06-29 17:51:45 +02:00
Joost Lekkerkerker
3ee8f6edba Use meal note as fallback in Mealie (#120828) 2024-06-29 17:51:34 +02:00
Joost Lekkerkerker
e866417c01 Add icons to Airgradient (#120820) 2024-06-29 17:51:31 +02:00
Joost Lekkerkerker
05c63eb884 Bump python-opensky to 1.0.1 (#120818) 2024-06-29 17:51:28 +02:00
Joost Lekkerkerker
bb52bfd73d Add unique id to Mealie config entry (#120816) 2024-06-29 17:51:25 +02:00
Joost Lekkerkerker
7319492bf3 Bump aiomealie to 0.5.0 (#120815) 2024-06-29 17:51:21 +02:00
J. Nick Koston
66932e3d9a Fix unneeded dict values for MATCH_ALL recorder attrs exclude (#120804)
* Small cleanup to handling MATCH_ALL recorder attrs exclude

* Fix unneeded dict values for MATCH_ALL recorder attrs exclude

The exclude is a set so the dict values were not needed

* Fix unneeded dict values for MATCH_ALL recorder attrs exclude

The exclude is a set so the dict values were not needed

* Fix unneeded dict values for MATCH_ALL recorder attrs exclude

The exclude is a set so the dict values were not needed
2024-06-29 17:51:18 +02:00
J. Nick Koston
0ec07001bd Fix blocking I/O in xmpp notify to read uploaded files (#120801)
detected by ruff in https://github.com/home-assistant/core/pull/120799
2024-06-29 17:51:15 +02:00
J. Nick Koston
0dcfd38cdc Fix missing f-string in loop util (#120800) 2024-06-29 17:51:12 +02:00
Klaas Schoute
b45eff9a2b Bump gridnet lib to v5.0.1 (#120793) 2024-06-29 17:51:09 +02:00
Klaas Schoute
ec577c7bd3 Bump odp-amsterdam lib to v6.0.2 (#120788) 2024-06-29 17:51:06 +02:00
Paul Bottein
723c4a1eb5 Update frontend to 20240628.0 (#120785)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-29 17:51:02 +02:00
Klaas Schoute
b30b4d5a3a Bump energyzero lib to v2.1.1 (#120783) 2024-06-29 17:50:59 +02:00
Matthew FitzGerald-Chamberlain
8165acddeb Bump pyaprilaire to 0.7.4 (#120782) 2024-06-29 17:50:56 +02:00
Joost Lekkerkerker
0f3ed3bb67 Bump aiowithings to 3.0.2 (#120765) 2024-06-29 17:50:53 +02:00
Maciej Bieniek
d1a96ef362 Do not call async_delete_issue() if there is no issue to delete in Shelly integration (#120762)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-29 17:50:50 +02:00
J. Nick Koston
917eeba984 Increase mqtt availablity timeout to 50s (#120760) 2024-06-29 17:50:46 +02:00
Clifford Roche
59bb8b360e Bump greeclimate to 1.4.6 (#120758) 2024-06-29 17:50:43 +02:00
Klaas Schoute
6028e5b77a Bump p1monitor lib to v3.0.1 (#120756) 2024-06-29 17:50:40 +02:00
Klaas Schoute
83df470307 Bump easyenergy lib to v2.1.2 (#120753) 2024-06-29 17:50:37 +02:00
Joost Lekkerkerker
20ac0aa7b1 Bump govee-local-api to 1.5.1 (#120747) 2024-06-29 17:50:34 +02:00
Joost Lekkerkerker
f57c942901 Bump sense-energy to 0.12.4 (#120744)
* Bump sense-energy to 0.12.4

* Fix
2024-06-29 17:50:31 +02:00
Alexey ALERT Rubashёff
8994ab1686 Add warm water remaining volume sensor to Overkiz (#120718)
* warm water remaining volume sensor

* Update homeassistant/components/overkiz/sensor.py

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>

---------

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
2024-06-29 17:50:28 +02:00
Alexey ALERT Rubashёff
b350ba9657 Add electrical consumption sensor to Overkiz (#120717)
electrical consumption sensor
2024-06-29 17:50:25 +02:00
wittypluck
5fd589053a Reject small uptime updates for Unifi clients (#120398)
Extend logic to reject small uptime updates to Unifi clients + add unit tests
2024-06-29 17:50:22 +02:00
Allen Porter
2d5961fa4f Bump gcal_sync to 6.1.3 (#120278) 2024-06-29 17:50:18 +02:00
Joost Lekkerkerker
25932dff28 Add unique id to Mealie config entry (#120816) 2024-06-29 17:48:28 +02:00
Joost Lekkerkerker
0ab7647fea Use meal note as fallback in Mealie (#120828) 2024-06-29 17:47:21 +02:00
Joost Lekkerkerker
ce34a5e495 Add icons to Airgradient (#120820) 2024-06-29 17:46:44 +02:00
Allen Porter
7d8cbbaacb Bump gcal_sync to 6.1.3 (#120278) 2024-06-29 17:45:51 +02:00
Joost Lekkerkerker
f07f9062c1 Bump python-opensky to 1.0.1 (#120818) 2024-06-29 07:53:42 -05:00
Mick Vleeshouwer
5a6deddd30 Bump pyOverkiz to 1.13.12 (#120819) 2024-06-29 07:53:01 -05:00
J. Nick Koston
c5804d362c Remove legacy foreign key constraint from sqlite states table (#120779) 2024-06-29 07:50:53 -05:00
J. Nick Koston
852bb19223 Cleanup db_schema from_event constructors (#120803) 2024-06-29 07:49:16 -05:00
Joost Lekkerkerker
6ed0960648 Bump aiomealie to 0.5.0 (#120815) 2024-06-29 13:48:43 +02:00
Clifford Roche
8f6addcc61 Bump greeclimate to 1.4.6 (#120758) 2024-06-29 08:25:22 +02:00
J. Nick Koston
2cfd6d53bd Add event platform to unifiprotect (#120681)
* Add event platform to unifiprotect

* Add event platform to unifiprotect

* Add event platform to unifiprotect

* Add event platform to unifiprotect

* adjust

* tweaks

* translations

* coverage

* coverage

* Update tests/components/unifiprotect/test_event.py
2024-06-29 07:49:14 +02:00
J. Nick Koston
0dfb5bd7d9 Fix unneeded dict values for MATCH_ALL recorder attrs exclude (#120804)
* Small cleanup to handling MATCH_ALL recorder attrs exclude

* Fix unneeded dict values for MATCH_ALL recorder attrs exclude

The exclude is a set so the dict values were not needed

* Fix unneeded dict values for MATCH_ALL recorder attrs exclude

The exclude is a set so the dict values were not needed

* Fix unneeded dict values for MATCH_ALL recorder attrs exclude

The exclude is a set so the dict values were not needed
2024-06-29 07:42:08 +02:00
J. Nick Koston
d4ecbc91c3 Fix blocking I/O in xmpp notify to read uploaded files (#120801)
detected by ruff in https://github.com/home-assistant/core/pull/120799
2024-06-29 07:40:35 +02:00
J. Nick Koston
04ab74589a Fix missing f-string in loop util (#120800) 2024-06-29 07:01:18 +02:00
Paul Bottein
5995459de5 Update frontend to 20240628.0 (#120785)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-28 23:14:00 -05:00
Klaas Schoute
ba38f2e43b Bump gridnet lib to v5.0.1 (#120793) 2024-06-28 17:24:43 -05:00
dougiteixeira
cef7def024 Link Generic Hygrostat helper entity to actuator entity device (#120759) 2024-06-28 23:38:45 +02:00
dougiteixeira
8ed11d4b90 Link Generic Thermostat helper entity to actuator entity device (#120767) 2024-06-28 23:37:51 +02:00
J. Nick Koston
b03c10647e Fix stale docstring in recorder queries (#120763) 2024-06-28 16:29:12 -05:00
Klaas Schoute
a6454cf3c7 Bump odp-amsterdam lib to v6.0.2 (#120788) 2024-06-28 16:20:16 -05:00
wittypluck
3549aaf69c Reject small uptime updates for Unifi clients (#120398)
Extend logic to reject small uptime updates to Unifi clients + add unit tests
2024-06-28 22:47:20 +02:00
Klaas Schoute
a3394675f3 Bump energyzero lib to v2.1.1 (#120783) 2024-06-28 15:23:44 -05:00
Matthew FitzGerald-Chamberlain
97ef56d264 Bump pyaprilaire to 0.7.4 (#120782) 2024-06-28 22:15:34 +02:00
Mr. Bubbles
4fb0621027 Catch exceptions in service calls by buttons/switches in pyLoad integration (#120701)
* Catch exceptions in service calls by buttons/switches

* changes

* more changes

* update tests
2024-06-28 20:11:03 +02:00
Maciej Bieniek
c029c534d6 Do not call async_delete_issue() if there is no issue to delete in Shelly integration (#120762)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-28 19:34:24 +03:00
Toni Korhonen
f4224a0327 Bump Wallbox to 0.7.0 (#120768) 2024-06-28 17:54:20 +02:00
Joost Lekkerkerker
3e8773c0d5 Bump aiowithings to 3.0.2 (#120765) 2024-06-28 10:51:34 -05:00
J. Nick Koston
0ea1677f51 Increase mqtt availablity timeout to 50s (#120760) 2024-06-28 10:50:55 -05:00
Jan Bouwhuis
e907c45981 Cleanup mqtt platform tests part 5 (#120719) 2024-06-28 09:22:56 -05:00
Jan Bouwhuis
a8f4684929 Cleanup mqtt platform tests part 6 (last) (#120736) 2024-06-28 09:22:25 -05:00
Joost Lekkerkerker
d03a6f84a3 Bump govee-local-api to 1.5.1 (#120747) 2024-06-28 09:21:32 -05:00
Klaas Schoute
9505fcdd7d Bump p1monitor lib to v3.0.1 (#120756) 2024-06-28 09:20:44 -05:00
Klaas Schoute
3e3ab7a134 Bump easyenergy lib to v2.1.2 (#120753) 2024-06-28 09:14:31 -05:00
Joost Lekkerkerker
b56c4a757c Bump ruff to 0.5.0 (#120749) 2024-06-28 15:23:21 +02:00
Joost Lekkerkerker
984bbf8851 Bump sense-energy to 0.12.4 (#120744)
* Bump sense-energy to 0.12.4

* Fix
2024-06-28 14:53:29 +02:00
Joost Lekkerkerker
1fdd056c0e Fix ruff manual-dict-comprehension PERF403 (#120723)
* Fix PERF403

* Fix

* Fix
2024-06-28 14:17:47 +02:00
epenet
c7906f90a3 Improve type hints in frontend tests (#120739) 2024-06-28 13:36:26 +02:00
epenet
d427dff68d Improve type hints in forked_daapd tests (#120735) 2024-06-28 13:35:55 +02:00
Joost Lekkerkerker
f69b850b1a Bump xiaomi-ble to 0.30.1 (#120743) 2024-06-28 13:35:34 +02:00
epenet
d0ce0d562e Improve type hints in flo tests (#120730) 2024-06-28 13:34:26 +02:00
epenet
2e031d0194 Separate renault strings (#120737) 2024-06-28 13:26:31 +02:00
tronikos
d2a457c24f Fix Google Generative AI: 400 Request contains an invalid argument (#120741) 2024-06-28 13:25:55 +02:00
Ivan Belokobylskiy
c385deb6a3 Bump aiomaps with fixed license classifier (#120654) 2024-06-28 13:25:23 +02:00
Joost Lekkerkerker
6ef8e87f88 Fix ruff redefined-argument-from-local PLR1704 (#120729)
* Fix PLR1704

* Fix
2024-06-28 12:31:07 +02:00
dougiteixeira
4437c4a204 Link the Statistics helper entity to the source entity device (#120705) 2024-06-28 12:22:24 +02:00
Illia
23e5e25149 Bump asyncarve to 0.1.1 (#120740) 2024-06-28 12:14:44 +02:00
Joost Lekkerkerker
c13786c952 Fix ruff manual-dict-comprehension PERF403 in tests (#120738)
Fix PERF403 in tests
2024-06-28 12:14:24 +02:00
epenet
6f8c9c28e7 Improve type hints in fjaraskupan tests (#120732) 2024-06-28 12:03:26 +02:00
Joost Lekkerkerker
0fdf037ba0 Fix ruff type comparison E721 (#120731)
Fix E721
2024-06-28 11:56:49 +02:00
Brett Adams
3d580259e1 Check Tessie scopes to fix startup bug (#120710)
* Add scope check

* Add tests

* Bump Teslemetry
2024-06-28 11:21:59 +02:00
epenet
6d93695e2c Improve type hints in flux tests (#120733) 2024-06-28 11:20:17 +02:00
Mr. Bubbles
540da3cac6 Add unit and state_class to heating sensor in ista EcoTrend (#120728)
* Add unit and state_class to heating sensor

* remove constant
2024-06-28 10:16:13 +01:00
Joost Lekkerkerker
6286177041 Bump panasonic_viera to 0.4.2 (#120692)
* Bump panasonic_viera to 0.4.2

* Bump panasonic_viera to 0.4.2

* Bump panasonic_viera to 0.4.2

* Fix Keys
2024-06-28 11:15:44 +02:00
epenet
9b980602c9 Improve type hints in flux_led tests (#120734) 2024-06-28 11:09:54 +02:00
epenet
1e72c2f94d Bump renault-api to 0.2.4 (#120727) 2024-06-28 11:03:01 +02:00
epenet
5e39faa9f8 Improve type hints in auth tests (#120655) 2024-06-28 10:01:53 +01:00
Alexey ALERT Rubashёff
84de2da19f Add warm water remaining volume sensor to Overkiz (#120718)
* warm water remaining volume sensor

* Update homeassistant/components/overkiz/sensor.py

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>

---------

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
2024-06-28 09:53:07 +01:00
Joost Lekkerkerker
03c6e0c55f Fix SIM300 (#120725) 2024-06-28 10:46:02 +02:00
Alexey ALERT Rubashёff
c98e70a6dc Add electrical consumption sensor to Overkiz (#120717)
electrical consumption sensor
2024-06-28 09:45:27 +01:00
Dave Leaver
827bfa89b3 Bump airtouch5py to 1.2.0 (#120715)
* Bump airtouch5py to fix console 1.2.0

* Bump airtouch5py again
2024-06-28 09:44:54 +02:00
Steven B
e0e744aed7 Bump ring-doorbell to 0.8.12 (#120671) 2024-06-28 08:52:01 +02:00
Erik Montnemery
ec069f9084 Set stateclass on unknown numeric Tasmota sensors (#120650) 2024-06-28 08:42:47 +02:00
Joost Lekkerkerker
4e34d02d2d Bump apsystems-ez1 to 1.3.3 (#120702) 2024-06-28 08:36:10 +02:00
Maciej Bieniek
e764afecac Bump nextdns to version 3.1.0 (#120703)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-27 23:12:20 +02:00
Erik Montnemery
f3761a8e53 Bump hatasmota to 0.9.2 (#120670) 2024-06-27 22:56:22 +02:00
epenet
bccd5c8c35 Improve type hints in evil_genius_labs tests (#120677) 2024-06-27 22:11:24 +02:00
J. Nick Koston
440928bcbe Bump unifi-discovery to 1.2.0 (#120684) 2024-06-27 22:10:48 +02:00
Glenn Waters
338687522a Bump Environment Canada to 0.7.1 (#120699) 2024-06-27 22:10:11 +02:00
Joost Lekkerkerker
6421612429 Bump ttls to 1.8.3 (#120700) 2024-06-27 22:09:33 +02:00
Bram Kragten
c4ab0dcd74 Update frontend to 20240627.0 (#120693) 2024-06-27 22:06:30 +02:00
Alexey ALERT Rubashёff
195643d916 Improve AtlanticDomesticHotWaterProductionMBLComponent support in Overkiz (#114178)
* add overkiz AtlanticDHW support

Adds support of Overkiz water heater entity selection based on device controllable_name
Adds support of Atlantic water heater based on Atlantic Steatite Cube WI-FI VM 150 S4CS 2400W
Adds more Overkiz water heater binary_sensors, numbers, and sensors

* Changed class annotation

* min_temp and max_temp as properties

* reverted binary_sensors, number, sensor to make separate PRs

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_dhw.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_dhw.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_dhw.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Update homeassistant/components/overkiz/water_heater.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_dhw.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_dhw.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* review fixes, typos, and pylint

* review fix

* review fix

* ruff

* temperature properties changed to constructor attributes

* logger removed

* constants usage consistency

* redundant mapping removed

* Update homeassistant/components/overkiz/water_heater_entities/atlantic_dhw.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* boost mode method annotation typo

* removed away mode for atlantic dwh

* absence and boost mode attributes now support 'prog' state

* heating status bugfix

* electrical consumption sensor

* warm water remaining volume sensor

* away mode reintroduced

* mypy check

* boost plus state support

* Update homeassistant/components/overkiz/sensor.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* sensors reverted to separate them into their own PR

* check away and boost modes on before switching them off

* atlantic_dhw renamed to atlantic_domestic_hot_water_production

* annotation changed

* AtlanticDomesticHotWaterProductionMBLComponent file renamed, annotation change reverted

---------

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
2024-06-27 22:05:58 +02:00
Thomas55555
aaef31958b Bump aioautomower to 2024.6.3 (#120697) 2024-06-27 21:29:17 +02:00
epenet
629dab238f Improve type hints in enphase_envoy tests (#120676) 2024-06-27 13:24:22 -05:00
J. Nick Koston
c419d226d5 Bump uiprotect to 4.2.0 (#120669) 2024-06-27 12:58:42 -05:00
epenet
f4b76406f2 Add capsys to enforce-type-hints plugin (#120653) 2024-06-27 19:54:44 +02:00
MatthewFlamm
eb2d2ce1b3 Use more observations in NWS (#120687)
Use more observations
2024-06-27 13:47:25 -04:00
Glenn Waters
89dfca962f Bump upb-lib to 0.5.7 (#120689) 2024-06-27 19:41:36 +02:00
Joost Lekkerkerker
d423dae8ac Fix unknown attribute in MPD (#120657) 2024-06-27 19:41:21 +02:00
Jan Bouwhuis
f3c76cd698 Split mqtt client tests (#120636) 2024-06-27 19:37:43 +02:00
J. Nick Koston
0c910bc000 Add newer models to unifi integrations discovery (#120688) 2024-06-27 19:20:37 +02:00
Glenn Waters
b9e01b9253 Bump Environment Canada to 0.7.0 (#120686) 2024-06-27 12:08:18 -05:00
epenet
e446875c7e Improve type hints in esphome tests (#120674) 2024-06-27 09:33:14 -05:00
Erik Montnemery
3895252965 Fix docstring for EventStateEventData (#120662) 2024-06-27 08:00:14 -05:00
Steven B
9758b08036 Update tplink unlink identifiers to deal with ids from other domains (#120596) 2024-06-27 07:54:34 -05:00
Steven B
970dd99226 Store tplink credentials_hash outside of device_config (#120597) 2024-06-27 07:34:12 -05:00
epenet
0d53ce4fb8 Improve type hints in emulated_hue tests (#120664) 2024-06-27 14:27:35 +02:00
Erik Montnemery
8de771de96 Rename async_track_state_reported_event to async_track_state_report_event (#120637)
* Rename async_track_state_reported_event to async_track_state_report_event

* Update tests
2024-06-27 13:45:15 +02:00
Jesse Hills
1f54180807 Mark esphome integration as platinum (#112565)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-27 06:26:38 -05:00
Josef Zweck
9f6783dcf5 Add release url to lamarzocco update (#120645) 2024-06-27 13:21:36 +02:00
Brett Adams
cb92510571 Fix values at startup for Tessie (#120652) 2024-06-27 13:17:15 +02:00
Jesse Hills
a93855ded3 [esphome] Add more tests to bring integration to 100% coverage (#120661) 2024-06-27 06:08:40 -05:00
Erik Montnemery
a165064e9d Improve typing of state event helpers (#120639) 2024-06-27 06:08:19 -05:00
Erik Montnemery
54a5a3e3fb Bump hatasmota to 0.9.1 (#120649) 2024-06-27 12:55:49 +02:00
Joost Lekkerkerker
9aa2cc11e9 Fix Airgradient ABC days name (#120659) 2024-06-27 12:47:58 +02:00
Joost Lekkerkerker
4f7c6bdce8 Disable polling for Knocki (#120656) 2024-06-27 12:29:32 +02:00
Dave T
022f545342 Remove unnecessary .coveragerc entries (#120620) 2024-06-27 11:21:34 +02:00
Erik Montnemery
06f495dd45 Add snapshots to tasmota sensor test (#120647) 2024-06-27 10:43:28 +02:00
Josef Zweck
85629dc31e Move Auto On/off switches to Config EntityCategory (#120648) 2024-06-27 10:34:01 +02:00
Joakim Sørensen
5634741ce2 Bump awesomeversion from 24.2.0 to 24.6.0 (#120642) 2024-06-27 10:27:20 +02:00
Erik Montnemery
3e9b57cc07 Don't allow updating a device to have no connections or identifiers (#120603)
* Don't allow updating a device to have no connections or identifiers

* Move check to the top of the function
2024-06-27 09:26:31 +02:00
Josef Zweck
c9c573dbce Fix the version that raises the issue (#120638) 2024-06-27 09:21:41 +02:00
J. Nick Koston
5503379a3b Fix performance regression in integration from state_reported (#120621)
* Fix performance regression in integration from state_reported

Because the callbacks were no longer indexed by entity id, users
saw upwards of 1M calls/min

https://github.com/home-assistant/core/pull/113869/files#r1655580523

* Update homeassistant/helpers/event.py

* coverage

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-06-27 08:50:41 +02:00
dougiteixeira
617ab48fa9 Address device helper review comments (#120615)
* Address review comments from #119761

* Address review comments from #119761

* Address review comments from #119761

* Remove reference from config entry
2024-06-27 08:50:20 +02:00
epenet
28e72753ad Prevent importing PLATFORM_SCHEMA/_BASE from config validation (#120571) 2024-06-27 06:31:22 +02:00
J. Nick Koston
a5a631148e Add async_track_state_reported_event to fix integration performance regression (#120622)
split from https://github.com/home-assistant/core/pull/120621
2024-06-26 23:04:27 -04:00
J. Nick Koston
f189d87fe9 Bump uiprotect to 4.0.0 (#120617) 2024-06-26 20:37:28 -05:00
J. Nick Koston
5e1c8b0c54 Remove unused fields from unifiprotect event sensors (#120568) 2024-06-26 20:37:08 -05:00
Luke Lashley
2449e2029e Bump anova_wifi to 0.14.0 (#120616) 2024-06-27 01:14:18 +02:00
Jan Bouwhuis
32e64f7911 Cleanup mqtt platform tests part 4 (init) (#120574) 2024-06-26 16:57:41 -05:00
Paul Bottein
b7a65d9a82 Update frontend to 20240626.2 (#120614) 2024-06-26 23:54:07 +02:00
Marc Mueller
9d7078e1fa Install libturbojpeg in hassfest job [ci] (#120611) 2024-06-26 23:52:31 +02:00
Luca Angemi
1973c604b6 Fix telegram bot thread_id key error (#120613) 2024-06-26 23:45:47 +02:00
Marc Mueller
6bceb8ec48 Add some more VolDictType annotations (#120610) 2024-06-26 22:44:43 +02:00
Marc Mueller
fcfb580f0c Update pylint to 3.2.4 (#120606) 2024-06-26 22:29:55 +02:00
Franck Nijhof
516b9126b7 Update adguardhome to 0.7.0 (#120605) 2024-06-26 22:05:30 +02:00
Markus Jacobsen
2146a4729b Improve Bang & Olufsen error messages (#120587)
* Convert logger messages to raised errors where applicable

* Modify exception types

* Improve deezer / tidal error message

* Update homeassistant/components/bang_olufsen/strings.json

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

* Update homeassistant/components/bang_olufsen/media_player.py

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-06-26 21:46:59 +02:00
Florian
9b2915efed Don't allow switch toggle when device in locked in AVM FRITZ!SmartHome (#120132)
* fix: set state of the FritzBox-Switch to disabled if the option for manuel switching in the userinterface is disabled

* feat: raise an error instead of disabling switch

* feat: rename method signature

* fix: tests

* fix: wrong import

* feat: Update homeassistant/components/fritzbox/strings.json

Update error message

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

* Update tests/components/fritzbox/test_switch.py

feat: update test

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

* make ruff happy

* fix expected error message check

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-06-26 21:45:17 +02:00
Marc Mueller
dd6cc82f70 Fix mqtt test fixture usage (#120602) 2024-06-26 21:30:30 +02:00
Jan Bouwhuis
8839a71adc Prevent changes to mutable bmw_connected_drive fixture data (#120600) 2024-06-26 20:57:27 +02:00
Erik Montnemery
f1a57d69cc Remove deprecated run_immediately flag from integration sensor (#120593) 2024-06-26 20:55:41 +02:00
Max
702d53ca30 Correct deprecation warning async_register_static_paths (#120592) 2024-06-26 20:55:25 +02:00
Shay Levy
4c6cbadc11 Align Shelly sleeping devices timeout with non-sleeping (#118969) 2024-06-26 20:53:02 +02:00
Shay Levy
d8ab2debfd Add last_error reporting to Shelly diagnostics (#120595) 2024-06-26 21:35:23 +03:00
Robert Resch
31e9de3b95 Adapt Roborock to runtime_data (#120578)
* Adopt Roborock to runtime_data

* Fix name
2024-06-26 19:42:15 +02:00
Shay Levy
ed1eb8ac9c Change Shelly connect task log message level to error (#120582) 2024-06-26 18:19:28 +02:00
TheJulianJES
d09a274548 Bump ZHA dependencies (#120581) 2024-06-26 18:15:53 +02:00
Michael Hansen
02b142fbde Bump intents to 2024.6.26 (#120584)
Bump intents
2024-06-26 11:13:01 -05:00
Franck Nijhof
33b4f40b2a Bump version to 2024.8.0dev0 (#120577) 2024-06-26 16:55:08 +02:00
4373 changed files with 189199 additions and 128050 deletions

View File

@@ -49,6 +49,7 @@ base_platforms: &base_platforms
- homeassistant/components/tts/**
- homeassistant/components/update/**
- homeassistant/components/vacuum/**
- homeassistant/components/valve/**
- homeassistant/components/water_heater/**
- homeassistant/components/weather/**
@@ -145,6 +146,7 @@ requirements: &requirements
- homeassistant/package_constraints.txt
- requirements*.txt
- pyproject.toml
- script/licenses.py
any:
- *base_platforms

File diff suppressed because it is too large Load Diff

View File

@@ -74,7 +74,6 @@ If the code communicates with devices, web services, or third-party tools:
- [ ] New or updated dependencies have been added to `requirements_all.txt`.
Updated by running `python3 -m script.gen_requirements_all`.
- [ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
- [ ] Untested files have been added to `.coveragerc`.
<!--
This project is very active and we have a high turnover of pull requests.

View File

@@ -32,7 +32,7 @@ jobs:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -69,7 +69,7 @@ jobs:
run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T -
- name: Upload translations
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: translations
path: translations.tar.gz
@@ -116,7 +116,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -175,7 +175,7 @@ jobs:
sed -i "s|pykrakenapi|# pykrakenapi|g" requirements_all.txt
- name: Download translations
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: translations
@@ -190,14 +190,14 @@ jobs:
echo "${{ github.sha }};${{ github.ref }};${{ github.event_name }};${{ github.actor }}" > rootfs/OFFICIAL_IMAGE
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.2.0
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.03.5
uses: home-assistant/builder@2024.08.2
with:
args: |
$BUILD_ARGS \
@@ -256,14 +256,14 @@ jobs:
fi
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.2.0
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.03.5
uses: home-assistant/builder@2024.08.2
with:
args: |
$BUILD_ARGS \
@@ -323,20 +323,20 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Install Cosign
uses: sigstore/cosign-installer@v3.5.0
uses: sigstore/cosign-installer@v3.6.0
with:
cosign-release: "v2.2.3"
- name: Login to DockerHub
if: matrix.registry == 'docker.io/homeassistant'
uses: docker/login-action@v3.2.0
uses: docker/login-action@v3.3.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
if: matrix.registry == 'ghcr.io/home-assistant'
uses: docker/login-action@v3.2.0
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -453,12 +453,12 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Download translations
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: translations

View File

@@ -31,12 +31,16 @@ on:
description: "Only run mypy"
default: false
type: boolean
audit-licenses-only:
description: "Only run audit licenses"
default: false
type: boolean
env:
CACHE_VERSION: 9
CACHE_VERSION: 10
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 8
HA_SHORT_VERSION: "2024.7"
HA_SHORT_VERSION: "2024.9"
DEFAULT_PYTHON: "3.12"
ALL_PYTHON_VERSIONS: "['3.12']"
# 10.3 is the oldest supported version
@@ -86,7 +90,7 @@ jobs:
tests_glob: ${{ steps.info.outputs.tests_glob }}
tests: ${{ steps.info.outputs.tests }}
skip_coverage: ${{ steps.info.outputs.skip_coverage }}
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
@@ -218,10 +222,11 @@ jobs:
pre-commit:
name: Prepare pre-commit base
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: |
github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs:
- info
steps:
@@ -229,7 +234,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -266,7 +271,7 @@ jobs:
lint-ruff-format:
name: Check ruff-format
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs:
- info
- pre-commit
@@ -274,7 +279,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -306,7 +311,7 @@ jobs:
lint-ruff:
name: Check ruff
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs:
- info
- pre-commit
@@ -314,7 +319,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -343,9 +348,10 @@ jobs:
pre-commit run --hook-stage manual ruff --all-files --show-diff-on-failure
env:
RUFF_OUTPUT_FORMAT: github
lint-other:
name: Check other linters
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs:
- info
- pre-commit
@@ -353,7 +359,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -437,7 +443,7 @@ jobs:
base:
name: Prepare dependencies
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: info
timeout-minutes: 60
strategy:
@@ -448,7 +454,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -508,25 +514,31 @@ jobs:
uv pip install -U "pip>=21.3.1" setuptools wheel
uv pip install -r requirements.txt
python -m script.gen_requirements_all ci
uv pip install -r requirements_all_pytest.txt
uv pip install -r requirements_test.txt
uv pip install -r requirements_all_pytest.txt -r requirements_test.txt
uv pip install -e . --config-settings editable_mode=compat
hassfest:
name: Check hassfest
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: |
github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs:
- info
- base
steps:
- name: Install additional OS dependencies
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get -y install \
libturbojpeg
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -546,10 +558,11 @@ jobs:
gen-requirements-all:
name: Check all requirements
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: |
github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs:
- info
- base
@@ -558,7 +571,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -576,12 +589,56 @@ jobs:
. venv/bin/activate
python -m script.gen_requirements_all validate
audit-licenses:
name: Audit licenses
runs-on: ubuntu-24.04
needs:
- info
- base
if: |
(github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
|| github.event.inputs.audit-licenses-only == 'true')
&& needs.info.outputs.requirements == 'true'
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.2
with:
path: venv
fail-on-cache-miss: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Run pip-licenses
run: |
. venv/bin/activate
pip-licenses --format=json --output-file=licenses.json
- name: Upload licenses
uses: actions/upload-artifact@v4.3.6
with:
name: licenses
path: licenses.json
- name: Process licenses
run: |
. venv/bin/activate
python -m script.licenses
pylint:
name: Check pylint
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 20
if: |
github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
|| github.event.inputs.pylint-only == 'true'
needs:
- info
@@ -591,7 +648,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -623,10 +680,12 @@ jobs:
pylint-tests:
name: Check pylint on tests
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 20
if: |
(github.event.inputs.mypy-only != 'true' || github.event.inputs.pylint-only == 'true')
(github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
|| github.event.inputs.pylint-only == 'true')
&& (needs.info.outputs.tests_glob || needs.info.outputs.test_full_suite == 'true')
needs:
- info
@@ -636,7 +695,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -657,20 +716,21 @@ jobs:
run: |
. venv/bin/activate
python --version
pylint --ignore-missing-annotations=y tests
pylint tests
- name: Run pylint (partially)
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
python --version
pylint --ignore-missing-annotations=y tests/components/${{ needs.info.outputs.tests_glob }}
pylint tests/components/${{ needs.info.outputs.tests_glob }}
mypy:
name: Check mypy
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: |
github.event.inputs.pylint-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
|| github.event.inputs.mypy-only == 'true'
needs:
- info
@@ -680,7 +740,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -729,12 +789,13 @@ jobs:
mypy homeassistant/components/${{ needs.info.outputs.integrations_glob }}
prepare-pytest-full:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
&& needs.info.outputs.test_full_suite == 'true'
needs:
- info
@@ -754,7 +815,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -772,19 +833,20 @@ jobs:
. venv/bin/activate
python -m script.split_tests ${{ needs.info.outputs.test_group_count }} tests
- name: Upload pytest_buckets
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: pytest_buckets
path: pytest_buckets.txt
overwrite: true
pytest-full:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
&& needs.info.outputs.test_full_suite == 'true'
needs:
- info
@@ -817,7 +879,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -836,7 +898,7 @@ jobs:
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Download pytest_buckets
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: pytest_buckets
- name: Compile English translations
@@ -858,6 +920,7 @@ jobs:
cov_params+=(--cov-report=xml)
fi
echo "Test group ${{ matrix.group }}: $(sed -n "${{ matrix.group }},1p" pytest_buckets.txt)"
python3 -b -X dev -m pytest \
-qq \
--timeout=9 \
@@ -871,14 +934,14 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-full.conclusion == 'failure'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -890,7 +953,7 @@ jobs:
./script/check_dirty
pytest-mariadb:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
services:
mariadb:
image: ${{ matrix.mariadb-group }}
@@ -904,6 +967,7 @@ jobs:
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
&& needs.info.outputs.mariadb_groups != '[]'
needs:
- info
@@ -935,7 +999,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -996,7 +1060,7 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${mariadb}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -1004,7 +1068,7 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -1029,6 +1093,7 @@ jobs:
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
&& needs.info.outputs.postgresql_groups != '[]'
needs:
- info
@@ -1060,7 +1125,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1122,7 +1187,7 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${postgresql}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1130,7 +1195,7 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1143,7 +1208,7 @@ jobs:
coverage-full:
name: Upload test coverage to Codecov (full suite)
if: needs.info.outputs.skip_coverage != 'true'
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs:
- info
- pytest-full
@@ -1154,7 +1219,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
pattern: coverage-*
- name: Upload coverage to Codecov
@@ -1167,12 +1232,13 @@ jobs:
version: v0.6.0
pytest-partial:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
&& needs.info.outputs.tests_glob
&& needs.info.outputs.test_full_suite == 'false'
needs:
@@ -1205,7 +1271,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1263,14 +1329,14 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -1282,7 +1348,7 @@ jobs:
coverage-partial:
name: Upload test coverage to Codecov (partial suite)
if: needs.info.outputs.skip_coverage != 'true'
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs:
- info
- pytest-partial
@@ -1291,7 +1357,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
pattern: coverage-*
- name: Upload coverage to Codecov

View File

@@ -24,11 +24,11 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.25.10
uses: github/codeql-action/init@v3.26.4
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.25.10
uses: github/codeql-action/analyze@v3.26.4
with:
category: "/language:python"

View File

@@ -22,7 +22,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}

View File

@@ -36,7 +36,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
uses: actions/setup-python@v5.1.1
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -82,14 +82,14 @@ jobs:
) > .env_file
- name: Upload env_file
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: env_file
path: ./.env_file
overwrite: true
- name: Upload requirements_diff
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: requirements_diff
path: ./requirements_diff.txt
@@ -101,7 +101,7 @@ jobs:
python -m script.gen_requirements_all ci
- name: Upload requirements_all_wheels
uses: actions/upload-artifact@v4.3.3
uses: actions/upload-artifact@v4.3.6
with:
name: requirements_all_wheels
path: ./requirements_all_wheels_*.txt
@@ -121,17 +121,17 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Download env_file
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: requirements_diff
- name: Build wheels
uses: home-assistant/wheels@2024.01.0
uses: home-assistant/wheels@2024.07.1
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -159,17 +159,17 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Download env_file
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: requirements_diff
- name: Download requirements_all_wheels
uses: actions/download-artifact@v4.1.7
uses: actions/download-artifact@v4.1.8
with:
name: requirements_all_wheels
@@ -203,7 +203,7 @@ jobs:
sed -i "/numpy/d" homeassistant/package_constraints.txt
- name: Build wheels (old cython)
uses: home-assistant/wheels@2024.01.0
uses: home-assistant/wheels@2024.07.1
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -211,14 +211,14 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic;pymicro-vad
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_old-cython.txt"
pip: "'cython<3'"
- name: Build wheels (part 1)
uses: home-assistant/wheels@2024.01.0
uses: home-assistant/wheels@2024.07.1
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -226,13 +226,13 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic;pymicro-vad
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtaa"
- name: Build wheels (part 2)
uses: home-assistant/wheels@2024.01.0
uses: home-assistant/wheels@2024.07.1
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -240,13 +240,13 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic;pymicro-vad
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtab"
- name: Build wheels (part 3)
uses: home-assistant/wheels@2024.01.0
uses: home-assistant/wheels@2024.07.1
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -254,7 +254,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic;pymicro-vad
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtac"

View File

@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.9
rev: v0.6.2
hooks:
- id: ruff
args:
@@ -12,7 +12,7 @@ repos:
hooks:
- id: codespell
args:
- --ignore-words-list=astroid,checkin,currenty,hass,iif,incomfort,lookin,nam,NotIn,pres,ser,ue
- --ignore-words-list=astroid,checkin,currenty,hass,iif,incomfort,lookin,nam,NotIn
- --skip="./.*,*.csv,*.json,*.ambr"
- --quiet-level=2
exclude_types: [csv, json, html]
@@ -83,7 +83,7 @@ repos:
pass_filenames: false
language: script
types: [text]
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/brands/.*\.json|\.coveragerc|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py|requirements_test.txt)$
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/brands/.*\.json|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py|requirements_test.txt)$
- id: hassfest-metadata
name: hassfest-metadata
entry: script/run-in-env.sh python3 -m script.hassfest -p metadata

View File

@@ -21,6 +21,7 @@ homeassistant.helpers.entity_platform
homeassistant.helpers.entity_values
homeassistant.helpers.event
homeassistant.helpers.reload
homeassistant.helpers.script
homeassistant.helpers.script_variables
homeassistant.helpers.singleton
homeassistant.helpers.sun
@@ -94,9 +95,8 @@ homeassistant.components.aruba.*
homeassistant.components.arwn.*
homeassistant.components.aseko_pool_live.*
homeassistant.components.assist_pipeline.*
homeassistant.components.asterisk_cdr.*
homeassistant.components.asterisk_mbox.*
homeassistant.components.asuswrt.*
homeassistant.components.autarco.*
homeassistant.components.auth.*
homeassistant.components.automation.*
homeassistant.components.awair.*
@@ -118,6 +118,7 @@ homeassistant.components.bond.*
homeassistant.components.braviatv.*
homeassistant.components.brother.*
homeassistant.components.browser.*
homeassistant.components.bryant_evolution.*
homeassistant.components.bthome.*
homeassistant.components.button.*
homeassistant.components.calendar.*
@@ -165,6 +166,7 @@ homeassistant.components.ecowitt.*
homeassistant.components.efergy.*
homeassistant.components.electrasmart.*
homeassistant.components.electric_kiwi.*
homeassistant.components.elevenlabs.*
homeassistant.components.elgato.*
homeassistant.components.elkm1.*
homeassistant.components.emulated_hue.*
@@ -194,7 +196,9 @@ homeassistant.components.fritzbox.*
homeassistant.components.fritzbox_callmonitor.*
homeassistant.components.fronius.*
homeassistant.components.frontend.*
homeassistant.components.fujitsu_fglair.*
homeassistant.components.fully_kiosk.*
homeassistant.components.fyta.*
homeassistant.components.generic_hygrostat.*
homeassistant.components.generic_thermostat.*
homeassistant.components.geo_location.*
@@ -253,6 +257,7 @@ homeassistant.components.integration.*
homeassistant.components.intent.*
homeassistant.components.intent_script.*
homeassistant.components.ios.*
homeassistant.components.iotty.*
homeassistant.components.ipp.*
homeassistant.components.iqvia.*
homeassistant.components.islamic_prayer_times.*
@@ -277,6 +282,7 @@ homeassistant.components.lidarr.*
homeassistant.components.lifx.*
homeassistant.components.light.*
homeassistant.components.linear_garage_door.*
homeassistant.components.linkplay.*
homeassistant.components.litejet.*
homeassistant.components.litterrobot.*
homeassistant.components.local_ip.*
@@ -287,7 +293,9 @@ homeassistant.components.logger.*
homeassistant.components.london_underground.*
homeassistant.components.lookin.*
homeassistant.components.luftdaten.*
homeassistant.components.madvr.*
homeassistant.components.mailbox.*
homeassistant.components.manual.*
homeassistant.components.map.*
homeassistant.components.mastodon.*
homeassistant.components.matrix.*
@@ -382,6 +390,7 @@ homeassistant.components.samsungtv.*
homeassistant.components.scene.*
homeassistant.components.schedule.*
homeassistant.components.scrape.*
homeassistant.components.script.*
homeassistant.components.search.*
homeassistant.components.select.*
homeassistant.components.sensibo.*

36
.vscode/launch.json vendored
View File

@@ -6,38 +6,52 @@
"configurations": [
{
"name": "Home Assistant",
"type": "python",
"type": "debugpy",
"request": "launch",
"module": "homeassistant",
"justMyCode": false,
"args": ["--debug", "-c", "config"],
"args": [
"--debug",
"-c",
"config"
],
"preLaunchTask": "Compile English translations"
},
{
"name": "Home Assistant (skip pip)",
"type": "python",
"type": "debugpy",
"request": "launch",
"module": "homeassistant",
"justMyCode": false,
"args": ["--debug", "-c", "config", "--skip-pip"],
"args": [
"--debug",
"-c",
"config",
"--skip-pip"
],
"preLaunchTask": "Compile English translations"
},
{
"name": "Home Assistant: Changed tests",
"type": "python",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"justMyCode": false,
"args": ["--timeout=10", "--picked"],
"args": [
"--timeout=10",
"--picked"
],
},
{
// Debug by attaching to local Home Assistant server using Remote Python Debugger.
// See https://www.home-assistant.io/integrations/debugpy/
"name": "Home Assistant: Attach Local",
"type": "python",
"type": "debugpy",
"request": "attach",
"connect": {
"port": 5678,
"host": "localhost",
"host": "localhost"
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
@@ -49,10 +63,12 @@
// Debug by attaching to remote Home Assistant server using Remote Python Debugger.
// See https://www.home-assistant.io/integrations/debugpy/
"name": "Home Assistant: Attach Remote",
"type": "python",
"type": "debugpy",
"request": "attach",
"connect": {
"port": 5678,
"host": "homeassistant.local",
"host": "homeassistant.local"
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",

1
.vscode/tasks.json vendored
View File

@@ -76,6 +76,7 @@
"detail": "Generate code coverage report for a given integration.",
"type": "shell",
"command": "python3 -m pytest ./tests/components/${input:integrationName}/ --cov=homeassistant.components.${input:integrationName} --cov-report term-missing --durations-min=1 --durations=0 --numprocesses=auto",
"dependsOn": ["Compile English translations"],
"group": {
"kind": "test",
"isDefault": true

View File

@@ -80,8 +80,6 @@ build.json @home-assistant/supervisor
/tests/components/airzone/ @Noltari
/homeassistant/components/airzone_cloud/ @Noltari
/tests/components/airzone_cloud/ @Noltari
/homeassistant/components/aladdin_connect/ @swcloudgenie
/tests/components/aladdin_connect/ @swcloudgenie
/homeassistant/components/alarm_control_panel/ @home-assistant/core
/tests/components/alarm_control_panel/ @home-assistant/core
/homeassistant/components/alert/ @home-assistant/core @frenck
@@ -110,6 +108,8 @@ build.json @home-assistant/supervisor
/tests/components/anova/ @Lash-L
/homeassistant/components/anthemav/ @hyralex
/tests/components/anthemav/ @hyralex
/homeassistant/components/anthropic/ @Shulyaka
/tests/components/anthropic/ @Shulyaka
/homeassistant/components/aosmith/ @bdr99
/tests/components/aosmith/ @bdr99
/homeassistant/components/apache_kafka/ @bachya
@@ -157,6 +157,8 @@ build.json @home-assistant/supervisor
/tests/components/aurora_abb_powerone/ @davet2001
/homeassistant/components/aussie_broadband/ @nickw444 @Bre77
/tests/components/aussie_broadband/ @nickw444 @Bre77
/homeassistant/components/autarco/ @klaasnicolaas
/tests/components/autarco/ @klaasnicolaas
/homeassistant/components/auth/ @home-assistant/core
/tests/components/auth/ @home-assistant/core
/homeassistant/components/automation/ @home-assistant/core
@@ -197,7 +199,8 @@ build.json @home-assistant/supervisor
/tests/components/bluemaestro/ @bdraco
/homeassistant/components/blueprint/ @home-assistant/core
/tests/components/blueprint/ @home-assistant/core
/homeassistant/components/bluesound/ @thrawnarn
/homeassistant/components/bluesound/ @thrawnarn @LouisChrist
/tests/components/bluesound/ @thrawnarn @LouisChrist
/homeassistant/components/bluetooth/ @bdraco
/tests/components/bluetooth/ @bdraco
/homeassistant/components/bluetooth_adapters/ @bdraco
@@ -220,6 +223,8 @@ build.json @home-assistant/supervisor
/tests/components/brottsplatskartan/ @gjohansson-ST
/homeassistant/components/brunt/ @eavanvalkenburg
/tests/components/brunt/ @eavanvalkenburg
/homeassistant/components/bryant_evolution/ @danielsmyers
/tests/components/bryant_evolution/ @danielsmyers
/homeassistant/components/bsblan/ @liudger
/tests/components/bsblan/ @liudger
/homeassistant/components/bt_smarthub/ @typhoon2099
@@ -239,6 +244,8 @@ build.json @home-assistant/supervisor
/tests/components/ccm15/ @ocalvo
/homeassistant/components/cert_expiry/ @jjlawren
/tests/components/cert_expiry/ @jjlawren
/homeassistant/components/chacon_dio/ @cnico
/tests/components/chacon_dio/ @cnico
/homeassistant/components/cisco_ios/ @fbradyirl
/homeassistant/components/cisco_mobility_express/ @fbradyirl
/homeassistant/components/cisco_webex_teams/ @fbradyirl
@@ -342,8 +349,8 @@ build.json @home-assistant/supervisor
/tests/components/dremel_3d_printer/ @tkdrob
/homeassistant/components/drop_connect/ @ChandlerSystems @pfrazer
/tests/components/drop_connect/ @ChandlerSystems @pfrazer
/homeassistant/components/dsmr/ @Robbie1221 @frenck
/tests/components/dsmr/ @Robbie1221 @frenck
/homeassistant/components/dsmr/ @Robbie1221
/tests/components/dsmr/ @Robbie1221
/homeassistant/components/dsmr_reader/ @sorted-bits @glodenox @erwindouna
/tests/components/dsmr_reader/ @sorted-bits @glodenox @erwindouna
/homeassistant/components/duotecno/ @cereal2nd
@@ -360,8 +367,8 @@ build.json @home-assistant/supervisor
/tests/components/ecoforest/ @pjanuario
/homeassistant/components/econet/ @w1ll1am23
/tests/components/econet/ @w1ll1am23
/homeassistant/components/ecovacs/ @OverloadUT @mib1185 @edenhaus @Augar
/tests/components/ecovacs/ @OverloadUT @mib1185 @edenhaus @Augar
/homeassistant/components/ecovacs/ @mib1185 @edenhaus @Augar
/tests/components/ecovacs/ @mib1185 @edenhaus @Augar
/homeassistant/components/ecowitt/ @pvizeli
/tests/components/ecowitt/ @pvizeli
/homeassistant/components/efergy/ @tkdrob
@@ -371,6 +378,8 @@ build.json @home-assistant/supervisor
/tests/components/electrasmart/ @jafar-atili
/homeassistant/components/electric_kiwi/ @mikey0000
/tests/components/electric_kiwi/ @mikey0000
/homeassistant/components/elevenlabs/ @sorgfresser
/tests/components/elevenlabs/ @sorgfresser
/homeassistant/components/elgato/ @frenck
/tests/components/elgato/ @frenck
/homeassistant/components/elkm1/ @gwww @bdraco
@@ -382,6 +391,7 @@ build.json @home-assistant/supervisor
/tests/components/elvia/ @ludeeus
/homeassistant/components/emby/ @mezz64
/homeassistant/components/emoncms/ @borpin @alexandrecuer
/tests/components/emoncms/ @borpin @alexandrecuer
/homeassistant/components/emonitor/ @bdraco
/tests/components/emonitor/ @bdraco
/homeassistant/components/emulated_hue/ @bdraco @Tho85
@@ -398,8 +408,8 @@ build.json @home-assistant/supervisor
/tests/components/enigma2/ @autinerd
/homeassistant/components/enocean/ @bdurrer
/tests/components/enocean/ @bdurrer
/homeassistant/components/enphase_envoy/ @bdraco @cgarwood @dgomes @joostlek @catsmanac
/tests/components/enphase_envoy/ @bdraco @cgarwood @dgomes @joostlek @catsmanac
/homeassistant/components/enphase_envoy/ @bdraco @cgarwood @joostlek @catsmanac
/tests/components/enphase_envoy/ @bdraco @cgarwood @joostlek @catsmanac
/homeassistant/components/entur_public_transport/ @hfurubotten
/homeassistant/components/environment_canada/ @gwww @michaeldavie
/tests/components/environment_canada/ @gwww @michaeldavie
@@ -423,6 +433,7 @@ build.json @home-assistant/supervisor
/homeassistant/components/evil_genius_labs/ @balloob
/tests/components/evil_genius_labs/ @balloob
/homeassistant/components/evohome/ @zxdavb
/tests/components/evohome/ @zxdavb
/homeassistant/components/ezviz/ @RenierM26 @baqs
/tests/components/ezviz/ @RenierM26 @baqs
/homeassistant/components/faa_delays/ @ntilley905
@@ -431,6 +442,8 @@ build.json @home-assistant/supervisor
/tests/components/fan/ @home-assistant/core
/homeassistant/components/fastdotcom/ @rohankapoorcom @erwindouna
/tests/components/fastdotcom/ @rohankapoorcom @erwindouna
/homeassistant/components/feedreader/ @mib1185
/tests/components/feedreader/ @mib1185
/homeassistant/components/fibaro/ @rappenze
/tests/components/fibaro/ @rappenze
/homeassistant/components/file/ @fabaff
@@ -486,6 +499,8 @@ build.json @home-assistant/supervisor
/tests/components/frontend/ @home-assistant/frontend
/homeassistant/components/frontier_silicon/ @wlcrs
/tests/components/frontier_silicon/ @wlcrs
/homeassistant/components/fujitsu_fglair/ @crevetor
/tests/components/fujitsu_fglair/ @crevetor
/homeassistant/components/fully_kiosk/ @cgarwood
/tests/components/fully_kiosk/ @cgarwood
/homeassistant/components/fyta/ @dontinelli
@@ -501,6 +516,7 @@ build.json @home-assistant/supervisor
/homeassistant/components/generic_hygrostat/ @Shulyaka
/tests/components/generic_hygrostat/ @Shulyaka
/homeassistant/components/geniushub/ @manzanotti
/tests/components/geniushub/ @manzanotti
/homeassistant/components/geo_json_events/ @exxamalte
/tests/components/geo_json_events/ @exxamalte
/homeassistant/components/geo_location/ @home-assistant/core
@@ -691,6 +707,8 @@ build.json @home-assistant/supervisor
/tests/components/ios/ @robbiet480
/homeassistant/components/iotawatt/ @gtdiehl @jyavenard
/tests/components/iotawatt/ @gtdiehl @jyavenard
/homeassistant/components/iotty/ @pburgio
/tests/components/iotty/ @pburgio
/homeassistant/components/iperf3/ @rohankapoorcom
/homeassistant/components/ipma/ @dgomes
/tests/components/ipma/ @dgomes
@@ -699,10 +717,14 @@ build.json @home-assistant/supervisor
/homeassistant/components/iqvia/ @bachya
/tests/components/iqvia/ @bachya
/homeassistant/components/irish_rail_transport/ @ttroy50
/homeassistant/components/iron_os/ @tr4nt0r
/tests/components/iron_os/ @tr4nt0r
/homeassistant/components/isal/ @bdraco
/tests/components/isal/ @bdraco
/homeassistant/components/islamic_prayer_times/ @engrbm87 @cpfair
/tests/components/islamic_prayer_times/ @engrbm87 @cpfair
/homeassistant/components/israel_rail/ @shaiu
/tests/components/israel_rail/ @shaiu
/homeassistant/components/iss/ @DurgNomis-drol
/tests/components/iss/ @DurgNomis-drol
/homeassistant/components/ista_ecotrend/ @tr4nt0r
@@ -737,8 +759,8 @@ build.json @home-assistant/supervisor
/tests/components/kitchen_sink/ @home-assistant/core
/homeassistant/components/kmtronic/ @dgomes
/tests/components/kmtronic/ @dgomes
/homeassistant/components/knocki/ @joostlek @jgatto1
/tests/components/knocki/ @joostlek @jgatto1
/homeassistant/components/knocki/ @joostlek @jgatto1 @JakeBosh
/tests/components/knocki/ @joostlek @jgatto1 @JakeBosh
/homeassistant/components/knx/ @Julius2342 @farmio @marvin-w
/tests/components/knx/ @Julius2342 @farmio @marvin-w
/homeassistant/components/kodi/ @OnFreund
@@ -779,10 +801,14 @@ build.json @home-assistant/supervisor
/tests/components/lg_netcast/ @Drafteed @splinter98
/homeassistant/components/lidarr/ @tkdrob
/tests/components/lidarr/ @tkdrob
/homeassistant/components/lifx/ @Djelibeybi
/tests/components/lifx/ @Djelibeybi
/homeassistant/components/light/ @home-assistant/core
/tests/components/light/ @home-assistant/core
/homeassistant/components/linear_garage_door/ @IceBotYT
/tests/components/linear_garage_door/ @IceBotYT
/homeassistant/components/linkplay/ @Velleman
/tests/components/linkplay/ @Velleman
/homeassistant/components/linux_battery/ @fabaff
/homeassistant/components/litejet/ @joncar
/tests/components/litejet/ @joncar
@@ -802,8 +828,6 @@ build.json @home-assistant/supervisor
/tests/components/logbook/ @home-assistant/core
/homeassistant/components/logger/ @home-assistant/core
/tests/components/logger/ @home-assistant/core
/homeassistant/components/logi_circle/ @evanjd
/tests/components/logi_circle/ @evanjd
/homeassistant/components/london_underground/ @jpbede
/tests/components/london_underground/ @jpbede
/homeassistant/components/lookin/ @ANMalko @bdraco
@@ -823,13 +847,16 @@ build.json @home-assistant/supervisor
/tests/components/lutron_caseta/ @swails @bdraco @danaues @eclair4151
/homeassistant/components/lyric/ @timmo001
/tests/components/lyric/ @timmo001
/homeassistant/components/mastodon/ @fabaff
/homeassistant/components/madvr/ @iloveicedgreentea
/tests/components/madvr/ @iloveicedgreentea
/homeassistant/components/mastodon/ @fabaff @andrew-codechimp
/tests/components/mastodon/ @fabaff @andrew-codechimp
/homeassistant/components/matrix/ @PaarthShah
/tests/components/matrix/ @PaarthShah
/homeassistant/components/matter/ @home-assistant/matter
/tests/components/matter/ @home-assistant/matter
/homeassistant/components/mealie/ @joostlek
/tests/components/mealie/ @joostlek
/homeassistant/components/mealie/ @joostlek @andrew-codechimp
/tests/components/mealie/ @joostlek @andrew-codechimp
/homeassistant/components/meater/ @Sotolotl @emontnemery
/tests/components/meater/ @Sotolotl @emontnemery
/homeassistant/components/medcom_ble/ @elafargue
@@ -874,8 +901,6 @@ build.json @home-assistant/supervisor
/tests/components/moat/ @bdraco
/homeassistant/components/mobile_app/ @home-assistant/core
/tests/components/mobile_app/ @home-assistant/core
/homeassistant/components/modbus/ @janiversen
/tests/components/modbus/ @janiversen
/homeassistant/components/modem_callerid/ @tkdrob
/tests/components/modem_callerid/ @tkdrob
/homeassistant/components/modern_forms/ @wonderslug
@@ -945,6 +970,8 @@ build.json @home-assistant/supervisor
/tests/components/nfandroidtv/ @tkdrob
/homeassistant/components/nibe_heatpump/ @elupus
/tests/components/nibe_heatpump/ @elupus
/homeassistant/components/nice_go/ @IceBotYT
/tests/components/nice_go/ @IceBotYT
/homeassistant/components/nightscout/ @marciogranzotto
/tests/components/nightscout/ @marciogranzotto
/homeassistant/components/nilu/ @hfurubotten
@@ -987,8 +1014,6 @@ build.json @home-assistant/supervisor
/homeassistant/components/ollama/ @synesthesiam
/tests/components/ollama/ @synesthesiam
/homeassistant/components/ombi/ @larssont
/homeassistant/components/omnilogic/ @oliver84 @djtimca @gentoosu
/tests/components/omnilogic/ @oliver84 @djtimca @gentoosu
/homeassistant/components/onboarding/ @home-assistant/core
/tests/components/onboarding/ @home-assistant/core
/homeassistant/components/oncue/ @bdraco @peterager
@@ -1033,8 +1058,8 @@ build.json @home-assistant/supervisor
/tests/components/otbr/ @home-assistant/core
/homeassistant/components/ourgroceries/ @OnFreund
/tests/components/ourgroceries/ @OnFreund
/homeassistant/components/overkiz/ @imicknl @vlebourl @tetienne @nyroDev @tronix117
/tests/components/overkiz/ @imicknl @vlebourl @tetienne @nyroDev @tronix117
/homeassistant/components/overkiz/ @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14
/tests/components/overkiz/ @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14
/homeassistant/components/ovo_energy/ @timmo001
/tests/components/ovo_energy/ @timmo001
/homeassistant/components/p1_monitor/ @klaasnicolaas
@@ -1204,6 +1229,8 @@ build.json @home-assistant/supervisor
/tests/components/rtsp_to_webrtc/ @allenporter
/homeassistant/components/ruckus_unleashed/ @lanrat @ms264556 @gabe565
/tests/components/ruckus_unleashed/ @lanrat @ms264556 @gabe565
/homeassistant/components/russound_rio/ @noahhusby
/tests/components/russound_rio/ @noahhusby
/homeassistant/components/ruuvi_gateway/ @akx
/tests/components/ruuvi_gateway/ @akx
/homeassistant/components/ruuvitag_ble/ @akx
@@ -1271,6 +1298,8 @@ build.json @home-assistant/supervisor
/tests/components/sighthound/ @robmarkcole
/homeassistant/components/signal_messenger/ @bbernhard
/tests/components/signal_messenger/ @bbernhard
/homeassistant/components/simplefin/ @scottg489 @jeeftor
/tests/components/simplefin/ @scottg489 @jeeftor
/homeassistant/components/simplepush/ @engrbm87
/tests/components/simplepush/ @engrbm87
/homeassistant/components/simplisafe/ @bachya
@@ -1300,6 +1329,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/smarty/ @z0mbieprocess
/homeassistant/components/smhi/ @gjohansson-ST
/tests/components/smhi/ @gjohansson-ST
/homeassistant/components/smlight/ @tl-sl
/tests/components/smlight/ @tl-sl
/homeassistant/components/sms/ @ocalvo
/tests/components/sms/ @ocalvo
/homeassistant/components/snapcast/ @luar123
@@ -1422,6 +1453,8 @@ build.json @home-assistant/supervisor
/tests/components/tellduslive/ @fredrike
/homeassistant/components/template/ @PhracturedBlue @tetienne @home-assistant/core
/tests/components/template/ @PhracturedBlue @tetienne @home-assistant/core
/homeassistant/components/tesla_fleet/ @Bre77
/tests/components/tesla_fleet/ @Bre77
/homeassistant/components/tesla_wall_connector/ @einarhauks
/tests/components/tesla_wall_connector/ @einarhauks
/homeassistant/components/teslemetry/ @Bre77

View File

@@ -12,7 +12,7 @@ ENV \
ARG QEMU_CPU
# Install uv
RUN pip3 install uv==0.2.13
RUN pip3 install uv==0.2.27
WORKDIR /usr/src

View File

@@ -4,7 +4,7 @@ coverage:
status:
project:
default:
target: 90
target: auto
threshold: 0.09
required:
target: auto

View File

@@ -363,15 +363,15 @@ class AuthManager:
local_only: bool | None = None,
) -> None:
"""Update a user."""
kwargs: dict[str, Any] = {}
kwargs: dict[str, Any] = {
attr_name: value
for attr_name, value in (
("name", name),
("group_ids", group_ids),
("local_only", local_only),
):
if value is not None:
kwargs[attr_name] = value
)
if value is not None
}
await self._store.async_update_user(user, **kwargs)
if is_active is not None:

View File

@@ -105,14 +105,18 @@ class AuthStore:
"perm_lookup": self._perm_lookup,
}
kwargs.update(
{
attr_name: value
for attr_name, value in (
("is_owner", is_owner),
("is_active", is_active),
("local_only", local_only),
("system_generated", system_generated),
):
if value is not None:
kwargs[attr_name] = value
)
if value is not None
}
)
new_user = models.User(**kwargs)

View File

@@ -18,9 +18,12 @@ from homeassistant.const import (
EVENT_THEMES_UPDATED,
)
from homeassistant.helpers.area_registry import EVENT_AREA_REGISTRY_UPDATED
from homeassistant.helpers.category_registry import EVENT_CATEGORY_REGISTRY_UPDATED
from homeassistant.helpers.device_registry import EVENT_DEVICE_REGISTRY_UPDATED
from homeassistant.helpers.entity_registry import EVENT_ENTITY_REGISTRY_UPDATED
from homeassistant.helpers.floor_registry import EVENT_FLOOR_REGISTRY_UPDATED
from homeassistant.helpers.issue_registry import EVENT_REPAIRS_ISSUE_REGISTRY_UPDATED
from homeassistant.helpers.label_registry import EVENT_LABEL_REGISTRY_UPDATED
from homeassistant.util.event_type import EventType
# These are events that do not contain any sensitive data
@@ -41,4 +44,7 @@ SUBSCRIBE_ALLOWLIST: Final[set[EventType[Any] | str]] = {
EVENT_SHOPPING_LIST_UPDATED,
EVENT_STATE_CHANGED,
EVENT_THEMES_UPDATED,
EVENT_LABEL_REGISTRY_UPDATED,
EVENT_CATEGORY_REGISTRY_UPDATED,
EVENT_FLOOR_REGISTRY_UPDATED,
}

View File

@@ -55,13 +55,6 @@ class InvalidUser(HomeAssistantError):
Will not be raised when validating authentication.
"""
class InvalidUsername(InvalidUser):
"""Raised when invalid username is specified.
Will not be raised when validating authentication.
"""
def __init__(
self,
*args: object,
@@ -77,6 +70,13 @@ class InvalidUsername(InvalidUser):
)
class InvalidUsername(InvalidUser):
"""Raised when invalid username is specified.
Will not be raised when validating authentication.
"""
class Data:
"""Hold the user data."""
@@ -216,7 +216,7 @@ class Data:
break
if index is None:
raise InvalidUser
raise InvalidUser(translation_key="user_not_found")
self.users.pop(index)
@@ -232,7 +232,7 @@ class Data:
user["password"] = self.hash_password(new_password, True).decode()
break
else:
raise InvalidUser
raise InvalidUser(translation_key="user_not_found")
@callback
def _validate_new_username(self, new_username: str) -> None:
@@ -275,7 +275,7 @@ class Data:
self._async_check_for_not_normalized_usernames(self._data)
break
else:
raise InvalidUser
raise InvalidUser(translation_key="user_not_found")
async def async_save(self) -> None:
"""Save data."""

View File

@@ -8,6 +8,8 @@ import glob
from http.client import HTTPConnection
import importlib
import os
from pathlib import Path
from ssl import SSLContext
import sys
import threading
import time
@@ -143,6 +145,78 @@ _BLOCKING_CALLS: tuple[BlockingCall, ...] = (
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=SSLContext.load_default_certs,
object=SSLContext,
function="load_default_certs",
check_allowed=None,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=SSLContext.load_verify_locations,
object=SSLContext,
function="load_verify_locations",
check_allowed=None,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=SSLContext.load_cert_chain,
object=SSLContext,
function="load_cert_chain",
check_allowed=None,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=Path.open,
object=Path,
function="open",
check_allowed=_check_file_allowed,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=Path.read_text,
object=Path,
function="read_text",
check_allowed=_check_file_allowed,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=Path.read_bytes,
object=Path,
function="read_bytes",
check_allowed=_check_file_allowed,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=Path.write_text,
object=Path,
function="write_text",
check_allowed=_check_file_allowed,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=Path.write_bytes,
object=Path,
function="write_bytes",
check_allowed=_check_file_allowed,
strict=False,
strict_core=False,
skip_for_tests=True,
),
)

View File

@@ -8,7 +8,7 @@ import contextlib
from functools import partial
from itertools import chain
import logging
import logging.handlers
from logging.handlers import RotatingFileHandler, TimedRotatingFileHandler
import mimetypes
from operator import contains, itemgetter
import os
@@ -88,7 +88,7 @@ from .helpers import (
)
from .helpers.dispatcher import async_dispatcher_send_internal
from .helpers.storage import get_internal_store_manager
from .helpers.system_info import async_get_system_info
from .helpers.system_info import async_get_system_info, is_official_image
from .helpers.typing import ConfigType
from .setup import (
# _setup_started is marked as protected to make it clear
@@ -104,7 +104,7 @@ from .setup import (
from .util.async_ import create_eager_task
from .util.hass_dict import HassKey
from .util.logging import async_activate_log_queue_handler
from .util.package import async_get_user_site, is_virtual_env
from .util.package import async_get_user_site, is_docker_env, is_virtual_env
with contextlib.suppress(ImportError):
# Ensure anyio backend is imported to avoid it being imported in the event loop
@@ -223,8 +223,10 @@ CRITICAL_INTEGRATIONS = {
SETUP_ORDER = (
# Load logging and http deps as soon as possible
("logging, http deps", LOGGING_AND_HTTP_DEPS_INTEGRATIONS),
# Setup frontend and recorder
("frontend, recorder", {*FRONTEND_INTEGRATIONS, *RECORDER_INTEGRATIONS}),
# Setup frontend
("frontend", FRONTEND_INTEGRATIONS),
# Setup recorder
("recorder", RECORDER_INTEGRATIONS),
# Start up debuggers. Start these first in case they want to wait.
("debugger", DEBUGGER_INTEGRATIONS),
)
@@ -257,12 +259,12 @@ async def async_setup_hass(
) -> core.HomeAssistant | None:
"""Set up Home Assistant."""
def create_hass() -> core.HomeAssistant:
async def create_hass() -> core.HomeAssistant:
"""Create the hass object and do basic setup."""
hass = core.HomeAssistant(runtime_config.config_dir)
loader.async_setup(hass)
async_enable_logging(
await async_enable_logging(
hass,
runtime_config.verbose,
runtime_config.log_rotate_days,
@@ -287,7 +289,7 @@ async def async_setup_hass(
async with hass.timeout.async_timeout(10):
await hass.async_stop()
hass = create_hass()
hass = await create_hass()
if runtime_config.skip_pip or runtime_config.skip_pip_packages:
_LOGGER.warning(
@@ -326,13 +328,13 @@ async def async_setup_hass(
if config_dict is None:
recovery_mode = True
await stop_hass(hass)
hass = create_hass()
hass = await create_hass()
elif not basic_setup_success:
_LOGGER.warning("Unable to set up core integrations. Activating recovery mode")
recovery_mode = True
await stop_hass(hass)
hass = create_hass()
hass = await create_hass()
elif any(domain not in hass.config.components for domain in CRITICAL_INTEGRATIONS):
_LOGGER.warning(
@@ -345,7 +347,7 @@ async def async_setup_hass(
recovery_mode = True
await stop_hass(hass)
hass = create_hass()
hass = await create_hass()
if old_logging:
hass.data[DATA_LOGGING] = old_logging
@@ -407,6 +409,10 @@ def _init_blocking_io_modules_in_executor() -> None:
# Initialize the mimetypes module to avoid blocking calls
# to the filesystem to load the mime.types file.
mimetypes.init()
# Initialize is_official_image and is_docker_env to avoid blocking calls
# to the filesystem.
is_official_image()
is_docker_env()
async def async_load_base_functionality(hass: core.HomeAssistant) -> None:
@@ -523,8 +529,7 @@ async def async_from_config_dict(
return hass
@core.callback
def async_enable_logging(
async def async_enable_logging(
hass: core.HomeAssistant,
verbose: bool = False,
log_rotate_days: int | None = None,
@@ -581,10 +586,10 @@ def async_enable_logging(
logging.getLogger("aiohttp.access").setLevel(logging.WARNING)
logging.getLogger("httpx").setLevel(logging.WARNING)
sys.excepthook = lambda *args: logging.getLogger(None).exception(
sys.excepthook = lambda *args: logging.getLogger().exception(
"Uncaught exception", exc_info=args
)
threading.excepthook = lambda args: logging.getLogger(None).exception(
threading.excepthook = lambda args: logging.getLogger().exception(
"Uncaught thread exception",
exc_info=( # type: ignore[arg-type]
args.exc_type,
@@ -607,12 +612,31 @@ def async_enable_logging(
if (err_path_exists and os.access(err_log_path, os.W_OK)) or (
not err_path_exists and os.access(err_dir, os.W_OK)
):
err_handler: (
logging.handlers.RotatingFileHandler
| logging.handlers.TimedRotatingFileHandler
err_handler = await hass.async_add_executor_job(
_create_log_file, err_log_path, log_rotate_days
)
err_handler.setFormatter(logging.Formatter(fmt, datefmt=FORMAT_DATETIME))
logger = logging.getLogger()
logger.addHandler(err_handler)
logger.setLevel(logging.INFO if verbose else logging.WARNING)
# Save the log file location for access by other components.
hass.data[DATA_LOGGING] = err_log_path
else:
_LOGGER.error("Unable to set up error log %s (access denied)", err_log_path)
async_activate_log_queue_handler(hass)
def _create_log_file(
err_log_path: str, log_rotate_days: int | None
) -> RotatingFileHandler | TimedRotatingFileHandler:
"""Create log file and do roll over."""
err_handler: RotatingFileHandler | TimedRotatingFileHandler
if log_rotate_days:
err_handler = logging.handlers.TimedRotatingFileHandler(
err_handler = TimedRotatingFileHandler(
err_log_path, when="midnight", backupCount=log_rotate_days
)
else:
@@ -625,22 +649,10 @@ def async_enable_logging(
except OSError as err:
_LOGGER.error("Error rolling over log file: %s", err)
err_handler.setLevel(logging.INFO if verbose else logging.WARNING)
err_handler.setFormatter(logging.Formatter(fmt, datefmt=FORMAT_DATETIME))
logger = logging.getLogger("")
logger.addHandler(err_handler)
logger.setLevel(logging.INFO if verbose else logging.WARNING)
# Save the log file location for access by other components.
hass.data[DATA_LOGGING] = err_log_path
else:
_LOGGER.error("Unable to set up error log %s (access denied)", err_log_path)
async_activate_log_queue_handler(hass)
return err_handler
class _RotatingFileHandlerWithoutShouldRollOver(logging.handlers.RotatingFileHandler):
class _RotatingFileHandlerWithoutShouldRollOver(RotatingFileHandler):
"""RotatingFileHandler that does not check if it should roll over on every log."""
def shouldRollover(self, record: logging.LogRecord) -> bool:
@@ -895,7 +907,13 @@ async def _async_resolve_domains_to_setup(
await asyncio.gather(*resolve_dependencies_tasks)
for itg in integrations_to_process:
for dep in itg.all_dependencies:
try:
all_deps = itg.all_dependencies
except RuntimeError:
# Integration.all_dependencies raises RuntimeError if
# dependencies could not be resolved
continue
for dep in all_deps:
if dep in domains_to_setup:
continue
domains_to_setup.add(dep)

View File

@@ -1,5 +0,0 @@
{
"domain": "asterisk",
"name": "Asterisk",
"integrations": ["asterisk_cdr", "asterisk_mbox"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "fujitsu",
"name": "Fujitsu",
"integrations": ["fujitsu_anywair", "fujitsu_fglair"]
}

View File

@@ -1,5 +1,5 @@
{
"domain": "logitech",
"name": "Logitech",
"integrations": ["harmony", "ue_smart_radio", "squeezebox"]
"integrations": ["harmony", "squeezebox"]
}

View File

@@ -1,5 +1,5 @@
{
"domain": "tesla",
"name": "Tesla",
"integrations": ["powerwall", "tesla_wall_connector"]
"integrations": ["powerwall", "tesla_wall_connector", "tesla_fleet"]
}

View File

@@ -9,5 +9,5 @@
},
"iot_class": "cloud_push",
"loggers": ["jaraco.abode", "lomond"],
"requirements": ["jaraco.abode==5.1.2"]
"requirements": ["jaraco.abode==5.2.1"]
}

View File

@@ -81,7 +81,7 @@ class AcerSwitch(SwitchEntity):
write_timeout: int,
) -> None:
"""Init of the Acer projector."""
self.ser = serial.Serial(
self.serial = serial.Serial(
port=serial_port, timeout=timeout, write_timeout=write_timeout
)
self._serial_port = serial_port
@@ -99,16 +99,16 @@ class AcerSwitch(SwitchEntity):
# was disconnected during runtime.
# This way the projector can be reconnected and will still work
try:
if not self.ser.is_open:
self.ser.open()
self.ser.write(msg.encode("utf-8"))
if not self.serial.is_open:
self.serial.open()
self.serial.write(msg.encode("utf-8"))
# Size is an experience value there is no real limit.
# AFAIK there is no limit and no end character so we will usually
# need to wait for timeout
ret = self.ser.read_until(size=20).decode("utf-8")
ret = self.serial.read_until(size=20).decode("utf-8")
except serial.SerialException:
_LOGGER.error("Problem communicating with %s", self._serial_port)
self.ser.close()
self.serial.close()
return ret
def _write_read_format(self, msg: str) -> str:

View File

@@ -136,7 +136,7 @@ def setup(hass: HomeAssistant, config: ConfigType) -> bool:
# Tuple to hold data needed for notification
NotificationItem = namedtuple(
NotificationItem = namedtuple( # noqa: PYI024
"NotificationItem", "hnotify huser name plc_datatype callback"
)

View File

@@ -206,7 +206,8 @@ class AdvantageAirAC(AdvantageAirAcEntity, ClimateEntity):
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set the HVAC Mode and State."""
if hvac_mode == HVACMode.OFF:
return await self.async_turn_off()
await self.async_turn_off()
return
if hvac_mode == HVACMode.HEAT_COOL and self.preset_mode != ADVANTAGE_AIR_MYAUTO:
raise ServiceValidationError("Heat/Cool is not supported in this mode")
await self.async_update_ac(

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/aemet",
"iot_class": "cloud_polling",
"loggers": ["aemet_opendata"],
"requirements": ["AEMET-OpenData==0.5.2"]
"requirements": ["AEMET-OpenData==0.5.4"]
}

View File

@@ -59,7 +59,7 @@ async def async_setup_entry(
platform = async_get_current_platform()
for service, method in CAMERA_SERVICES.items():
platform.async_register_entity_service(service, {}, method)
platform.async_register_entity_service(service, None, method)
class AgentCamera(MjpegCamera):

View File

@@ -4,7 +4,7 @@ from __future__ import annotations
from dataclasses import dataclass
from airgradient import AirGradientClient
from airgradient import AirGradientClient, get_model_name
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, Platform
@@ -21,6 +21,7 @@ PLATFORMS: list[Platform] = [
Platform.SELECT,
Platform.SENSOR,
Platform.SWITCH,
Platform.UPDATE,
]
@@ -35,7 +36,7 @@ class AirGradientData:
type AirGradientConfigEntry = ConfigEntry[AirGradientData]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_setup_entry(hass: HomeAssistant, entry: AirGradientConfigEntry) -> bool:
"""Set up Airgradient from a config entry."""
client = AirGradientClient(
@@ -53,7 +54,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
config_entry_id=entry.entry_id,
identifiers={(DOMAIN, measurement_coordinator.serial_number)},
manufacturer="AirGradient",
model=measurement_coordinator.data.model,
model=get_model_name(measurement_coordinator.data.model),
model_id=measurement_coordinator.data.model,
serial_number=measurement_coordinator.data.serial_number,
sw_version=measurement_coordinator.data.firmware_version,
)
@@ -68,6 +70,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_unload_entry(
hass: HomeAssistant, entry: AirGradientConfigEntry
) -> bool:
"""Unload a config entry."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)

View File

@@ -2,9 +2,13 @@
from typing import Any
from airgradient import AirGradientClient, AirGradientError, ConfigurationControl
from airgradient import (
AirGradientClient,
AirGradientError,
AirGradientParseError,
ConfigurationControl,
)
from awesomeversion import AwesomeVersion
from mashumaro import MissingField
import voluptuous as vol
from homeassistant.components import zeroconf
@@ -83,10 +87,10 @@ class AirGradientConfigFlow(ConfigFlow, domain=DOMAIN):
self.client = AirGradientClient(user_input[CONF_HOST], session=session)
try:
current_measures = await self.client.get_current_measures()
except AirGradientParseError:
return self.async_abort(reason="invalid_version")
except AirGradientError:
errors["base"] = "cannot_connect"
except MissingField:
return self.async_abort(reason="invalid_version")
else:
await self.async_set_unique_id(current_measures.serial_number)
self._abort_if_unique_id_configured()

View File

@@ -19,7 +19,6 @@ if TYPE_CHECKING:
class AirGradientCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
"""Class to manage fetching AirGradient data."""
_update_interval: timedelta
config_entry: AirGradientConfigEntry
def __init__(self, hass: HomeAssistant, client: AirGradientClient) -> None:
@@ -28,7 +27,7 @@ class AirGradientCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
hass,
logger=LOGGER,
name=f"AirGradient {client.host}",
update_interval=self._update_interval,
update_interval=timedelta(minutes=1),
)
self.client = client
assert self.config_entry.unique_id
@@ -47,8 +46,6 @@ class AirGradientCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
class AirGradientMeasurementCoordinator(AirGradientCoordinator[Measures]):
"""Class to manage fetching AirGradient data."""
_update_interval = timedelta(minutes=1)
async def _update_data(self) -> Measures:
return await self.client.get_current_measures()
@@ -56,7 +53,5 @@ class AirGradientMeasurementCoordinator(AirGradientCoordinator[Measures]):
class AirGradientConfigCoordinator(AirGradientCoordinator[Config]):
"""Class to manage fetching AirGradient data."""
_update_interval = timedelta(minutes=5)
async def _update_data(self) -> Config:
return await self.client.get_config()

View File

@@ -8,6 +8,34 @@
"default": "mdi:lightbulb-on-outline"
}
},
"number": {
"led_bar_brightness": {
"default": "mdi:brightness-percent"
},
"display_brightness": {
"default": "mdi:brightness-percent"
}
},
"select": {
"configuration_control": {
"default": "mdi:cloud-cog"
},
"display_temperature_unit": {
"default": "mdi:thermometer-lines"
},
"led_bar_mode": {
"default": "mdi:led-strip"
},
"nox_index_learning_time_offset": {
"default": "mdi:clock-outline"
},
"voc_index_learning_time_offset": {
"default": "mdi:clock-outline"
},
"co2_automatic_baseline_calibration": {
"default": "mdi:molecule-co2"
}
},
"sensor": {
"total_volatile_organic_component_index": {
"default": "mdi:molecule"
@@ -17,6 +45,32 @@
},
"pm003_count": {
"default": "mdi:blur"
},
"led_bar_brightness": {
"default": "mdi:brightness-percent"
},
"display_brightness": {
"default": "mdi:brightness-percent"
},
"display_temperature_unit": {
"default": "mdi:thermometer-lines"
},
"led_bar_mode": {
"default": "mdi:led-strip"
},
"nox_index_learning_time_offset": {
"default": "mdi:clock-outline"
},
"voc_index_learning_time_offset": {
"default": "mdi:clock-outline"
},
"co2_automatic_baseline_calibration": {
"default": "mdi:molecule-co2"
}
},
"switch": {
"post_data_to_airgradient": {
"default": "mdi:cogs"
}
}
}

View File

@@ -6,6 +6,6 @@
"documentation": "https://www.home-assistant.io/integrations/airgradient",
"integration_type": "device",
"iot_class": "local_polling",
"requirements": ["airgradient==0.6.0"],
"requirements": ["airgradient==0.8.0"],
"zeroconf": ["_airgradient._tcp.local."]
}

View File

@@ -16,6 +16,7 @@
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"invalid_version": "This firmware version is unsupported. Please upgrade the firmware of the device to at least version 3.1.1."
},
"error": {

View File

@@ -0,0 +1,55 @@
"""Airgradient Update platform."""
from datetime import timedelta
from functools import cached_property
from homeassistant.components.update import UpdateDeviceClass, UpdateEntity
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirGradientConfigEntry, AirGradientMeasurementCoordinator
from .entity import AirGradientEntity
SCAN_INTERVAL = timedelta(hours=1)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AirGradientConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up Airgradient update platform."""
data = config_entry.runtime_data
async_add_entities([AirGradientUpdate(data.measurement)], True)
class AirGradientUpdate(AirGradientEntity, UpdateEntity):
"""Representation of Airgradient Update."""
_attr_device_class = UpdateDeviceClass.FIRMWARE
coordinator: AirGradientMeasurementCoordinator
def __init__(self, coordinator: AirGradientMeasurementCoordinator) -> None:
"""Initialize the entity."""
super().__init__(coordinator)
self._attr_unique_id = f"{coordinator.serial_number}-update"
@cached_property
def should_poll(self) -> bool:
"""Return True because we need to poll the latest version."""
return True
@property
def installed_version(self) -> str:
"""Return the installed version of the entity."""
return self.coordinator.data.firmware_version
async def async_update(self) -> None:
"""Update the entity."""
self._attr_latest_version = (
await self.coordinator.client.get_latest_firmware_version(
self.coordinator.serial_number
)
)

View File

@@ -156,7 +156,8 @@ class AirtouchAC(CoordinatorEntity, ClimateEntity):
raise ValueError(f"Unsupported HVAC mode: {hvac_mode}")
if hvac_mode == HVACMode.OFF:
return await self.async_turn_off()
await self.async_turn_off()
return
await self._airtouch.SetCoolingModeForAc(
self._ac_number, HA_STATE_TO_AT[hvac_mode]
)
@@ -262,7 +263,8 @@ class AirtouchGroup(CoordinatorEntity, ClimateEntity):
raise ValueError(f"Unsupported HVAC mode: {hvac_mode}")
if hvac_mode == HVACMode.OFF:
return await self.async_turn_off()
await self.async_turn_off()
return
if self.hvac_mode == HVACMode.OFF:
await self.async_turn_on()
self._unit = self._airtouch.GetGroups()[self._group_number]

View File

@@ -1,9 +1,11 @@
"""Config flow for AirTouch4."""
from typing import Any
from airtouch4pyapi import AirTouch, AirTouchStatus
import voluptuous as vol
from homeassistant.config_entries import ConfigFlow
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_HOST
from .const import DOMAIN
@@ -16,7 +18,9 @@ class AirtouchConfigFlow(ConfigFlow, domain=DOMAIN):
VERSION = 1
async def async_step_user(self, user_input=None):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
if user_input is None:
return self.async_show_form(step_id="user", data_schema=DATA_SCHEMA)

View File

@@ -11,7 +11,7 @@ from homeassistant.exceptions import ConfigEntryNotReady
from .const import DOMAIN
PLATFORMS: list[Platform] = [Platform.CLIMATE]
PLATFORMS: list[Platform] = [Platform.CLIMATE, Platform.COVER]
type Airtouch5ConfigEntry = ConfigEntry[Airtouch5SimpleClient]

View File

@@ -121,6 +121,7 @@ class Airtouch5ClimateEntity(ClimateEntity, Airtouch5Entity):
"""Base class for Airtouch5 Climate Entities."""
_attr_temperature_unit = UnitOfTemperature.CELSIUS
_attr_translation_key = DOMAIN
_attr_target_temperature_step = 1
_attr_name = None
_enable_turn_on_off_backwards_compatibility = False

View File

@@ -0,0 +1,134 @@
"""Representation of the Damper for AirTouch 5 Devices."""
import logging
from typing import Any
from airtouch5py.airtouch5_simple_client import Airtouch5SimpleClient
from airtouch5py.packets.zone_control import (
ZoneControlZone,
ZoneSettingPower,
ZoneSettingValue,
)
from airtouch5py.packets.zone_name import ZoneName
from airtouch5py.packets.zone_status import ZoneStatusZone
from homeassistant.components.cover import (
ATTR_POSITION,
CoverDeviceClass,
CoverEntity,
CoverEntityFeature,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import Airtouch5ConfigEntry
from .const import DOMAIN
from .entity import Airtouch5Entity
_LOGGER = logging.getLogger(__name__)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: Airtouch5ConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Airtouch 5 Cover entities."""
client = config_entry.runtime_data
# Each zone has a cover for its open percentage
async_add_entities(
Airtouch5ZoneOpenPercentage(
client, zone, client.latest_zone_status[zone.zone_number].has_sensor
)
for zone in client.zones
)
class Airtouch5ZoneOpenPercentage(CoverEntity, Airtouch5Entity):
"""How open the damper is in each zone."""
_attr_device_class = CoverDeviceClass.DAMPER
_attr_translation_key = "damper"
# Zones with temperature sensors shouldn't be manually controlled.
# We allow it but warn the user in the integration documentation.
_attr_supported_features = (
CoverEntityFeature.SET_POSITION
| CoverEntityFeature.OPEN
| CoverEntityFeature.CLOSE
)
def __init__(
self, client: Airtouch5SimpleClient, zone_name: ZoneName, has_sensor: bool
) -> None:
"""Initialise the Cover Entity."""
super().__init__(client)
self._zone_name = zone_name
self._attr_unique_id = f"zone_{zone_name.zone_number}_open_percentage"
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, f"zone_{zone_name.zone_number}")},
name=zone_name.zone_name,
manufacturer="Polyaire",
model="AirTouch 5",
)
@callback
def _async_update_attrs(self, data: dict[int, ZoneStatusZone]) -> None:
if self._zone_name.zone_number not in data:
return
status = data[self._zone_name.zone_number]
self._attr_current_cover_position = int(status.open_percentage * 100)
if status.open_percentage == 0:
self._attr_is_closed = True
else:
self._attr_is_closed = False
self.async_write_ha_state()
async def async_added_to_hass(self) -> None:
"""Add data updated listener after this object has been initialized."""
await super().async_added_to_hass()
self._client.zone_status_callbacks.append(self._async_update_attrs)
self._async_update_attrs(self._client.latest_zone_status)
async def async_will_remove_from_hass(self) -> None:
"""Remove data updated listener after this object has been initialized."""
await super().async_will_remove_from_hass()
self._client.zone_status_callbacks.remove(self._async_update_attrs)
async def async_open_cover(self, **kwargs: Any) -> None:
"""Open the damper."""
await self._set_cover_position(100)
async def async_close_cover(self, **kwargs: Any) -> None:
"""Close damper."""
await self._set_cover_position(0)
async def async_set_cover_position(self, **kwargs: Any) -> None:
"""Update the damper to a specific position."""
if (position := kwargs.get(ATTR_POSITION)) is None:
_LOGGER.debug("Argument `position` is missing in set_cover_position")
return
await self._set_cover_position(position)
async def _set_cover_position(self, position_percent: float) -> None:
power: ZoneSettingPower
if position_percent == 0:
power = ZoneSettingPower.SET_TO_OFF
else:
power = ZoneSettingPower.SET_TO_ON
zcz = ZoneControlZone(
self._zone_name.zone_number,
ZoneSettingValue.SET_OPEN_PERCENTAGE,
power,
position_percent / 100.0,
)
packet = self._client.data_packet_factory.zone_control([zcz])
await self._client.send_packet(packet)

View File

@@ -6,15 +6,12 @@ from airtouch5py.airtouch5_simple_client import Airtouch5SimpleClient
from homeassistant.core import callback
from homeassistant.helpers.entity import Entity
from .const import DOMAIN
class Airtouch5Entity(Entity):
"""Base class for Airtouch5 entities."""
_attr_should_poll = False
_attr_has_entity_name = True
_attr_translation_key = DOMAIN
def __init__(self, client: Airtouch5SimpleClient) -> None:
"""Initialise the Entity."""

View File

@@ -27,6 +27,11 @@
}
}
}
},
"cover": {
"damper": {
"name": "[%key:component::cover::entity_component::damper::name%]"
}
}
}
}

View File

@@ -31,7 +31,6 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ConfigEntryAuthFailed
from homeassistant.helpers import (
aiohttp_client,
config_validation as cv,
device_registry as dr,
entity_registry as er,
)
@@ -62,8 +61,6 @@ PLATFORMS = [Platform.SENSOR]
DEFAULT_ATTRIBUTION = "Data provided by AirVisual"
CONFIG_SCHEMA = cv.removed(DOMAIN, raise_if_present=False)
@callback
def async_get_cloud_api_update_interval(

View File

@@ -82,33 +82,54 @@ async def async_setup_entry(
"""Add Airzone binary sensors from a config_entry."""
coordinator = entry.runtime_data
binary_sensors: list[AirzoneBinarySensor] = [
added_systems: set[str] = set()
added_zones: set[str] = set()
def _async_entity_listener() -> None:
"""Handle additions of binary sensors."""
entities: list[AirzoneBinarySensor] = []
systems_data = coordinator.data.get(AZD_SYSTEMS, {})
received_systems = set(systems_data)
new_systems = received_systems - added_systems
if new_systems:
entities.extend(
AirzoneSystemBinarySensor(
coordinator,
description,
entry,
system_id,
system_data,
systems_data.get(system_id),
)
for system_id, system_data in coordinator.data[AZD_SYSTEMS].items()
for system_id in new_systems
for description in SYSTEM_BINARY_SENSOR_TYPES
if description.key in system_data
]
if description.key in systems_data.get(system_id)
)
added_systems.update(new_systems)
binary_sensors.extend(
zones_data = coordinator.data.get(AZD_ZONES, {})
received_zones = set(zones_data)
new_zones = received_zones - added_zones
if new_zones:
entities.extend(
AirzoneZoneBinarySensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
zones_data.get(system_zone_id),
)
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
for system_zone_id in new_zones
for description in ZONE_BINARY_SENSOR_TYPES
if description.key in zone_data
if description.key in zones_data.get(system_zone_id)
)
added_zones.update(new_zones)
async_add_entities(binary_sensors)
async_add_entities(entities)
entry.async_on_unload(coordinator.async_add_listener(_async_entity_listener))
_async_entity_listener()
class AirzoneBinarySensor(AirzoneEntity, BinarySensorEntity):

View File

@@ -102,17 +102,31 @@ async def async_setup_entry(
entry: AirzoneConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Add Airzone sensors from a config_entry."""
"""Add Airzone climate from a config_entry."""
coordinator = entry.runtime_data
added_zones: set[str] = set()
def _async_entity_listener() -> None:
"""Handle additions of climate."""
zones_data = coordinator.data.get(AZD_ZONES, {})
received_zones = set(zones_data)
new_zones = received_zones - added_zones
if new_zones:
async_add_entities(
AirzoneClimate(
coordinator,
entry,
system_zone_id,
zone_data,
zones_data.get(system_zone_id),
)
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
for system_zone_id in new_zones
)
added_zones.update(new_zones)
entry.async_on_unload(coordinator.async_add_listener(_async_entity_listener))
_async_entity_listener()
class AirzoneClimate(AirzoneZoneEntity, ClimateEntity):

View File

@@ -114,7 +114,7 @@ class AirZoneConfigFlow(ConfigFlow, domain=DOMAIN):
)
try:
await airzone.get_version()
except AirzoneError as err:
except (AirzoneError, TimeoutError) as err:
raise AbortFlow("cannot_connect") from err
return await self.async_step_discovered_connection()

View File

@@ -11,5 +11,5 @@
"documentation": "https://www.home-assistant.io/integrations/airzone",
"iot_class": "local_polling",
"loggers": ["aioairzone"],
"requirements": ["aioairzone==0.7.7"]
"requirements": ["aioairzone==0.8.2"]
}

View File

@@ -83,21 +83,34 @@ async def async_setup_entry(
entry: AirzoneConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Add Airzone sensors from a config_entry."""
"""Add Airzone select from a config_entry."""
coordinator = entry.runtime_data
added_zones: set[str] = set()
def _async_entity_listener() -> None:
"""Handle additions of select."""
zones_data = coordinator.data.get(AZD_ZONES, {})
received_zones = set(zones_data)
new_zones = received_zones - added_zones
if new_zones:
async_add_entities(
AirzoneZoneSelect(
coordinator,
description,
entry,
system_zone_id,
zone_data,
zones_data.get(system_zone_id),
)
for system_zone_id in new_zones
for description in ZONE_SELECT_TYPES
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
if description.key in zone_data
if description.key in zones_data.get(system_zone_id)
)
added_zones.update(new_zones)
entry.async_on_unload(coordinator.async_add_listener(_async_entity_listener))
_async_entity_listener()
class AirzoneBaseSelect(AirzoneEntity, SelectEntity):

View File

@@ -85,21 +85,37 @@ async def async_setup_entry(
"""Add Airzone sensors from a config_entry."""
coordinator = entry.runtime_data
sensors: list[AirzoneSensor] = [
added_zones: set[str] = set()
def _async_entity_listener() -> None:
"""Handle additions of sensors."""
entities: list[AirzoneSensor] = []
zones_data = coordinator.data.get(AZD_ZONES, {})
received_zones = set(zones_data)
new_zones = received_zones - added_zones
if new_zones:
entities.extend(
AirzoneZoneSensor(
coordinator,
description,
entry,
system_zone_id,
zone_data,
zones_data.get(system_zone_id),
)
for system_zone_id, zone_data in coordinator.data[AZD_ZONES].items()
for system_zone_id in new_zones
for description in ZONE_SENSOR_TYPES
if description.key in zone_data
]
if description.key in zones_data.get(system_zone_id)
)
added_zones.update(new_zones)
async_add_entities(entities)
entities: list[AirzoneSensor] = []
if AZD_HOT_WATER in coordinator.data:
sensors.extend(
entities.extend(
AirzoneHotWaterSensor(
coordinator,
description,
@@ -110,7 +126,7 @@ async def async_setup_entry(
)
if AZD_WEBSERVER in coordinator.data:
sensors.extend(
entities.extend(
AirzoneWebServerSensor(
coordinator,
description,
@@ -120,7 +136,10 @@ async def async_setup_entry(
if description.key in coordinator.data[AZD_WEBSERVER]
)
async_add_entities(sensors)
async_add_entities(entities)
entry.async_on_unload(coordinator.async_add_listener(_async_entity_listener))
_async_entity_listener()
class AirzoneSensor(AirzoneEntity, SensorEntity):

View File

@@ -61,7 +61,7 @@ async def async_setup_entry(
entry: AirzoneConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Add Airzone sensors from a config_entry."""
"""Add Airzone Water Heater from a config_entry."""
coordinator = entry.runtime_data
if AZD_HOT_WATER in coordinator.data:
async_add_entities([AirzoneWaterHeater(coordinator, entry)])

View File

@@ -14,6 +14,7 @@ from aioairzone_cloud.const import (
AZD_FLOOR_DEMAND,
AZD_PROBLEMS,
AZD_SYSTEMS,
AZD_THERMOSTAT_BATTERY_LOW,
AZD_WARNINGS,
AZD_ZONES,
)
@@ -88,6 +89,10 @@ ZONE_BINARY_SENSOR_TYPES: Final[tuple[AirzoneBinarySensorEntityDescription, ...]
key=AZD_AQ_ACTIVE,
translation_key="air_quality_active",
),
AirzoneBinarySensorEntityDescription(
device_class=BinarySensorDeviceClass.BATTERY,
key=AZD_THERMOSTAT_BATTERY_LOW,
),
AirzoneBinarySensorEntityDescription(
device_class=BinarySensorDeviceClass.RUNNING,
key=AZD_FLOOR_DEMAND,
@@ -156,6 +161,11 @@ class AirzoneBinarySensor(AirzoneEntity, BinarySensorEntity):
entity_description: AirzoneBinarySensorEntityDescription
@property
def available(self) -> bool:
"""Return Airzone Cloud binary sensor availability."""
return super().available and self.is_on is not None
@callback
def _handle_coordinator_update(self) -> None:
"""Update attributes when the coordinator updates."""

View File

@@ -13,9 +13,12 @@ from aioairzone_cloud.const import (
AZD_GROUPS,
AZD_HOT_WATERS,
AZD_INSTALLATIONS,
AZD_MODEL,
AZD_NAME,
AZD_SYSTEM_ID,
AZD_SYSTEMS,
AZD_THERMOSTAT_FW,
AZD_THERMOSTAT_MODEL,
AZD_WEBSERVER,
AZD_WEBSERVERS,
AZD_ZONES,
@@ -69,6 +72,7 @@ class AirzoneAidooEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, aidoo_id)},
manufacturer=MANUFACTURER,
model=aidoo_data[AZD_MODEL],
name=aidoo_data[AZD_NAME],
via_device=(DOMAIN, aidoo_data[AZD_WEBSERVER]),
)
@@ -111,6 +115,7 @@ class AirzoneGroupEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, group_id)},
model="Group",
manufacturer=MANUFACTURER,
name=group_data[AZD_NAME],
)
@@ -154,6 +159,7 @@ class AirzoneHotWaterEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, dhw_id)},
manufacturer=MANUFACTURER,
model="Hot Water",
name=dhw_data[AZD_NAME],
via_device=(DOMAIN, dhw_data[AZD_WEBSERVER]),
)
@@ -195,6 +201,7 @@ class AirzoneInstallationEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, inst_id)},
manufacturer=MANUFACTURER,
model="Installation",
name=inst_data[AZD_NAME],
)
@@ -240,9 +247,11 @@ class AirzoneSystemEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, system_id)},
model=system_data.get(AZD_MODEL),
manufacturer=MANUFACTURER,
name=system_data[AZD_NAME],
via_device=(DOMAIN, system_data[AZD_WEBSERVER]),
sw_version=system_data.get(AZD_FIRMWARE),
)
def get_airzone_value(self, key: str) -> Any:
@@ -270,6 +279,7 @@ class AirzoneWebServerEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
connections={(dr.CONNECTION_NETWORK_MAC, ws_id)},
identifiers={(DOMAIN, ws_id)},
model="WebServer",
manufacturer=MANUFACTURER,
name=ws_data[AZD_NAME],
sw_version=ws_data[AZD_FIRMWARE],
@@ -300,9 +310,11 @@ class AirzoneZoneEntity(AirzoneEntity):
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, zone_id)},
model=zone_data.get(AZD_THERMOSTAT_MODEL),
manufacturer=MANUFACTURER,
name=zone_data[AZD_NAME],
via_device=(DOMAIN, self.system_id),
sw_version=zone_data.get(AZD_THERMOSTAT_FW),
)
def get_airzone_value(self, key: str) -> Any:

View File

@@ -0,0 +1,15 @@
{
"entity": {
"sensor": {
"cpu_usage": {
"default": "mdi:cpu-32-bit"
},
"free_memory": {
"default": "mdi:memory"
},
"thermostat_coverage": {
"default": "mdi:signal"
}
}
}
}

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/airzone_cloud",
"iot_class": "cloud_push",
"loggers": ["aioairzone_cloud"],
"requirements": ["aioairzone-cloud==0.5.3"]
"requirements": ["aioairzone-cloud==0.6.2"]
}

View File

@@ -10,8 +10,12 @@ from aioairzone_cloud.const import (
AZD_AQ_PM_1,
AZD_AQ_PM_2P5,
AZD_AQ_PM_10,
AZD_CPU_USAGE,
AZD_HUMIDITY,
AZD_MEMORY_FREE,
AZD_TEMP,
AZD_THERMOSTAT_BATTERY,
AZD_THERMOSTAT_COVERAGE,
AZD_WEBSERVERS,
AZD_WIFI_RSSI,
AZD_ZONES,
@@ -28,6 +32,7 @@ from homeassistant.const import (
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
EntityCategory,
UnitOfInformation,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
@@ -52,6 +57,22 @@ AIDOO_SENSOR_TYPES: Final[tuple[SensorEntityDescription, ...]] = (
)
WEBSERVER_SENSOR_TYPES: Final[tuple[SensorEntityDescription, ...]] = (
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_CPU_USAGE,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
translation_key="cpu_usage",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_MEMORY_FREE,
native_unit_of_measurement=UnitOfInformation.BYTES,
state_class=SensorStateClass.MEASUREMENT,
translation_key="free_memory",
),
SensorEntityDescription(
device_class=SensorDeviceClass.SIGNAL_STRENGTH,
entity_category=EntityCategory.DIAGNOSTIC,
@@ -98,6 +119,20 @@ ZONE_SENSOR_TYPES: Final[tuple[SensorEntityDescription, ...]] = (
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
device_class=SensorDeviceClass.BATTERY,
key=AZD_THERMOSTAT_BATTERY,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_THERMOSTAT_COVERAGE,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
translation_key="thermostat_coverage",
),
)
@@ -154,6 +189,11 @@ async def async_setup_entry(
class AirzoneSensor(AirzoneEntity, SensorEntity):
"""Define an Airzone Cloud sensor."""
@property
def available(self) -> bool:
"""Return Airzone Cloud sensor availability."""
return super().available and self.native_value is not None
@callback
def _handle_coordinator_update(self) -> None:
"""Update attributes when the coordinator updates."""

View File

@@ -37,6 +37,17 @@
"auto": "Auto"
}
}
},
"sensor": {
"cpu_usage": {
"name": "CPU usage"
},
"free_memory": {
"name": "Free memory"
},
"thermostat_coverage": {
"name": "Signal percentage"
}
}
}
}

View File

@@ -1,94 +1,38 @@
"""The Aladdin Connect Genie integration."""
# mypy: ignore-errors
from __future__ import annotations
# from genie_partner_sdk.client import AladdinConnectClient
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.config_entries import ConfigEntry, ConfigEntryState
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.config_entry_oauth2_flow import (
OAuth2Session,
async_get_config_entry_implementation,
)
from homeassistant.helpers import issue_registry as ir
from .api import AsyncConfigEntryAuth
from .const import DOMAIN
from .coordinator import AladdinConnectCoordinator
PLATFORMS: list[Platform] = [Platform.COVER, Platform.SENSOR]
type AladdinConnectConfigEntry = ConfigEntry[AladdinConnectCoordinator]
DOMAIN = "aladdin_connect"
async def async_setup_entry(
hass: HomeAssistant, entry: AladdinConnectConfigEntry
) -> bool:
"""Set up Aladdin Connect Genie from a config entry."""
implementation = await async_get_config_entry_implementation(hass, entry)
session = OAuth2Session(hass, entry, implementation)
auth = AsyncConfigEntryAuth(async_get_clientsession(hass), session)
coordinator = AladdinConnectCoordinator(hass, AladdinConnectClient(auth))
await coordinator.async_setup()
await coordinator.async_config_entry_first_refresh()
entry.runtime_data = coordinator
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
async_remove_stale_devices(hass, entry)
async def async_setup_entry(hass: HomeAssistant, _: ConfigEntry) -> bool:
"""Set up Aladdin Connect from a config entry."""
ir.async_create_issue(
hass,
DOMAIN,
DOMAIN,
is_fixable=False,
severity=ir.IssueSeverity.ERROR,
translation_key="integration_removed",
translation_placeholders={
"entries": "/config/integrations/integration/aladdin_connect",
},
)
return True
async def async_unload_entry(
hass: HomeAssistant, entry: AladdinConnectConfigEntry
) -> bool:
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
async def async_migrate_entry(
hass: HomeAssistant, config_entry: AladdinConnectConfigEntry
) -> bool:
"""Migrate old config."""
if config_entry.version < 2:
config_entry.async_start_reauth(hass)
hass.config_entries.async_update_entry(
config_entry,
version=2,
minor_version=1,
)
if all(
config_entry.state is ConfigEntryState.NOT_LOADED
for config_entry in hass.config_entries.async_entries(DOMAIN)
if config_entry.entry_id != entry.entry_id
):
ir.async_delete_issue(hass, DOMAIN, DOMAIN)
return True
def async_remove_stale_devices(
hass: HomeAssistant, config_entry: AladdinConnectConfigEntry
) -> None:
"""Remove stale devices from device registry."""
device_registry = dr.async_get(hass)
device_entries = dr.async_entries_for_config_entry(
device_registry, config_entry.entry_id
)
all_device_ids = {door.unique_id for door in config_entry.runtime_data.doors}
for device_entry in device_entries:
device_id: str | None = None
for identifier in device_entry.identifiers:
if identifier[0] == DOMAIN:
device_id = identifier[1]
break
if device_id is None or device_id not in all_device_ids:
# If device_id is None an invalid device entry was found for this config entry.
# If the device_id is not in existing device ids it's a stale device entry.
# Remove config entry from this device entry in either case.
device_registry.async_update_device(
device_entry.id, remove_config_entry_id=config_entry.entry_id
)

View File

@@ -1,33 +0,0 @@
"""API for Aladdin Connect Genie bound to Home Assistant OAuth."""
# mypy: ignore-errors
from typing import cast
from aiohttp import ClientSession
# from genie_partner_sdk.auth import Auth
from homeassistant.helpers.config_entry_oauth2_flow import OAuth2Session
API_URL = "https://twdvzuefzh.execute-api.us-east-2.amazonaws.com/v1"
API_KEY = "k6QaiQmcTm2zfaNns5L1Z8duBtJmhDOW8JawlCC3"
class AsyncConfigEntryAuth(Auth): # type: ignore[misc]
"""Provide Aladdin Connect Genie authentication tied to an OAuth2 based config entry."""
def __init__(
self,
websession: ClientSession,
oauth_session: OAuth2Session,
) -> None:
"""Initialize Aladdin Connect Genie auth."""
super().__init__(
websession, API_URL, oauth_session.token["access_token"], API_KEY
)
self._oauth_session = oauth_session
async def async_get_access_token(self) -> str:
"""Return a valid access token."""
await self._oauth_session.async_ensure_token_valid()
return cast(str, self._oauth_session.token["access_token"])

View File

@@ -1,70 +1,11 @@
"""Config flow for Aladdin Connect Genie."""
"""Config flow for Aladdin Connect integration."""
from collections.abc import Mapping
import logging
from typing import Any
from homeassistant.config_entries import ConfigFlow
import jwt
from homeassistant.config_entries import ConfigEntry, ConfigFlowResult
from homeassistant.const import CONF_ACCESS_TOKEN, CONF_TOKEN
from homeassistant.helpers.config_entry_oauth2_flow import AbstractOAuth2FlowHandler
from .const import DOMAIN
from . import DOMAIN
class AladdinConnectOAuth2FlowHandler(AbstractOAuth2FlowHandler, domain=DOMAIN):
"""Config flow to handle Aladdin Connect Genie OAuth2 authentication."""
class AladdinConnectConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for Aladdin Connect."""
DOMAIN = DOMAIN
VERSION = 2
MINOR_VERSION = 1
reauth_entry: ConfigEntry | None = None
async def async_step_reauth(
self, user_input: Mapping[str, Any]
) -> ConfigFlowResult:
"""Perform reauth upon API auth error or upgrade from v1 to v2."""
self.reauth_entry = self.hass.config_entries.async_get_entry(
self.context["entry_id"]
)
return await self.async_step_reauth_confirm()
async def async_step_reauth_confirm(
self, user_input: Mapping[str, Any] | None = None
) -> ConfigFlowResult:
"""Dialog that informs the user that reauth is required."""
if user_input is None:
return self.async_show_form(step_id="reauth_confirm")
return await self.async_step_user()
async def async_oauth_create_entry(self, data: dict[str, Any]) -> ConfigFlowResult:
"""Create an oauth config entry or update existing entry for reauth."""
token_payload = jwt.decode(
data[CONF_TOKEN][CONF_ACCESS_TOKEN], options={"verify_signature": False}
)
if not self.reauth_entry:
await self.async_set_unique_id(token_payload["sub"])
self._abort_if_unique_id_configured()
return self.async_create_entry(
title=token_payload["username"],
data=data,
)
if self.reauth_entry.unique_id == token_payload["username"]:
return self.async_update_reload_and_abort(
self.reauth_entry,
data=data,
unique_id=token_payload["sub"],
)
if self.reauth_entry.unique_id == token_payload["sub"]:
return self.async_update_reload_and_abort(self.reauth_entry, data=data)
return self.async_abort(reason="wrong_account")
@property
def logger(self) -> logging.Logger:
"""Return logger."""
return logging.getLogger(__name__)
VERSION = 1

View File

@@ -1,6 +0,0 @@
"""Constants for the Aladdin Connect Genie integration."""
DOMAIN = "aladdin_connect"
OAUTH2_AUTHORIZE = "https://app.aladdinconnect.net/login.html"
OAUTH2_TOKEN = "https://twdvzuefzh.execute-api.us-east-2.amazonaws.com/v1/oauth2/token"

View File

@@ -1,38 +0,0 @@
"""Define an object to coordinate fetching Aladdin Connect data."""
# mypy: ignore-errors
from datetime import timedelta
import logging
# from genie_partner_sdk.client import AladdinConnectClient
# from genie_partner_sdk.model import GarageDoor
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from .const import DOMAIN
_LOGGER = logging.getLogger(__name__)
class AladdinConnectCoordinator(DataUpdateCoordinator[None]):
"""Aladdin Connect Data Update Coordinator."""
def __init__(self, hass: HomeAssistant, acc: AladdinConnectClient) -> None:
"""Initialize."""
super().__init__(
hass,
logger=_LOGGER,
name=DOMAIN,
update_interval=timedelta(seconds=15),
)
self.acc = acc
self.doors: list[GarageDoor] = []
async def async_setup(self) -> None:
"""Fetch initial data."""
self.doors = await self.acc.get_doors()
async def _async_update_data(self) -> None:
"""Fetch data from API endpoint."""
for door in self.doors:
await self.acc.update_door(door.device_id, door.door_number)

View File

@@ -1,84 +0,0 @@
"""Cover Entity for Genie Garage Door."""
# mypy: ignore-errors
from typing import Any
# from genie_partner_sdk.model import GarageDoor
from homeassistant.components.cover import (
CoverDeviceClass,
CoverEntity,
CoverEntityFeature,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AladdinConnectConfigEntry, AladdinConnectCoordinator
from .entity import AladdinConnectEntity
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AladdinConnectConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Aladdin Connect platform."""
coordinator = config_entry.runtime_data
async_add_entities(AladdinDevice(coordinator, door) for door in coordinator.doors)
class AladdinDevice(AladdinConnectEntity, CoverEntity):
"""Representation of Aladdin Connect cover."""
_attr_device_class = CoverDeviceClass.GARAGE
_attr_supported_features = CoverEntityFeature.OPEN | CoverEntityFeature.CLOSE
_attr_name = None
def __init__(
self, coordinator: AladdinConnectCoordinator, device: GarageDoor
) -> None:
"""Initialize the Aladdin Connect cover."""
super().__init__(coordinator, device)
self._attr_unique_id = device.unique_id
async def async_open_cover(self, **kwargs: Any) -> None:
"""Issue open command to cover."""
await self.coordinator.acc.open_door(
self._device.device_id, self._device.door_number
)
async def async_close_cover(self, **kwargs: Any) -> None:
"""Issue close command to cover."""
await self.coordinator.acc.close_door(
self._device.device_id, self._device.door_number
)
@property
def is_closed(self) -> bool | None:
"""Update is closed attribute."""
value = self.coordinator.acc.get_door_status(
self._device.device_id, self._device.door_number
)
if value is None:
return None
return bool(value == "closed")
@property
def is_closing(self) -> bool | None:
"""Update is closing attribute."""
value = self.coordinator.acc.get_door_status(
self._device.device_id, self._device.door_number
)
if value is None:
return None
return bool(value == "closing")
@property
def is_opening(self) -> bool | None:
"""Update is opening attribute."""
value = self.coordinator.acc.get_door_status(
self._device.device_id, self._device.door_number
)
if value is None:
return None
return bool(value == "opening")

View File

@@ -1,27 +0,0 @@
"""Defines a base Aladdin Connect entity."""
# mypy: ignore-errors
# from genie_partner_sdk.model import GarageDoor
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
from .coordinator import AladdinConnectCoordinator
class AladdinConnectEntity(CoordinatorEntity[AladdinConnectCoordinator]):
"""Defines a base Aladdin Connect entity."""
_attr_has_entity_name = True
def __init__(
self, coordinator: AladdinConnectCoordinator, device: GarageDoor
) -> None:
"""Initialize the entity."""
super().__init__(coordinator)
self._device = device
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, device.unique_id)},
name=device.name,
manufacturer="Overhead Door",
)

View File

@@ -1,11 +1,9 @@
{
"domain": "aladdin_connect",
"name": "Aladdin Connect",
"codeowners": ["@swcloudgenie"],
"config_flow": true,
"dependencies": ["application_credentials"],
"disabled": "This integration is disabled because it uses non-open source code to operate.",
"codeowners": [],
"documentation": "https://www.home-assistant.io/integrations/aladdin_connect",
"integration_type": "system",
"iot_class": "cloud_polling",
"requirements": ["genie-partner-sdk==1.0.2"]
"requirements": []
}

View File

@@ -1,80 +0,0 @@
"""Support for Aladdin Connect Garage Door sensors."""
# mypy: ignore-errors
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
# from genie_partner_sdk.client import AladdinConnectClient
# from genie_partner_sdk.model import GarageDoor
from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.const import PERCENTAGE
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AladdinConnectConfigEntry, AladdinConnectCoordinator
from .entity import AladdinConnectEntity
@dataclass(frozen=True, kw_only=True)
class AccSensorEntityDescription(SensorEntityDescription):
"""Describes AladdinConnect sensor entity."""
value_fn: Callable[[AladdinConnectClient, str, int], float | None]
SENSORS: tuple[AccSensorEntityDescription, ...] = (
AccSensorEntityDescription(
key="battery_level",
device_class=SensorDeviceClass.BATTERY,
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
value_fn=AladdinConnectClient.get_battery_status,
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: AladdinConnectConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up Aladdin Connect sensor devices."""
coordinator = entry.runtime_data
async_add_entities(
AladdinConnectSensor(coordinator, door, description)
for description in SENSORS
for door in coordinator.doors
)
class AladdinConnectSensor(AladdinConnectEntity, SensorEntity):
"""A sensor implementation for Aladdin Connect devices."""
entity_description: AccSensorEntityDescription
def __init__(
self,
coordinator: AladdinConnectCoordinator,
device: GarageDoor,
description: AccSensorEntityDescription,
) -> None:
"""Initialize a sensor for an Aladdin Connect device."""
super().__init__(coordinator, device)
self.entity_description = description
self._attr_unique_id = f"{device.unique_id}-{description.key}"
@property
def native_value(self) -> float | None:
"""Return the state of the sensor."""
return self.entity_description.value_fn(
self.coordinator.acc, self._device.device_id, self._device.door_number
)

View File

@@ -1,29 +1,8 @@
{
"config": {
"step": {
"pick_implementation": {
"title": "[%key:common::config_flow::title::oauth2_pick_implementation%]"
},
"reauth_confirm": {
"title": "[%key:common::config_flow::title::reauth%]",
"description": "Aladdin Connect needs to re-authenticate your account"
}
},
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_account%]",
"already_in_progress": "[%key:common::config_flow::abort::already_in_progress%]",
"oauth_error": "[%key:common::config_flow::abort::oauth2_error%]",
"oauth_failed": "[%key:common::config_flow::abort::oauth2_failed%]",
"oauth_timeout": "[%key:common::config_flow::abort::oauth2_timeout%]",
"oauth_unauthorized": "[%key:common::config_flow::abort::oauth2_unauthorized%]",
"missing_configuration": "[%key:common::config_flow::abort::oauth2_missing_configuration%]",
"authorize_url_timeout": "[%key:common::config_flow::abort::oauth2_authorize_url_timeout%]",
"no_url_available": "[%key:common::config_flow::abort::oauth2_no_url_available%]",
"user_rejected_authorize": "[%key:common::config_flow::abort::oauth2_user_rejected_authorize%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
},
"create_entry": {
"default": "[%key:common::config_flow::create_entry::authenticated%]"
"issues": {
"integration_removed": {
"title": "The Aladdin Connect integration has been removed",
"description": "The Aladdin Connect integration has been removed from Home Assistant.\n\nTo resolve this issue, please remove the (now defunct) integration entries from your Home Assistant setup. [Click here to see your existing Aladdin Connect integration entries]({entries})."
}
}
}

View File

@@ -124,9 +124,9 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
if not entities:
return False
component.async_register_entity_service(SERVICE_TURN_OFF, {}, "async_turn_off")
component.async_register_entity_service(SERVICE_TURN_ON, {}, "async_turn_on")
component.async_register_entity_service(SERVICE_TOGGLE, {}, "async_toggle")
component.async_register_entity_service(SERVICE_TURN_OFF, None, "async_turn_off")
component.async_register_entity_service(SERVICE_TURN_ON, None, "async_turn_on")
component.async_register_entity_service(SERVICE_TOGGLE, None, "async_toggle")
await component.async_add_entities(entities)
@@ -162,16 +162,8 @@ class Alert(Entity):
self._data = data
self._message_template = message_template
if self._message_template is not None:
self._message_template.hass = hass
self._done_message_template = done_message_template
if self._done_message_template is not None:
self._done_message_template.hass = hass
self._title_template = title_template
if self._title_template is not None:
self._title_template.hass = hass
self._notifiers = notifiers
self._can_ack = can_ack

View File

@@ -2,11 +2,10 @@
from __future__ import annotations
from collections.abc import Generator
import logging
from typing import Any
from typing_extensions import Generator
from homeassistant.components import (
button,
climate,
@@ -19,6 +18,7 @@ from homeassistant.components import (
light,
media_player,
number,
remote,
timer,
vacuum,
valve,
@@ -439,6 +439,8 @@ class AlexaPowerController(AlexaCapability):
is_on = self.entity.state == fan.STATE_ON
elif self.entity.domain == humidifier.DOMAIN:
is_on = self.entity.state == humidifier.STATE_ON
elif self.entity.domain == remote.DOMAIN:
is_on = self.entity.state not in (STATE_OFF, STATE_UNKNOWN)
elif self.entity.domain == vacuum.DOMAIN:
is_on = self.entity.state == vacuum.STATE_CLEANING
elif self.entity.domain == timer.DOMAIN:
@@ -1436,6 +1438,12 @@ class AlexaModeController(AlexaCapability):
if mode in modes:
return f"{humidifier.ATTR_MODE}.{mode}"
# Remote Activity
if self.instance == f"{remote.DOMAIN}.{remote.ATTR_ACTIVITY}":
activity = self.entity.attributes.get(remote.ATTR_CURRENT_ACTIVITY, None)
if activity in self.entity.attributes.get(remote.ATTR_ACTIVITY_LIST, []):
return f"{remote.ATTR_ACTIVITY}.{activity}"
# Water heater operation mode
if self.instance == f"{water_heater.DOMAIN}.{water_heater.ATTR_OPERATION_MODE}":
operation_mode = self.entity.attributes.get(
@@ -1550,6 +1558,24 @@ class AlexaModeController(AlexaCapability):
)
return self._resource.serialize_capability_resources()
# Remote Resource
if self.instance == f"{remote.DOMAIN}.{remote.ATTR_ACTIVITY}":
# Use the mode controller for a remote because the input controller
# only allows a preset of names as an input.
self._resource = AlexaModeResource([AlexaGlobalCatalog.SETTING_MODE], False)
activities = self.entity.attributes.get(remote.ATTR_ACTIVITY_LIST) or []
for activity in activities:
self._resource.add_mode(
f"{remote.ATTR_ACTIVITY}.{activity}", [activity]
)
# Remotes with a single activity completely break Alexa discovery, add a
# fake activity to the mode controller (see issue #53832).
if len(activities) == 1:
self._resource.add_mode(
f"{remote.ATTR_ACTIVITY}.{PRESET_MODE_NA}", [PRESET_MODE_NA]
)
return self._resource.serialize_capability_resources()
# Cover Position Resources
if self.instance == f"{cover.DOMAIN}.{cover.ATTR_POSITION}":
self._resource = AlexaModeResource(

View File

@@ -88,7 +88,7 @@ API_THERMOSTAT_MODES_CUSTOM = {
API_THERMOSTAT_PRESETS = {climate.PRESET_ECO: "ECO"}
# AlexaModeController does not like a single mode for the fan preset or humidifier mode,
# we add PRESET_MODE_NA if a fan / humidifier has only one preset_mode
# we add PRESET_MODE_NA if a fan / humidifier / remote has only one preset_mode
PRESET_MODE_NA = "-"
STORAGE_ACCESS_TOKEN = "access_token"

View File

@@ -2,12 +2,10 @@
from __future__ import annotations
from collections.abc import Iterable
from collections.abc import Generator, Iterable
import logging
from typing import TYPE_CHECKING, Any
from typing_extensions import Generator
from homeassistant.components import (
alarm_control_panel,
alert,
@@ -29,6 +27,7 @@ from homeassistant.components import (
lock,
media_player,
number,
remote,
scene,
script,
sensor,
@@ -198,6 +197,10 @@ class DisplayCategory:
# Indicates a device that prints.
PRINTER = "PRINTER"
# Indicates a decive that support stateless events,
# such as remote switches and smart buttons.
REMOTE = "REMOTE"
# Indicates a network router.
ROUTER = "ROUTER"
@@ -647,6 +650,24 @@ class FanCapabilities(AlexaEntity):
yield Alexa(self.entity)
@ENTITY_ADAPTERS.register(remote.DOMAIN)
class RemoteCapabilities(AlexaEntity):
"""Class to represent Remote capabilities."""
def default_display_categories(self) -> list[str]:
"""Return the display categories for this entity."""
return [DisplayCategory.REMOTE]
def interfaces(self) -> Generator[AlexaCapability]:
"""Yield the supported interfaces."""
yield AlexaPowerController(self.entity)
yield AlexaModeController(
self.entity, instance=f"{remote.DOMAIN}.{remote.ATTR_ACTIVITY}"
)
yield AlexaEndpointHealth(self.hass, self.entity)
yield Alexa(self.entity)
@ENTITY_ADAPTERS.register(humidifier.DOMAIN)
class HumidifierCapabilities(AlexaEntity):
"""Class to represent Humidifier capabilities."""

View File

@@ -52,7 +52,6 @@ class AlexaFlashBriefingView(http.HomeAssistantView):
"""Initialize Alexa view."""
super().__init__()
self.flash_briefings = flash_briefings
template.attach(hass, self.flash_briefings)
@callback
def get(

View File

@@ -21,6 +21,7 @@ from homeassistant.components import (
light,
media_player,
number,
remote,
timer,
vacuum,
valve,
@@ -185,6 +186,8 @@ async def async_api_turn_on(
service = fan.SERVICE_TURN_ON
elif domain == humidifier.DOMAIN:
service = humidifier.SERVICE_TURN_ON
elif domain == remote.DOMAIN:
service = remote.SERVICE_TURN_ON
elif domain == vacuum.DOMAIN:
supported = entity.attributes.get(ATTR_SUPPORTED_FEATURES, 0)
if (
@@ -234,6 +237,8 @@ async def async_api_turn_off(
service = climate.SERVICE_TURN_OFF
elif domain == fan.DOMAIN:
service = fan.SERVICE_TURN_OFF
elif domain == remote.DOMAIN:
service = remote.SERVICE_TURN_OFF
elif domain == humidifier.DOMAIN:
service = humidifier.SERVICE_TURN_OFF
elif domain == vacuum.DOMAIN:
@@ -1200,6 +1205,17 @@ async def async_api_set_mode(
msg = f"Entity '{entity.entity_id}' does not support Mode '{mode}'"
raise AlexaInvalidValueError(msg)
# Remote Activity
elif instance == f"{remote.DOMAIN}.{remote.ATTR_ACTIVITY}":
activity = mode.split(".")[1]
activities: list[str] | None = entity.attributes.get(remote.ATTR_ACTIVITY_LIST)
if activity != PRESET_MODE_NA and activities and activity in activities:
service = remote.SERVICE_TURN_ON
data[remote.ATTR_ACTIVITY] = activity
else:
msg = f"Entity '{entity.entity_id}' does not support Mode '{mode}'"
raise AlexaInvalidValueError(msg)
# Water heater operation mode
elif instance == f"{water_heater.DOMAIN}.{water_heater.ATTR_OPERATION_MODE}":
operation_mode = mode.split(".")[1]
@@ -1497,7 +1513,7 @@ async def async_api_adjust_range(
if instance == f"{cover.DOMAIN}.{cover.ATTR_POSITION}":
range_delta = int(range_delta * 20) if range_delta_default else int(range_delta)
service = SERVICE_SET_COVER_POSITION
if not (current := entity.attributes.get(cover.ATTR_POSITION)):
if not (current := entity.attributes.get(cover.ATTR_CURRENT_POSITION)):
msg = f"Unable to determine {entity.entity_id} current position"
raise AlexaInvalidValueError(msg)
position = response_value = min(100, max(0, range_delta + current))

View File

@@ -5,5 +5,6 @@
"codeowners": ["@home-assistant/cloud", "@ochlocracy", "@jbouwh"],
"dependencies": ["http"],
"documentation": "https://www.home-assistant.io/integrations/alexa",
"integration_type": "system",
"iot_class": "cloud_push"
}

View File

@@ -283,7 +283,7 @@ class AlexaPresetResource(AlexaCapabilityResource):
"""Implements Alexa PresetResources.
Use presetResources with RangeController to provide a set of
friendlyNamesfor each RangeController preset.
friendlyNames for each RangeController preset.
https://developer.amazon.com/docs/device-apis/resources-and-assets.html#presetresources
"""

View File

@@ -194,7 +194,7 @@ async def async_handle_message(
try:
if not enabled:
raise AlexaBridgeUnreachableError(
raise AlexaBridgeUnreachableError( # noqa: TRY301
"Alexa API not enabled in Home Assistant configuration"
)

View File

@@ -8,128 +8,23 @@ CONF_REGION: Final = "region_name"
CONF_ACCESS_KEY_ID: Final = "aws_access_key_id"
CONF_SECRET_ACCESS_KEY: Final = "aws_secret_access_key"
DEFAULT_REGION: Final = "us-east-1"
SUPPORTED_REGIONS: Final[list[str]] = [
"us-east-1",
"us-east-2",
"us-west-1",
"us-west-2",
"ca-central-1",
"eu-west-1",
"eu-central-1",
"eu-west-2",
"eu-west-3",
"ap-southeast-1",
"ap-southeast-2",
"ap-northeast-2",
"ap-northeast-1",
"ap-south-1",
"sa-east-1",
]
CONF_ENGINE: Final = "engine"
CONF_VOICE: Final = "voice"
CONF_OUTPUT_FORMAT: Final = "output_format"
CONF_SAMPLE_RATE: Final = "sample_rate"
CONF_TEXT_TYPE: Final = "text_type"
SUPPORTED_VOICES: Final[list[str]] = [
"Aditi", # Hindi
"Amy", # English (British)
"Aria", # English (New Zealand), Neural
"Arlet", # Catalan, Neural
"Arthur", # English, Neural
"Astrid", # Swedish
"Ayanda", # English (South African), Neural
"Bianca", # Italian
"Brian", # English (British)
"Camila", # Portuguese, Brazilian
"Carla", # Italian
"Carmen", # Romanian
"Celine", # French
"Chantal", # French Canadian
"Conchita", # Spanish (European)
"Cristiano", # Portuguese (European)
"Daniel", # German, Neural
"Dora", # Icelandic
"Elin", # Swedish, Neural
"Emma", # English
"Enrique", # Spanish (European)
"Ewa", # Polish
"Filiz", # Turkish
"Gabrielle", # French (Canadian)
"Geraint", # English Welsh
"Giorgio", # Italian
"Gwyneth", # Welsh
"Hala", # Arabic (Gulf), Neural
"Hannah", # German (Austrian), Neural
"Hans", # German
"Hiujin", # Chinese (Cantonese), Neural
"Ida", # Norwegian, Neural
"Ines", # Portuguese, European # codespell:ignore ines
"Ivy", # English
"Jacek", # Polish
"Jan", # Polish
"Joanna", # English
"Joey", # English
"Justin", # English
"Kajal", # English (Indian)/Hindi (Bilingual ), Neural
"Karl", # Icelandic
"Kendra", # English
"Kevin", # English, Neural
"Kimberly", # English
"Laura", # Dutch, Neural
"Lea", # French
"Liam", # Canadian French, Neural
"Liv", # Norwegian
"Lotte", # Dutch
"Lucia", # Spanish European
"Lupe", # Spanish US
"Mads", # Danish
"Maja", # Polish
"Marlene", # German
"Mathieu", # French
"Matthew", # English
"Maxim", # Russian
"Mia", # Spanish Mexican
"Miguel", # Spanish US
"Mizuki", # Japanese
"Naja", # Danish
"Nicole", # English Australian
"Ola", # Polish, Neural
"Olivia", # Female, Australian, Neural
"Penelope", # Spanish US
"Pedro", # Spanish US, Neural
"Raveena", # English, Indian
"Ricardo", # Portuguese (Brazilian)
"Ruben", # Dutch
"Russell", # English (Australian)
"Ruth", # English, Neural
"Salli", # English
"Seoyeon", # Korean
"Stephen", # English, Neural
"Suvi", # Finnish
"Takumi", # Japanese
"Tatyana", # Russian
"Vicki", # German
"Vitoria", # Portuguese, Brazilian
"Zeina", # Arabic
"Zhiyu", # Chinese
]
SUPPORTED_OUTPUT_FORMATS: Final[set[str]] = {"mp3", "ogg_vorbis", "pcm"}
SUPPORTED_OUTPUT_FORMATS: Final[list[str]] = ["mp3", "ogg_vorbis", "pcm"]
SUPPORTED_SAMPLE_RATES: Final[set[str]] = {"8000", "16000", "22050", "24000"}
SUPPORTED_ENGINES: Final[list[str]] = ["neural", "standard"]
SUPPORTED_SAMPLE_RATES: Final[list[str]] = ["8000", "16000", "22050", "24000"]
SUPPORTED_SAMPLE_RATES_MAP: Final[dict[str, list[str]]] = {
"mp3": ["8000", "16000", "22050", "24000"],
"ogg_vorbis": ["8000", "16000", "22050"],
"pcm": ["8000", "16000"],
SUPPORTED_SAMPLE_RATES_MAP: Final[dict[str, set[str]]] = {
"mp3": {"8000", "16000", "22050", "24000"},
"ogg_vorbis": {"8000", "16000", "22050"},
"pcm": {"8000", "16000"},
}
SUPPORTED_TEXT_TYPES: Final[list[str]] = ["text", "ssml"]
SUPPORTED_TEXT_TYPES: Final[set[str]] = {"text", "ssml"}
CONTENT_TYPE_EXTENSIONS: Final[dict[str, str]] = {
"audio/mpeg": "mp3",
@@ -137,6 +32,8 @@ CONTENT_TYPE_EXTENSIONS: Final[dict[str, str]] = {
"audio/pcm": "pcm",
}
DEFAULT_REGION: Final = "us-east-1"
DEFAULT_ENGINE: Final = "standard"
DEFAULT_VOICE: Final = "Joanna"
DEFAULT_OUTPUT_FORMAT: Final = "mp3"

View File

@@ -5,5 +5,5 @@
"documentation": "https://www.home-assistant.io/integrations/amazon_polly",
"iot_class": "cloud_push",
"loggers": ["boto3", "botocore", "s3transfer"],
"requirements": ["boto3==1.34.51"]
"requirements": ["boto3==1.34.131"]
}

View File

@@ -16,6 +16,11 @@ from homeassistant.components.tts import (
)
from homeassistant.const import ATTR_CREDENTIALS, CONF_PROFILE_NAME
from homeassistant.core import HomeAssistant
from homeassistant.generated.amazon_polly import (
SUPPORTED_ENGINES,
SUPPORTED_REGIONS,
SUPPORTED_VOICES,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
@@ -38,13 +43,10 @@ from .const import (
DEFAULT_SAMPLE_RATES,
DEFAULT_TEXT_TYPE,
DEFAULT_VOICE,
SUPPORTED_ENGINES,
SUPPORTED_OUTPUT_FORMATS,
SUPPORTED_REGIONS,
SUPPORTED_SAMPLE_RATES,
SUPPORTED_SAMPLE_RATES_MAP,
SUPPORTED_TEXT_TYPES,
SUPPORTED_VOICES,
)
_LOGGER: Final = logging.getLogger(__name__)

View File

@@ -71,6 +71,18 @@ class AmberPriceSpikeBinarySensor(AmberPriceGridSensor):
}
class AmberDemandWindowBinarySensor(AmberPriceGridSensor):
"""Sensor to show whether demand window is active."""
@property
def is_on(self) -> bool | None:
"""Return true if the binary sensor is on."""
grid = self.coordinator.data["grid"]
if "demand_window" in grid:
return grid["demand_window"] # type: ignore[no-any-return]
return None
async def async_setup_entry(
hass: HomeAssistant,
entry: ConfigEntry,
@@ -83,6 +95,14 @@ async def async_setup_entry(
key="price_spike",
name=f"{entry.title} - Price Spike",
)
async_add_entities(
[AmberPriceSpikeBinarySensor(coordinator, price_spike_description)]
demand_window_description = BinarySensorEntityDescription(
key="demand_window",
name=f"{entry.title} - Demand Window",
translation_key="demand_window",
)
async_add_entities(
[
AmberPriceSpikeBinarySensor(coordinator, price_spike_description),
AmberDemandWindowBinarySensor(coordinator, demand_window_description),
]
)

View File

@@ -111,6 +111,9 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
]
result["grid"]["renewables"] = round(general[0].renewables)
result["grid"]["price_spike"] = general[0].spike_status.value
tariff_information = general[0].tariff_information
if tariff_information:
result["grid"]["demand_window"] = tariff_information.demand_window
controlled_load = [
interval for interval in current if is_controlled_load(interval)

View File

@@ -13,6 +13,14 @@
"renewables": {
"default": "mdi:solar-power"
}
},
"binary_sensor": {
"demand_window": {
"default": "mdi:meter-electric",
"state": {
"off": "mdi:meter-electric-outline"
}
}
}
}
}

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/amberelectric",
"iot_class": "cloud_polling",
"loggers": ["amberelectric"],
"requirements": ["amberelectric==1.1.0"]
"requirements": ["amberelectric==1.1.1"]
}

View File

@@ -17,7 +17,6 @@ from homeassistant.const import (
)
from homeassistant.core import Event, HomeAssistant, callback
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv
import homeassistant.helpers.device_registry as dr
from homeassistant.helpers.dispatcher import async_dispatcher_send
import homeassistant.helpers.entity_registry as er
@@ -25,7 +24,6 @@ import homeassistant.helpers.entity_registry as er
from .const import (
ATTR_LAST_DATA,
CONF_APP_KEY,
DOMAIN,
LOGGER,
TYPE_SOLARRADIATION,
TYPE_SOLARRADIATION_LX,
@@ -37,7 +35,6 @@ DATA_CONFIG = "config"
DEFAULT_SOCKET_MIN_RETRY = 15
CONFIG_SCHEMA = cv.removed(DOMAIN, raise_if_present=False)
type AmbientStationConfigEntry = ConfigEntry[AmbientStation]

View File

@@ -2,6 +2,8 @@
from __future__ import annotations
from typing import Any
from aioambient import API
from aioambient.errors import AmbientError
import voluptuous as vol
@@ -32,7 +34,9 @@ class AmbientStationFlowHandler(ConfigFlow, domain=DOMAIN):
errors=errors if errors else {},
)
async def async_step_user(self, user_input: dict | None = None) -> ConfigFlowResult:
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle the start of the config flow."""
if not user_input:
return await self._show_form()

View File

@@ -8,6 +8,7 @@ from datetime import timedelta
import logging
from typing import TYPE_CHECKING, Any
import aiohttp
from aiohttp import web
from amcrest import AmcrestError
from haffmpeg.camera import CameraMjpeg
@@ -244,7 +245,9 @@ class AmcrestCam(Camera):
websession = async_get_clientsession(self.hass)
streaming_url = self._api.mjpeg_url(typeno=self._resolution)
stream_coro = websession.get(
streaming_url, auth=self._token, timeout=CAMERA_WEB_SESSION_TIMEOUT
streaming_url,
auth=self._token,
timeout=aiohttp.ClientTimeout(total=CAMERA_WEB_SESSION_TIMEOUT),
)
return await async_aiohttp_proxy_web(self.hass, request, stream_coro)
@@ -496,7 +499,7 @@ class AmcrestCam(Camera):
await getattr(self, f"_async_set_{func}")(value)
new_value = await getattr(self, f"_async_get_{func}")()
if new_value != value:
raise AmcrestCommandFailed
raise AmcrestCommandFailed # noqa: TRY301
except (AmcrestError, AmcrestCommandFailed) as error:
if tries == 1:
log_update_error(_LOGGER, action, self.name, description, error)

View File

@@ -7,6 +7,6 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["python_homeassistant_analytics"],
"requirements": ["python-homeassistant-analytics==0.6.0"],
"requirements": ["python-homeassistant-analytics==0.7.0"],
"single_config_entry": true
}

View File

@@ -14,7 +14,6 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from .const import DOMAIN
from .coordinator import AndroidIPCamDataUpdateCoordinator
@@ -27,9 +26,6 @@ PLATFORMS: list[Platform] = [
]
CONFIG_SCHEMA = cv.removed(DOMAIN, raise_if_present=False)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Android IP Webcam from a config entry."""
websession = async_get_clientsession(hass)

View File

@@ -87,7 +87,7 @@ async def async_setup_entry(
"adb_command",
)
platform.async_register_entity_service(
SERVICE_LEARN_SENDEVENT, {}, "learn_sendevent"
SERVICE_LEARN_SENDEVENT, None, "learn_sendevent"
)
platform.async_register_entity_service(
SERVICE_DOWNLOAD,

View File

@@ -101,7 +101,7 @@
},
"learn_sendevent": {
"name": "Learn sendevent",
"description": "Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of calling this service."
"description": "Translates a key press on a remote into ADB 'sendevent' commands. You must press one button on the remote within 8 seconds of performing this action."
}
},
"exceptions": {

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/anova",
"iot_class": "cloud_push",
"loggers": ["anova_wifi"],
"requirements": ["anova-wifi==0.14.0"]
"requirements": ["anova-wifi==0.17.0"]
}

View File

@@ -0,0 +1,46 @@
"""The Anthropic integration."""
from __future__ import annotations
import anthropic
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv
from .const import DOMAIN, LOGGER
PLATFORMS = (Platform.CONVERSATION,)
CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
type AnthropicConfigEntry = ConfigEntry[anthropic.AsyncClient]
async def async_setup_entry(hass: HomeAssistant, entry: AnthropicConfigEntry) -> bool:
"""Set up Anthropic from a config entry."""
client = anthropic.AsyncAnthropic(api_key=entry.data[CONF_API_KEY])
try:
await client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=1,
messages=[{"role": "user", "content": "Hi"}],
timeout=10.0,
)
except anthropic.AuthenticationError as err:
LOGGER.error("Invalid API key: %s", err)
return False
except anthropic.AnthropicError as err:
raise ConfigEntryNotReady(err) from err
entry.runtime_data = client
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload Anthropic."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)

View File

@@ -0,0 +1,210 @@
"""Config flow for Anthropic integration."""
from __future__ import annotations
import logging
from types import MappingProxyType
from typing import Any
import anthropic
import voluptuous as vol
from homeassistant.config_entries import (
ConfigEntry,
ConfigFlow,
ConfigFlowResult,
OptionsFlow,
)
from homeassistant.const import CONF_API_KEY, CONF_LLM_HASS_API
from homeassistant.core import HomeAssistant
from homeassistant.helpers import llm
from homeassistant.helpers.selector import (
NumberSelector,
NumberSelectorConfig,
SelectOptionDict,
SelectSelector,
SelectSelectorConfig,
TemplateSelector,
)
from .const import (
CONF_CHAT_MODEL,
CONF_MAX_TOKENS,
CONF_PROMPT,
CONF_RECOMMENDED,
CONF_TEMPERATURE,
DOMAIN,
RECOMMENDED_CHAT_MODEL,
RECOMMENDED_MAX_TOKENS,
RECOMMENDED_TEMPERATURE,
)
_LOGGER = logging.getLogger(__name__)
STEP_USER_DATA_SCHEMA = vol.Schema(
{
vol.Required(CONF_API_KEY): str,
}
)
RECOMMENDED_OPTIONS = {
CONF_RECOMMENDED: True,
CONF_LLM_HASS_API: llm.LLM_API_ASSIST,
CONF_PROMPT: llm.DEFAULT_INSTRUCTIONS_PROMPT,
}
async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None:
"""Validate the user input allows us to connect.
Data has the keys from STEP_USER_DATA_SCHEMA with values provided by the user.
"""
client = anthropic.AsyncAnthropic(api_key=data[CONF_API_KEY])
await client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=1,
messages=[{"role": "user", "content": "Hi"}],
timeout=10.0,
)
class AnthropicConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for Anthropic."""
VERSION = 1
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle the initial step."""
errors = {}
if user_input is not None:
try:
await validate_input(self.hass, user_input)
except anthropic.APITimeoutError:
errors["base"] = "timeout_connect"
except anthropic.APIConnectionError:
errors["base"] = "cannot_connect"
except anthropic.APIStatusError as e:
if isinstance(e.body, dict):
errors["base"] = e.body.get("error", {}).get("type", "unknown")
else:
errors["base"] = "unknown"
except Exception:
_LOGGER.exception("Unexpected exception")
errors["base"] = "unknown"
else:
return self.async_create_entry(
title="Claude",
data=user_input,
options=RECOMMENDED_OPTIONS,
)
return self.async_show_form(
step_id="user", data_schema=STEP_USER_DATA_SCHEMA, errors=errors or None
)
@staticmethod
def async_get_options_flow(
config_entry: ConfigEntry,
) -> OptionsFlow:
"""Create the options flow."""
return AnthropicOptionsFlow(config_entry)
class AnthropicOptionsFlow(OptionsFlow):
"""Anthropic config flow options handler."""
def __init__(self, config_entry: ConfigEntry) -> None:
"""Initialize options flow."""
self.config_entry = config_entry
self.last_rendered_recommended = config_entry.options.get(
CONF_RECOMMENDED, False
)
async def async_step_init(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Manage the options."""
options: dict[str, Any] | MappingProxyType[str, Any] = self.config_entry.options
if user_input is not None:
if user_input[CONF_RECOMMENDED] == self.last_rendered_recommended:
if user_input[CONF_LLM_HASS_API] == "none":
user_input.pop(CONF_LLM_HASS_API)
return self.async_create_entry(title="", data=user_input)
# Re-render the options again, now with the recommended options shown/hidden
self.last_rendered_recommended = user_input[CONF_RECOMMENDED]
options = {
CONF_RECOMMENDED: user_input[CONF_RECOMMENDED],
CONF_PROMPT: user_input[CONF_PROMPT],
CONF_LLM_HASS_API: user_input[CONF_LLM_HASS_API],
}
suggested_values = options.copy()
if not suggested_values.get(CONF_PROMPT):
suggested_values[CONF_PROMPT] = llm.DEFAULT_INSTRUCTIONS_PROMPT
schema = self.add_suggested_values_to_schema(
vol.Schema(anthropic_config_option_schema(self.hass, options)),
suggested_values,
)
return self.async_show_form(
step_id="init",
data_schema=schema,
)
def anthropic_config_option_schema(
hass: HomeAssistant,
options: dict[str, Any] | MappingProxyType[str, Any],
) -> dict:
"""Return a schema for Anthropic completion options."""
hass_apis: list[SelectOptionDict] = [
SelectOptionDict(
label="No control",
value="none",
)
]
hass_apis.extend(
SelectOptionDict(
label=api.name,
value=api.id,
)
for api in llm.async_get_apis(hass)
)
schema = {
vol.Optional(CONF_PROMPT): TemplateSelector(),
vol.Optional(CONF_LLM_HASS_API, default="none"): SelectSelector(
SelectSelectorConfig(options=hass_apis)
),
vol.Required(
CONF_RECOMMENDED, default=options.get(CONF_RECOMMENDED, False)
): bool,
}
if options.get(CONF_RECOMMENDED):
return schema
schema.update(
{
vol.Optional(
CONF_CHAT_MODEL,
default=RECOMMENDED_CHAT_MODEL,
): str,
vol.Optional(
CONF_MAX_TOKENS,
default=RECOMMENDED_MAX_TOKENS,
): int,
vol.Optional(
CONF_TEMPERATURE,
default=RECOMMENDED_TEMPERATURE,
): NumberSelector(NumberSelectorConfig(min=0, max=1, step=0.05)),
}
)
return schema

View File

@@ -0,0 +1,15 @@
"""Constants for the Anthropic integration."""
import logging
DOMAIN = "anthropic"
LOGGER = logging.getLogger(__package__)
CONF_RECOMMENDED = "recommended"
CONF_PROMPT = "prompt"
CONF_CHAT_MODEL = "chat_model"
RECOMMENDED_CHAT_MODEL = "claude-3-5-sonnet-20240620"
CONF_MAX_TOKENS = "max_tokens"
RECOMMENDED_MAX_TOKENS = 1024
CONF_TEMPERATURE = "temperature"
RECOMMENDED_TEMPERATURE = 1.0

View File

@@ -0,0 +1,316 @@
"""Conversation support for Anthropic."""
from collections.abc import Callable
import json
from typing import Any, Literal, cast
import anthropic
from anthropic._types import NOT_GIVEN
from anthropic.types import (
Message,
MessageParam,
TextBlock,
TextBlockParam,
ToolParam,
ToolResultBlockParam,
ToolUseBlock,
ToolUseBlockParam,
)
import voluptuous as vol
from voluptuous_openapi import convert
from homeassistant.components import conversation
from homeassistant.components.conversation import trace
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_LLM_HASS_API, MATCH_ALL
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError, TemplateError
from homeassistant.helpers import device_registry as dr, intent, llm, template
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import ulid
from . import AnthropicConfigEntry
from .const import (
CONF_CHAT_MODEL,
CONF_MAX_TOKENS,
CONF_PROMPT,
CONF_TEMPERATURE,
DOMAIN,
LOGGER,
RECOMMENDED_CHAT_MODEL,
RECOMMENDED_MAX_TOKENS,
RECOMMENDED_TEMPERATURE,
)
# Max number of back and forth with the LLM to generate a response
MAX_TOOL_ITERATIONS = 10
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AnthropicConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up conversation entities."""
agent = AnthropicConversationEntity(config_entry)
async_add_entities([agent])
def _format_tool(
tool: llm.Tool, custom_serializer: Callable[[Any], Any] | None
) -> ToolParam:
"""Format tool specification."""
return ToolParam(
name=tool.name,
description=tool.description or "",
input_schema=convert(tool.parameters, custom_serializer=custom_serializer),
)
def _message_convert(
message: Message,
) -> MessageParam:
"""Convert from class to TypedDict."""
param_content: list[TextBlockParam | ToolUseBlockParam] = []
for message_content in message.content:
if isinstance(message_content, TextBlock):
param_content.append(TextBlockParam(type="text", text=message_content.text))
elif isinstance(message_content, ToolUseBlock):
param_content.append(
ToolUseBlockParam(
type="tool_use",
id=message_content.id,
name=message_content.name,
input=message_content.input,
)
)
return MessageParam(role=message.role, content=param_content)
class AnthropicConversationEntity(
conversation.ConversationEntity, conversation.AbstractConversationAgent
):
"""Anthropic conversation agent."""
_attr_has_entity_name = True
_attr_name = None
def __init__(self, entry: AnthropicConfigEntry) -> None:
"""Initialize the agent."""
self.entry = entry
self.history: dict[str, list[MessageParam]] = {}
self._attr_unique_id = entry.entry_id
self._attr_device_info = dr.DeviceInfo(
identifiers={(DOMAIN, entry.entry_id)},
manufacturer="Anthropic",
model="Claude",
entry_type=dr.DeviceEntryType.SERVICE,
)
if self.entry.options.get(CONF_LLM_HASS_API):
self._attr_supported_features = (
conversation.ConversationEntityFeature.CONTROL
)
@property
def supported_languages(self) -> list[str] | Literal["*"]:
"""Return a list of supported languages."""
return MATCH_ALL
async def async_added_to_hass(self) -> None:
"""When entity is added to Home Assistant."""
await super().async_added_to_hass()
self.entry.async_on_unload(
self.entry.add_update_listener(self._async_entry_update_listener)
)
async def async_process(
self, user_input: conversation.ConversationInput
) -> conversation.ConversationResult:
"""Process a sentence."""
options = self.entry.options
intent_response = intent.IntentResponse(language=user_input.language)
llm_api: llm.APIInstance | None = None
tools: list[ToolParam] | None = None
user_name: str | None = None
llm_context = llm.LLMContext(
platform=DOMAIN,
context=user_input.context,
user_prompt=user_input.text,
language=user_input.language,
assistant=conversation.DOMAIN,
device_id=user_input.device_id,
)
if options.get(CONF_LLM_HASS_API):
try:
llm_api = await llm.async_get_api(
self.hass,
options[CONF_LLM_HASS_API],
llm_context,
)
except HomeAssistantError as err:
LOGGER.error("Error getting LLM API: %s", err)
intent_response.async_set_error(
intent.IntentResponseErrorCode.UNKNOWN,
f"Error preparing LLM API: {err}",
)
return conversation.ConversationResult(
response=intent_response, conversation_id=user_input.conversation_id
)
tools = [
_format_tool(tool, llm_api.custom_serializer) for tool in llm_api.tools
]
if user_input.conversation_id is None:
conversation_id = ulid.ulid_now()
messages = []
elif user_input.conversation_id in self.history:
conversation_id = user_input.conversation_id
messages = self.history[conversation_id]
else:
# Conversation IDs are ULIDs. We generate a new one if not provided.
# If an old OLID is passed in, we will generate a new one to indicate
# a new conversation was started. If the user picks their own, they
# want to track a conversation and we respect it.
try:
ulid.ulid_to_bytes(user_input.conversation_id)
conversation_id = ulid.ulid_now()
except ValueError:
conversation_id = user_input.conversation_id
messages = []
if (
user_input.context
and user_input.context.user_id
and (
user := await self.hass.auth.async_get_user(user_input.context.user_id)
)
):
user_name = user.name
try:
prompt_parts = [
template.Template(
llm.BASE_PROMPT
+ options.get(CONF_PROMPT, llm.DEFAULT_INSTRUCTIONS_PROMPT),
self.hass,
).async_render(
{
"ha_name": self.hass.config.location_name,
"user_name": user_name,
"llm_context": llm_context,
},
parse_result=False,
)
]
except TemplateError as err:
LOGGER.error("Error rendering prompt: %s", err)
intent_response.async_set_error(
intent.IntentResponseErrorCode.UNKNOWN,
f"Sorry, I had a problem with my template: {err}",
)
return conversation.ConversationResult(
response=intent_response, conversation_id=conversation_id
)
if llm_api:
prompt_parts.append(llm_api.api_prompt)
prompt = "\n".join(prompt_parts)
# Create a copy of the variable because we attach it to the trace
messages = [*messages, MessageParam(role="user", content=user_input.text)]
LOGGER.debug("Prompt: %s", messages)
LOGGER.debug("Tools: %s", tools)
trace.async_conversation_trace_append(
trace.ConversationTraceEventType.AGENT_DETAIL,
{"system": prompt, "messages": messages},
)
client = self.entry.runtime_data
# To prevent infinite loops, we limit the number of iterations
for _iteration in range(MAX_TOOL_ITERATIONS):
try:
response = await client.messages.create(
model=options.get(CONF_CHAT_MODEL, RECOMMENDED_CHAT_MODEL),
messages=messages,
tools=tools or NOT_GIVEN,
max_tokens=options.get(CONF_MAX_TOKENS, RECOMMENDED_MAX_TOKENS),
system=prompt,
temperature=options.get(CONF_TEMPERATURE, RECOMMENDED_TEMPERATURE),
)
except anthropic.AnthropicError as err:
intent_response.async_set_error(
intent.IntentResponseErrorCode.UNKNOWN,
f"Sorry, I had a problem talking to Anthropic: {err}",
)
return conversation.ConversationResult(
response=intent_response, conversation_id=conversation_id
)
LOGGER.debug("Response %s", response)
messages.append(_message_convert(response))
if response.stop_reason != "tool_use" or not llm_api:
break
tool_results: list[ToolResultBlockParam] = []
for tool_call in response.content:
if isinstance(tool_call, TextBlock):
LOGGER.info(tool_call.text)
if not isinstance(tool_call, ToolUseBlock):
continue
tool_input = llm.ToolInput(
tool_name=tool_call.name,
tool_args=cast(dict[str, Any], tool_call.input),
)
LOGGER.debug(
"Tool call: %s(%s)", tool_input.tool_name, tool_input.tool_args
)
try:
tool_response = await llm_api.async_call_tool(tool_input)
except (HomeAssistantError, vol.Invalid) as e:
tool_response = {"error": type(e).__name__}
if str(e):
tool_response["error_text"] = str(e)
LOGGER.debug("Tool response: %s", tool_response)
tool_results.append(
ToolResultBlockParam(
type="tool_result",
tool_use_id=tool_call.id,
content=json.dumps(tool_response),
)
)
messages.append(MessageParam(role="user", content=tool_results))
self.history[conversation_id] = messages
for content in response.content:
if isinstance(content, TextBlock):
intent_response.async_set_speech(content.text)
break
return conversation.ConversationResult(
response=intent_response, conversation_id=conversation_id
)
async def _async_entry_update_listener(
self, hass: HomeAssistant, entry: ConfigEntry
) -> None:
"""Handle options update."""
# Reload as we update device info + entity name + supported features
await hass.config_entries.async_reload(entry.entry_id)

View File

@@ -0,0 +1,12 @@
{
"domain": "anthropic",
"name": "Anthropic Conversation",
"after_dependencies": ["assist_pipeline", "intent"],
"codeowners": ["@Shulyaka"],
"config_flow": true,
"dependencies": ["conversation"],
"documentation": "https://www.home-assistant.io/integrations/anthropic",
"integration_type": "service",
"iot_class": "cloud_polling",
"requirements": ["anthropic==0.31.2"]
}

View File

@@ -0,0 +1,34 @@
{
"config": {
"step": {
"user": {
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]"
}
}
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"timeout_connect": "[%key:common::config_flow::error::timeout_connect%]",
"authentication_error": "[%key:common::config_flow::error::invalid_auth%]",
"unknown": "[%key:common::config_flow::error::unknown%]"
}
},
"options": {
"step": {
"init": {
"data": {
"prompt": "Instructions",
"chat_model": "[%key:common::generic::model%]",
"max_tokens": "Maximum tokens to return in response",
"temperature": "Temperature",
"llm_hass_api": "[%key:common::config_flow::data::llm_hass_api%]",
"recommended": "Recommended model settings"
},
"data_description": {
"prompt": "Instruct how the LLM should respond. This can be a template."
}
}
}
}
}

View File

@@ -16,8 +16,6 @@ from homeassistant.const import (
CONF_USERNAME,
EVENT_HOMEASSISTANT_STOP,
EVENT_STATE_CHANGED,
STATE_UNAVAILABLE,
STATE_UNKNOWN,
)
from homeassistant.core import Event, EventStateChangedData, HomeAssistant
import homeassistant.helpers.config_validation as cv
@@ -121,7 +119,7 @@ class KafkaManager:
state = event.data["new_state"]
if (
state is None
or state.state in (STATE_UNKNOWN, "", STATE_UNAVAILABLE)
or state.state == ""
or not self._entities_filter(state.entity_id)
):
return None
@@ -141,7 +139,8 @@ class KafkaManager:
async def write(self, event: Event[EventStateChangedData]) -> None:
"""Write a binary payload to Kafka."""
key = event.data["entity_id"].encode("utf-8")
payload = self._encode_event(event)
if payload:
await self._producer.send_and_wait(self._topic, payload)
await self._producer.send_and_wait(self._topic, payload, key)

Some files were not shown because too many files have changed in this diff Show More