Compare commits

...

3105 Commits

Author SHA1 Message Date
Franck Nijhof
bdc548b464 Bump version to 2024.10.0b1 2024-09-26 20:46:24 +02:00
Paulus Schoutsen
b60e6082f7 Update the Selected Pipeline entity name (#126845) 2024-09-26 20:46:08 +02:00
Bram Kragten
9a7254e4ee Update frontend to 20240926.0 (#126843) 2024-09-26 20:46:05 +02:00
Mike Degatano
73e56e292a Bump aiohasupervisor to 0.1.0 (#126841) 2024-09-26 20:46:02 +02:00
Joost Lekkerkerker
42a4a89793 Fix Withings reauth title (#126838) 2024-09-26 20:45:59 +02:00
Joost Lekkerkerker
bb7803b020 Fix last played icon in NYT Games (#126837) 2024-09-26 20:45:55 +02:00
Joost Lekkerkerker
dd0fc0688d Bump nyt_games to 0.4.2 (#126834)
* Bump nyt_games to 0.4.1

* Bump nyt_games to 0.4.1

* Bump nyt_games to 0.4.2
2024-09-26 20:45:52 +02:00
Joost Lekkerkerker
1380ed7328 Add logging to NYT Games setup failures (#126832) 2024-09-26 20:45:49 +02:00
Joost Lekkerkerker
9d6569d515 Bump knocki to 0.3.5 (#126826) 2024-09-26 20:45:45 +02:00
Manu
20be8fd2d3 Fix typo in Mealie integration (#126824) 2024-09-26 20:45:42 +02:00
Joost Lekkerkerker
9d48c77861 Bump jaraco.abode to 6.2.1 (#126823) 2024-09-26 20:45:39 +02:00
Steven B.
7ab93a70dc Bump ring-doorbell to 0.9.6 (#126817) 2024-09-26 20:45:36 +02:00
Martin Hjelmare
a435095e76 Fix missing template alarm control panel menu string (#126791) 2024-09-26 20:45:32 +02:00
starkillerOG
eb763563f2 Bump reolink-aio to 0.9.11 (#126778) 2024-09-26 20:45:29 +02:00
Noah Husby
9bf0b5bff1 Bump aiorussound to 4.0.5 (#126774)
* Bump aiorussound to 4.0.4

* Remove unnecessary exception

* Bump aiorussound to 4.0.5

* Fixes

* Update homeassistant/components/russound_rio/media_player.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-26 20:45:26 +02:00
starkillerOG
638dd37545 Remove Reolink Home Hub main level switches (#126697)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-09-26 20:45:23 +02:00
G Johansson
11cc718273 Change Climate set temp action for incorrect feature will raise (#126692)
* Change Climate set temp action for incorrect feature will raise

* Fix some tests

* Fix review comments

* Fix tesla_fleet

* Fix tests

* Fix review comment
2024-09-26 20:45:19 +02:00
Steven B.
cf6b07630b Deprecate tplink alarm button entities (#126349)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-26 20:45:14 +02:00
Michael Hansen
17e0db9da3 Fix ESPHome and VoIP Assist satellite entity names (#126229)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-09-26 20:45:09 +02:00
Franck Nijhof
53cf8628fa Bump version to 2024.10.0b0 2024-09-25 20:34:22 +02:00
Erik Montnemery
7d61cb1ef5 Remove unignore flow (#126765) 2024-09-25 20:29:14 +02:00
Thomas55555
f53411b95a Bump aioautomower to 2024.9.3 (#126769)
* Bump aioautomower to 2024.9.3

* tests
2024-09-25 20:28:22 +02:00
Ludovic BOUÉ
6d1e5886ec Add Valve platform to Matter integration (#123311)
* Create water_valve.py

* Update water_valve.py

ValveEntity

* Update water_valve.py

ValveDeviceClass

* Update water_valve.py

* Update water_valve.py

OperationalStatus

* Update water_valve.py

* Update water_valve.py

Commands

* Update water_valve.py

Platform.VALVE

* Update water_valve.py

* Update water_valve.py

operational_status

* Update water_valve.py

current_valve_position

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

attributes

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Open command

* Match Valve entity methods

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* ruff-format

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

Attributes.CurrentLevel

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

async_set_valve_position

* Update water_valve.py

* Update water_valve.py

Bitmaps

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update homeassistant/components/matter/water_valve.py

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>

* Update homeassistant/components/matter/water_valve.py

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update discovery.py to add WaterValve

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update discovery.py

* Update discovery.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Update water_valve.py

* Rename water_valve.py to valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* Create test_valve.py

* Update test_valve.py

* Update test_valve.py

* Update test_valve.py

* Update test_valve.py

* Update test_valve.py

* Update test_valve.py

* Update test_valve.py

* Update test_valve.py

* Update test_valve.py

* Create valve.json

* Update air-purifier.json

* Revert "Update air-purifier.json"

This reverts commit b68dce0ccc81bc6fb1db36191de1c296ce54cac3.

* Update valve.json

* Update valve.json

* Update valve.json

* Update test_valve.py

* Update valve.json

* Update test_valve.py

* Update valve.json

* Update valve.json

* Update valve.json

* Update test_valve.py

* Update valve.py

* Update valve.py

* Update valve.py

* add tests

* cleanup

* Clean up variable

* Format

* add tests for state updates

* adjust

* add tests for position

---------

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 20:19:10 +02:00
puddly
0a44c9456c Bump ZHA to 0.0.34 (#126766) 2024-09-25 18:44:51 +02:00
epenet
fbf5d3966d Use shorthand attributes in locative device tracker (#126740) 2024-09-25 18:27:18 +02:00
Markus Jacobsen
0fa1478f90 Remove unnecessary dict .keys() calls from Bang & Olufsen (#126762)
Remove useless .keys() calls
2024-09-25 18:19:41 +02:00
Euan de Kock
d7ac53ae93 Update const.py to add new Australian Server URL (#126714)
Growatt is now redirecting Australian users to a new server. This adds support for this server.
2024-09-25 18:04:03 +02:00
Bram Kragten
e7e86d7a32 Update frontend to 20240925.0 (#126763) 2024-09-25 17:36:45 +02:00
Joost Lekkerkerker
3810c3cbaf Improve trigger schema validation to ask for trigger instead of platform (#126750)
* Add check for missing trigger

* Fix

* Fix

* Escape
2024-09-25 16:44:14 +02:00
J. Nick Koston
f4c339db8c Fix license check for new aiocache (#126753) 2024-09-25 09:00:04 -05:00
Markus Jacobsen
bb29c7a02f Add sound modes to Bang & Olufsen devices (#121209)
* Add sound mode functionality

* Fix naming

* Change unique sound mode symbol

* Add testing for sound modes

* Add test typing

* Use constants for service call parameters

* Add state assertions

* Remove invalid decorator

* Add valid sound mode check

* Add test for invalid sound mode
2024-09-25 15:58:24 +02:00
epenet
2699eb62bd Rename DOMAIN_DATA HassKey constants to DATA_COMPONENT (#126746)
* Rename DOMAIN_DATA HassKey constant to DATA

* DATA -> DATA_COMPONENT
2024-09-25 15:53:58 +02:00
c0ffeeca7
866ffcf639 Use bold to markup UI strings (#126748)
* Use bold to markup UI strings

* Use bold to markup UI strings
2024-09-25 15:33:23 +02:00
Joost Lekkerkerker
33d83e43de Update trigger validation message (#126749) 2024-09-25 15:33:03 +02:00
Joost Lekkerkerker
662a704165 Use snake case in matter fixture nodes (#126743) 2024-09-25 15:29:17 +02:00
epenet
083b586d19 Add pylint checks for fixture scope (#126723)
* Prevent session scope fixtures in component tests

* Link message to the decorator - not the function

* Add checks for package also

* Add check for session scope autouse

* Rename variable

* Adjust message

* Ignore fancy autouse

* Simplify
2024-09-25 15:27:57 +02:00
epenet
fb91377139 Use shorthand attributes in mysensors device tracker (#126738) 2024-09-25 15:21:50 +02:00
Joost Lekkerkerker
6e4e5ba8c5 Make Matter snapshot logic a shared function (#126744) 2024-09-25 15:12:48 +02:00
epenet
10b9e3b29c Use shorthand attributes in tesla_fleet device tracker (#126736) 2024-09-25 14:21:36 +02:00
Joost Lekkerkerker
a1906b434f Change trigger platform key to trigger (#124357)
* fix

* Fix

* Fix

* Update homeassistant/helpers/config_validation.py

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

* Fix

* Fix

* Fix

* Fix

* Add more tests

* Fix

* Fix tests

* Add tests

* Let's see what the CI does

* It fails on the code that tested the thing ofc

* It fails on the code that tested the thing ofc

* Revert test thingy

* Now the test works again, lovely

* Another one

* Fix websocket thingy

* Only copy when needed

* Improve comment

* Remove test

* Fix docstring

* I think this now also work since this transforms trigger to platform

* Add comment

* Update homeassistant/helpers/config_validation.py

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

* Update homeassistant/helpers/config_validation.py

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

* Update homeassistant/helpers/config_validation.py

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

* Check for mapping

* Add test

* Update homeassistant/helpers/config_validation.py

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

* Update test to also test for trigger keys

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-25 14:19:58 +02:00
Marc Mueller
9d29307532 Update lxml to 5.3.0 (#126725) 2024-09-25 13:44:05 +02:00
Erik Montnemery
c638537731 Use 'select' instead of 'click' or 'press' when guiding users in flows (#126731) 2024-09-25 13:37:43 +02:00
Marc Mueller
6bf8ec2df0 Update isal to 1.7.1 (#126742) 2024-09-25 13:37:20 +02:00
Marcel van der Veldt
18766905f4 Don't crash entire Matter integration setup when one node is failing (#126491)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 12:45:24 +02:00
Paul Bottein
a5b556b21b Use entity selector in Homekit bridge config flow (#126340)
Use entity selector in homekit bridge config flow
2024-09-25 12:11:55 +02:00
epenet
49efa4d47b Add specific EntityDescription to describe calendar entities (#126726) 2024-09-25 11:57:11 +02:00
Joost Lekkerkerker
bebd1dc235 Enable Zwave notification sensors by default (#125326)
* Enable Zwave notification sensors by default

* Enable Zwave notification sensors by default

* Enable Zwave notification sensors by default

* Enable Zwave notification sensors by default

* Enable Zwave notification sensors by default

* Enable Zwave notification sensors by default

* Enable Zwave notification sensors by default

* Enable Zwave notification sensors by default

* Fix the check to (dis)allow discovering a value multiple times

* Prevent discovery of duplicate Notification CC sensors

* alarm sensors disabled by default

* one more fix

* Update diagnostics tests

---------

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-25 11:53:42 +02:00
Erik Montnemery
771575cfc5 Make statistics validation create issue registry issues (#122595)
* Make statistics validation create issue registry issues

* Disable creating issue about outdated MariaDB version in tests

* Use call_soon_threadsafe instead of run_callback_threadsafe

* Update tests

* Fix flapping test

* Disable creating issue about outdated SQLite version in tests

* Implement agreed changes

* Add translation strings for issue titles

* Update test
2024-09-25 11:11:11 +02:00
Allen Porter
d6e34e0984 Add an entity description for Google Calendar (#125469) 2024-09-25 10:40:59 +02:00
Joost Lekkerkerker
31d722f1ef Introduce snapshot testing to matter (#126693)
* Introduce snapshot testing to matter

* Introduce snapshot testing to matter
2024-09-25 09:46:32 +02:00
epenet
dff0e2cc9f Move pylint decorator plugin and add tests (#126719) 2024-09-25 09:41:23 +02:00
elmurato
65abe1c875 Add workaround to avoid blocking imports by dnspython (#121702) 2024-09-25 09:36:27 +02:00
Marc Mueller
2339211403 Fix pytest-asyncio DeprecationWarning (#126718) 2024-09-25 09:30:57 +02:00
Brett Adams
eccb7bb55f Add Storm watch active to Tesla integrations (#126704) 2024-09-25 09:05:33 +02:00
J. Nick Koston
a5a54ab870 Bump zeroconf to 0.135.0 (#126706) 2024-09-25 09:02:00 +02:00
dependabot[bot]
c021074db4 Bump github/codeql-action from 3.26.8 to 3.26.9 (#126715)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-25 08:59:56 +02:00
Oliver
1c33561fbf Update denonavr to v1.0.0 (#126703) 2024-09-25 08:59:42 +02:00
epenet
b48c439bff Remove redundant source_type property from ScannerEntities (#126716) 2024-09-25 08:58:54 +02:00
epenet
a3c2a7e1e0 Remove redundant source_type property from TrackerEntities (#126717) 2024-09-25 08:56:42 +02:00
Tal Atlas
7e41b40441 Update Tuya integration with target distance (#126700)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-09-25 08:47:53 +02:00
Allen Porter
e351f8ba07 Bump python-google-photos-library-api to 0.12.1 (#126709) 2024-09-25 08:45:58 +02:00
epenet
1adaaf49cc Add specific EntityDescription to describe device tracker entities (#126586)
* Add TrackerEntityDescription to describe tracker entities

* Improve

* Adjust components

* Add ScannerEntityDescription

* Simplify

* Revert

* Set TrackerEntity default source type to SourceType.GPS

* Fix rebase

* Adjust default

* Remove source_type from EntityDescription

* Fix rebase

* Docstring

* Remove BaseTrackerEntityDescription
2024-09-25 07:28:29 +02:00
Manu
e10d731049 Update snapshot for Bring tests (#126699) 2024-09-24 19:27:20 -07:00
J. Nick Koston
242a3c6616 Bump google-generativeai to 0.8.2 (#126696)
changelog: https://github.com/google-gemini/generative-ai-python/compare/v0.7.2...v0.8.2
2024-09-24 15:13:12 -07:00
Joost Lekkerkerker
636ea82bf1 Add Aqara brand (#126658) 2024-09-24 23:19:06 +02:00
Joost Lekkerkerker
c5d562a56f Add Spelling Bee and connections support to NYT Games (#126567) 2024-09-24 23:09:58 +02:00
epenet
2a0c779a02 Avoid raw string in device_tracker source_type (#126601) 2024-09-24 23:01:47 +02:00
Manu
3d4ac7ca63 Add diagnostics platform to Bring integration (#126695) 2024-09-24 23:00:43 +02:00
Erik Montnemery
161f37bb98 Add tests which directly test the recorder job wrappers (#125338) 2024-09-24 23:00:00 +02:00
Manu
20030ab604 Add sensor platform to Bring integration (#126642)
* Add sensor platform to Bring integration

* Add more tests

* unignore typedef check

* Update language sensor

* update snapshot

* changes

* add entities

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

* add units

* lowercase

* snapshot

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 22:55:48 +02:00
starkillerOG
c66e2dc076 Remove leftover wrong icon from Reolink (#126698)
Remove wrong icon
2024-09-24 22:51:16 +02:00
Allen Porter
8d0e9eb8ac Improve Roborock error handling (#124267) 2024-09-24 22:38:40 +02:00
J. Nick Koston
2dcd5e55e2 Bump aiohttp to 3.10.6 (#126690) 2024-09-24 22:38:24 +02:00
G Johansson
ab8e2d92c8 Add diagnostics to Workday (#126691) 2024-09-24 22:37:54 +02:00
Joost Lekkerkerker
03968b44bd Improve typing in Yamaha (#123982)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-09-24 22:25:54 +02:00
Joost Lekkerkerker
686d591f4f Add coordinator to Spotify (#123548) 2024-09-24 22:24:40 +02:00
civita
c53a760ba3 Update strings in tailscale (#124143) 2024-09-24 22:12:24 +02:00
jvmahon
5e2955845a Add button platform to Matter integration (#123665)
* Add files via upload

* add test

* add discovery schemas for operational state commands

* tests

* add filter resets

* add filter reset buttons

* Apply suggestions from code review

* tweak test

---------

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 22:07:29 +02:00
starkillerOG
9a4a66b33f Use insecure SSL cipher for Reolink aiohttp clientsession (#126687) 2024-09-24 21:50:45 +02:00
Doron Somech
d2d3ab2d98 Add fan support for KNX climate entities (#126368)
* Add fan mode support to knx climate

* fix linting errors

* remove unneeded None protection from CONF_FAN_PERCENTAGES_MODES

* Update homeassistant/components/knx/climate.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/knx/climate.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/knx/climate.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/knx/schema.py

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* find closest percentage when not in fan modes

* new field for fan speed mode, max steps apply to both step and percentage

* not picking FAN_OFF when the percentage is closest to zero

* add fan zero mode to support auto mode

* use StrEnum for FanZeroMode

* change default to 'percent'

* fix mypy errors

---------

Co-authored-by: Matthias Alphart <farmio@alphart.net>
2024-09-24 21:38:09 +02:00
starkillerOG
69ecdda5f5 Add SSL Cipher option to aiohttp async_get_clientsession (#126317)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-24 21:31:52 +02:00
Ludovic BOUÉ
b370893e58 Add support for OperationalState Attribute from Matter OperationalState cluster (#125627) 2024-09-24 21:30:30 +02:00
Michael Hansen
86f8901c96 Fix pipeline restart in VoIP (#126668) 2024-09-24 21:24:42 +02:00
Noah Husby
739165585a Bump aiorussound to 3.1.5 (#126664) 2024-09-24 21:10:01 +02:00
David Bonnes
e3e7aec73c Rename an evohome test fixture (#126680) 2024-09-24 21:07:22 +02:00
epenet
3995d001ec Set default source_type on TrackerEntity and ScannerEntity (#126648)
* Set default source_type on TrackerEntity and ScannerEntity

* Add samples

* Two more

* Adjust tests
2024-09-24 20:56:01 +02:00
Franck Nijhof
9dfabc3fb7 Adjust automation to plural triggers/conditions/actions keys (#123823)
* Adjust automation to plural triggers/conditions/actions keys

* Fix some tests

* Adjust websocket tests

* Fix search tests

* Convert blueprint and blueprint inputs to modern schema

* Pass schema when creating Blueprint object

* Update tests

* Adjust websocket api

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Erik <erik@montnemery.com>
2024-09-24 20:03:23 +02:00
Marc Mueller
08bdf797f0 Update RestrictedPython to 7.2 (#126662) 2024-09-24 19:48:44 +02:00
Marcel van der Veldt
5e7d5c6312 Prevent KeyError when Matter device has invalid value for ModeSelect (#126672) 2024-09-24 19:36:09 +02:00
Marcel van der Veldt
354ee35ee4 Extend the lists of Matter climate devices that need special treatment (#126644) 2024-09-24 19:34:34 +02:00
epenet
c099f4f50f Use vol.Coerce for SourceType in mqtt device_tracker (#126594) 2024-09-24 19:09:19 +02:00
Thomas55555
dc77b2d583 Add work area switch for Husqvarna Automower (#126376)
* Add work area switch for Husqvarna Automower

* move work area deletion test to separate file

* stale doctsrings

* don't use custom test file

* use _attr_name

* ruff

* add available property

* hassfest

* fix tests

* Apply suggestions from code review

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

* constants

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 18:57:47 +02:00
Thomas55555
c9351fdeeb Simplify cleanup in Husqvarna Automower (#126666)
Simplify cleanup in Hsuqvarna Automower
2024-09-24 18:54:06 +02:00
Joost Lekkerkerker
c1781cd793 Only raise missing integration issue for config entry integrations (#126654) 2024-09-24 18:26:01 +02:00
Marcel van der Veldt
ffa76dfd24 Add discovery schemas for Matter Smoke and CO Alarm Cluster (#126622)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-24 18:23:45 +02:00
Marc Mueller
c8964a1c80 Update numpy to 1.26.4 (#126660) 2024-09-24 18:23:20 +02:00
Manu
60807e5d4d Bump bring-api to 0.9.0 (#126650) 2024-09-24 18:23:08 +02:00
Indrajit Raychaudhuri
0bf90d18ef Ensure that HomeKit names start and end with alphanumeric character (#126413) 2024-09-24 18:18:17 +02:00
Thomas55555
d81e836b37 Bump aioautomower to 2024.9.2 (#126659) 2024-09-24 18:18:02 +02:00
Bouwe Westerdijk
962b9915f0 Plugwise test maintenance (#126421) 2024-09-24 18:11:17 +02:00
Ludovic BOUÉ
31a1ad8409 Add Pressure and Altitude discovery schemas for Matter Eve Weather device (#125690)
* Update number.py to add EveWeatherAltitude attribute

* Update sensor.py to add EveCluster Pressure Attribute

* Update strings.json

* Create eve-weather-sensor.json

* Update test_sensor.py

* Update eve-weather-sensor.json

* Update test_sensor.py

Pressure
AttributeId: 319422484 (0x00130a0014) - Value type: float32

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update manifest.json

Bump to python-matter-server==6.5.0

* Update requirements_all.txt

Bump requirements to python-matter-server 6.5.0

* Update requirements_test_all.txt

Bump requirements to python-matter-server 6.5.0

* Update test_sensor.py

* Update test_sensor.py

* Update sensor.py

* Update sensor.py

* Update test_sensor.py

* Update sensor.py

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.py

* fix test fixture

* Update requirements_all.txt

* Update requirements_test_all.txt

* Update manifest.json

* fix tests

* Update test_sensor.py

* add device class

---------

Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
2024-09-24 17:59:58 +02:00
Marc Mueller
a66e287903 Update pyoverkiz to 1.14.1 (#126657) 2024-09-24 17:50:10 +02:00
Erik Montnemery
2ee93d974d Reinitialize ssdp discovery flow on unignore (#126557) 2024-09-24 10:38:33 -05:00
epenet
4e465a2066 Remove unused string in dlna_dmr (#126652) 2024-09-24 17:27:39 +02:00
Allen Porter
412489c102 Require Google Photos uploads to target an album (#126651)
* Require uploads to target an album

* Remove edge case where albums are not loaded on startup which no longer happens

* Update homeassistant/components/google_photos/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 17:26:33 +02:00
Allen Porter
437bbe5c6e Limit Google Photos media source to Home Assistant created albums (#126653) 2024-09-24 17:22:24 +02:00
Erik Montnemery
264927926e Remove unignore flow from homekit controller (#126637) 2024-09-24 16:43:12 +02:00
Erik Montnemery
2ded9d551a Remove unignore flow from dlna_dmr (#126647) 2024-09-24 16:42:01 +02:00
Marc Mueller
fc37218311 Update httpx to 0.27.2 (#126630) 2024-09-24 16:41:35 +02:00
Allen Porter
27bed0cdcb Update Google Photos to have a DataUpdateCoordinator for loading albums (#126443)
* Update Google Photos to have a data update coordiantor for loading albums

* Remove album from services

* Remove action string changes

* Revert services.yaml change

* Simplify integration by blocking startup on album loading

* Update homeassistant/components/google_photos/coordinator.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 07:34:40 -07:00
Ludovic BOUÉ
741b025751 Add EveCluster ValvePosition Attribute (#125809) 2024-09-24 16:33:19 +02:00
Marc Mueller
d661eee93d Update types packages (#126632) 2024-09-24 16:04:11 +02:00
G Johansson
03bba6d0c3 Climate check target min lower than target high (#124488)
* Guard target high_temp higher than low_temp in ClimateEntity

* Fixes

* Update string

* Forgot to fix tests
2024-09-24 15:56:30 +02:00
Mike Degatano
7517948900 Replace more addon management with aiohasupervisor (#126236)
* Replace start_addon with library call

* restart_addon to library and error issues in tests

* stop_addon to library

* uninstall_addon to library

* Add output typing

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

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-09-24 15:47:29 +02:00
Joost Lekkerkerker
2fa7113787 Raise issue if SSL is set but no external URL configured (#121768)
* Raise issue if SSL is set but no external URL configured

* Add cloud

* Add cloud

* Fix strings

* Attempt

* Fix

* Fix

* Move strings

* Fixes

* fix

* Fix

* Fix

* Fix

* Break tests

* Fix tests
2024-09-24 15:35:10 +02:00
Marcel van der Veldt
c289248ac5 Bump Python Matter Server to 6.5.2 (#126636) 2024-09-24 15:33:08 +02:00
Joost Lekkerkerker
adcdb7a900 Map unknown air quality to None in Matter (#126639)
Map unknown to None in Matter
2024-09-24 15:30:01 +02:00
epenet
9dc84bfdca Add shorthand attributes to device_tracker entities (#126599)
* Add shorthand attributes to device_tracker entities

* Simplify

* Update config_entry.py

* Update config_entry.py

* Update device_tracker.py

* Update device_tracker.py
2024-09-24 15:21:33 +02:00
Joost Lekkerkerker
622f4975ef Use icon translations in Matter (#126634) 2024-09-24 15:12:04 +02:00
Lenn
ade4ee810b Fix motionblinds_ble sensor tests (#126635) 2024-09-24 15:05:00 +02:00
Marc Mueller
81d5c22800 Update bcrypt to 4.2.0 (#126629) 2024-09-24 15:00:06 +02:00
Marc Mueller
f699a69e83 Update cryptography to 43.0.1 (#126628) 2024-09-24 14:59:41 +02:00
Marc Mueller
9daf1b062f Update uv to 0.4.15 (#126627)
* Update uv to 0.4.15

* Fix
2024-09-24 14:59:11 +02:00
Marc Mueller
f78b4a0feb Update pip-licenses to 5.0.0 (#126620) 2024-09-24 14:58:45 +02:00
Marc Mueller
03d43cf50d Update tqdm to 4.66.5 (#126626) 2024-09-24 14:58:25 +02:00
G Johansson
d06d0a8f83 Fix tesla_fleet climate temp high/low test (#126631) 2024-09-24 14:56:46 +02:00
Joost Lekkerkerker
e15be0433e Remove unnecessary lambda in Matter (#126633) 2024-09-24 14:54:52 +02:00
Erik Montnemery
972dc89c0f Reinitialize dhcp discovery flow on config entry removal (#126556)
* Reinitialize dhcp discovery flow on unignore

* Tweak

* Rediscover on any removed config entry

* Adjust log message
2024-09-24 14:43:05 +02:00
Erik Montnemery
b6fe3a3022 Reinitialize bluetooth discovery flow on config entry removal (#126555)
* Reinitialize bluetooth discovery flow on unignore

* Update homeassistant/components/bluetooth/manager.py

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

* Update tests

* Rediscover on any removed config entry

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-24 14:42:46 +02:00
Marc Mueller
b9c28bed19 Update pylint to 3.3.1 (#126614)
* Update astroid to 3.3.4

* Update pylint to 3.3.1
2024-09-24 14:26:52 +02:00
Marc Mueller
09ae0946b7 Update syrupy to 4.7.1 (#126625) 2024-09-24 14:10:43 +02:00
Marc Mueller
e3c438ff47 Update pytest to 8.3.3 (#126623) 2024-09-24 14:10:09 +02:00
Marc Mueller
ca0f1ef8da Update pytest-asyncio to 0.24.0 (#126621) 2024-09-24 14:07:52 +02:00
Marc Mueller
b856f54333 Update pipdeptree to 2.23.4 (#126619)
* Update pipdeptree to 2.23.4

* Update Dockerfile
2024-09-24 14:07:25 +02:00
Erik Montnemery
ba5f1ac2a9 Bump version of recorder context ID data migrators (#125293) 2024-09-24 13:45:37 +02:00
Joost Lekkerkerker
d3889cab9e Make Matter select entity values translatable (#126608)
* Make Matter select entity values lowercase

* Make Matter select entity values lowercase
2024-09-24 13:40:38 +02:00
Marc Mueller
9e703b8224 Update coverage to 7.6.1 (#126615) 2024-09-24 13:40:01 +02:00
Marc Mueller
c9d3c3d369 Update pre-commit to 3.8.0 (#126617) 2024-09-24 13:39:09 +02:00
Joost Lekkerkerker
77029b0197 Make NYT Games a service (#126613) 2024-09-24 13:38:07 +02:00
Erik Montnemery
589910b49b Reinitialize zeroconf discovery flow on config entry removal (#126595) 2024-09-24 13:37:28 +02:00
Marc Mueller
004941cc57 Fix lamarzocco ParamSpec typing (#126616) 2024-09-24 13:13:04 +02:00
G Johansson
ef88425d25 Start deprecation vacuum constants for feature flags (#126354) 2024-09-24 12:53:42 +02:00
G Johansson
283033f902 Start deprecation for media_player constants (#126351)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-24 12:33:55 +02:00
G Johansson
93aade6e8e Change lock state to an enum (#126379)
* Add new LockState enum for lock states

* Add rest

* Fix insteon tests

* Fix mqtt tests

* Fix tesla_fleet

* Revert back ST_STATE_LOCKED

* Add back constant
2024-09-24 12:30:50 +02:00
Franck Nijhof
9297011731 Merge branch 'master' into dev 2024-09-24 12:24:54 +02:00
epenet
acebf1fb48 Adjust _ENTITY_COMPONENTS in hass-enforce-class-module (#126603) 2024-09-24 12:19:39 +02:00
G Johansson
711e0ee503 Change camera state to an enum (#126558)
* Change camera state to an enum

* copy/paste mistake

* Add test deprecated constants
2024-09-24 12:12:01 +02:00
Lektri.co
4ac9b339a1 Add select platform to the Lektrico integration (#126490)
* Add select for Lektrico integration.

* Rename lb_mode to load_balancing_mode.

* Update homeassistant/components/lektrico/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 12:08:28 +02:00
Marcel van der Veldt
f2092ef083 Prevent KeyError in Matter select entity (#126605) 2024-09-24 12:02:01 +02:00
Erik Montnemery
c96d4991b9 Add issue asking users to disable VoIP call_in_progress binary sensor (#126504)
* Add issue asking users to disable VoIP call_in_progress binary sensor

* Add tests

* Add files

* Update homeassistant/components/voip/binary_sensor.py

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

* Fix test

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 11:46:43 +02:00
Erik Montnemery
58eccc1ed6 Bump deprecation of ESPHome assist in progress binary sensor (#126604) 2024-09-24 11:29:19 +02:00
Steven B.
010a5d2829 Add snapshots to all ring platform tests (#126560)
Add test snapshots to all ring platform tests
2024-09-24 10:53:19 +02:00
Brett Adams
5186605cec Add energy history coordinator and sensors to Teslemetry (#126166)
* start

* More

* fix init

* Update requirements_all.txt

* Update requirements_test_all.txt

* Add Tests

* Add missing fixture

* first refresh history

* Fix mock_energy_history

* Remove failures prop

* Update test_init.py

* Actually add the sensors

* Add more icons

* suggested_display_precision

* Fix updated_once

* Fix fixture

* Review changes

* Apply suggestions from code review

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

* Remove init data

* Update homeassistant/components/teslemetry/coordinator.py

* ruff

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-24 10:32:38 +02:00
tronikos
4c0fb04f61 Make tts options of type list (such as profiles in google_cloud) work (#121582)
* Allow tts options of type list such as profiles in google_cloud

* Update tests/components/tts/test_media_source.py

* Don't mix engine specific options with other options

* Fix test

* Update assist_pipeline snapshots

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-24 00:07:12 -07:00
Franck Nijhof
06ea3a3014 2024.9.3 (#126566) 2024-09-24 09:01:55 +02:00
J. Nick Koston
615ec548db Change dhcp internal index to use mac address (#126573) 2024-09-24 08:58:32 +02:00
epenet
2df6824856 Cleanup source_type type hints in device tracker components (#126592) 2024-09-24 08:54:55 +02:00
epenet
61ff40c299 Add base Entity classes to enforce-class-module pylint plugin (#126473) 2024-09-24 08:52:07 +02:00
J. Nick Koston
31200040da Bump aiohttp to 3.10.6rc2 (#126468) 2024-09-24 08:51:08 +02:00
Matthias Alphart
450b682c5c Update xknx to 3.2.0 (#126569) 2024-09-24 08:45:19 +02:00
Erik Montnemery
4a66395d51 Simplify signal_discovered_config_entry_removed job (#126591) 2024-09-24 08:44:11 +02:00
Erik Montnemery
f1e8675756 Set autouse flag on session scope bluetooth fixture (#126589) 2024-09-24 08:43:32 +02:00
Erik Montnemery
1fdb34b1e1 Fix zeroconf rediscovery test (#126593) 2024-09-24 08:43:18 +02:00
Steve Easley
2db927b7f7 Fix truncating password issue (#126581) 2024-09-24 08:42:59 +02:00
tronikos
99dbc99b6c Remove unnecessary unique_id suffix from Google Cloud entities (#126585)
Remove uncessary unique_id suffix
2024-09-24 08:35:04 +02:00
Erik Montnemery
ce70f4ebac Fix ecobee test helper (#126587) 2024-09-24 08:30:01 +02:00
Erik Montnemery
3c9f51fbbd Reduce scope of JSON/XML test fixtures (#126590) 2024-09-24 08:29:35 +02:00
Michael Hansen
4869309997 Get updated Assist satellite config after setting it in ESPHome (#126552)
Get updated config after setting it
2024-09-23 20:36:53 -04:00
J. Nick Koston
fb45f4fcea Bump yarl to 1.12.1 (#126580) 2024-09-23 19:19:41 -05:00
J. Nick Koston
d26c449d87 Bump yarl to 1.12.0 (#126576)
This is a prereq for aiohttp 3.10.6 which has some
fixes that need yarl 1.12.0+
2024-09-23 18:28:32 -04:00
J. Nick Koston
dbf080194b Bump cached-ipaddress to 0.6.0 (#126571) 2024-09-23 15:43:33 -05:00
Erik Montnemery
d82bff1bc2 Index config entry discovery_keys by discovery domain (#126563)
* Index config entry discovery_keys by discovery domain

* Add new signal

* Update tests

* Update homeassistant/config_entries.py

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

* Fix imports

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-23 21:48:11 +02:00
epenet
9b96bc32eb Add derived Entity classes in hass-enforce-class-module pylint plugin (#126494) 2024-09-23 21:03:29 +02:00
Franck Nijhof
59ecd47374 Hotfix test for patch release in fritzbox 2024-09-23 20:09:09 +02:00
Fredrik Erlandsson
88c751df7a Fix point calls config entry to a platform multiple times (#126535)
* fix multiple async_forward_entry_setups calls

* ensure entity is at the right place
2024-09-23 20:09:07 +02:00
Markus Jacobsen
95053f7114 Bump mozart_api to 3.4.1.8.8 (#126334)
Update API
2024-09-23 20:07:05 +02:00
Franck Nijhof
4949727cd5 Bump version to 2024.9.3 2024-09-23 19:47:41 +02:00
Markus Jacobsen
08b0064ce7 Fix blocking call in Bang & Olufsen API client initialization (#126456)
* Update API

* Add fix for blocking call to load_default_certs
2024-09-23 19:47:30 +02:00
Steve Easley
c9571126a3 Add support for new JVC Projector auth method (#126453) 2024-09-23 19:47:27 +02:00
David Knowles
06d825d6c8 Bump pydrawise to 2024.9.0 (#126431) 2024-09-23 19:47:24 +02:00
Mr. Bubbles
36e6ab4af8 Fix due date calculation for future dailies in Habitica integration (#126403)
Calculate next due date for dailies with startdate in the future
2024-09-23 19:47:21 +02:00
Manuel Frei
ccec85f047 Fix surepetcare token update (#126385)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-23 19:47:18 +02:00
G Johansson
e8a5a75e96 Bump python-holidays to 0.57 (#126367) 2024-09-23 19:47:15 +02:00
Michael
4eb1fca68e Fix next change (scheduler) sensors in AVM FRITZ!SmartHome (#126363) 2024-09-23 19:47:12 +02:00
Joost Lekkerkerker
fba24b8ead Bump airgradient to 0.9.0 (#126319)
* Bump airgradient to 0.9.0

* Bump airgradient to 0.9.0
2024-09-23 19:44:22 +02:00
Matthias Alphart
edfb9f3f6b Fix loading KNX UI entities with entity category set (#126290)
* Fix loading KNX UI entities with entity category set

* add test

* docstring fixes

* telegram order

* Optionally ignore telegram sending order in tests

because we can't know which platform initialises first
2024-09-23 19:44:18 +02:00
Marcel van der Veldt
2322d071e4 Fix Matter climate platform attributes when dedicated OnOff attribute is off (#126286) 2024-09-23 19:44:15 +02:00
Fredrik Erlandsson
7658ed8eaa Bump pydaikin to 2.13.7 (#126219) 2024-09-23 19:44:12 +02:00
Sebastian Nohn
c81f280bc1 Fix tibber fails if power production is enabled but no power is produced (#126209)
* fix #125312 - tibber integration fails if power production is enabled but no power is produced

* fix requirements_all.txt
2024-09-23 19:44:09 +02:00
Andrew Jackson
6e36febd37 Broaden scope of ConfigEntryNotReady in Mealie (#126208)
Broaden scope of ConfigEntryNotReady
2024-09-23 19:44:06 +02:00
Jan-Philipp Benecke
b38c193fe4 Prevent blocking event loop in ps4 (#126151)
* Prevent blocking event loop in ps4

* Process code review comment
2024-09-23 19:44:02 +02:00
Arun Philip
b336cae118 Fix qbittorrent error when torrent count is 0 (#126146)
Fix handling of `NoneType` for torrents in `count_torrents_in_states` function

Added a check to handle cases where the 'torrents' data is None, avoiding a `TypeError` when attempting to get the length of a `NoneType` object. The function now returns 0 if 'torrents' is None, ensuring robust behavior when no torrent data is available.
2024-09-23 19:43:59 +02:00
Milan Meulemans
991114eb7f Update Aseko to support new API (#126133)
* Update Aseko to support new API

* Apply suggestions from code review

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

* Use self.unit instead of self._unit

* Refactor sensor setup entry

* Keep same unique id and identifier

* Revert rename free_chlorine translation key

* Remove new heating entity to keep PR small

* Fix keep same unique id

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-23 19:43:56 +02:00
Tobias Sauerwein
d924fc5967 Fix set brightness for Netatmo lights (#126075)
* fix set brightness for Netatmo lights

* round returns int by default

* Update homeassistant/components/netatmo/light.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-23 19:43:50 +02:00
epenet
788d9571b5 Add entity components to hass-enforce-class-module pylint plugin (#126545) 2024-09-23 19:35:48 +02:00
Joost Lekkerkerker
714a1cc311 Bump nyt_games to 0.4.0 (#126564) 2024-09-23 19:28:30 +02:00
Jan-Philipp Benecke
28c2df37ed Remove deprecated YAML import from traccar (#125763) 2024-09-23 19:14:55 +02:00
Maciej Bieniek
4a424a6603 Use Xiaomi Aqara gateway MAC address in DeviceInfo.connections (#126562) 2024-09-23 19:10:30 +02:00
G Johansson
86d8ddd289 Remove deprecated forecast key from template weather (#126132)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-23 18:57:32 +02:00
Trekky12
d0ed94ee8d Remove trekky12 from pilight codeowners (#126559)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-23 18:55:41 +02:00
Joost Lekkerkerker
eaa25a33d7 Add more Wordle sensors (#126561)
* Add more Wordle sensors

* Add more Wordle sensors
2024-09-23 18:09:53 +02:00
Joost Lekkerkerker
1d94e66b9c Add NYT Games integration (#126449)
* Add NYT Games integration

* Add NYT Games integration

* Add NYT Games integration

* Add NYT Games integration

* Add test
2024-09-23 17:40:19 +02:00
G Johansson
8eb76ea68d Change lawn_mower state to an enum (#126458)
* Change lawn_mower state to an enum

* annotate as string
2024-09-23 17:39:53 +02:00
peteS-UK
8a2dccddc5 Add Model and Manufacturer details for Squeezebox devices (#126435)
* Add models and manufacturer

* Updates re: comments

* Updates for test

* Dedupe model

* Update homeassistant/components/squeezebox/media_player.py

* Change Squeezelite to SqueezeLite

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-23 16:59:22 +02:00
Michael Hansen
84f19f7216 Bump intents to 2024.9.23 (#126553) 2024-09-23 16:50:15 +02:00
Erik Montnemery
b2982c18bb Reinitialize zeroconf discovery flow on unignore (#125753)
* Reinitialize zeroconf discovery flow on unignore

* Adjust tests

* Improve comments

* Fix logic for updating discovery keys

* Add tests

* Use mock_config_flow helper in new config_entries test

* Add discovery_keys attribute to ConfigEntry

* Update zeroconf rediscovery

* Change type of ConfigEntry.discovery_keys

* Update tests

* Fix DiscoveryKey.from_json_dict and add tests

* Fix test

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-23 16:49:21 +02:00
epenet
f5852b4678 Move point base entity to separate module (#126551) 2024-09-23 15:58:20 +02:00
epenet
02ab2c1433 Move ukraine_alarm coordinator to separate module (#126549) 2024-09-23 15:58:02 +02:00
epenet
380019dd56 Move volvooncall coordinator to separate module (#126548) 2024-09-23 15:57:47 +02:00
epenet
d2ab7dd9fb Move yamaha_musiccast coordinator to separate module (#126546) 2024-09-23 15:57:31 +02:00
epenet
d101fb33b3 Move tolo coordinator to separate module (#126550)
* Move tolo coordinator to separate module

* Adjust tests
2024-09-23 15:56:59 +02:00
epenet
6d83a15ad5 Move yamaha_musiccast base entity to separate module (#126544) 2024-09-23 15:15:04 +02:00
epenet
95948e4eb7 Move volvooncall base entity to separate module (#126543) 2024-09-23 15:14:48 +02:00
epenet
8c4ea323ba Move venstar base entity to separate module (#126542) 2024-09-23 15:12:55 +02:00
epenet
f5697ad5d2 Move vallox base entity to separate module (#126541) 2024-09-23 15:11:58 +02:00
epenet
58770e5c79 Rename xbox base entity module (#126540) 2024-09-23 15:11:04 +02:00
epenet
77b2895b0e Rename pilight base entity module (#126538) 2024-09-23 15:09:22 +02:00
epenet
225266b687 Move upcloud base entity to separate module (#126533) 2024-09-23 15:01:59 +02:00
epenet
9fafbbff81 Rename dynalite base entity module (#126536) 2024-09-23 14:56:14 +02:00
David F. Mulcahey
e81a1f7acf Add config to ZHA to allow disabling polling of mains powered devices when the network is started (#125473) 2024-09-23 14:34:24 +02:00
Nicholas Pike
691b2879bd Fix image content-type validation case sensitivity (#125236) 2024-09-23 14:33:29 +02:00
Numa Perez
8410c142ab Fix Auto mode for TCC devices like the Lyric Round (#126091) 2024-09-23 14:31:55 +02:00
epenet
de88068c66 Merge unifiprotect entity and models modules (#126532) 2024-09-23 14:30:26 +02:00
J. Nick Koston
0e0ac3efe5 Remove uneeded isoformat calls in registry as_storage_fragment properties (#126440) 2024-09-23 14:23:43 +02:00
epenet
2859c9fe19 Move simplisafe base entity to separate module (#126523) 2024-09-23 14:23:01 +02:00
G Johansson
939f2e41e9 Change valve state to an enum (#126428) 2024-09-23 14:20:18 +02:00
epenet
9c6f903178 Move tomorrowio base entity to separate module (#126531) 2024-09-23 14:20:16 +02:00
Erik Montnemery
0fc7bc2762 Fix a couple of stale ESPHome docstrings (#126508) 2024-09-23 14:19:17 +02:00
Maciej Bieniek
efc1ff6eff Fix Shelly update entity names (#126512) 2024-09-23 14:18:24 +02:00
Maciej Bieniek
11bb8e402e Use Bravia TV MAC address in DeviceInfo.connections (#126519) 2024-09-23 14:18:09 +02:00
epenet
ef39ee1d5d Move tautulli base entity to separate module (#126528) 2024-09-23 14:17:54 +02:00
Robert Resch
52de26e67b Remove unused i386 code in Dockerfile (#126520) 2024-09-23 14:17:37 +02:00
epenet
df0c8064b2 Move tolo base entity to separate module (#126530) 2024-09-23 14:17:28 +02:00
epenet
9fcefca0f5 Rename tradfri base entity module (#126526)
* Rename tradfri base entity module

* Missed a file
2024-09-23 14:16:24 +02:00
epenet
a579eef66c Move tesla_wall_connector base entity to separate module (#126529) 2024-09-23 14:16:13 +02:00
epenet
46f9e86f6a Move tailscale base entity to separate module (#126527) 2024-09-23 14:14:22 +02:00
epenet
60eba6d783 Rename toon base entity module (#126525) 2024-09-23 14:02:03 +02:00
epenet
4cb162a068 Move sia base entity to separate module (#126524) 2024-09-23 13:58:16 +02:00
Iskra kranj
0bcaa73427 Bump pyiskra to 0.1.14 (#126518) 2024-09-23 13:57:02 +02:00
Brett Adams
a1abea4e0f Add button platform to Tesla Fleet (#126410)
* Add button platform

* Fix tests

* Fix button setup

* Make func required

* do_nothing
2024-09-23 13:48:00 +02:00
epenet
f11cdb4ab4 Move rfxtrx base entity to separate module (#126521) 2024-09-23 13:37:52 +02:00
J. Diego Rodríguez Royo
b7ba789370 Code quality improvements at Home Connect (#126323)
Added types to all arguments and return values to all functions

Defined class members and its types outside the constructor

Improved logic at binary sensor
2024-09-23 13:33:19 +02:00
epenet
ec311ecd2b Move prusalink base entity to separate module (#126510)
* Move prusalink base entity to separate module

* Fix tests
2024-09-23 13:09:38 +02:00
epenet
14bc65e8e7 Move gardena_bluetooth base entity to separate module (#126484) 2024-09-23 13:06:10 +02:00
epenet
fb400af7d2 Prevent trailing line feeds in translation values (#126446)
* Prevent trailing line feeds in translation values

* Fixup strings
2024-09-23 13:02:39 +02:00
Brett Adams
e3351db3d8 Add lock platform to Tesla Fleet (#126412)
* Add lock platform

* Add lock platform tests

* Fix json
2024-09-23 12:52:13 +02:00
Adam Goode
71f6537846 Add additional test cases to Threshold (#126469)
There are still some bugs to be fixed, but for now this adds some
additional test cases for things that are already correct.
2024-09-23 12:51:29 +02:00
epenet
c8d20a8c23 Move fritzbox base entity to separate module (#126482) 2024-09-23 12:50:51 +02:00
starkillerOG
8ef7cae36d Speedup Reolink tests by using scope="module" (#125215)
* use scope="module"

* Instead of side_effect = None, use reset_mock(side_efffect=True)

* fix tests
2024-09-23 12:50:40 +02:00
epenet
a9d12608bd Move guardian base entity to separate module (#126486) 2024-09-23 12:49:24 +02:00
epenet
ef8b6e2805 Rename melnor base entity module (#126496) 2024-09-23 12:48:23 +02:00
epenet
1858c64e5f Move motioneye base entity to separate module (#126495) 2024-09-23 12:48:07 +02:00
epenet
da3f18839a Move lidarr base entity to separate module (#126492) 2024-09-23 12:47:53 +02:00
epenet
acd3b2d732 Move lyric base entity to separate module (#126493) 2024-09-23 12:47:39 +02:00
epenet
26651c18a6 Move modern_forms base entity to separate module (#126497) 2024-09-23 12:47:17 +02:00
Maciej Bieniek
d4efdcb78c Bump pysnmp and brother (#126488)
* Bump pysnmp

* Bump brother

* Unpin pyasn1
2024-09-23 12:46:46 +02:00
epenet
43322bc3d9 Move notion base entity to separate module (#126499) 2024-09-23 12:45:30 +02:00
epenet
438cbc99b1 Move nzbget base entity to separate module (#126502) 2024-09-23 12:45:13 +02:00
epenet
0163f3d57e Move omnilogic base entity to separate module (#126505) 2024-09-23 12:45:00 +02:00
epenet
61de70c1df Move openuv base entity to separate module (#126506) 2024-09-23 12:44:42 +02:00
epenet
d67a1993d0 Move ovo_energy base entity to separate module (#126507) 2024-09-23 12:44:24 +02:00
epenet
f7543cd0ba Move pi_hole base entity to separate module (#126509) 2024-09-23 12:43:48 +02:00
epenet
78d80fefc5 Move purpleair base entity to separate module (#126511) 2024-09-23 12:43:00 +02:00
epenet
c8e3e2ce1b Move rainmachine base entity to separate module (#126513) 2024-09-23 12:42:22 +02:00
epenet
a75a513531 Move radarr base entity to separate module (#126514) 2024-09-23 12:42:00 +02:00
epenet
52aec885ea Move nibe_heatpump base entity to separate module (#126498) 2024-09-23 12:32:18 +02:00
epenet
9b9edecaac Move nuki base entity to separate module (#126500) 2024-09-23 11:55:03 +02:00
Brett Adams
c64222de4f Fix wall connector state in Teslemetry (#124149)
* Fix wall connector state

* review feedback

* Rename None to Disconnected

* Translate disconnected
2024-09-23 10:17:38 +02:00
Marcel van der Veldt
5b1e4e0691 Fix Matter Model ID for bridged devices (#126059)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-23 10:15:07 +02:00
Steve Easley
d12367a680 Add support for new JVC Projector auth method (#126453) 2024-09-23 10:14:01 +02:00
Michael
683a5b7120 Fix next change (scheduler) sensors in AVM FRITZ!SmartHome (#126363) 2024-09-23 10:11:27 +02:00
Manuel Frei
5ad426d62e Fix surepetcare token update (#126385)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-23 10:09:58 +02:00
epenet
6d069bec19 Move iqvia base entity to separate module (#126489) 2024-09-23 09:57:54 +02:00
TimL
3f4f2f4e2b Add router reconnect button for Smlight integration (#126408)
* Add button for router reconnect

* strings for router reconnect

* remove stale router reconnect if zigbee is not running router firmware

* Add tests for router reconnect button

* Update homeassistant/components/smlight/strings.json

And fix associated tests

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

* Make router button entity dynamic

* adjust test for dynamic runtime removal

* drop if statements from tests

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-23 09:36:56 +02:00
epenet
ffa7e5a504 Move gogogate2 base entity to separate module (#126485) 2024-09-23 09:28:32 +02:00
Marcel van der Veldt
16221cfbbd Fix Matter climate platform attributes when dedicated OnOff attribute is off (#126286) 2024-09-23 09:27:11 +02:00
epenet
a9b215357f Move elmax base entity to separate module (#126481) 2024-09-23 08:59:38 +02:00
epenet
5a52e4c71d Move evil_genius_labs base entity to separate module (#126480) 2024-09-23 08:59:23 +02:00
epenet
432d44c20d Move deluge base entity to separate module (#126479) 2024-09-23 08:54:28 +02:00
epenet
7b9f295071 Move control4 base entity to separate module (#126477)
* Move control4 base entity to separate module

* Adjust
2024-09-23 08:47:43 +02:00
epenet
bed3fcfd43 Move cert_expiry base entity to separate module (#126478) 2024-09-23 08:47:23 +02:00
jesperraemaekers
49c9f843f8 Bump Weheat to 2024.09.23 (#126471)
Weheat version bump for support new model
2024-09-23 08:39:40 +02:00
epenet
52ef358e1c Move airvisual base entity to separate module (#126474) 2024-09-23 08:38:24 +02:00
epenet
04e232096f Move atag base entity to separate module (#126475) 2024-09-23 08:37:35 +02:00
J. Nick Koston
abceed8112 Use identity check for zeroconf enum compare (#126444) 2024-09-22 21:41:10 -05:00
Paulus Schoutsen
ba48a86156 OpenAI to not speak out whole errors (#126409)
* OpenAI to not speak out whole errors

* Update snapshot
2024-09-22 21:26:33 -04:00
epenet
c759512c70 Prevent callback decorator on coroutine functions (#126429)
* Prevent callback decorator on async functions

* Adjust

* Adjust

* Adjust components

* Adjust tests

* Rename

* One more

* Adjust

* Adjust again

* Apply suggestions from code review

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-23 02:55:55 +02:00
Markus Jacobsen
113a792734 Fix blocking call in Bang & Olufsen API client initialization (#126456)
* Update API

* Add fix for blocking call to load_default_certs
2024-09-22 23:08:27 +02:00
Allen Porter
b107b2c7bf Enforce a Google Photos upload action file size limit (#126437)
* Set a Google Photos upload file size limit

* Update homeassistant/components/google_photos/services.py

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

* Replace strings with constants

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-22 09:30:37 -07:00
David Knowles
9e37c14179 Bump pydrawise to 2024.9.0 (#126431) 2024-09-22 18:04:19 +02:00
Allen Porter
5f74dbcfc2 Bump google-photos-library-api to 0.12.0 (#126433)
Bump google-photos-library-api==0.12.0
2024-09-22 09:03:21 -07:00
epenet
f8a53aea09 Use HassKey in conversation (#126332)
* Use HassKey in conversation

* Adjust tests
2024-09-22 17:54:14 +02:00
IceBotYT
f9e7721653 Fix error if light status is missing in Nice G.O. (#126432) 2024-09-22 17:30:59 +02:00
MarkGodwin
2a36ec3e21 Automatically remove unregistered TP-Link Omada devices at start up (#124153)
* Adding coordinator for omada device list

* Remove dead omada devices at startup

* Tidy up tests

* Address PR feedback

* Returned to use of read-only properties for coordinators. Tidied up parameters some more

* Update homeassistant/components/tplink_omada/controller.py

* Update homeassistant/components/tplink_omada/controller.py

* Update homeassistant/components/tplink_omada/controller.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-22 17:05:29 +02:00
Erik Montnemery
8158ca7c69 Add connection test feature to assist_satellite (#126256)
* Add connection test feature to assist_satellite

* Add http to assist_satellite dependencies

* Remove extra logging

* Incorporate feedback

* Fix tests

* ruff

* Apply suggestions from code review

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

* Use asyncio.Event instead of dispatcher

* Respond asap

* Update homeassistant/components/assist_satellite/websocket_api.py

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

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-22 16:55:31 +02:00
David Bonnes
bb2c2d161a Rename an evohome test fixture (#126425)
rename a fixture
2024-09-22 16:50:08 +02:00
Allen Porter
bd4bbb30ec Bump google-photos-library-api to 0.11.1 (#126430) 2024-09-22 16:42:50 +02:00
Markus Jacobsen
ba3ba7b890 Bump mozart_api to 3.4.1.8.8 (#126334)
Update API
2024-09-22 16:36:36 +02:00
Lektri.co
f4b324bbad Add new values for sensor for Lektrico integration (#126210)
* Add new values for sensor limit_reason.

* Remove unknown from limit reason sensor.
2024-09-22 16:36:22 +02:00
Raj Laud
3f13f6ed12 Fix error in squeezebox media browser album art (#126346)
Fix error in squeezebox media browser album art part 2
2024-09-22 16:31:37 +02:00
AlexDev_
78459991bf Bump wolf-comm to 0.0.10 (#126342)
* Updated wolf-comm lib to 0.0.10

* run command to update requirements_all.txt and requirements_test_all.txt
2024-09-22 16:17:36 +02:00
G Johansson
3137f75221 Add switch to Yale Smart Living (#126366) 2024-09-22 16:15:24 +02:00
Raj Laud
d66c28dd6a Bump pysqueezebox version to 0.9.2 (#126347)
* Bump pysqueezebox version to 0.9.1

* Bump pysqueezebox version to 0.9.2
2024-09-22 16:14:08 +02:00
Thomas55555
02b3da8f80 Automatic device cleanup for Husqvarna Automower (#126384)
* Automatic device cleanup for Husqvarna Automower

* fix copy&paste mistake

* typing

* overwrite type in coordinator
2024-09-22 16:06:01 +02:00
TimL
f98b1d248a Add diagnostics platform to Smlight (#126423)
* Add diagnostics for Smlight

* test diagnostics

* Add log fixture and snapshot

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-22 16:04:36 +02:00
Bouwe Westerdijk
90aa9aa98f Improve plugwise device cleanup (#126419)
* Improve code

* Ruff-suggestion

* Change as suggested
2024-09-22 16:02:30 +02:00
Trevor Schirmer
96b7fc9a75 Add mm/s and in/s As Unit Of Speed (#125044)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-22 09:01:46 -05:00
epenet
7c5dc29981 Prevent leading and trailing spaces in translation values (#126427)
* Prevent leading and trailing spaces in translation values

* Adjust components

* Tests
2024-09-22 16:01:08 +02:00
starkillerOG
90957dfedb Add Reolink hub volume number entities (#126389)
* Add Home Hub alarm and message volume

* fix styling

* Add tests

* Update homeassistant/components/reolink/number.py

* Update test_diagnostics.ambr

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-22 15:59:23 +02:00
starkillerOG
286c22c0ed Add Reolink CPU usage sensor (#126386) 2024-09-22 15:58:11 +02:00
David Bonnes
53d76355ec Correct a docstring typo for evohome (#126426)
initial commit
2024-09-22 15:37:01 +02:00
IceBotYT
46c26e7942 Bump nice-go to 0.3.9 (#126399) 2024-09-22 15:05:50 +02:00
Sean Chen
705af35dd6 Parse AirNow observation timezone correctly (#122006)
Parse observation timezone correctly

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-22 14:44:53 +02:00
starkillerOG
bd3efe57f7 Add Reolink hub status light (#126388)
* Add Home Hub status led

* fix styling

* Add tests
2024-09-22 14:44:26 +02:00
starkillerOG
118ceedda1 Add Reolink Home Hub ringtone control (#126390)
* Add Hub alarm/visitor ringtones

* fix styling

* fix translations

* fix tests

* Rename buzzer to hub ringtone
2024-09-22 14:41:47 +02:00
Brett Adams
66d310977d Add cover platform to Tesla Fleet (#126411)
Add cover platform
2024-09-22 14:27:09 +02:00
Markus Jacobsen
20f7490fd9 Remove invalid callback decorator from Bang & Olfusen coroutine functions (#126420)
Remove callback decorator form coroutine functions
2024-09-22 14:19:14 +02:00
epenet
0abde86cf9 Use HassKey in light (#126333) 2024-09-22 14:18:57 +02:00
Brett Adams
f073e45575 Add media player to Tesla Fleet (#126416)
* Add media player platform

* Use MediaPlayerState

* Revert change
2024-09-22 14:17:07 +02:00
Mr. Bubbles
79872b3e1d Fix due date calculation for future dailies in Habitica integration (#126403)
Calculate next due date for dailies with startdate in the future
2024-09-22 12:08:50 +02:00
G Johansson
06cd86419f Bump python-holidays to 0.57 (#126367) 2024-09-21 21:05:52 -04:00
David Bonnes
1164326d10 Remove superfluous type hints from evohome (#126383)
inital commit
2024-09-21 21:05:10 -04:00
starkillerOG
cf8955c71a Bump reolink-aio to 0.9.10 (#126387) 2024-09-21 21:04:43 -04:00
G Johansson
f102d99004 Fix insteon test (#126404)
* Fix insteon test

* Increase time

* More sleep
2024-09-21 21:04:29 -04:00
Oliver
5db3c6e47b Disconnect telnet when denonavr media player entity is unloaded (#126406)
Disconnect telnet when unloading `denonavr` media player entity
2024-09-21 21:00:35 -04:00
J. Nick Koston
af2798f063 Switch genexp to listcomp in async_progress_by_init_data_type (#126405)
Since listcomps are inlined in python 3.12+, the listcomp
will be a bit faster. Additionally we always iterate everything
here so there is no reason to use a genexpr
2024-09-21 19:18:53 -05:00
J. Nick Koston
d8e9d1c16e Bump uiprotect to 6.1.0 (#126345) 2024-09-21 19:40:16 -04:00
David Bonnes
a923f15d17 Rename some evohome constants for clarity / readability (#126394)
initial commit
2024-09-21 23:29:41 +01:00
Erik Montnemery
6cd99e4ed4 Add issue asking users to disable ESPHome assist_in_progress sensor (#125805)
* Add issue asking users to disable ESPHome assist_in_progress binary sensor

* Include integration name in title and description

* Add repair flow

* Improve test coverage
2024-09-21 17:14:12 -04:00
Michael
9bfc2eaeb9 Set connection and command timeout in VLC Telnet (#126401)
use 1s lower than scan interval
2024-09-21 21:11:17 +02:00
Allen Porter
505fb3738f Update the Google Photos integration to limit scope to Home Assistant created content (#126398) 2024-09-21 10:56:13 -07:00
Steven B.
556deb4f77 Fix tplink number platform to use intended BOX mode (#126397)
The NumberMode should be BOX as per the entity description but due to the missing dataclass decorator was resolving to NumberMode.AUTO.
2024-09-21 19:03:51 +02:00
David Bonnes
24106114b4 Correct / tidy up entity doc strings for evohome (#126380)
* correct / tidy up entity doc strings

* tweak
2024-09-21 15:44:35 +01:00
epenet
5b22cfa9b3 Use HassKey in todo (#126325)
* Use HassKey in todo

* One more
2024-09-21 16:30:40 +02:00
epenet
aa736b2de6 Use HassKey in notify (#126338) 2024-09-21 13:17:01 +02:00
epenet
37d527bd08 Use HassKey in camera (#126331) 2024-09-21 13:16:22 +02:00
epenet
1b4ba68e18 Use HassKey in weather (#126329) 2024-09-21 13:15:42 +02:00
epenet
d40464e5d3 Use HassKey in tts (#126327)
* Use HassKey in tts

* Also migrate DATA_TTS_MANAGER
2024-09-21 13:14:27 +02:00
epenet
32f02aa3c6 Use HassKey in image (#126322) 2024-09-21 13:13:41 +02:00
epenet
f7004188d2 Use HassKey in group (#126321)
* Use HassKey in group

* Adjust

* Improve
2024-09-21 13:11:57 +02:00
Joost Lekkerkerker
9422cde275 Bump airgradient to 0.9.0 (#126319)
* Bump airgradient to 0.9.0

* Bump airgradient to 0.9.0
2024-09-21 13:11:27 +02:00
epenet
94df0bd5ab Use HassKey in core components (d-z) (#126324)
* Use HassKey in core components (d-s)

* Add

* Undo light

* Undo device_tracker

* Undo notify

* Undo sensor

* Undo stt

* Improve
2024-09-21 13:10:14 +02:00
Michael
52d349d776 Bump aiovlc to 0.5.1 (#126365)
* bump aiovlc to 0.5.0

* bump aiovlc to 0.5.1
2024-09-21 12:01:43 +02:00
epenet
83672ee28b Use HassKey in device_tracker (#126339) 2024-09-21 11:38:27 +02:00
epenet
a58b1ca6e4 Use HassKey in sensor (#126336) 2024-09-21 11:36:03 +02:00
epenet
0299fa1b68 Use HassKey in stt (#126335) 2024-09-21 11:34:28 +02:00
Michael
91c1e75c00 Get supervisor client in analytics only on systems with supervisor (#126375)
fix supervisor dependency
2024-09-21 11:29:28 +02:00
Niklas Wagner
c07db352f3 Offboard myself as prusalink codeowner (#126361) 2024-09-21 01:00:23 +02:00
epenet
4fcfbd8134 Rename deconz base entity module (#126041)
* Move and rename deconz base entity to separate module

* Cancel rename
2024-09-20 23:40:08 +02:00
G Johansson
41c1cfcef0 Improve lock handling in Yale Smart Living (#124245)
* Improve handling of locks in yalesmartalarm

* requirements

* fix coordinator setup

* Fix lock iteration

* Fix tests

* Fix review comments
2024-09-20 23:07:52 +02:00
YogevBokobza
3e1da876c6 Add Switcher Runner S11 support (#123578)
* switcher start s11 integration

* switcher linting

* switcher starting reauth logic

* switcher fix linting

* switcher fix linting

* switcher remove get_circuit_number

* switcher adding support for validate token

* switcher fix initial auth for new devices and fix strings

* switcher fix linting

* switcher fix utils

* Revert "switcher fix utils"

This reverts commit b162a943b94fb0a581140feb21fe871df578c16a.

* switcher revert and test

* switcher fix validate logic and strings

* switcher add tests to improve coverage

* switcher adding tests

* switcher adding test

* switcher revert back things

* switcher fix based on requested changes

* switcher tests fixes

* switcher fix based on requested changes

* switcher remove single_instance_allowed code and added tests

* Update config_flow.py

* switcher fix comment

* switcher fix tests

* switcher lint

* switcehr fix based on requested changes

* switche fix lint

* switcher small rename fix

* switcher fix based on requested changes

* switcher fix based on requested changes

* switcher fix based on requested changes

* Update tests/components/switcher_kis/test_config_flow.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update tests/components/switcher_kis/test_config_flow.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update tests/components/switcher_kis/test_config_flow.py

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Update tests/components/switcher_kis/test_config_flow.py

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-09-20 23:19:57 +03:00
YogevBokobza
65fb688164 Add YogevBokobza to switcher_kis codeowners (#126359)
* Add YogevBokobza to switchre_kis CODEOWNERS

* Update manifest.json

* Update homeassistant/components/switcher_kis/manifest.json

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-09-20 23:19:27 +03:00
Michael Hansen
123b6b687e Route non-TTS media through ESPHome ffmpeg proxy (#126287)
* Route non-TTS media through proxy

* Use media_id_source
2024-09-20 13:57:55 -04:00
Sid
e8d5ebef7e Bump ruff to 0.6.6 (#126343) 2024-09-20 17:48:03 +02:00
Marc Mueller
c408fd0e62 Update pylint to 3.3.0 (#126330) 2024-09-20 17:47:12 +02:00
epenet
803de40321 Add trace to core files (#126314) 2024-09-20 16:40:57 +02:00
Joost Lekkerkerker
8254a643d2 Make geniushub platforms a list (#126320) 2024-09-20 16:26:41 +02:00
Teemu R.
992b810fa9 Add siren platform for tplink (#124934)
* Add siren platform for tplink

* Add tests

* Add alarm to features.json

* Update based on reviews

* Use alarm module instead of individual features

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-20 16:11:02 +02:00
Simone Chemelli
99a65d3098 Fix update platform for Shelly gen1 devices (#124798) 2024-09-20 15:57:32 +02:00
Maikel Punie
1fcfe9e135 Bump pyduotecno to 2024.9.0 (#126328) 2024-09-20 15:41:41 +02:00
Paulus Schoutsen
604c848dec Change assist satellite announce method signature (#126299) 2024-09-20 08:09:37 -05:00
dontinelli
41ffa8d6db Add login and rewrite access to extended data for solarlog (#126024)
* Initial commit

* Add/update tests

* Minor adjustment

* Update data_schema

* Adjust get password

* Set const for has_password, remove deletion of extended_data

* Update diagnostics snapshot

* Correct typo

* Add test for migration from mv 2 to 3

* Adjust migration test
2024-09-20 14:19:45 +02:00
Klaas Schoute
184580257d Add battery data to Autarco integration (#125924)
* Rename site to account_site

* Add battery service with entities

* Test UpdateFailed exception in coordinator

* Add battery data to diagnostics report

* Add TOTAL state_class where needed

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-20 12:53:15 +02:00
TimL
76967e848d Refactor smlight event_function to common function (#126260)
refactor event_function
2024-09-20 12:40:50 +02:00
Thomas55555
f93bcbaa84 Bump aioautomower to 2024.9.1 (#126315) 2024-09-20 12:40:16 +02:00
epenet
cd95c133af Enable all TID ruff rules (#126312)
* Enable ruff rule TID252

* One more

* comment
2024-09-20 12:25:51 +02:00
Tom Harris
7433d2eca9 Add broken link and missing device lists to insteon configuration panel (#119715)
* Add broken link and missing device lists

* Fix incorrect import

* Add tests

* Bump pyinsteon

* Typing
2024-09-20 12:11:51 +02:00
Marcel van der Veldt
90f691fa2c Mark current position sensor for Matter switch as default disabled (#126254) 2024-09-20 12:07:38 +02:00
epenet
8b44c16b57 Use HassKey in core components (a-c) (#126258)
* Use HassKey in conversation

* Use HassKey in assist_satellite

* automation

* More

* Unrelated

* Improve
2024-09-20 12:07:15 +02:00
Marcel van der Veldt
ef94fcf873 Fix duplicate power sensors for Matter 1.3 powerplugs (#126269)
* Prevent duplicate power sensors in Matter sensor platform

* adjust test as well
2024-09-20 12:05:19 +02:00
RJPoelstra
3ad6589f25 Bump python-MotionMount to 2.2.0 (#126309) 2024-09-20 12:04:38 +02:00
Tatham Oddie
fb56c5875a Add device class for UPNP uptime sensor (#126306)
Allows for easier conversion of time periods within HA natively
2024-09-20 12:04:24 +02:00
Martin Hjelmare
7ff0d54291 Clean ondilo ico logging (#126310)
* Clean too verbose logging

* Add tests
2024-09-20 12:03:16 +02:00
Fredrik Erlandsson
1768daf98c Add support for native oauth2 in Point (#118243)
* initial oauth2 implementation

* fix unload_entry

* read old yaml/entry config

* update tests

* fix: pylint on tests

* Apply suggestions from code review

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

* fix constants, formatting

* use runtime_data

* Apply suggestions from code review

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

* fix missing import

* adopt to PointData dataclass

* fix typing

* add more strings (copied from weheat)

* move the PointData dataclass to avoid circular imports

* use configflow inspired by withings

* raise ConfigEntryAuthFailed

* it is called entry_lock

* fix webhook issue

* fix oauth_create_entry

* stop using async_forward_entry_setup

* Fixup

* fix strings

* fix issue that old config might be without unique_id

* parametrize tests

* Update homeassistant/components/point/config_flow.py

* Update tests/components/point/test_config_flow.py

* Fix

---------

Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-20 12:02:07 +02:00
Thomas55555
7a9da6dde1 Add additional mower to Husqvarna Autmower tests (#126313) 2024-09-20 12:01:07 +02:00
Steven B.
42f8d9d10f Add motion detection switch entity to ring (#126278)
Add motion detection switch to ring
2024-09-20 11:27:05 +02:00
Mike Degatano
d56a7217d9 Bump aiohasupervisor to 0.1.0b1 (#126282) 2024-09-20 11:19:41 +02:00
Matthias Alphart
87240bb96f Fix loading KNX UI entities with entity category set (#126290)
* Fix loading KNX UI entities with entity category set

* add test

* docstring fixes

* telegram order

* Optionally ignore telegram sending order in tests

because we can't know which platform initialises first
2024-09-20 11:16:58 +02:00
epenet
2062e49ae1 Improve readability in hass_imports pylint plugin (#126252)
* Improve readability in hass_imports pylint plugin

* One more

* docstring

* docstring
2024-09-20 11:10:27 +02:00
Steven B.
efdb1073a1 Add in-home chime switch to ring (#126305)
* Add in-home chime switch to ring

* Fix accidental conftest change
2024-09-20 10:45:22 +02:00
TimL
778729101a Bump pysmlight to 0.1.1 (#126301)
Bump pysmlight 0.1.1
2024-09-20 10:21:10 +02:00
vhkristof
1f1ce67209 Add service to set the AC schedule of renault vehicles (#125006)
* Add service to set the AC schedule of renault vehicles

* Remove executable permission

* Applied review comments (use snapshot)

* Rewrote examples to not use JSON
2024-09-20 10:18:47 +02:00
Ian
dccdb71b2d Make NextBus coordinator more resilient and efficient (#126161)
* Make NextBus coordinator more resilient and efficient

Resolves issues where one request failing will prevent all agency
predictions to fail. This also removes redundant requests for
predictions that share the same stop.

* Add unload entry test

* Prevent shutdown if the coordinator is still needed
2024-09-20 10:18:13 +02:00
dependabot[bot]
df0195bfe8 Bump github/codeql-action from 3.26.7 to 3.26.8 (#126302) 2024-09-20 09:40:37 +02:00
epenet
bb5640b41b Simplify imports in recorder (#126248) 2024-09-19 21:43:21 -04:00
Marc-Philip
72065768f3 Allow github requirements specs in hassfest for non-core integrations (#124925)
* allow all requirements specs

* remove unnecessary tests

* Revert "remove unnecessary tests"

This reverts commit 0a2af0318d.

* Revert "allow all requirements specs"

This reverts commit d15cd27f7b.

* be lenient only for custom integrations

* don't allow blanks as requested

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-20 00:36:31 +02:00
Alberto Montes
3d43c22485 Update tooling configuration to enforce f-string formatting (#125989)
* Update tooling configuration to enforce f-string formatting

* Disable the rule on Pylint as it is handled by ruff
2024-09-19 22:16:40 +02:00
Jan Bouwhuis
bafc42c8f1 Cleanup unused protocol class for mqtt entity setup (#126276) 2024-09-19 21:29:14 +02:00
Jan Bouwhuis
21affac571 Rename mqtt mixins module to entity.py (#126279) 2024-09-19 20:50:33 +02:00
Steven B.
b18b532b40 Bump ring-doorbell to 0.9.5 (#126264)
* Bump ring_doorbell to 0.9.5

* Update number snapshot
2024-09-19 19:40:39 +02:00
starkillerOG
9988c66d67 Bump reolink_aio to 0.9.9 (#126267) 2024-09-19 17:30:54 +02:00
Claudia Pellegrino
baa79303a7 Make combined rmvtransport filters work (#126255)
rmvtransport: make filters always effective

In the `rmvtransport` integration, the three config attributes
`destination`, `lines`, and `time_offset` all act as filters. The
expectation is that if multiple filters are given, all of them take
effect.

However, as a consequence of using `elif` in the loop body, if a
`destination` filter has been configured, then both the `lines` and the
`time_offset` filters are ignored and have no effect.

Replace the `elif` with an `if` clause to allow all filter settings to
work as intended.

CC: @cgtobi
2024-09-19 16:11:13 +02:00
Mike Degatano
b2d669ac3c Add aiohasupervisor to core requirements (#126225) 2024-09-19 15:13:21 +02:00
Alberto Montes
28ece89272 Update string formatting to use f-string on core codebase (#125988)
* Update string formatting to use f-string on core codebase

* Small change given review feedback
2024-09-19 14:31:13 +02:00
Erik Montnemery
7ba9d1fe65 Use mock_config_flow helper in config_entries tests (#126251) 2024-09-19 13:57:27 +02:00
Robert Resch
31adb048f1 Bump uv to 0.4.12 (#126257) 2024-09-19 13:42:53 +02:00
epenet
5864591150 Mark tag as entity component in pylint plugin (#126183)
* Move tag base entity to separate module

* Add tag to _ENTITY_COMPONENTS

* Move Entity back in

* Add tag to base platforms

* Adjust core_files

* Revert "Adjust core_files"

This reverts commit 180c5034de.

* Revert "Add tag to base platforms"

This reverts commit 381bcf12f0.
2024-09-19 13:28:09 +02:00
epenet
c81d104822 Sort values in Platform enum (#126259) 2024-09-19 13:12:37 +02:00
Alberto Montes
b2401bf2e3 Update string formatting to use f-string on components (#125987)
* Update string formatting to use f-string on components

* Update code given review feedback

* Use f-string

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-19 11:38:25 +02:00
Paul Bottein
b471a6e519 Add has_entity_name to entity display dict and fix name (#125832)
* Add has_entity_name to entity display dict and fix name

* Fix tests
2024-09-19 11:35:44 +02:00
Brett Adams
d90cdf24f5 Fix wall connector state in Teslemetry (#124149)
* Fix wall connector state

* review feedback

* Rename None to Disconnected

* Translate disconnected
2024-09-19 11:04:27 +02:00
Christopher Fenner
bc3a42c658 Fix serial handling in ViCare integration (#125495)
* hand down device serial into common entity

* fix platforms

* Revert "fix platforms"

This reverts commit 067af2b567.

* handle event loop issue

* hand in serial

* Revert "Revert "fix platforms""

This reverts commit 9bbb55ee6d.

* fix get serial call

* handle other exceptions

* also check device model for migration

* merge entity and device migration

* add test fixture without serial

* adjust test cases

* add dummy fixture

* remove commented code

* modify migration

* use continue

* break comment
2024-09-19 11:03:54 +02:00
Michael
e40a853fdb Fix set temperature action in AVM FRITZ!SmartHome (#126072)
* fix set_temperature logic

* improvements
2024-09-19 11:03:20 +02:00
Simone Chemelli
c94bb6c1db Add new method version_is_newer to Update platform (#124797)
* Allow string comparing in update platform

* new approach after architecture discussion

* cleanup

* Update homeassistant/components/update/__init__.py

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

* Update homeassistant/components/update/__init__.py

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

* add tests

* Update tests/components/update/test_init.py

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

* Update tests/components/update/test_init.py

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

* Update tests/components/update/test_init.py

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

* update docstrings

* one more docstring

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-09-19 11:00:22 +02:00
Mr. Bubbles
b787c2617b Revert "Fix missing id in Habitica completed todos API response" (#126142)
Revert "Fix missing id in Habitica completed todos API response (#124565)"

This reverts commit c9e7c76ee5.
2024-09-19 10:59:54 +02:00
Iskra kranj
3c99fad6b9 Add counters to iskra integration (#126046)
* Added counters to iskra integration

* reverted pyiskra bump as reviewed

* Fixed iskra integration according to review

* fixed iskra integration according to review
2024-09-19 10:48:42 +02:00
Jan-Philipp Benecke
3981c87860 Prevent blocking event loop in ps4 (#126151)
* Prevent blocking event loop in ps4

* Process code review comment
2024-09-19 10:45:26 +02:00
Arun Philip
8ca3310401 Fix qbittorrent error when torrent count is 0 (#126146)
Fix handling of `NoneType` for torrents in `count_torrents_in_states` function

Added a check to handle cases where the 'torrents' data is None, avoiding a `TypeError` when attempting to get the length of a `NoneType` object. The function now returns 0 if 'torrents' is None, ensuring robust behavior when no torrent data is available.
2024-09-19 10:34:27 +02:00
Alberto Montes
5d2f8319b1 Update string formatting to use f-string on tests (#125986)
* Update string formatting to use f-string on tests

* Update test_package.py

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

* Update statement given feedback

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-09-19 10:32:38 +02:00
TimL
31f9687ba1 Update repairs for Smlight integration to allow firmware updates where possible (#126113)
* Dont launch SSE client for core firmware 0.9.9

* Dont offer updates on core firmware 0.9.9

* Add correct firmware done event for legacy v2 firmware

* test update legacy v2 firmware

* Dont raise issue for firmware v2
2024-09-19 10:29:02 +02:00
Marcel van der Veldt
1dd1de2636 Pass default value in Z-Wave websocket handler for configuration values (#125343)
* Pass default value in zwave websocket handler for configuration values

* Update test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-19 10:07:28 +02:00
G Johansson
4d63bf473d Add validation to set_humidity action in humidifier (#125863) 2024-09-19 09:50:47 +02:00
Sebastian Nohn
dd10a833db Fix tibber fails if power production is enabled but no power is produced (#126209)
* fix #125312 - tibber integration fails if power production is enabled but no power is produced

* fix requirements_all.txt
2024-09-19 09:11:57 +02:00
Michael Hansen
d1a4838802 Allow one reusable proxy URL per ESPHome device (#125845)
* Allow one reusable URL per device

* Move process to convert info

* Stop previous process

* Change to 404

* Better error handling
2024-09-19 00:05:09 -04:00
cnico
f8274cd5c2 Addition of select platform for flipr hub (#126237)
* Addition of select platform for flipr hub

* Review corrections
2024-09-18 23:04:22 +02:00
Ian
931c8f9e66 Bump nextbus to 2.0.5 (#126230) 2024-09-18 22:26:30 +02:00
Joost Lekkerkerker
6e6dae45d1 Set model id on Govee lights (#126211) 2024-09-18 21:59:19 +02:00
Jan-Philipp Benecke
9b60a6c095 Use debug/warning/error instead of info log level in components [z] (#126234) 2024-09-18 21:34:55 +02:00
Jan-Philipp Benecke
31b9c2fb60 Use debug instead of info log level in components [y] (#126233) 2024-09-18 21:34:31 +02:00
Jan-Philipp Benecke
8338075d03 Use debug/warning/error instead of info log level in components [x] (#126232) 2024-09-18 21:34:11 +02:00
Jan-Philipp Benecke
1d425f3913 Use debug/warning instead of info log level in components [s] (#126141)
* Use debug/warning instead of info log level in components [s]

* Fix merge error
2024-09-18 21:33:52 +02:00
Marcel van der Veldt
d90caf3e86 Remove default transition in Matter light platform (#126220)
* Remove default transition in Matter light platform

* adjust test
2024-09-18 21:23:05 +02:00
Jan-Philipp Benecke
3f531c02a2 Use debug/warning instead of info log level in components [v] (#126228) 2024-09-18 21:15:50 +02:00
Jan-Philipp Benecke
5075b8736e Use debug/warning instead of info log level in components [w] (#126231) 2024-09-18 21:14:55 +02:00
epenet
6bc2d11c5e Add base Entity class to enforce-class-module pylint plugin (#126026)
* Add base Entity class to enforcé-class-module pylint plugin

* Ignore bluetooth

* Ignore hue

* Ignore dominos

* Ignore ffmpeg

* Ignore mqtt

* Ignore microsoft_face

* Ignore plant

* Ignore point

* Ignore rfxtrx

* Ignore template

* Ignore tag

* Ignore deconz
2024-09-18 20:38:45 +02:00
Fredrik Erlandsson
5fcdcbf9b9 Bump pydaikin to 2.13.7 (#126219) 2024-09-18 20:37:01 +02:00
Erik Montnemery
252ce2c95b Improve FlowManager.async_finish_flow docstring (#126178)
* Improve FlowManager.async_finish_flow docstring

* Fix typos
2024-09-18 18:19:13 +02:00
Milan Meulemans
12dbabb849 Update Aseko to support new API (#126133)
* Update Aseko to support new API

* Apply suggestions from code review

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

* Use self.unit instead of self._unit

* Refactor sensor setup entry

* Keep same unique id and identifier

* Revert rename free_chlorine translation key

* Remove new heating entity to keep PR small

* Fix keep same unique id

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-18 16:26:09 +02:00
Antoine Reversat
e2f1c60981 Fix Fujitsu fglair authentication error and other issues (#125439)
* Use correct app credentials when europe is checked

* Rework to add china as well

* Use our own package since the maintainer of the original package is not responding

* Revert to using rewardone's package

* Import app credentials where needed instead of __init__

* Rework region selector

* Bump config entry minor and add migration

* Address comments
2024-09-18 16:23:35 +02:00
Joost Lekkerkerker
ac93570476 Remove LG Thinq (#125900) 2024-09-18 16:11:29 +02:00
Brett Adams
139765995e Bump tesla-fleet-api to 0.7.8 (#126164)
bump
2024-09-18 15:19:44 +02:00
Marcel van der Veldt
6bff6b562a Add ThirdReality Matter NightLight to transition exception list (#126216) 2024-09-18 14:51:05 +02:00
Erik Montnemery
a10d68e63e Fix device cleanup in plugwise (#126212) 2024-09-18 13:50:36 +02:00
tdfountain
ec2db38516 Move input current from diagnostic to regular sensor in NUT (#124183)
Move input current from Diagnostic

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-09-18 13:16:35 +02:00
Jan-Philipp Benecke
39e720caed Use debug/warning instead of info log level in components [t] (#126147) 2024-09-18 12:39:50 +02:00
Andrew Jackson
adf25b427b Broaden scope of ConfigEntryNotReady in Mealie (#126208)
Broaden scope of ConfigEntryNotReady
2024-09-18 12:29:50 +02:00
epenet
b74a6a64bc Rename roomba base entity module (#126134)
* Move roomba base entity to separate module

* Simplify
2024-09-18 12:14:20 +02:00
epenet
116733e1a5 Rename onewire base entity module (#126129)
Move onewire base entity to separate module
2024-09-18 11:42:16 +02:00
epenet
1ff69825e4 Move rflink base entity to separate module (#126206) 2024-09-18 11:41:49 +02:00
TimL
4f53ffcd9c Add VPN sensor and switch for Smlight integration (#126201)
* Add vpn_status sensor

* update test fixures with new attributes

* Add vpn enabled switch

vpn strings

* Add vpn switch to test

* update snapshots

* Add vpn status to disabled by default test
2024-09-18 11:40:27 +02:00
epenet
0281e95f2e Prefer __all__ over F401 ignore (#126189) 2024-09-18 11:29:23 +02:00
epenet
de104b35db Move tellstick base entity to separate module (#126205) 2024-09-18 11:28:56 +02:00
Andrew Jackson
e2c6d2765a Remove default mastodon instance in config flow (#126204)
Remove default mastodon instance
2024-09-18 11:28:33 +02:00
epenet
63929a1177 Move onvif base entity to separate module (#126128) 2024-09-18 11:26:52 +02:00
epenet
cf389681f6 Move upb base entity to separate module (#126184) 2024-09-18 11:25:43 +02:00
epenet
3fb92bc245 Move raincloud base entity to separate module (#126170) 2024-09-18 11:23:10 +02:00
epenet
b1ef91bcfe Move wirelesstag base entity to separate module (#126203) 2024-09-18 11:22:36 +02:00
Jan-Philipp Benecke
987b8af1b1 Use debug/warning instead of info log level in components [u] (#126148) 2024-09-18 11:08:12 +02:00
epenet
dbb6eaa9eb Move and rename remember_the_milk base entity to separate module (#126171)
Move remember_the_milk base entity to separate module
2024-09-18 11:07:38 +02:00
epenet
df434fc5e2 Move shared rflink constants to separate module (#126173) 2024-09-18 11:07:13 +02:00
epenet
47657af173 Move raincloud shared constants to separate module (#126174)
Move shared raincloud constants to separate module
2024-09-18 11:06:40 +02:00
epenet
bbe64e99e1 Move slack base entity to separate module (#126175) 2024-09-18 11:06:19 +02:00
epenet
fdf460b82b Move smartthings base entity to separate module (#126176) 2024-09-18 11:05:50 +02:00
epenet
6325a332bd Move soma base entity to separate module (#126177) 2024-09-18 11:05:21 +02:00
epenet
0deb152bb2 Move tellstick shared constants to separate module (#126179) 2024-09-18 11:04:28 +02:00
epenet
8785a9869e Rename tuya base entity module (#126180) 2024-09-18 11:04:01 +02:00
epenet
16ac303994 Move tcp base entity to separate module (#126181) 2024-09-18 11:03:32 +02:00
epenet
06e7e377d4 Rename tasmota base entity module (#126182) 2024-09-18 11:00:51 +02:00
epenet
dd77c6b59f Move xs1 base entity to separate module (#126199) 2024-09-18 11:00:06 +02:00
epenet
8827b5510f Move zwave_me base entity to separate module (#126200) 2024-09-18 10:59:53 +02:00
epenet
1893545705 Move xiaomi_miio base entity to separate module (#126198) 2024-09-18 10:59:27 +02:00
epenet
e9ac6b7482 Move xiaomi_aqara base entity to separate module (#126197) 2024-09-18 10:59:04 +02:00
epenet
799bc50c98 Avoid constant re-export in fujitsu_fglair (#126190)
Avoid re-export in fujitsu_fglair
2024-09-18 10:57:24 +02:00
epenet
db8c379b93 Move wiffi base entity to separate module (#126194) 2024-09-18 10:57:03 +02:00
epenet
989a90bb93 Move wilight base entity to separate module (#126193) 2024-09-18 10:56:39 +02:00
epenet
3d9aa60e4e Move wirelesstag shared constants to separate module (#126192) 2024-09-18 10:55:55 +02:00
epenet
93de46b50e Move velux base entity to separate module (#126185) 2024-09-18 09:51:05 +02:00
epenet
da4f401d17 Move vera base entity to separate module (#126186) 2024-09-18 09:50:07 +02:00
epenet
e7bb9a440a Move vesync base entity to separate module (#126187) 2024-09-18 09:49:10 +02:00
epenet
4aaba171ca Cleanup unnecessary F401 ignores (#126188)
* Cleanup unnecessary F401 ignores

* Adjust tests
2024-09-18 09:46:13 +02:00
Mike Degatano
97d0d91d2c Use aiohasupervisor for addon info calls (#125926)
* Use aiohasupervisor for addon info calls

* Fix issue/repair tests in supervisor

* Fixes from feedback
2024-09-17 23:22:35 +02:00
Marc Hörsken
37cdc6d500 Add diagnostics support for WMS WebControl pro (#126077) 2024-09-17 23:17:04 +02:00
Jan-Philipp Benecke
adcb541b4b Use debug/warning instead of info log level in components [r] (#126140) 2024-09-17 19:45:05 +02:00
Jan-Philipp Benecke
4efa147a2b Use debug/warning instead of info log level in components [p] (#126139) 2024-09-17 19:44:38 +02:00
Jan-Philipp Benecke
bc8929d37f Use debug/warning instead of info log level in components [o] (#126138) 2024-09-17 19:44:12 +02:00
Jan-Philipp Benecke
622e9aa3dc Use debug/warning/error instead of info log level in components [n] (#126137) 2024-09-17 18:39:11 +02:00
epenet
2588435c5c Move roborock base entity to separate module (#126135) 2024-09-17 18:20:57 +02:00
Elisha Eshed
b262e1518f Order train station names in Israel rail API (#126121) 2024-09-17 17:18:35 +02:00
epenet
c5839604d5 Move qwikswitch base entity to separate module (#126130) 2024-09-17 17:13:23 +02:00
Tobias Sauerwein
01688946b3 Fix set brightness for Netatmo lights (#126075)
* fix set brightness for Netatmo lights

* round returns int by default

* Update homeassistant/components/netatmo/light.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-17 16:34:26 +02:00
Jan-Philipp Benecke
2ec0d8e8ef Use debug/warning instead of info log level in components [m] (#126074)
* Use debug instead of info log level in components [m]

* Fix modbus test
2024-09-17 16:14:59 +02:00
epenet
219417cfb5 Move homeworks base entity to separate module (#126097)
* Move homeworks base entity to separate module

* Move calculate_unique_id to util.py
2024-09-17 16:13:40 +02:00
Thomas55555
ca59805907 Add sync clock button for Husqvarna Automower (#125689)
* Sync Clock

* optimize add entitites

* fix?

* test

* simplify command

* 1 generic entity

* docstrings

* tweaks

* tests

* Apply suggestions from code review

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

* suggestions from review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-17 16:12:09 +02:00
Erik Montnemery
2190054abf Improve negative TTS test (#126126) 2024-09-17 16:11:03 +02:00
Robert Contreras
4d04402ad4 Add Home Connect light entity for cooling appliances (#126090)
* Add Home Connect light entities for fridge

* Update homeassistant/components/home_connect/light.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-17 15:56:20 +02:00
cnico
2ae4989031 Addition of Flipr hub with switch platform (#125866)
* Addition of Flipr hub with switch platform

* Remove of loggers in tests

* Review corrections

* Review corrections

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-17 15:56:07 +02:00
epenet
f3facac016 Move homematicip_cloud base entity to separate module (#126094)
* Move homematicip_cloud base entity to separate module

* One more
2024-09-17 15:46:04 +02:00
epenet
a9c479a78b Move hive base entity to separate module (#126095) 2024-09-17 15:44:52 +02:00
epenet
c20d07c14a Move and rename hlk_sw16 base entity to separate module (#126096) 2024-09-17 15:44:11 +02:00
Daniel Krebs
c8e2408f82 Allow setting volume on Ring devices (#125773)
* Turn Ring Doorbell and Chime volumes into number entities.

* turn RingOther volumes into numbers as well

* fix linter issues

* move other volume strings into `number` section

* add back old volume sensors but deprecate them

* add tests for `ring.number`

* add back strings for sensors that have just become deprecated

* remove deprecated volume sensors from test

* Revert "remove deprecated volume sensors from test"

This reverts commit fc95af66e7.

* create entities for deprecated sensors so that tests still run

* remove print

* add entities immediately

* move `RingNumberEntityDescription` above `RingNumber` and remove unused import

* remove irrelevant comment about history

* fix not using `setter_fn`

* add missing icons for other volume entities

* rename `entity` -> `entity_id` in number tests

* fix typing in number test

* use constants for `hass.services.async_call()`

* use `@refresh_after` decorator instead of delaying updates manually

* move descriptors above entity class

* Use snapshot to test states.

* add missing snapshot file for number platform

* Update homeassistant/components/ring/number.py

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>

---------

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
2024-09-17 15:41:51 +02:00
epenet
9557386b6e Move huawei_lte base entity to separate module (#126098) 2024-09-17 15:41:03 +02:00
epenet
1afcbd02a9 Move insteon base entity to separate module (#126099) 2024-09-17 15:40:33 +02:00
epenet
6dfa6b0001 Move iaqualink base entity to separate module (#126100) 2024-09-17 15:40:25 +02:00
epenet
ecea251efa Move and rename ihc base entity to separate module (#126101) 2024-09-17 15:39:49 +02:00
epenet
3a55cbc818 Move and rename lutron caseta base entity to separate module (#126103) 2024-09-17 15:39:11 +02:00
epenet
93f2b7c8a3 Move modbus base entity to separate module (#126104) 2024-09-17 15:38:10 +02:00
epenet
4d140d81f9 Move mysensors base entity to separate module (#126105) 2024-09-17 15:37:56 +02:00
epenet
7fee61db84 Move nissan_leaf base entity to separate module (#126106) 2024-09-17 15:37:39 +02:00
Lektri.co
84c20745a8 Add number platform to the Lektrico integration (#126119)
* Add platform number.

* Remove number user_limit.

* Change LED to led in number snapshot.

* Update homeassistant/components/lektrico/number.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-17 15:30:24 +02:00
TimL
92099866e2 Bump pysmlight to 0.1.0 (#126111)
Bump pysmlight 0.1.0 for Smlight integration
2024-09-17 15:24:20 +02:00
jesperraemaekers
3601c531f4 Adding reauth support to Weheat (#126108)
* Added reauth in config flow and raise approriate errors

* Added reauth tests

* Some cleanup after looking at other PRs
2024-09-17 10:23:27 +02:00
epenet
a3155b2ad7 Move knx base entity to separate module (#126102)
* Move knx base entity to separate module

* one more
2024-09-17 10:15:26 +02:00
Michael Hansen
6eab5e3e14 Add ESPHome Assist satellite configuration (#126085)
* Basic implementation

* Add websocket commands

* Clean up

* Add callback to other signatures

* Remove unused constant

* Re-add callback

* Add callback to test

* Implement get/set configuration

* Add tests

* Re-add constant

* Bump aioesphomeapi

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-09-16 22:08:39 -05:00
Michael Hansen
dde989685c Add Assist satellite configuration (#126063)
* Basic implementation

* Add websocket commands

* Clean up

* Add callback to other signatures

* Remove unused constant

* Re-add callback

* Add callback to test
2024-09-16 22:34:07 -04:00
Noah Husby
738818aa7a Add media player stop support to Cambridge Audio (#126066) 2024-09-16 22:42:27 +02:00
Noah Husby
529e120313 Remove callback decorators in Cambridge Audio (#126082)
Remove callback decorator from async methods in Cambridge Audio
2024-09-16 22:28:06 +02:00
epenet
351de1ca72 Move and rename alert base entity to separate module (#126030)
Move alert base entity to separate module
2024-09-16 20:21:04 +02:00
Bouwe Westerdijk
b73be2df6e Implement model_id's in Plugwise (#126069) 2024-09-16 20:01:12 +02:00
Franck Nijhof
b69b5aa82a 2024.9.2 (#126062) 2024-09-16 19:44:37 +02:00
Jason Hunter
861fcbe598 Pin pyasn1 until fixed (#125712)
* pin pyasn1 until fixed

* add to gen requirements
2024-09-16 17:38:17 +02:00
Franck Nijhof
d259055af0 Bump version to 2024.9.2 2024-09-16 16:55:02 +02:00
xLarry
7ada2f864c Add sensor platform to laundrify integration (#121378)
* feat: initial implementation of sensor platform

* refactor(tests): await setup of config_entry in parent function

* feat(tests): add tests for laundrify sensor platform

* refactor: set name property for laundrify binary_sensor

* refactor(tests): add missing type hints

* refactor(tests): remove global change of the logging level

* refactor: address minor changes from code review

* refactor(tests): transform setup_config_entry into fixture

* refactor: leverage entity descriptions to define common entity properties

* refactor: change native unit to Wh

* fix(tests): use fixture to create the config entry

* fix: remove redundant raise of LaundrifyDeviceException

* fix(tests): raise a LaundrifyDeviceException to test the update failure behavior

* refactor(tests): merge several library fixtures into a single one

* refactor(tests): create a separate UpdateCoordinator instead of using the internal

* refactor(tests): avoid using LaundrifyPowerSensor

* refactor: simplify value retrieval by directly accessing the coordinator

* refactor: remove non-raising code from try-block

* refactor(sensor): revert usage of entity descriptions

* refactor(sensor): consolidate common attributes and init func to LaundrifyBaseSensor

* refactor(sensor): instantiate DeviceInfo obj instead of using dict

* refactor(tests): use freezer to trigger coordinator update

* refactor(tests): assert on entity state instead of coordinator

* refactor(tests): make use of freezer

* chore(tests): typo in comment
2024-09-16 16:21:16 +02:00
Marc Hörsken
587ebd5d47 Add new integration for WMS WebControl pro using local API (#124176)
* Add new integration for WMS WebControl pro using local API

Warema recently released a new local API for their WMS hub
called "WebControl pro". This integration makes use of the
new local API via a new dedicated Python library pywmspro.

For now this integration only supports awnings as covers.
But pywmspro is device-agnostic to ease future extensions.

* Incorporated review feedback from joostlek

Thanks a lot!

* Incorporated more review feedback from joostlek

Thanks a lot!

* Incorporated more review feedback from joostlek

Thanks a lot!

* Fix

* Follow-up fix

* Improve handling of DHCP discovery

* Further test improvements suggested by joostlek, thanks!

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-16 16:07:43 +02:00
TimL
fae26ee5da Abort zeroconf flow on connect error during discovery (#125980)
Abort zereconf flow on connect error during discovery
2024-09-16 15:58:51 +02:00
Noah Husby
c4eca4469f Bump aiorussound to 3.0.5 (#125975) 2024-09-16 15:58:48 +02:00
Galorhallen
d91cc96cd2 Bump govee light local to 1.5.2 (#125968)
Update govee light local library
2024-09-16 15:58:44 +02:00
starkillerOG
0b226c1868 Bump motionblinds to 0.6.25 (#125957) 2024-09-16 15:53:59 +02:00
puddly
359f61e55a Bump ZHA to 0.0.33 (#125914) 2024-09-16 15:53:55 +02:00
Josef Zweck
16e049b7fa Bump lmcloud to 1.2.3 (#125801) 2024-09-16 15:53:51 +02:00
epenet
4fbc5a9558 Move hdmi_cec base entity to separate module (#126057) 2024-09-16 15:47:26 +02:00
puddly
8a6eec925f Add missing Zigbee/Thread firmware config flow translations (#125782) 2024-09-16 15:45:45 +02:00
starkillerOG
f365995c8a Fix favorite position missing for Motion Blinds TDBU devices (#125750)
* Add favorite position for TDBU

* fix styling
2024-09-16 15:45:41 +02:00
Assaf Akrabi
20ded56c99 Bump russound to 0.2.0 (#125743)
* Update russound library to fix BrokenPipeError

* Remove library from license expection list
2024-09-16 15:45:38 +02:00
Matthias Alphart
4583e070df Update knx-frontend to 2024.9.10.221729 (#125734) 2024-09-16 15:45:33 +02:00
epenet
d4be1f3666 Bump sfrbox-api to 0.0.11 (#125732)
* Bump sfrbox-api to 0.0.11

* Re-enable tests
2024-09-16 15:45:30 +02:00
puddly
06d4b3281b Remove unused keys from the ZHA config schema (#125710) 2024-09-16 15:45:27 +02:00
jonnynch
1dcd5471a0 Bump to python-nest-sdm to 5.0.1 (#125706) 2024-09-16 15:45:23 +02:00
Jan Bouwhuis
d0b6ef877e Fix incomfort invalid setpoint if override is reported as 0.0 (#125694) 2024-09-16 15:45:20 +02:00
Steven B.
1e63b956f5 Bump tplink python-kasa lib to 0.7.3 (#125686) 2024-09-16 15:45:17 +02:00
Steven B.
7734bdfdab Update tplink config to include aes keys (#125685) 2024-09-16 15:45:13 +02:00
Paul Bottein
7eb9036cbb Update frontend to 20240909.1 (#125610) 2024-09-16 15:45:10 +02:00
Pete Sage
6b2526ddbd FIx Sonos announce regression issue (#125515)
* initial commit

* initial commit
2024-09-16 15:45:06 +02:00
G Johansson
0b1a898c7c Fix yale_smart_alarm on missing key (#125508) 2024-09-16 15:45:03 +02:00
Avi Miller
fe247a60ef Bump aiolifx and aiolifx-themes to support more than 82 zones (#125487)
Signed-off-by: Avi Miller <me@dje.li>
2024-09-16 15:45:00 +02:00
J. Nick Koston
17402848f2 Bump yalexs to 8.6.4 (#125442)
adds a debounce to the updates to ensure we do
not request the activities api too often if
the websocket sends rapid updates

fixes #125277
2024-09-16 15:44:56 +02:00
tmenguy
e6b4c2e700 Fix renault plug state (#125421)
* Added PlugState 3, that is coming with renault-api 0.2.7, it fixes #124682 HA ticket

* Added PlugState 3, that is coming with renault-api 0.2.7, it fixes #124682 HA ticket
2024-09-16 15:44:52 +02:00
Willem-Jan van Rootselaar
e7c48d5870 Update diagnostics for BSBLan (#124508)
* update diagnostics to include static

and make room for multiple coordinator data objects

* fix mac address is not stored in config_entry but on device
2024-09-16 15:42:11 +02:00
Michał Jaworski
781342be40 Fix mired range in blebox color temp mode lights (#124258)
* fix: use default mired range in belbox lights running in color temp mode

* fix: ruff
2024-09-16 15:42:08 +02:00
David Knowles
73b26407f6 Fix Schlage removed locks (#123627)
* Fix bugs when a lock is no longer returned by the API

* Changes requested during review

* Only mark unavailable if lock is not present

* Remove stale comment

* Remove over-judicious nullability checks

* Remove another unnecessary null check
2024-09-16 15:42:05 +02:00
Simon
b1d691178e Use default voice id as fallback in get_tts_audio (#123624) 2024-09-16 15:42:02 +02:00
Kristof Mattei
dc189e1d58 Fix Lyric climate Auto mode (#123490)
fix: Lyric has an actual "Auto" mode that is exposed if the device has an Auto mode.
2024-09-16 15:41:52 +02:00
puddly
95db4df13a Add missing Zigbee/Thread firmware config flow translations (#125782) 2024-09-16 15:37:46 +02:00
epenet
34cf044a7c Move freebox base entity to separate module (#126056) 2024-09-16 15:29:44 +02:00
epenet
45f2198972 Move and rename fibaro base entity to separate module (#126055) 2024-09-16 15:29:29 +02:00
epenet
4c5535d1cc Move econet base entity to separate module (#126049) 2024-09-16 15:25:30 +02:00
epenet
9dd16d3df5 Move efergy base entity to separate module (#126051) 2024-09-16 15:21:30 +02:00
epenet
21b92455af Move and rename envisalink base entity to separate module (#126054) 2024-09-16 15:20:53 +02:00
epenet
5a769fb51b Move enocean base entity to separate module (#126053) 2024-09-16 15:19:25 +02:00
epenet
e3e93df187 Move elkm1 base entity to separate module (#126052) 2024-09-16 15:19:09 +02:00
Joost Lekkerkerker
a17dc3cb52 Introduce Reolink base entity description (#126050) 2024-09-16 15:11:02 +02:00
Iskra kranj
02f6d4bd11 Bump pyiskra to 0.1.11 (#126048)
bumped pyiskra to 0.1.11
2024-09-16 14:51:53 +02:00
Michael Hansen
c63cab336c Change wake word interception to a subscription (#125629)
* Allow stopping intercepting wake words

* Make wake word interception a subscription

* Keep future

* Add test for unsub
2024-09-16 14:50:43 +02:00
RJPoelstra
3ba39d5158 Add translation to communication exceptions in MotionMount (#126043)
Add translation to communication exceptions
2024-09-16 14:43:37 +02:00
epenet
e85ab067bd Move and rename crownstone base entity to separate module (#126034) 2024-09-16 14:26:20 +02:00
epenet
8370a55263 Move devolo home control base entity to separate module (#126042) 2024-09-16 14:24:48 +02:00
Ludovic BOUÉ
e08a94fe1c Add Matter tests for BatVoltage attribute from PowerSource cluster (#125645)
* Add BatVoltage Attribute from PowerSource Cluster

* Update sensor.py

Remove comment

* Update homeassistant/components/matter/sensor.py

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

* Fixture for a Eve Door & Window node

Fixture for a Eve Door & Window node to check BatVoltage attribute from PowerSource cluster

* Test battery voltage sensor

* Update test_sensor.py

* ruff-format

* Update test_sensor.py

* Update test_sensor.py

battery_voltage attribute test

* Update test_sensor.py

* Update test_sensor.py

* Update tests/components/matter/test_sensor.py

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

* Update test_sensor.py

* Adjust values

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-16 14:16:03 +02:00
TimL
e9364f4c3a Add update platform for Smlight integration (#125943)
* Create update coordinator for update entities

* fix type errors

* update info fixture with zigbee version

* Add fixtures for Firmware objects

* mock get_firmware_version function

* Add update platform for Smlight integration

* Add strings for update platform

* Add tests for update platform

* add snapshot for update tests

* Split out base coordinator

* Update homeassistant/components/smlight/strings.json

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

* overwrite coordinator types

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-16 14:14:15 +02:00
TimL
5660d1e48e Add internet binary sensor to Smlight integration (#125982)
* Add internet sensor updated by events

* Strings for internet sensor

* Update binary_sensor snapshot with internet sensor

* Add test for internet sensor

* Address review comments

---------

Co-authored-by: Tim Lunn <tim@feathertop.org>
2024-09-16 13:56:44 +02:00
TimL
ac17020cd0 Abort zeroconf flow on connect error during discovery (#125980)
Abort zereconf flow on connect error during discovery
2024-09-16 13:45:39 +02:00
Brett Adams
fdc58f952e Add number platform to Tesla Fleet (#125985)
* Add number platform

* Actually add the umber platform files
2024-09-16 13:38:45 +02:00
Robert Resch
765448fdf4 Exclude uv from wheels building (#126035) 2024-09-16 12:56:08 +02:00
TimL
1e4864d8c5 Set Smlight integration to local_push class (#125983) 2024-09-16 12:41:29 +02:00
Jan-Philipp Benecke
dadd397bf0 Use debug/warning instead of info log level in components [i] (#126036) 2024-09-16 12:39:20 +02:00
Jan-Philipp Benecke
6a2d31a481 Use debug instead of info log level in components [j] (#126037)
Use debug/warning instead of info log level in components [j]
2024-09-16 12:39:02 +02:00
Jan-Philipp Benecke
136242e38c Use debug/warning instead of info log level in components [k] (#126038) 2024-09-16 12:38:50 +02:00
Jan-Philipp Benecke
8bfcdb9266 Use debug instead of info log level in components [L] (#126039)
Use debug instead of info log level in components [l]
2024-09-16 12:38:28 +02:00
Brett Adams
e3c2f81506 Add select platform to Tesla Fleet (#125931)
* Add Select Platform

* Add Select strings and icons

* Add tests

* Clean up fixture
2024-09-16 12:26:11 +02:00
Austin Mroczek
af03003305 Improve TotalConnect translations (#125978)
* improve translations

* remove periods from tests

* simplify message strings

* use a comma
2024-09-16 12:17:17 +02:00
Markus Jacobsen
a8648b7cdc Add Bang & Olufsen media_player grouping (#123020)
* Add Beolink custom services
Add support for media player grouping via beolink
Give media player entity name

* Fix progress not being set to None as Beolink listener
Revert naming changes

* Update API
simplify Beolink attributes

* Improve beolink custom services

* Fix Beolink expandable source check
Add unexpand return value
Set entity name on initialization

* Handle entity naming as intended

* Fix "null" Beolink self friendly name

* Add regex service input validation
Add all_discovered to beolink_expand service
Improve beolink_expand response

* Add service icons

* Fix merge
Remove unnecessary assignment

* Remove invalid typing
Update response typing for updated API

* Revert to old typed response dict method
Remove mypy ignore line
Fix jid possibly used before assignment

* Re add debugging logging

* Fix coroutine
Fix formatting

* Remove unnecessary update control

* Make tests pass
Fix remote leader media position bug
Improve remote leader BangOlufsenSource comparison

* Fix naming and add callback decorators

* Move regex service check to variable
Suppress KeyError
Update tests

* Re-add hass running check

* Improve comments, naming and type hinting

* Remove old temporary fix

* Convert logged warning to raised exception for invalid media_player
Simplify code using walrus operator

* Fix test for invalid media_player grouping

* Improve method naming

* Improve _beolink_sources explanation

* Improve _beolink_sources explanation

* Add initial media_player grouping

* Convert custom service methods to media_player methods
Fix testing

* Remove beolink JID extra state attribute

* Modify custom services to only work as expected for media_player grouping
Fix tests

* Remove unused dispatch

* Remove wrong comment

* Remove commented out code

* Add config entry mock typing

* Fix beolink listener playback progress
Fix formatting
Add and use get_serial_number_from_jid function

* Fix testing

* Clarify beolink WebSocket notifications

* Further clarify beolink WebSocket notifications

* Convert notification value to enum value

* Improve comments for touch to join

* Fix None being cast to str if leader is not in HA

* Add error messages to devices in Beolink session and not Home Assistant
Rework _get_beolink_jid

* Replace redundant function call

* Show friendly name for unavailable remote leader instead of JID

* Update homeassistant/components/bang_olufsen/media_player.py

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

* Remove unneeded typing

* Rework _get_beolink_jid entity check
Clarify invalid entity error message

* Remove redundant "entity" from string

* Fix invalid typing
fix state assertions

* Fix raised error type

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-16 12:16:15 +02:00
starkillerOG
e8bacd84ce Add Reolink chime package ringtone (#125786)
* add chime package ringtone

* fix mypy

* fix mypy

* fix mypy

* fixes
2024-09-16 12:12:49 +02:00
Noah Husby
bcbf810cbe Bump aiostreammagic to 2.3.1 (#126017) 2024-09-16 11:57:59 +02:00
Jeef
f0df8264fa Bump weatherflow cloud to 1.0.6 (#125966)
bumping backing lib
2024-09-16 11:57:40 +02:00
RJPoelstra
e6b86b662a Add reconnect logic and proper reporting to MotionMount integration (#125670)
* Add reconnect logic and proper reporting

* Use snake_case

* Log on warning, not on info

* Reduce line length

* Refactor non-raising code out of try blocks

* Remove `_ensure_connected()` from action functions
2024-09-16 11:56:13 +02:00
epenet
18e2c2f6dd Disable pylint ignore_missing_annotations in config flow (#125322)
* Disable pylint ignore_missing_annotations in config flow

* Add tests

* Ignore point
2024-09-16 11:53:29 +02:00
starkillerOG
15bf6222f5 Use Home Assistant aiohttp session for Reolink (#125948) 2024-09-16 11:53:13 +02:00
Jan-Philipp Benecke
b32f40c0fe Use debug/warning instead of info log level in components [h] (#126033) 2024-09-16 11:44:14 +02:00
Jan-Philipp Benecke
53c23dfb6f Use debug/warning instead of info log level in components [g] (#126032) 2024-09-16 11:41:26 +02:00
epenet
c6d04d874f Move and rename acmeda base entity to separate module (#126028)
Move acmeda base entity to separate module
2024-09-16 11:34:24 +02:00
epenet
02cb6a6af7 Force root import of references from other components (#125816)
* Force root import of references from other components

* Improve

* Adjust

* Tweak exceptions

* Another

* Another

* Another

* Another

* Another

* Another

* Another

* Another

* Another

* Another

* Another

* Another

* Adjust

* More

* Ignore violations in test

* Improve
2024-09-16 11:28:42 +02:00
epenet
9f1cc638c9 Move blebox base entity to separate module (#126027) 2024-09-16 11:26:12 +02:00
epenet
f395688c2d Move apple_tv base entity to separate module (#126029) 2024-09-16 11:17:06 +02:00
epenet
2e76b1f834 Use shorthand attributes in numato (#126023) 2024-09-16 11:08:42 +02:00
Bouwe Westerdijk
29fb83e98b Implement battery state binary sensor in Plugwise (#126020) 2024-09-16 11:06:25 +02:00
Antony Kurniawan
156a88a3a3 Ignore negative derivative when the input is total_increasing (#119141)
* if the derivative is negative, ignore it

* add option to ignore the negatives or not

* add tests for a new ignore negative derivative

* add missing description when editing

* rename to ignore_negative_derivative
to increase clarity of which negative I mean
in case in the future we want a ignore_negative_value...

* use state_class=total_increasing to ignore the negative derivative

* remove ignore negative from the config

* add test for total_increasing_reset case

* add comments

* update test_total_increasing_reset with history tests
Also remove the last comment because the test is already clear
My existing comment there isn't unique to this unit test but applies to the entire component. The existing web documentation pointing to Wikipedia should suffice.

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-16 10:49:15 +02:00
AlCalzone
c77a3674b0 Cleanup zwave_js fixture definitions (#125896)
* refactor: cleanup zwave_js fixture definitions

* fix: that one fixture that's not an object

* fix: some more forgotten ones
2024-09-16 10:22:04 +02:00
G Johansson
db1349b95c Remove yaml import from downloader (#125921) 2024-09-16 10:20:32 +02:00
epenet
e0d18c621b Add missing type hint in monarch_money (#126019) 2024-09-16 10:20:08 +02:00
epenet
56d00fd0c8 Improve type hints in numato (#126022) 2024-09-16 10:19:40 +02:00
epenet
457f63cce0 Add platform Entity classes to pylint plugin (#125737)
* Add platform Entity classes to pylint plugin

* Fix violations

* Fix violations

* More

* Allow component package with same name as a platform

* One more
2024-09-16 10:10:53 +02:00
Michael Hansen
3dd6418160 Use sample bytes in ESPHome media format (#126016) 2024-09-16 10:10:07 +02:00
G Johansson
1caed79895 Validate set_humidity in ClimateEntity (#125242)
* Implementation validation for set_humidity in ClimateEntity

* Fixes
2024-09-16 10:09:44 +02:00
epenet
7df224f382 Use root import in assist_satellite imports (#126025) 2024-09-16 10:05:34 +02:00
dependabot[bot]
e89c007a38 Bump github/codeql-action from 3.26.6 to 3.26.7 (#126021)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 09:22:37 +02:00
starkillerOG
2174ee18dc Implement Reolink reconfiguration flow (#126004)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-09-16 09:21:23 +02:00
Seferino Fernandez
8dbca0fa0b Added virtual integration for Arizona Public Service supported by opower (#126014)
Co-authored-by: tronikos <tronikos@users.noreply.github.com>
2024-09-16 08:59:47 +02:00
Thomas55555
fccbaa0fbc Add calendar to Husqvarna Automower (#120775)
* Add Calendar

* update

* change timezone for tests

* fix requirements

* bump aioautomower to 2024.6.3b0

* bump aioautomower to 2024.6.4b0

* fix req

* align dates

* adjust

* nnbw

* better

* improvements

* req

* update requirements

* tests

* tweaks

* shift functions to library

* tests

* bump to aioautomower==2024.9.0b1

* tests

* remove ZoneInfo wrapper

* use timetzone from start_date object

* Update requirements_all.txt

* Fix names in ProgramEvent
2024-09-15 22:07:40 -07:00
Bouwe Westerdijk
089c942233 Bump plugwise to v1.4.0 (#125998)
* Refresh plugwise test-fixtures

* Update test-diagnostics file

* Bump plugwise to v1.4.0
2024-09-15 21:26:33 +02:00
starkillerOG
e768bea298 Switch Reolink from hass.data to runtime_data (#126002)
Switch from hass.data to runtime_data
2024-09-15 21:05:59 +02:00
Robert Resch
d9812f0d48 Fix uv installing in user site packages (#125808) 2024-09-15 14:53:45 +02:00
Sid
f80cc1a247 Bump ruff to 0.6.5 (#125923) 2024-09-15 12:54:23 +02:00
Maciej Bieniek
6906ee0e48 Improve Shelly RPC entity naming (#125415)
* Fix default names for cover entities

* Drop component index if only one component exists

* Improve doc strings

* Use more consistent naming

* Typo

* Revert removing index 0 from entity names

* Improve names for RGB(W) lights
2024-09-15 11:29:26 +02:00
Window-Hero
d292f2b9b4 Update pil util font height (#123512)
* Update pil.py

The default font size is far too small and will frequently be rendered completely unreadable by JPEG compression.  This is much more consistently readable, and properly specifies the font size in the draw.text function rather than relying on it being 8.

* Update pil.py

Converted to ruff format

* Update pil.py

Trying to get ruff formatting

* Update pil.py

fixed whitespace

* Update pil.py

removed trailing space
2024-09-15 10:31:56 +02:00
starkillerOG
6dadd467ab Remember Reolink config flow input (#125962) 2024-09-15 09:55:11 +02:00
tronikos
b1b7c3f7c1 Bump opower to 0.8.0 (#125981) 2024-09-15 08:33:16 +02:00
Jan-Philipp Benecke
5d14afad92 Use debug/warning instead of info log level in components [f] (#125971) 2024-09-14 23:47:27 +02:00
Austin Mroczek
ad467029c7 Use Freezer for tests in TotalConnect (#125960)
use Freezer for tests in TotalConnect
2024-09-14 23:46:21 +02:00
Galorhallen
adfca851fe Bump govee light local to 1.5.2 (#125968)
Update govee light local library
2024-09-14 23:42:38 +02:00
Jan-Philipp Benecke
c1bcabbc9d Use debug/warning instead of info log level in components [d] (#125969) 2024-09-14 23:41:32 +02:00
Jan-Philipp Benecke
d070fd40a3 Use debug/warning instead of info log level in components [e] (#125970) 2024-09-14 23:41:06 +02:00
Álvaro Fernández Rojas
0221112879 Update aioairzone to v0.9.3 (#125977)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-14 23:39:07 +02:00
Noah Husby
bcacc27456 Bump aiorussound to 3.0.5 (#125975) 2024-09-14 23:00:59 +02:00
Gigatrappeur
a24db20c64 Add k10+ vacuum in switchbot cloud integration (#125457)
* Add k10+ vacuum in switchbot cloud integration

* Change label fan speed, Mapping state HA, Add others vacuums

* Update homeassistant/components/switchbot_cloud/vacuum.py

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

* Remove comments and add mapping for fan speed

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-14 17:01:41 +02:00
starkillerOG
5fb9a24f22 Bump motionblinds to 0.6.25 (#125957) 2024-09-14 16:36:32 +02:00
Jan-Philipp Benecke
d28c32624c Use debug/warning instead of info log level in components [b] (#125954) 2024-09-14 15:52:23 +02:00
Jan-Philipp Benecke
2cbbf7d9a6 Use debug instead of info log level in components [c] (#125955)
Use debug/warning instead of info log level in components [c]
2024-09-14 15:51:58 +02:00
dontinelli
b18b497a81 Bump solarlog_cli to 0.3.0 (#125951) 2024-09-14 15:46:01 +02:00
Jan-Philipp Benecke
2fa6370dc0 Use debug instead of info log level in components [a] (#125944)
* Use debug instead of info log level in components [a]

* Process code review comments
2024-09-14 15:24:55 +02:00
jesperraemaekers
e92d9317aa Additional sensor for Weheat integration (#125524)
* Added additional sensor to Weheat

* Added tests for old and new sensors

* Added energy sensor

* Changed tests to use snapshot

* Removed unused value and regenerated the ambr

* Apply suggestions from code review

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

* changed DHW sensor creation

* Wrapped lambda function

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-14 12:01:04 +02:00
TimL
9eb3d84715 Add Smlight integration to strict-typing (#125946)
Add smlight to strict typing
2024-09-14 11:54:00 +02:00
Jan-Philipp Benecke
c0f11c27a3 Use warning instead of info log level in roborock (#125940) 2024-09-14 09:53:04 +02:00
Jan-Philipp Benecke
932d66b0ee Use debug instead of info log level in google_maps (#125942) 2024-09-14 09:52:51 +02:00
Jan-Philipp Benecke
aece6cc327 Use debug instead of info log level in linode (#125941) 2024-09-14 09:52:34 +02:00
Andre Lengwenus
5685ba7f55 Make acknowledge requests from LCN modules optional (#125765)
* Add acknowledge flag to config_entry

* Add acknowledge option to lcn configuration

* Fix tests

* Bump pypck to 0.7.23

* Add entry fixture for config_entry version 1.1 to test migration

* Add data_description to strings.json

* Create versioned config_entry in tests
2024-09-14 09:21:15 +02:00
TimL
d121e4c9b5 Bump pysmlight to 0.0.16 (#125935)
Bump pysmlight to 0.0.16 for Smlight integration

Co-authored-by: Tim Lunn <tim@feathertop.org>
2024-09-14 08:09:23 +02:00
jesperraemaekers
904c82be47 Bump Weheat to 2024.09.10 (#125936)
Weheat version bump to 2024.09.10
2024-09-14 08:05:47 +02:00
Paulus Schoutsen
1b913b8088 Fix Assist Satellite making up conversation IDs (#125933) 2024-09-13 23:21:31 -04:00
epenet
6d212ea24e Add helper functions for repair tests (#125886)
* Expose repairs constants and function for other components

* Reorder

* Use helper methods

* Adjust core_files

* Improve

* Update test_migrate.py
2024-09-14 03:31:44 +02:00
Michael Hansen
3eed5de367 Handle announcement finished for ESPHome TTS response (#125625)
* Handle announcement finished for TTS response

* Adjust test
2024-09-13 16:31:38 -04:00
G Johansson
970d28bce9 Remove own defined SOURCE_USER from sensoterra tests (#125919) 2024-09-13 22:19:45 +02:00
G Johansson
2080b9a87c Add config flow to template alarm_control_panel (#125861)
* Add config flow to template alarm_control_panel

* Remove commented code

* Test import
2024-09-13 22:12:16 +02:00
Michael Hansen
cabaf37437 Bump aioesphomeapi and adjust handle_stop (#125907)
* Bump aioesphomeapi and adjust handle_stop

* Stop audio stream too

* Update homeassistant/components/esphome/assist_satellite.py

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-09-13 16:05:11 -04:00
Noah Husby
94916ebbd1 Add diagnostics platform to Cambridge Audio (#125910)
* Add diagnostics platform to Cambridge Audio

* Remove exclusions from Cambridge diagnostics

* Remove function call from snapshot

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>

---------

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>
2024-09-13 21:45:05 +02:00
puddly
50a46933f6 Bump ZHA to 0.0.33 (#125914) 2024-09-13 14:15:58 -04:00
Robert Contreras
85aa32338e Add Home Connect sensors for fridge door states and alarms (#125490)
* New sensors for Fridge door states and alarms

* Move 2 option entities to binary_sensor, tests

* Change state translations

* Fix stale docstring
2024-09-13 19:31:35 +02:00
puddly
ba7ca84899 Remove unused keys from the ZHA config schema (#125710) 2024-09-13 11:34:06 -04:00
Noah Husby
2d9c9707e3 Improve integration tests for Cambridge Audio (#125906) 2024-09-13 17:09:33 +02:00
Noah Husby
d507953c70 Add logs on disconnect/reconnect for Cambridge Audio (#125904)
* Bump aiostreammagic to 2.3.0

* Add logging on disconnect/reconnect for Cambridge Audio
2024-09-13 16:57:39 +02:00
G Johansson
d855f70e3b Add RestoreEntity to template alarm_control_panel (#125844) 2024-09-13 16:44:48 +02:00
Noah Husby
a2a049c5cc Bump aiostreammagic to 2.3.0 (#125903) 2024-09-13 16:37:32 +02:00
epenet
58f66e54f9 Improve config flow type hints in wolflink (#125313) 2024-09-13 16:34:08 +02:00
Steven B.
ba856dac4e Migrate ring cam siren from switch to siren platform (#125761) 2024-09-13 15:39:22 +02:00
Raj Laud
a01036760e Add tests to the media_player platform of the Squeezebox integration (#125378)
* Squeezebox media_player platform tests

* Fix play-pause test

* Squeezebox remove stray reference to deprecated property

* More tests for squeezebox

* Update tests to fix merge conflict with binary_sensor

* Refactor tests to use autospec

* Use freeze and snapshot

* Update media player entity before adding

* Consolidate test fixtures for different platforms

* Merge in sensor platform

* Use deepcopy

* Update tests with suggestions from code review
2024-09-13 15:20:31 +02:00
David Knowles
0af913cc9a Automatically add and remove Schlage devices (#125520)
* Allow manual deletion of stale Schlage devices

* Automatically add and remove locks

* Add tests and fix discovered bugs

* Changes requested during review
2024-09-13 15:17:51 +02:00
Lektri.co
2e3aec3184 Add button platform to the Lektrico integration (#125897)
* Add lektrico buttons.

* Add DeviceClass.RESTART, remove exception, update description.

* Remove translation_key=reboot.

* Add button in strings.json.

* Fix button test with new snapshot.

* Remove remove button from strings.json.

* Delete all snapshots.

* Add new snapshots.

* Update tests/components/lektrico/snapshots/test_button.ambr

* Update tests/components/lektrico/snapshots/test_button.ambr

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-13 15:13:49 +02:00
shapournemati-iotty
1cea791245 Add Cover platform to Iotty (#125422)
* fadd cover entity and device with mocked commands

* add cover features and update its open percentage

* execute command to the cloud instead of mocking change of shutter state

* test iotty cover commands and insertion

* fix post payload

* refactor introducing common entity from which cover and switch inherit

* move more properties to base class

* use explicit values instead of snapshots

* move iotty device initialization to base entity

* move device info from property to attribute
2024-09-13 14:55:53 +02:00
Steven B.
eae4618c52 Migrate ring siren and switch platforms to entity descriptions (#125775) 2024-09-13 14:27:33 +02:00
LG-ThinQ-Integration
e6d1daacee Add on_key to ONE_TOUCH_FILTER property in LG ThinQ integration (#125797)
Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
2024-09-13 14:16:03 +02:00
Brett Adams
e71709f0ec Add switch platform to Tesla Fleet (#125798)
* Add switch platform

* Add tests
2024-09-13 14:15:25 +02:00
Josef Zweck
8af6ffdb49 Bump lmcloud to 1.2.3 (#125801) 2024-09-13 14:08:29 +02:00
Adam Pasztor
d2289fa542 Add select platform to ADS integration (#125892)
* Add ADS Select integration

* fix: review feedback.
2024-09-13 14:05:37 +02:00
Willem-Jan van Rootselaar
1ae1391cb9 Add platform sensor to BSBLAN integration (#125474)
* add sensor platform

* refactor: Add sensor data to async_get_config_entry_diagnostics

* refactor: Add tests for sensor

* chore: remove duplicate test

* Update tests/components/bsblan/test_sensor.py

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

* refactor: let hass use translation_key

fix raise

* refactor: Add new sensor entity names to strings.json

* refactor: Add tests for current temperature sensor

* refactor: Update native_value method in BSBLanSensor

* refactor: Update test

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-13 14:04:00 +02:00
TimL
6aa07243cd Add info based sensors to Smlight integration (#125482)
* Move entity category to class

* improve type hints

* Regenerate sensor snapshots to remove some invalid entries

* Add info sensors that display various device settings/modes

* Add strings for info sensors

* Update sensor snapshot with new sensors

* Use StateType

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

* Use icon translations

* statetype

* drop ip sensor

* Lookup enum values before translating

* entities use options

* update options strings

strings

* lookup values from options

* update sensor snapshot

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-13 13:36:54 +02:00
Joakim Sørensen
5d9c986f87 Bump aiogithubapi from 23.11.0 to 24.6.0 (#125819) 2024-09-13 13:33:57 +02:00
Martin Hjelmare
c7e9096dfd Bump zwave-js-server-python to 0.58.0 (#125666)
* Bump zwave-js-server-python to 0.58.0

* Update lock test
2024-09-13 13:22:37 +02:00
IceBotYT
13d83d86f6 Add reauth flow to Nice G.O. (#125516)
* Add reauth flow to Nice G.O.

* Remove unnecessary freezer use

* Tweaks

* Remove re-raise

* Tiny typing tweak

* Remove if in test

* Remove overlaying old data

* Don't touch title once done
2024-09-13 13:15:53 +02:00
Jan-Philipp Benecke
19a09b93dd Bump pydiscovergy to 3.0.2 (#125853) 2024-09-13 12:59:33 +02:00
Jan-Philipp Benecke
590b3d0fd4 Remove deprecated YAML import from seventeentrack (#125852) 2024-09-13 12:58:51 +02:00
Jan-Philipp Benecke
ff31efdbf7 Bump aiotankerkoenig to 0.4.2 (#125855) 2024-09-13 12:58:23 +02:00
Klaas Schoute
c67698b34e Bump autarco lib to v3.0.0 (#125867)
Bump autarco to v3.0.0
2024-09-13 12:50:04 +02:00
epenet
88cacbc898 Expose component constants for llm helper (#125891)
* Expose climate INTENT_GET_TEMPERATURE

* Expose conversation trace items

* More fixes for llm helper
2024-09-13 12:43:37 +02:00
AlCalzone
3eaa005c7e Use start/stop level change to open/close Z-Wave JS Window Covering CC covers (#125827)
* Z-Wave JS: Use start/stop level change to open/close Window Covering CC covers

* fix: import

* Update tests/components/zwave_js/test_cover.py

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

* assert that up_value and down_value exist

* fix: forgot one

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-13 12:41:13 +02:00
Adam Pasztor
834a1ed608 Add codeowner to ADS integration. (#125893) 2024-09-13 11:20:16 +02:00
epenet
0c178d858f Fix incorrect import in lcn tests (#125877) 2024-09-13 10:12:38 +02:00
epenet
6d17ad4da6 Move ADS supported types to a StrEnum (#125824) 2024-09-13 10:12:24 +02:00
Jan-Philipp Benecke
f311198da0 Fix failing nextdns coordinator test (#125859) 2024-09-13 08:34:55 +02:00
epenet
bd2b72235e Use root import in tests (#125862)
* Use root import in components

* One more
2024-09-13 06:42:32 +02:00
epenet
11f42761aa Fix incorrect import in androidtv tests (#125860) 2024-09-12 23:30:51 +02:00
epenet
47a9dda3b8 Use root import in components (#125858) 2024-09-12 22:21:21 +02:00
G Johansson
d259e4512b Improve logging message for validation in climate (#125837) 2024-09-12 21:41:00 +02:00
epenet
d530fd31b0 Use root import for async_redact_data in diagnostics (#125821) 2024-09-12 20:37:00 +02:00
Erik Montnemery
662a30ffaf Disable voip call_in_progress binary sensor (#125812) 2024-09-12 13:34:11 -05:00
Erik Montnemery
56031b2e1a Disable Wyoming assist_in_progress binary sensor (#125806) 2024-09-12 13:33:35 -05:00
Jan-Philipp Benecke
57e1709782 Remove deprecated YAML import from rova (#125849) 2024-09-12 20:27:42 +02:00
epenet
2c210e4b58 Use root import for websocket_api (#125834) 2024-09-12 19:31:57 +02:00
epenet
6ef1dd56f5 Use root import for device_automation (#125836) 2024-09-12 17:01:25 +02:00
Noah Husby
a4c88a8591 Add entity available attribute to Cambridge Audio (#125831)
* Bump aiostreammagic to 2.2.4

* Move callback handling to entity class

* Wrap all module exceptions in HA errors for Cambridge Audio
2024-09-12 16:09:53 +02:00
epenet
4afc472068 Use root import for media_player and media_source (#125828)
* Use root import for media_player and media_source

* One more
2024-09-12 15:38:53 +02:00
epenet
e27cee53a8 Improve type hints in ads (#125825)
* Improve type hints in ads

* One more

* Adjust
2024-09-12 15:33:27 +02:00
epenet
1a478bd78a Use root import for media_player and media_source in tests (#125829) 2024-09-12 14:55:29 +02:00
Michel van de Wetering
4e1b865775 Remove manufacturer name from Wake on LAN device_info (#123836)
Remove made up  manufacturer
2024-09-12 14:13:23 +02:00
Steven B.
02e392e215 Finish cleanup of deprecated ring update service (#125810) 2024-09-12 12:50:46 +02:00
HarvsG
70ebf2f5d8 Accept more than 1 state for numeric entities in Bayesian (#119281)
* test driven delevopment

* test driven development - multi numeric state

* better multi-state processing

* when state==below return true

* adds test for a bad state

* improve codecov

* value error already handled in async_numeric_state

* remove whitespace

* remove async_get

* linting

* test_driven dev for error handling

* make tests fail correctly

* ensure tests fail correctly

* prevent bad numeric entries

* ensure no overlapping ranges

* fix tests, as error caught in validation

* remove redundant er call

* remove reddundant arg

* improves code coverage

* filter for numeric states before testing overlap

* adress code review

* skip non numeric configs but continue

* wait to avoid race condition

* Better tuples name and better guard clause

* better test description

* more accurate description

* Add comments to calculations

* using typing not collections as per ruff

* Apply suggestions from code review

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

* follow on from suggestions

* Lazy evaluation

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

* update error text in tests

* fix broken tests

* move validation function call

* fixes return type of above_greater_than_below.

* improves codecov

* fixes validation

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-12 12:06:18 +02:00
G Johansson
c21ea6b8da Validate target temp features in Climate Entity (#125180)
* Validate target temp features in Climate Entity

* Soften

* Break long string
2024-09-12 10:13:19 +02:00
Maciej Bieniek
da401cafdf Add support for cover tilt for Shelly 2PM Gen3 (#125717)
* Add support for tilt

* Fix config

* Add test

* Increase test coverage
2024-09-12 09:28:36 +02:00
Erik Montnemery
e89b258970 Disable ESPHome assist_in_progress binary sensor (#125802) 2024-09-12 09:07:01 +02:00
epenet
b1a777a95a Move sunweg sensor definitions (#125754) 2024-09-12 08:05:40 +02:00
epenet
21d3f15059 Move growatt_server sensor definitions (#125755) 2024-09-12 07:58:05 +02:00
Michael Hansen
9651072103 Fix audio format for VoIP (#125785)
Fix audio format
2024-09-11 20:57:47 -04:00
LG-ThinQ-Integration
2475e8c0c4 Add binary_sensor platform to LG ThinQ integration (#125664)
* Add binary_sensor platform to LG ThinQ integration

* Update homeassistant/components/lg_thinq/binary_sensor.py

* Remove unused translation key

* Add one_touch_filter property to binary_sensor

* Add one_touch_filter to icons, strings

* Update homeassistant/components/lg_thinq/strings.json

---------

Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-12 02:32:13 +02:00
Noah Husby
11fe48f2d2 Bump aiostreammagic to 2.2.5 (#125792) 2024-09-12 01:57:54 +02:00
cnico
ee7bee2766 Refactoring flipr integration to prepare Hub device addition (#125262)
* Addition of hub device

* coordinator udata updated after a hub action

* Unit tests update

* Unit tests improvements

* addition of tests on select and switch platforms

* wording

* Removal of select platform for PR containing only one platform

* Remove hub to maintain only the refactoring that prepare the hub device addition

* Review corrections

* wording

* Review corrections

* Review corrections

* Review corrections
2024-09-11 23:34:29 +02:00
Louis Christ
0582c39d33 Remove call to removed function in bluesound integration (#125779)
* Remove async_trigger_sync_on_all

* Use cast instead of instanceof
2024-09-11 23:14:43 +02:00
Louis Christ
f176233f0a Bump pyblu to 1.0.2 (#125784) 2024-09-11 23:14:19 +02:00
Noah Husby
610e9239a4 Add media player test to Cambridge Audio (#125780)
* Add media player tests to Cambridge Audio

* Add media player tests to Cambridge Audio

* Remove unnecessary test case

* Move state_update call out of mock

* Update tests/components/cambridge_audio/test_media_player.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-11 22:06:03 +02:00
Joost Lekkerkerker
98728d37a6 Bump jaraco.abode to 6.2.0 (#125512)
* Bump jaraco.abode to 6.2.0

* Bump jaraco.abode to 6.2.0
2024-09-11 20:50:48 +02:00
Andy Castille
d7cf05e693 Allow attaching additional data to schedule helper blocks (#116585)
* Add a new optional "data" key when defining time ranges for the schedule component that exposes the provided data in the state attributes of the schedule entity when that time range is active

* Exclude all schedule entry custom data attributes from the recorder (with tests)

* Fix setting schedule attributes to exclude from recorder, update test to verify the attributes exist but are not recorded

* Fix test to ensure schedule data attributes are not recorded

* Use vol.Any in place of vol.Or

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

* Remove schedule block custom data shorthand
as requested in https://github.com/home-assistant/core/pull/116585#pullrequestreview-2280260436

* Update homeassistant/components/schedule/__init__.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-11 20:11:06 +02:00
Steven B.
75d3ea34fc Add test snapshots to ring switch and siren platforms (#125771) 2024-09-11 19:46:26 +02:00
Arie Catsman
66f9e06c25 Reload enphase_envoy integration upon envoy firmware change detection (#124650)
* Reload enphase_envoy integration upon envoy firmware change detection.

* remove persistant notification
2024-09-11 19:39:54 +02:00
Tsvi Mostovicz
f52f60307b Implement time triggers with offset for timestamp sensors (#120858)
* Implement time triggers with offset for timestamp sensors

* Fix bad change

* Add testcase for multiple conf_at with offsets

* Fix fixture rename

* Fix testcase - if no offset provided, it should be just the string of the entity id

* Get test to pass

* Simplify code

* Update the messaging and make the offset optional allowing specifying only the entity_id

* Move state tracking one level up

* Implement requesteed changes
2024-09-11 19:33:00 +02:00
Simon Lamon
420bdedcb5 Small improvements to linkplay from reviews (#125766)
Small improvements
2024-09-11 18:38:06 +02:00
Austin Mroczek
0c1a605693 Add TotalConnect option to require alarm code (#122270)
* add config option

* use code_required option in alarm

* test code_required options

* only use code for disarm

* change tests to disarm with code

* remove unneeded code variable

* Update homeassistant/components/totalconnect/alarm_control_panel.py

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

* use ServiceValidationError

* translate ServiceValidationError

* complete typing

* Update tests/components/totalconnect/test_alarm_control_panel.py

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

* use ServiceValidationError in test

* grab usercode from correct spot

* use client code instead of unfilled location code

* Revert "remove unneeded code variable"

This reverts commit 220de0e698e5779fcd7c45bee999a60ad186ab7f.

* remove unneeded code variable

* improve usercode checking

* use freezer

* fix usercode test data

* Update homeassistant/components/totalconnect/strings.json

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

* Update homeassistant/components/totalconnect/strings.json

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

* update test with new message

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-09-11 18:23:19 +02:00
epenet
393181df20 Move overkiz climate definitions (#125741) 2024-09-11 18:15:58 +02:00
epenet
315d59d615 Move overkiz water heater definitions (#125756) 2024-09-11 18:15:33 +02:00
epenet
af5c63f805 Move overkiz cover definitions (#125757) 2024-09-11 18:14:31 +02:00
epenet
ba9dae10c3 Simplify imports in mqtt (#125749) 2024-09-11 18:14:00 +02:00
Jeef
e4347e5520 Add Monarch Money Integration (#124014)
* Initial commit

* Second commit - with some coverage but errors abount

* Updated testing coverage

* Should be just about ready for PR

* Adding some error handling for wonky acocunts

* Adding USD hardcoded as this is all that is currently supported i believe

* updating snapshots

* updating entity descrition a little

* Addign cashflow in

* adding aggregate sensors

* tweak icons

* refactor some type stuff as well as initialize the pr comment addressing process

* remove empty fields from manifest

* Update homeassistant/components/monarchmoney/sensor.py

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

* move stuff

* get logging out of try block

* get logging out of try block

* using Subscription ID as stored in config entry for unique id soon

* new unique id

* giving cashflow a better unique id

* Moving subscription id stuff into setup of coordinator

* Update homeassistant/components/monarchmoney/config_flow.py

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

* ruff ruff

* ruff ruff

* split ot value and balance sensors... need to go tos leep

* removed icons

* Moved summary into a data class

* efficenty increase

* Update homeassistant/components/monarchmoney/coordinator.py

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

* Update homeassistant/components/monarchmoney/coordinator.py

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

* Update homeassistant/components/monarchmoney/coordinator.py

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

* Update homeassistant/components/monarchmoney/entity.py

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

* refactor continues

* removed a comment

* forgot to add a little bit of info

* updated snapshot

* Updates to monarch money using the new typed/wrapper setup

* backing lib update

* fixing manifest

* fixing manifest

* fixing manifest

* Version 0.2.0

* fixing some types

* more type fixes

* cleanup and bump

* no check

* i think i got it all

* the last thing

* update domain name

* i dont know what is in this commit

* The Great Renaming

* Moving to dict style accounting - as per request

* updating backing deps

* Update homeassistant/components/monarch_money/entity.py

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

* Update tests/components/monarch_money/test_config_flow.py

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

* Update tests/components/monarch_money/test_config_flow.py

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

* Update tests/components/monarch_money/test_config_flow.py

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

* Update homeassistant/components/monarch_money/sensor.py

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

* some changes

* fixing capitalizaton

* test test test

* Adding dupe test

* addressing pr stuff

* forgot snapshot

* Fix

* Fix

* Update homeassistant/components/monarch_money/sensor.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-11 17:09:16 +02:00
jonnynch
2ea8af83bd Bump to python-nest-sdm to 5.0.1 (#125706) 2024-09-11 07:33:26 -07:00
Jan-Philipp Benecke
bbdc036c3e Remove deprecated ring.update action (#125762) 2024-09-11 16:27:07 +02:00
Joost Lekkerkerker
344e43a94a Remove commented out code from weatherflow cloud (#125759) 2024-09-11 16:17:51 +02:00
Jan-Philipp Benecke
f6cf23a8c2 Remove deprecated attributes from ping binary sensor (#125760) 2024-09-11 16:17:20 +02:00
Noah Husby
2db488b7a4 Add seek, shuffle, and repeat controls to Cambridge Audio (#125758)
* Add advanced transport controls to Cambridge Audio

* Use TransportControl model for play/pause
2024-09-11 16:09:22 +02:00
epenet
cee14afc03 Move shared constant in zabbix (#125744) 2024-09-11 16:08:12 +02:00
epenet
a7b6652fba Simplify imports in pilight (#125747) 2024-09-11 16:07:57 +02:00
epenet
e140a2980b Move shared constant in ios (#125748) 2024-09-11 16:07:42 +02:00
starkillerOG
29311c7eb8 Fix favorite position missing for Motion Blinds TDBU devices (#125750)
* Add favorite position for TDBU

* fix styling
2024-09-11 15:58:23 +02:00
epenet
059fbe7958 Use HassKey in ads (#125735) 2024-09-11 15:52:44 +02:00
Russell VanderMey
79f3e30fb6 Add TRIGGERcmd integration (#121268)
* Initial commit with errors

* Commitable

* Use triggercmd user id as hub name

* Validate the token

* Use switch type, no trigger yet

* Working integration

* Use triggercmd module instead of httpx

* Add tests for triggercmd integration

* Add triggercmd to requirements_test_all.txt

* Add untested triggercmd files to .coveragerc

* Implement cgarwood's PR suggestions

* Address PR feedback

* Update homeassistant/components/triggercmd/config_flow.py

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

* Update homeassistant/components/triggercmd/hub.py

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

* Update homeassistant/components/triggercmd/strings.json

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

* Update homeassistant/components/triggercmd/hub.py

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

* Get user id via triggercmd module, and better check for status 200 code

* PR feedback fixes

* Update homeassistant/components/triggercmd/switch.py

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

* Update homeassistant/components/triggercmd/switch.py

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

* More PR feedback fixes

* Update homeassistant/components/triggercmd/config_flow.py

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

* Update homeassistant/components/triggercmd/strings.json

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

* Update homeassistant/components/triggercmd/switch.py

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

* More PR feedback fixes

* Update tests/components/triggercmd/test_config_flow.py

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

* Changes for PR feedback

* Changes to address PR comments

* Fix connection error when no internet

* Update homeassistant/components/triggercmd/__init__.py

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

* Update homeassistant/components/triggercmd/config_flow.py

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

* Update homeassistant/components/triggercmd/config_flow.py

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

* Update homeassistant/components/triggercmd/config_flow.py

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

* Update tests/components/triggercmd/test_config_flow.py

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

* Updates for PR feedback

* Update tests/components/triggercmd/test_config_flow.py

---------

Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-11 15:49:37 +02:00
Assaf Akrabi
f42bc3aaae Bump russound to 0.2.0 (#125743)
* Update russound library to fix BrokenPipeError

* Remove library from license expection list
2024-09-11 15:48:20 +02:00
epenet
09dd647741 Simplify imports in mysensors (#125746) 2024-09-11 15:21:51 +02:00
epenet
c33ba541b0 Add flexibility to HassEnforceClassModule (#125739)
* Add flexibility to HassEnforceClassModule

* Adjust
2024-09-11 15:11:03 +02:00
epenet
1d3f431628 Use HassKey in trace (#125751) 2024-09-11 15:06:38 +02:00
epenet
3a05855f71 Simplify imports in remote_rpi_gpio (#125745) 2024-09-11 14:19:49 +02:00
Joseph Chiocchi
eb66a2f32f Update worldclock component config_flow labels to match pre-defined format output (#125707)
update labels for pre-defined options

update labels for pre-defined options to match strftime's formatted output
2024-09-11 13:40:13 +02:00
Arie Catsman
3c1860cca2 Add storage settings for enphase_envoy batteries without enpower device (#125527)
* Add battery storage settings for enphase_envoy EU configuration

* Add EU Battery test fixture to enphase_envoy

* Add tests and snapshots for enphase_envoy EU battery

* refactor eu battery fixture to align with other enphase_envoy fixtures

* remove if from test and use test parameter for eu battery enphase_envoy tests
2024-09-11 13:32:29 +02:00
Jason Hunter
356bca119d Duke Energy Integration (#125489)
* Duke Energy Integration

* add recorder mock fixture to all tests

* address PR comments

* update tests

* add basic coordinator tests

* PR comments round 2

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-11 13:28:47 +02:00
Arie Catsman
1a21266325 Improve test code coverage for enphase_envoy (#125582)
* Improve test code coverage for enphase_envoy

* Update tests/components/enphase_envoy/test_init.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-11 13:03:17 +02:00
Adam Pasztor
d722b7255c Add ADS valve integration (#125619)
* feat: Add ADS valve integration

* fix: replace imports to adhere with #125665

* fix: address review feedback.

* fix: address review feedback.
2024-09-11 13:02:06 +02:00
Adam Goode
647017d18c Take a list of values for testing Threshold (#125705)
When parameterizing these tests, I forgot that hysteresis tests are
sensitive to all previous values rather than just the previous one.

This change should restore behavior to the pre-parameterization version
by replaying all value histories.

Subsequent changes will add new test cases.
2024-09-11 13:00:57 +02:00
Simon Lamon
b1698bc0d5 Allow to play a LinkPlay preset (#125204)
* Allow to play a linkplay preset

* Make it an entity service

* Fixes

* PR feedback

* Rename more
2024-09-11 12:54:12 +02:00
TimL
b8ce687ec2 Add server side events to Smlight integration (#125553)
* Register SSE client

* Add switch events for settings changes

* Mock sse settings events

* Apply suggestions from code review

Co-authored-by: Paarth Shah <mail@shahpaarth.com>

* access callbacks from mock call_args

---------

Co-authored-by: Paarth Shah <mail@shahpaarth.com>
2024-09-11 12:53:08 +02:00
Noah Husby
2f68bbd27a Bump aiostreammagic to 2.2.3 (#125704)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-11 12:51:56 +02:00
epenet
419e83f6d8 Bump sfrbox-api to 0.0.11 (#125732)
* Bump sfrbox-api to 0.0.11

* Re-enable tests
2024-09-11 12:51:39 +02:00
Matthias Alphart
eb5390b94d Update knx-frontend to 2024.9.10.221729 (#125734) 2024-09-11 12:23:23 +02:00
LG-ThinQ-Integration
8e026bf95d Add common apis to base entity class of LG ThinQ integration (#125713)
Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
2024-09-11 11:52:19 +02:00
epenet
c4b870bfd3 Add EntityDescription classes to pylint plugin (#125596)
* Add EntityDescription classes to pylint plugin

* Ignore existing violations

* Adjust
2024-09-11 11:30:35 +02:00
shapournemati-iotty
618586c577 Upgrade iottycloud to 0.2.1 (#125731)
upgrade iottycloud lib to 0.2.1
2024-09-11 11:21:59 +02:00
Robert Resch
acc046def6 Bump uv to 0.4.9 (#125726) 2024-09-11 10:41:36 +02:00
Matrix
da1003ac41 Improve yolink code readability (#125724)
Improve code readability
2024-09-11 10:27:48 +02:00
Robert Resch
7555f209b6 Use uv at runtime too (#125110) 2024-09-11 09:43:26 +02:00
chammp
b3377fe5fb Add condition to trigger template entities (#119689)
* Add conditions to trigger template entities

* Add tests

* Fix ruff error

* Ruff

* Apply suggestions from code review

* Deduplicate

* Tweak name used in debug message

* Add and improve type annotations of modified code

* Adjust typing

* Adjust typing

* Add typing and remove unused parameter

* Adjust typing

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

* Adjust return type

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-11 09:36:49 +02:00
Jason Hunter
74834b2d88 Pin pyasn1 until fixed (#125712)
* pin pyasn1 until fixed

* add to gen requirements
2024-09-11 09:35:05 +02:00
chammp
56dfb2c734 Add unit_of_measurement to template numbers (#122862) 2024-09-11 08:47:17 +02:00
Michael Hansen
8e0b2b752c Cancel running pipeline on new pipeline or announcement (#125687)
* Cancel running pipeline

* Incorporate feedback

* Change to async_create_task
2024-09-10 20:56:15 -04:00
Michael Hansen
c01bdd860a Unload assist satellite platform on disconnect (#125697) 2024-09-10 20:50:22 -04:00
mvn23
2611f72f5d Add LED mode select entities to opentherm_gw (#125702)
Add select entities for LED mode to opentherm_gw
2024-09-11 00:12:09 +02:00
Shai Ungar
1be455e0e0 Add URL description for Sabnzbd integration (#125414)
* Create pull.yml

* Add URL description

* remove file
2024-09-10 22:59:50 +02:00
mvn23
2e54967a6d Add select platform to opentherm_gw (#125585)
* * Add select platform to opentherm_gw
* Add tests for select entities

* Address capitalization feedback

* Add initial state on startup and status update support

* Wrap lambdas in parentheses
2024-09-10 22:49:45 +02:00
Jan-Philipp Benecke
6c5dfd0bbc Fix failing elevenlabs tts test (#125698) 2024-09-10 22:35:24 +02:00
Noah Husby
69530a5c94 Add pre-amp support for Cambridge Audio (#125699) 2024-09-10 22:34:51 +02:00
Noah Husby
b640efa209 Bump aiostreammagic to 2.1.0 (#125696) 2024-09-10 22:23:34 +02:00
Jan Bouwhuis
5c2d7b8fa5 Fix incomfort invalid setpoint if override is reported as 0.0 (#125694) 2024-09-10 22:04:53 +02:00
Joost Lekkerkerker
688da5389c Mark UVC as strict typed (#123239) 2024-09-10 22:02:46 +02:00
Robert Resch
377ae75e60 Disbale Tfiac integration due invalid wheel (#125692) 2024-09-10 21:53:04 +02:00
Maciej Bieniek
9bbd59438e Bump nextdns to version 3.3.0 (#125688) 2024-09-10 21:20:43 +02:00
Erik Montnemery
dd4f1a0d0f Simplify recorder statistics_meta_manager (#125648) 2024-09-10 21:00:06 +02:00
Steven B.
40ee39f258 Update tplink config to include aes keys (#125685) 2024-09-10 13:52:10 -05:00
epenet
44ca43c7ee Add pylint check for DOMAIN alias (#125559) 2024-09-10 20:41:04 +02:00
epenet
3536ba43f5 End deprecation setting disabled_by as string (#125646) 2024-09-10 20:39:51 +02:00
Erik Montnemery
15e5851383 Extend deprecation period for hass.components by 6 months (#125659) 2024-09-10 20:38:45 +02:00
Andre Lengwenus
2b3a6e5361 Refactor LcnEntity signature (#124411)
* Refactorings due to change of LcnEntity signature

* Fix PR comments

* Move parent class LcnEntity to entity.py
2024-09-10 19:38:40 +02:00
Steven B.
aa8f98392d Bump tplink python-kasa lib to 0.7.3 (#125686) 2024-09-10 19:35:18 +02:00
Erik Montnemery
bde92b34dd Remove recorder history queries for database schemas < 31 (#125652) 2024-09-10 19:26:19 +02:00
Noah Husby
650c92a3cf Add Cambridge Audio integration (#125642)
* Add Cambridge Audio integration

* Add zeroconf discovery to Cambridge Audio

* Bump aiostreammagic to 2.0.1

* Bump aiostreammagic to 2.0.3

* Add tests to Cambridge Audio

* Fix package names for Cambridge Audio

* Removed unnecessary mock from Cambridge Audio tests

* Clean up Cambridge Audio integration

* Add additional zeroconf tests for Cambridge Audio

* Update tests/components/cambridge_audio/test_config_flow.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-10 18:27:51 +02:00
Roelf Zomerman
457cb7ace0 Add velbus HVAC options (#106570)
* Added HVAC options

* Update manifest.json

required aio to 2023.12.0

* Update manifest.json

* Add files via upload

* Update homeassistant/components/velbus/climate.py

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

* Update climate.py

removed unused variables for cool and heat

* Update climate.py

removed unused functions

* Update homeassistant/components/velbus/climate.py

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

* Update climate.py

accepted changes

* Update climate.py

remove state None for HVAC-MODE

* Update climate.py

changed set_hvac_mode to remove none and only switch when state /= requested mode

* Update climate.py

indent on line 94/95

* Update climate.py

changed set_hvac_mode attribute type to match superclass ClimateEntity (HVACMode)

* Update climate.py

changed def hvac_mode to 2 return options (to avoid any)

* Update climate.py

ruff formatting

* Update climate.py

added serviceValidationError section in hvac_mode setting

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Update climate.py

* Update strings.json

* Update strings.json

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-10 18:10:52 +02:00
Álvaro Fernández Rojas
3e8fe57fc1 Update aioairzone to v0.9.2 (#125682)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-10 18:04:00 +02:00
Jeef
90bbe462ff Bump weatherflow4py to 0.3.4 (#125681)
removed print statemnet in backing lib
2024-09-10 17:54:19 +02:00
Adam Goode
72d546d6c2 Move constants in Threshold (#125683) 2024-09-10 17:51:23 +02:00
Simon
dd08a6505e Use default voice id as fallback in get_tts_audio (#123624) 2024-09-10 17:42:17 +02:00
Paarth Shah
47bcb214d1 Bump matrix-nio to 0.25.1 (#125555) 2024-09-10 17:31:45 +02:00
Phill (pssc)
a16ef5b7ff Add squeezebox service sensors (#125349)
* Add server sensors

* Fix Platforms order

* Fix spelling

* Fix translations

* Add sensor test

* Case changes

* refactor to use native_value attr override

* Fix typing

* Fix cast to type

* add cast

* use update platform for LMS versions

* Fix translation

* remove update entity

* remove possible update entites

* Fix and clarify

* update to icon trans remove update plaform entitiy supporting items

* add UOM to sensors

* correct criptic prettier fail

* reword other players

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-10 17:17:26 +02:00
Kristof Mattei
300445948e Fix Lyric climate Auto mode (#123490)
fix: Lyric has an actual "Auto" mode that is exposed if the device has an Auto mode.
2024-09-10 17:06:25 +02:00
Krzysztof Dąbrowski
8324360045 Add Roomba last mission sensor (#123048)
* Roomba: add last mission sensor

* Set sensor as unavailable if last mission timestamp is 0

Previously, if the `mssnStrtTm` was 0, the function would return a 1970-01-01 (Unix epoch start date). With this change, the function will return None if the timestamp is 0 and the sensor will become unavailable.

* Update last_mission property to use dt_util.utc_from_timestamp
2024-09-10 17:04:25 +02:00
Jeef
2d0ccf84f9 Bump weatherflow4py to 0.3.3 (#125676)
version bump
2024-09-10 17:04:10 +02:00
Erik Montnemery
ebd2034564 Disable sfr_box diagnostic test (#125678) 2024-09-10 16:51:32 +02:00
Louis Christ
5852917a10 Replace Throttle in bluesound integration (#124943)
* Replace Throttle with throttled and long-polling

* Remove custom throttled
2024-09-10 16:43:10 +02:00
Adam Goode
a361c01ed6 Parameterize many of the threshold tests (#125521)
threshold: Parameterize many of the tests

This simplfies the structure of the basic threshold tests,
making it easier to subsequently update or add missing test cases.

Except for a few removals of an inconsistenly applied assertions on
`state.attributes["sensor_value"]`, there are no changes to the existing
tests intended. All previous tests are expected to run identically.

A few extra test cases for None are added.
2024-09-10 16:16:45 +02:00
silentguy256
379a8f2f86 Add state_class to OHM sensors (#125567)
* Minimum change required to get OHW into statistics

Not sure if there is any reason not to have this, my only idea would be that there would be that there are A LOT of values, but as far as I can see there are already long term data being stored about them anyway

* Update sensor.py

Guess that was an old way of doing it -_-

* Update sensor.py

remove spaces the break ruff -_-

* Update sensor.py

ruff is rough
2024-09-10 16:10:36 +02:00
Joost Lekkerkerker
d8bb8f1efb Deprecate Daikin YAML platform setup (#125158) 2024-09-10 15:58:53 +02:00
RJPoelstra
db61f8a0fa Bump python-MotionMount to 2.1.0 (#125660) 2024-09-10 15:58:20 +02:00
Adam Pasztor
e261a159d5 Add new functions to ADS sensor integration (#125331)
* feat: Add new functions to ADS sensor integration

* fix: use constant for SensorDeviceClass, refactor entity initialisation.

* fix: add python typing.

* refactor: value conversion based on ADS_TYPE, and in the dedicated data fetching method.

* fix: removed unnecessary sensor types.

* refactor: optimised the usage of device classes and added state classes. removed unit of measurement

* fix: added unit of measurement to ADS sensor

* fix: addressing review suggestions.

* fix: address review suggestions.
2024-09-10 15:51:15 +02:00
René Honig
337335bfad Add Human Shape Detect to ONVIF (#125335)
added Humap Shape Detect
2024-09-10 15:39:53 +02:00
Thomas55555
ed907da190 Bump aioautomower to 2024.9.0 (#125647)
bump aioautomower to 2024.9.0
2024-09-10 15:38:18 +02:00
Markus Jacobsen
3ea4c3b8bf Fix malformed response in Bang & Olufsen testing (#125658)
Fix malformed SoftwareUpdateStatus object
2024-09-10 15:36:25 +02:00
epenet
afeab659e1 Rename Entity module in tellduslive (#125668) 2024-09-10 15:34:30 +02:00
Joost Lekkerkerker
130b6559a6 Add coordinator to Daikin (#124394)
* Add coordinator to Daikin

* Add coordinator to Daikin

* Fix

* Add seconds
2024-09-10 15:30:30 +02:00
epenet
97c55ae6f1 Warn on non-string config entry unique IDs (#125662)
* Warn on non-string config entry unique IDs

* Add comment

* isinstance
2024-09-10 15:30:03 +02:00
Robert Resch
67dc870e52 Bump uv to 0.4.8 (#124867) 2024-09-10 15:28:17 +02:00
epenet
2f38731f62 Migrate wolflink config_entry unique_id to string (#125653)
* Migrate wolflink config_entry unique_id to string

* Move CONFIG to const

* isinstance

* Migrate identifiers

* Use async_migrate_entry
2024-09-10 15:16:26 +02:00
epenet
745a05d984 Move Hub and Entity to separate module in ADS (#125665)
* Move Hub and Entity to separate module in ADS

* Missed one
2024-09-10 15:02:09 +02:00
Robert Resch
7f7db4efb6 Disable ThermoWorks Smoke due incompatible dependencies (#125661) 2024-09-10 14:52:03 +02:00
Robert Resch
da81efe9c1 Disable fail-fast on publish container jobs (#125245) 2024-09-10 13:43:25 +02:00
Erik Montnemery
99122fcb78 Remove recorder history queries for database schemas < 25 (#125649) 2024-09-10 12:43:08 +02:00
Sergey Dudanov
dcd7830a35 Add calories to energy sensor device class (#122796)
* added calories to energy class

* changes

* temporarily solving the problem with conversion accuracy

* add tests

* added calories to energy class

* changes

* add tests

* Update homeassistant/util/unit_conversion.py

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

* Update homeassistant/util/unit_conversion.py

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

* apply suggestions

* Update homeassistant/util/unit_conversion.py

---------

Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-10 12:22:15 +02:00
RJPoelstra
9f284c0582 Add model_id to MotionMount integration (#125650) 2024-09-10 11:44:17 +02:00
epenet
9616d68e03 Improve config flow type hints in yeelight (#125319) 2024-09-10 11:42:44 +02:00
LG-ThinQ-Integration
cb97085e48 Create property_ids with ActiveMode in LG ThinQ integration (#125638)
* Bump thinqconnect to 0.9.7

* Pass a r/w parameter to get active properties id from the cloud

---------

Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
2024-09-10 10:59:07 +02:00
LG-ThinQ-Integration
7eba111704 Bump thinqconnect to 0.9.7 (#125587)
Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
2024-09-10 10:32:58 +02:00
G Johansson
3cc5a29c1b Link mold_indicator entity to device from humidity sensor (#125528) 2024-09-10 08:42:22 +02:00
epenet
2fa0f283ea Add alias to DOMAIN import in config and demo (#125570) 2024-09-10 08:41:47 +02:00
epenet
7e2e3c4780 Rename HassEnforceCoordinatorModule (#125592) 2024-09-10 08:40:49 +02:00
J. Nick Koston
4c59bae1d2 Remove myself from codeowner from lutron_caseta (#125609) 2024-09-10 08:40:18 +02:00
epenet
675c467e12 Add alias to DOMAIN import (part 2) (#125561) 2024-09-10 08:40:02 +02:00
epenet
130e7317bc Add alias to DOMAIN import (part 3) (#125562) 2024-09-10 08:39:19 +02:00
J. Nick Koston
bb56610093 Make auth safe params a frozenset (#125640) 2024-09-10 08:37:50 +02:00
Michael Hansen
bd5892f2a6 Set responding state in assist satellite announcements (#125632)
Set responding state in announcements
2024-09-10 08:22:14 +02:00
dependabot[bot]
06e83340e8 Bump actions/attest-build-provenance from 1.4.2 to 1.4.3 (#125390)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-10 08:16:04 +02:00
J. Nick Koston
7508a2b383 Bump yarl to 1.1.11 (#125633)
changelog: https://github.com/aio-libs/yarl/compare/v1.11.0...v1.11.1
2024-09-10 00:38:59 -04:00
Paul Bottein
f1e4229b23 Update frontend to 20240909.1 (#125610) 2024-09-09 16:33:08 -04:00
Klaas Schoute
c9a936f375 Catch Forecast.solar ConnectionError when API down (#125621)
Catch Forecast.solar connection errors
2024-09-09 16:32:51 -04:00
epenet
ce4a62574a Add alias to DOMAIN import (part 1) (#125560)
* Add alias to DOMAIN import (part 1)

* Revert tomato/xiaomi
2024-09-09 22:05:27 +02:00
epenet
e750f8f457 Add alias to DOMAIN import (part 4) (#125563)
* Add alias to DOMAIN import (part 4)

* Simplify

* More integration

* Apply suggestions from code review

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

* Revert "Apply suggestions from code review"

This reverts commit 07471d3629.

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-09-09 21:32:33 +02:00
Erik Montnemery
ded34561b1 Simplify cv._base_trigger_list_flatten (#125613) 2024-09-09 21:14:41 +02:00
epenet
e0a221ba1f Add alias to DOMAIN import in deconz (#125568) 2024-09-09 19:27:06 +02:00
Martin Hjelmare
c5453835c2 Bump aioopenexchangerates to 0.6.2 (#125593) 2024-09-09 17:36:19 +02:00
Robert Resch
0459596e97 Enable hadolint for hassfest docker image and adjust hadolint job (#125146) 2024-09-09 16:02:44 +02:00
epenet
6ea59ffa94 Add alias to DOMAIN import in tests [h-m] (#125577)
* Add alias to DOMAIN import in tests [h-m]

* Revert changes to mqtt
2024-09-09 15:21:01 +02:00
epenet
aab939cf6c Add alias to DOMAIN import in tests [a-d] (#125573) 2024-09-09 15:20:40 +02:00
epenet
fe2402b611 Add alias to DOMAIN import in tests [e-g] (#125575) 2024-09-09 15:18:28 +02:00
epenet
029dbe7d94 Add alias to DOMAIN import in homekit (#125572) 2024-09-09 15:14:35 +02:00
epenet
af6434a533 Add alias to DOMAIN import in tests [n-z] (#125581) 2024-09-09 15:14:05 +02:00
Erik Montnemery
dee4b33c64 Sort and remove duplicates from template/const.py (#125591) 2024-09-09 15:11:18 +02:00
Ludovic BOUÉ
8fff0075ba Add Matter BatVoltage attribute from PowerSource cluster (#125503)
* Add BatVoltage Attribute from PowerSource Cluster

* Update sensor.py

Remove comment

* Update homeassistant/components/matter/sensor.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-09 14:50:01 +02:00
Martin Hjelmare
d7caaceb64 Document plant integration development state (#125590) 2024-09-09 14:47:04 +02:00
Jan Bouwhuis
3889482f0e Do not directy import platform DOMAIN const in MQTT platform tests (#125589) 2024-09-09 14:36:15 +02:00
Michael Hansen
1dc496a2dd Add announce support to ESPHome Assist Satellite platform (#125157)
Rebuild
2024-09-09 08:25:25 -04:00
karwosts
056e6eae82 Add a syntax for merging lists of triggers (#117698)
* Add a syntax for merging lists of triggers

* Updating to the new syntax

* Update homeassistant/helpers/config_validation.py

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

* fix suggestion

* update test and add comments

* not actually json

* move test to new file

* update tests

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-09-09 13:51:32 +02:00
epenet
06e876aee0 Add alias to DOMAIN import in group (#125569) 2024-09-09 11:07:19 +02:00
Matthias Alphart
713689491b Remove KNX yaml config from hass.data (#124050)
* Remove KNX yaml config from `hass.data`

* Use HassKey
2024-09-09 09:01:21 +02:00
Chris Brouwer
17ab45da43 Fix support for Heat meters to DSMR integration (#125523)
* Fix support for Heat meters to DSMR integration

* Fixed test
2024-09-09 08:36:59 +02:00
Erik Montnemery
2a1df2063d Separate recorder test fixtures disabling context id migration (#125324)
* Separate recorder test fixtures disabling context id migration

* Fix test
2024-09-09 08:16:30 +02:00
Jesse Hills
d88487e30b Bump aioesphomeapi to 25.4.0 (#125554) 2024-09-08 22:54:18 -05:00
Michael Hansen
8884465262 ESPHome media proxy (#123254)
* Add ffmpeg proxy view

* Add tests

* Add proxy to media player

* Add proxy test

* Only allow one ffmpeg proc per device

* Incorporate feedback

* Fix tests

* address comments

* Fix test

* Update paths without auth const

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-09-08 22:22:35 -04:00
Denis Shulyaka
a85ccb94e3 LLM Tool parameters check (#123621)
* LLM Tool parameters check

* fix tests
2024-09-08 18:42:51 -07:00
J. Nick Koston
391de22342 Bump yarl to 1.11.0 (#125549)
changelog: https://github.com/aio-libs/yarl/compare/v1.10.0...v1.11.0
2024-09-08 20:25:10 -04:00
J. Nick Koston
0592a39164 Fix building multidict binary wheels on armv7 and armhf (#125550)
Fix building multidict wheels on armv7 and armhf

This is the same fix as we needed for yarl

The armv7 and armhf wheels are missing
for multidict 6.0.5

https://wheels.home-assistant.io/musllinux/
2024-09-08 20:24:57 -04:00
Álvaro Fernández Rojas
dca287748d Update aioairzone to v0.9.1 (#125547) 2024-09-08 17:56:29 -05:00
epenet
021878e942 Migrate ambient_network to use runtime_data (#125535) 2024-09-08 17:01:45 -05:00
epenet
0f2525d476 Migrate anova to use runtime_data (#125536) 2024-09-08 22:13:32 +02:00
epenet
4d804649fc Migrate apcupsd to use runtime_data (#125539) 2024-09-08 22:07:19 +02:00
epenet
7209b3c7d3 Migrate aosmith to use runtime_data (#125538) 2024-09-08 22:05:48 +02:00
epenet
6f88b6e64e Migrate anthemav to use runtime_data (#125537) 2024-09-08 22:04:34 +02:00
Jan-Philipp Benecke
4bcde36a97 Fix failing blebox climate tests (#125522) 2024-09-08 15:42:33 -04:00
epenet
7f4fc4d371 Migrate airvisual to use runtime_data (#125532)
* Migrate airvisual to use runtime_data

* Remove usedefault

* Adjust
2024-09-08 21:39:05 +02:00
Jason Hunter
513361ef0f Fix failing template config flow tests (#125534)
fix: failing template config flow tests
2024-09-08 21:38:31 +02:00
epenet
8ce236de80 Migrate amberelectric to use runtime_data (#125533) 2024-09-08 21:29:14 +02:00
epenet
8b8083a639 Migrate smappee to use runtime_data (#125529) 2024-09-08 21:18:08 +02:00
Steven B.
26ac8e35cb Add event platform to ring (#125506) 2024-09-08 13:32:34 -05:00
Jan-Philipp Benecke
20600123f8 Update bring todo entity snapshots (#125518)
Update bring todo snapshot
2024-09-08 18:52:21 +02:00
Steven B.
b3d6f8861f Fix ring notifications (#124879)
* Enable ring event listener to fix missing notifications

* Fix pylint test CI fail

* Reinstate binary sensor and add deprecation issues

* Add tests

* Update post review

* Remove PropertyMock

* Update post review

* Split out adding event platform
2024-09-08 18:17:30 +02:00
David Knowles
5405279273 Fix Schlage removed locks (#123627)
* Fix bugs when a lock is no longer returned by the API

* Changes requested during review

* Only mark unavailable if lock is not present

* Remove stale comment

* Remove over-judicious nullability checks

* Remove another unnecessary null check
2024-09-08 17:39:23 +02:00
Paulus Schoutsen
634582eab7 Ensure Linkplay model_id is always defined (#125488)
Linkplay: ensure model_id always defined
2024-09-08 11:36:36 -04:00
Pete Sage
2c48f9aa4c FIx Sonos announce regression issue (#125515)
* initial commit

* initial commit
2024-09-08 17:34:27 +02:00
Whitney Young
8d0dda6523 Remove notify support for templates (#122820) 2024-09-08 17:31:58 +02:00
Joost Lekkerkerker
6967c70580 Change Knocki integration type to hub (#124863)
* Change Knocki integration type

* Fix
2024-09-08 17:11:19 +02:00
Janusz Gregorczyk
7bab3579ec Set required attribute when using Todoist Sync API reminder_add command (#122644)
* Set type=absolute when using Todoist Sync API reminder_add command.

This argument is required:

ref.: https://developer.todoist.com/sync/v8/#add-a-reminder

* Fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-08 16:50:24 +02:00
Ian
aa8c4a6eb7 Add ability to play plex media as the non-primary user (#122039)
* Adds ability to play media as the non-primary user

* Add return type for set function
2024-09-08 15:42:26 +02:00
Andrew Jackson
99a50fe874 Correct Mastodon IOT class (#125511)
* Correct iot class

* Fix hassfest
2024-09-08 15:40:53 +02:00
G Johansson
65b48aa903 Add config flow to Mold indicator (#122600)
* Add config flow to Mold indicator

* strings

* Add tests

* Is a helper

* Add back platform yaml

* Fixes

* Remove wait
2024-09-08 15:21:53 +02:00
treetip
af62e8267f Add set_profile service for Vallox integration (#120225)
* Add set_profile service for Vallox integration

* Merge profile constants, use str input for service

* add service test and some related refactoring

* Change service uom to 'minutes'

Co-authored-by: Sebastian Lövdahl <slovdahl@hibox.fi>

* Update icons.js format after rebase

* Translate profile names for service

* Fix test using wrong dict

---------

Co-authored-by: Sebastian Lövdahl <slovdahl@hibox.fi>
2024-09-08 15:07:42 +02:00
mvn23
45ab6e9b06 Deprecate opentherm_gw configuration through configuration.yaml (#125045)
* Create an issue in the issue registry if deprecated config is found in configuration.yaml
* Add deprecation comments to functions that can be removed after deprecation period
* Add test for the creation of a deprecation issue

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-08 14:45:37 +02:00
G Johansson
a7a219b99b Deprecate aux_heat in econet (#125365)
* Deprecate aux_heat in econet

* strings

* Use generator
2024-09-08 14:24:39 +02:00
G Johansson
c2d5696b5b Add validation to climate hvac mode (#125178)
* Add validation to climate hvac mode

* Make softer

* Remove string

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-08 14:24:12 +02:00
G Johansson
2ef37f01b1 Deprecate aux_heat from Nexia climate entity, implement switch (#125250)
* Remove deprecated aux_heat from nexia

* Add back aux_heat

* Raise issue
2024-09-08 14:23:24 +02:00
G Johansson
84def0c041 Deprecate aux_heat in elkm1 (#125372)
* Deprecate aux_heat in elkm1

* Update homeassistant/components/elkm1/switch.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-08 14:23:00 +02:00
G Johansson
26ede9a679 Fix yale_smart_alarm on missing key (#125508) 2024-09-08 14:06:40 +02:00
Jan Rieger
c0ee12ca41 Add translation to Jellyfin (#123857)
* Add translation to Jellyfin

* Fix

* Address feedback
2024-09-08 14:00:34 +02:00
dougiteixeira
926ffe536c Fix UI config validation for button and switch actions in Template (#121810)
Fix IU config validation for button and switch actions in Template
2024-09-08 13:59:54 +02:00
Luke Lashley
2b2f5d6693 Add sleep to map select for Roborock (#122625)
* Add sleep to map select

* Update homeassistant/components/roborock/select.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-08 13:56:42 +02:00
Guido Schmitz
d4f0aaa089 Add last restart sensor to devolo_home_network (#122190)
* Add last restart sensor to devolo_home_network

* Add missing test

* Rename fetch function

* Fix mypy
2024-09-08 13:50:36 +02:00
Mr. Bubbles
5b434aae6e Add DeviceInfo to Bring integration (#122419)
* Add DeviceInfo to Bring integration

* deeplink to shopping list

* Move device info to a entity base class
2024-09-08 13:45:12 +02:00
G Johansson
1ffd797e0a Clean up Mold indicator (#123080)
* Improve code quality on mold_indicator

* mypy

* Fix mypy
2024-09-08 13:11:57 +02:00
Simon
8acc027f38 Add voice settings to ElevenLabs options flow (#123265)
Add voice settings to options flow
2024-09-08 13:11:26 +02:00
Joakim Plate
3139a7e431 Adjust generic hygrostat to detect reported events for stale tracking (#124109)
* Listen to reported events for stale check

* Always enable stale sensor tracking

There is no reason not to have this enabled
now that we track reported events for sensors.

* Remove default stale code

* Adjust for ruff change
2024-09-08 12:51:08 +02:00
Joakim Plate
e7cb646a58 Use json data instead of timedelta for tests in generic hygrostat (#124111)
Use json data instead of timedelta for tests
2024-09-08 12:50:29 +02:00
Kevin Stillhammer
ec9f50317f Allow waze_travel_time multiple excl/incl filter (#117252)
* Allow multiple excl/incl filter

* Use list comprehension for should_include

* Do not use mutable object as default param

* Inline migration func
2024-09-08 12:50:04 +02:00
Mr. Bubbles
fd0c63fe52 Add text-selector autocomplete in Bring config flow (#124063)
Add autocomplete to Bring config flow schema
2024-09-08 12:29:42 +02:00
Markus Jacobsen
31aef86c0f Add various assertions to Bang & Olufsen testing (#125429)
Add various assertions
2024-09-08 12:22:21 +02:00
Markus Jacobsen
943b96e7a1 Fix Bang & Olufsen testing typing (#125427)
* Fix test parameter typed as callable instead of context manager

* Add missing AsyncMock typing
2024-09-08 12:18:32 +02:00
Arie Catsman
74b78307ee Add balanced grid import/export to enphase_envoy (#123154)
* Add balanced grid import/export to enphase_envoy

* rebuild sensor snapshot after dev merge

* Cleanup snapshot file
2024-09-08 12:15:00 +02:00
Josef Zweck
c0492d4af4 Add reconfigure for lamarzocco (#122160)
* add reconfigure

* fix strings, add to label

* Update homeassistant/components/lamarzocco/config_flow.py

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

* Update test_config_flow.py

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

* ruff

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-08 12:04:35 +02:00
Nerdix
f5b754a382 Reorder openweathermap modes according to recommendation in documentation (#125395)
Reorder modes and default to new API version 3
2024-09-08 12:03:14 +02:00
Simon Lamon
cee695da28 Add missing previous and next commands in LinkPlay (#125450)
Previous / Next commands
2024-09-08 12:00:03 +02:00
Arie Catsman
2ef1c96325 Include all enphase_envoy devices in async_remove_config_entry_device (#124533)
* Include all enphase_envoy devices in async_remove_config_entry_device

* refactor if tests
2024-09-08 11:56:23 +02:00
Marc Mueller
d3badb88ef Fix solarlog test RuntimeWarning (#125504) 2024-09-08 11:43:50 +02:00
Joost Lekkerkerker
1f80b803f7 Fix after review comments for Acmeda (#125501)
Fix
2024-09-08 11:03:18 +02:00
TimL
2ea41c90b5 Bump pymslight to 0.0.15 (#125455)
Bump pymslight 0.0.15 for Smlight integration
2024-09-08 11:00:10 +02:00
Alan Murray
3fa24f87c0 Change of acmeda element unique_id (#124963)
* Update base.py

Change unique_id to be explicitly a string.

* Update __init__.py

Add unique id migration

* unique_id migration unit tests

* Update __init__.py

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

* Update __init__.py

Fixed ruff formatting issue

* Update __init__.py

* Update __init__.py

* In tests, load entity registries as test fixtures

* Fix

* Fix

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-08 10:42:54 +02:00
Willem-Jan van Rootselaar
bfe19e82ff Add tests for BSBLAN climate component (#124524)
* chore: Add tests for BSBLAN climate component

* fix return types

* fix MAC data

* chore: Update BSBLAN climate component tests

used setup from conftest  added setup for farhenheit temp unit

* chore: Update BSBLAN climate component tests

use syrupy to compare results

* add test for temp_unit

* update climate tests

set current_temperature to None in test case. Is this the correct way for testing?

* chore: Update BSBLAN diagnostics to handle asynchronous data retrieval

* chore: Refactor BSBLAN conftest.py to simplify fixture and patching

* chore: Update BSBLAN climate component tests

100% test coverage

* chore: Update BSBLAN diagnostics to handle asynchronous data retrieval

* chore: Update snapshots

* Fix BSBLAN climate test for async_set_preset_mode

- Update test_async_set_preset_mode to correctly handle ServiceValidationError
- Check for specific translation key instead of full error message
- Ensure consistency between local tests and CI environment
- Import ServiceValidationError explicitly for clarity

* Update homeassistant/components/bsblan/entity.py

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

* chore: Update BSBLAN conftest.py to simplify fixture and patching

* chore: Update BSBLAN integration setup function parameter name

* chore: removed set_static_value

* refactor: Improve BSBLANClimate async_set_preset_mode method

This commit refactors the async_set_preset_mode method in the BSBLANClimate class to improve code readability and maintainability. The method now checks if the HVAC mode is not set to AUTO and the preset mode is not NONE before raising a ServiceValidationError.

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

* refactor: Improve tests

test_celsius_fahrenheit
test_climate_entity_properties
test_async_set_hvac_mode

test_async_set_preset_mode still broken. Not sure why hvac mode will not set. THis causes error with preset mode set

* update snapshot

* fix DOMAIN bsblan

* refactor: Improve BSBLANClimate async_set_data method

* refactor: fix last tests

* refactor: Simplify async_get_config_entry_diagnostics method

* refactor: Improve BSBLANClimate async_set_temperature method

This commit improves the async_set_temperature method in the BSBLANClimate class. It removes the unnecessary parameter "expected_result" and simplifies the code by directly calling the service to set the temperature. The method now correctly asserts that the thermostat method is called with the correct temperature.

* refactor: Add static data to async_get_config_entry_diagnostics

* refactor: Add static data to async_get_config_entry_diagnostics

right place

* refactor: Improve error message for setting preset mode

This commit updates the error message in the BSBLANClimate class when trying to set the preset mode.

* refactor: Improve tests

* Fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-08 10:41:54 +02:00
Avi Miller
5108e1a1cd Bump aiolifx and aiolifx-themes to support more than 82 zones (#125487)
Signed-off-by: Avi Miller <me@dje.li>
2024-09-08 09:53:32 +02:00
Andre Lengwenus
5e1b4b2d23 Clean up tests for LCN (#125493)
* Remove patches on 3rd party module level

* Cleanup test_init

* Cleanup platform tests

* Cleanup test_services

* Cleanup test_websockets

* Cleanup test_device_trigger

* Cleanup test_events

* Remove unused fixture
2024-09-08 09:20:57 +02:00
J. Nick Koston
03a6eb26be Bump zeroconf to 0.134.0 (#125491)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.133.0...0.134.0
2024-09-08 09:10:46 +02:00
J. Nick Koston
0a11acf7ae Replace linear search in unit_system with dict lookup (#125485) 2024-09-07 23:49:44 -04:00
Álvaro Fernández Rojas
ab29718a45 Update aioairzone to v0.9.0 (#125476)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-07 22:32:36 +02:00
Dian
7e7a6e4937 Bump xiaomi-ble to 0.32.0 (#125461) 2024-09-07 14:33:48 -05:00
Marcel van der Veldt
c53c2d7e64 Add model ID to Matter DeviceInfo (#125341)
* Add model ID to Matter DeviceInfo

* convert to string

* Test device registry

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-09-07 11:57:57 -04:00
Hessel
6e38cf878e Clean up test for Wallbox integration (#125433)
feat: Update API requests in wallbox integration tests
2024-09-07 15:34:48 +02:00
mvn23
066503b838 Fix docstrings in opentherm_gw (#125456) 2024-09-07 12:18:54 +01:00
tmenguy
3e70342265 Fix renault plug state (#125421)
* Added PlugState 3, that is coming with renault-api 0.2.7, it fixes #124682 HA ticket

* Added PlugState 3, that is coming with renault-api 0.2.7, it fixes #124682 HA ticket
2024-09-07 12:38:59 +02:00
tronikos
17994ff245 Request one data point in statistics_during_period in Opower (#124480) 2024-09-07 01:47:27 -07:00
Marcel van der Veldt
cbd884d54a Add discovery schemas for Matter 1.3 power/energy sensors (#125403)
* Add missing discovery schemas for (Matter 1.3) Power/Energy measurements

* Prevent discovery of custom cluster if 1.3 cluster present

* add tests

* Use f-strings

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-07 07:55:08 +02:00
J. Nick Koston
b8c3a44d81 Bump yarl to 1.10.0 (#125446)
changelog: https://github.com/aio-libs/yarl/compare/v1.9.11...v1.10.0
2024-09-07 07:36:34 +02:00
J. Nick Koston
ce28d8a92c Bump yalexs to 8.6.4 (#125442)
adds a debounce to the updates to ensure we do
not request the activities api too often if
the websocket sends rapid updates

fixes #125277
2024-09-06 19:35:57 -05:00
Hessel
457e66527a Add model ID to WallboxEntity (#125434)
* chore: Update WallboxEntity model ID to use CHARGER_PART_NUMBER_KEY

The WallboxEntity model ID is updated to use the CHARGER_PART_NUMBER_KEY value from the coordinator data. This change ensures consistency and accuracy in identifying the model of the Wallbox entity.

* Update WallboxEntity model ID to use CHARGER_PART_NUMBER_KEY

* chore: Update WallboxEntity model ID to use CHARGER_PART_NUMBER_KEY

* remove obsolete key from test
2024-09-06 20:40:47 +02:00
Paulus Schoutsen
444560543c 2024.9.1 (#125420) 2024-09-06 13:39:52 -04:00
mvn23
b9bd8f6b34 Add switch platform to opentherm_gw (#125410)
* WIP

* * Add switch platform
* Add tests for switches

* Remove unnecessary block_till_done-s

* Test that entities get added in a disabled state separately

* Convert to parametrized test

* Use fixture to add entities enabled.
2024-09-06 18:30:04 +02:00
IceBotYT
cd3059aa14 Nice G.O. code quality improvements (#124319)
* Bring Nice G.O. up to platinum

* Switch to listen in coordinator

* Tests

* Remove parallel updates from coordinator

* Unsub from events on config entry unload

* Detect WS disconnection

* Tests

* Fix tests

* Set unsub to None after unsubbing

* Wait 5 seconds before setting update error to prevent excessive errors

* Tweaks

* More tweaks

* Tweaks part 2

* Potential test for hass stopping

* Improve reconnect handling and test on Homeassistant stop event

* Move event handler to entry init

* Patch const instead of asyncio.sleep

---------

Co-authored-by: jbouwh <jan@jbsoft.nl>
2024-09-06 18:22:59 +02:00
Markus Jacobsen
741add0666 Replace strings with constants in Bang & Olufsen testing (#125423)
Replace strings with constants in service calls
2024-09-06 18:09:43 +02:00
Michael Hansen
ee59303d3c Use first media player announcement format for TTS (#125237)
* Use ANNOUNCEMENT format from first media player for tts

* Fix formatting

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-09-06 10:57:09 -05:00
Andre Lengwenus
20639b0f02 Add tests for LCN climate and scene platform (#124466)
* Add tests for LCN climate and scene platform

* Add type hints

* Add snapshots for test_climate

* Add snapshots for test_scene

* Replace await_called assertion with snapshots

* Remove snapshots for simple status changes

* Test platform setup using snapshot_platform

* Fix type hints

* Patch homeassistant.components.lcn context instead of pypck module

* Fix side effects caused by patching PchkConnectionManager in lcn platform context
2024-09-06 17:56:46 +02:00
Arie Catsman
ea7b2ecec0 Improve coordinator test coverage for enphase_envoy (#122375)
* Improve coordinator test coverage for enphase_envoy

* rename to test_coordinator to test_init for enphase_envoy

* Mock pyenphase _obtain_token instead of httpx auth requests in enphase_envoy tests.

* Move EnvoyTokenAuth patch to mock_envoy of enphase_envoy
2024-09-06 17:14:37 +02:00
Erik Montnemery
09989e6184 Fix UnboundLocalError in recorder (#125419) 2024-09-06 17:14:25 +02:00
Michał Jaworski
883e33e72a Fix mired range in blebox color temp mode lights (#124258)
* fix: use default mired range in belbox lights running in color temp mode

* fix: ruff
2024-09-06 16:59:14 +02:00
Paulus Schoutsen
ed2d321746 Bump version to 2024.9.1 2024-09-06 14:57:08 +00:00
Pierre Ståhl
b50d8fca16 Bump pyatv to 0.15.1 (#125412) 2024-09-06 14:57:02 +00:00
Paul Bottein
1c7c6d6592 Update frontend to 20240906.0 (#125409) 2024-09-06 14:57:01 +00:00
Marlon
5cf89bf2bb Set min_power similar to max_power to support all inverters from apsystems (#124247)
Set min_power similar to max_power to support all inverters from apsystems ez1 series
2024-09-06 14:57:00 +00:00
Arie Catsman
49b07b3749 Provide same entities for all Enphase_envoy CT types (#124531)
Provide same entities for all Enphase_envoy CT types.
2024-09-06 16:56:43 +02:00
TimL
0b95cf1251 Improve handling of old firmware versions (#125406)
* Update Info fixture with new fields from pysmlight 0.0.14

* Create repair if device is running unsupported firmware

* Add test for legacy firmware info

* Add strings for repair issue
2024-09-06 14:56:06 +00:00
Alexandre TRUPIN
a3f42e36ac Bump sfrbox-api to 0.0.10 (#125405)
* bump sfr_box requirement to 0.0.10

* upate manifest file

* Handle None values

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-09-06 14:53:07 +00:00
Dave Leaver
973e43ae6a Fix controlling AC temperature in airtouch5 (#125394)
Fix controlling AC temperature
2024-09-06 14:53:06 +00:00
tdfountain
6b75c86a17 Move ambient sensors (temperature and humidity) to diagnostic in NUT (#124180)
Move ambient sensors (temperature and humidity) to Diagnostic
2024-09-06 16:53:05 +02:00
dontinelli
e80e189e6b Increase coordinator update_interval for fyta (#125393)
* Increase update_interval

* Update homeassistant/components/fyta/coordinator.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-06 14:53:05 +00:00
Andre Lengwenus
27dc2e1b9d Bump pypck to 0.7.22 (#125389) 2024-09-06 14:53:04 +00:00
TimL
edb7c76caa Bump pysmlight to 0.0.14 (#125387)
Bump pysmlight 0.0.14 for smlight
2024-09-06 14:53:03 +00:00
Ryan Mattson
7859d31ca0 Lyric: fixed missed snake case conversions (#125382)
fixed missed snake case conversions
2024-09-06 14:53:02 +00:00
Marcel van der Veldt
6c640d2abe Fix for Hue sending effect None at turn_on command while no effect is active (#125377)
* Fix for Hue sending effect None at turn_on command while no effect is active

* typo

* update tests
2024-09-06 14:53:01 +00:00
Erik Montnemery
61ee3a9412 Don't allow templating min, max, step in config entry template number (#125342) 2024-09-06 14:53:00 +00:00
Simon Lamon
4ed18495f3 Add follower to the PlayingMode enum (#125294)
Update media_player.py
2024-09-06 14:52:59 +00:00
Noah Husby
5c8b2cde92 Bump aiorussound to 3.0.4 (#125285)
feat: bump aiorussound to 3.0.4
2024-09-06 14:52:58 +00:00
Jordi
5c2073481d Increase AquaCell timeout and handle timeout exception properly (#125263)
* Increase timeout and add handling of timeout exception

* Raise update failed instead of config entry error
2024-09-06 14:52:57 +00:00
G Johansson
84c204a7b3 Don't show input panel if default code provided in envisalink (#125256) 2024-09-06 14:52:56 +00:00
G Johansson
6c15f251c6 Fix blocking call in yale_smart_alarm (#125255) 2024-09-06 14:52:56 +00:00
Joost Lekkerkerker
48fcf58eb9 Revert #122676 Yamaha discovery (#125216)
Revert Yamaha discovery
2024-09-06 14:52:55 +00:00
Simon Lamon
3c13f4b4cc Improve play media support in LinkPlay (#125205)
Improve play media support in linkplay
2024-09-06 14:52:54 +00:00
Shay Levy
a14826d75e Fix BTHome validate triggers for device with multiple buttons (#125183)
* Fix BTHome validate triggers for device with multiple buttons

* Remove None default
2024-09-06 14:52:53 +00:00
tdfountain
f86bd3dfee Improve consistency of sensor strings to reduce confusion in NUT (#124184)
Improve consistency of sensor strings to reduce confusion
2024-09-06 16:52:49 +02:00
Marlon
069b7a45ed Set min_power similar to max_power to support all inverters from apsystems (#124247)
Set min_power similar to max_power to support all inverters from apsystems ez1 series
2024-09-06 16:52:32 +02:00
Erik Montnemery
e3e48ff9b7 Use PEP 695 for decorator typing with type aliases in zha (#124235) 2024-09-06 16:52:03 +02:00
epenet
33814d1180 Add model ID to sfr_box (#125400) 2024-09-06 10:50:17 -04:00
Paulus Schoutsen
f126a6024e Migrate ESPHome to assist satellite (#125383)
* Migrate ESPHome to assist satellite

* Address comments
2024-09-06 10:48:42 -04:00
Michał Jaworski
b6d45a5a07 Bump blebox_uniapi to v2.5.0 (#124298)
blebox: bump blebox_uniapi to v2.5.0
2024-09-06 16:46:54 +02:00
Kevin Worrel
f6c681eb5d Remove support for area, device, or entity targets for screenlogic actions (#123432)
* Remove non-configentry service target

* Remove unneeded tests

* Remove unneeded issue strings
2024-09-06 16:46:06 +02:00
Alexandre TRUPIN
c4cc158a77 Bump sfrbox-api to 0.0.10 (#125405)
* bump sfr_box requirement to 0.0.10

* upate manifest file

* Handle None values

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-09-06 16:18:47 +02:00
G Johansson
e58cf00a96 Remove deprecated aux_heat from ecobee (#125246) 2024-09-06 16:18:24 +02:00
Paulus Schoutsen
6976a66758 Migrate VoIP to use assist satellite (#125381)
* Migrate VoIP to assist satellite

* Fix flaky test
2024-09-06 09:11:51 -05:00
TimL
6b1fc00910 Improve handling of old firmware versions (#125406)
* Update Info fixture with new fields from pysmlight 0.0.14

* Create repair if device is running unsupported firmware

* Add test for legacy firmware info

* Add strings for repair issue
2024-09-06 09:46:08 -04:00
Pierre Ståhl
8168b8fce4 Bump pyatv to 0.15.1 (#125412) 2024-09-06 09:43:16 -04:00
Joost Lekkerkerker
1e6b6fef7e Revert #122676 Yamaha discovery (#125216)
Revert Yamaha discovery
2024-09-06 09:42:56 -04:00
Robert Svensson
73f04e3ede Add filter run time for deCONZ air purifiers (#123306)
* Add filter run time for deCONZ air purifiers

* Add duration and second

* Fix review comments

* Update tests/components/deconz/snapshots/test_sensor.ambr

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-06 15:41:49 +02:00
G Johansson
9f469c08d1 Code quality improvement on local_file (#125165)
* Code quality improvement on local_file

* Fix

* No translation

* Review comments
2024-09-06 15:35:38 +02:00
J. Nick Koston
051a28b55a Remove unneeded wrapping of URL in URL in network helper (#125265)
* Remove unneeded wrapping of URL in URL in network helper

* fix mocks
2024-09-06 15:34:52 +02:00
J. Nick Koston
ff449e7741 Bump yarl to 1.9.11 (#125287)
* Bump yarl to 1.9.10

changelog: https://github.com/aio-libs/yarl/compare/v1.9.9...v1.9.10

* 11
2024-09-06 15:23:22 +02:00
Noah Husby
8d239d368b Bump aiorussound to 3.0.4 (#125285)
feat: bump aiorussound to 3.0.4
2024-09-06 15:22:39 +02:00
epenet
3a5309e9a0 Improve config flow type hints in tellduslive (#125299) 2024-09-06 15:20:39 +02:00
epenet
86ef7bab28 Improve config flow type hints in totalconnect (#125300) 2024-09-06 15:20:11 +02:00
epenet
f9928a5843 Fix location_id datatype in totalconnect tests (#125298)
Adjust location_id type in totalconnect tests
2024-09-06 15:19:54 +02:00
Stefano Sonzogni
2c99f060f0 Add binary sensors for motion detection Comelit simple home (#125200)
* Add binary sensors for motion detection

* sort platforms

* use _attr_device_class property and optimizations

* use static _attr_device_class property
2024-09-06 15:18:40 +02:00
GeoffAtHome
543f986955 Improve geniushub test coverage (#124157)
* Add tests for local connection

* Test cloud setup

* Improve tests.

* Simplied coverage test to cloud setup.

* Mock out library and add snapshots

* Mock out library and add snapshots

* Update tests/components/geniushub/conftest.py

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

* Attempt to make it nice

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-09-06 15:17:50 +02:00
epenet
b68c90d59a Improve config flow type hints in vulcan (#125308)
* Improve config flow type hints in vulcan

* Adjust tests
2024-09-06 15:16:47 +02:00
epenet
66c6cd2a10 Improve config flow type hints in xiaomi_aqara (#125316) 2024-09-06 15:16:32 +02:00
Eric Shtivelberg
f5f8c44ca6 Add Habitica up/down attributes for tasks (#125356)
add: up/down
2024-09-06 15:08:30 +02:00
epenet
58056c49f7 Improve config flow type hints (t-z) (#125315) 2024-09-06 15:08:13 +02:00
Simon Lamon
af0a6d2820 Improve play media support in LinkPlay (#125205)
Improve play media support in linkplay
2024-09-06 15:02:38 +02:00
Jan Rieger
f3e2c51774 Add translations to Xiaomi Miio (#123822)
* Add translations to Xiaomi Miio

* Deduplicate translations
2024-09-06 14:59:02 +02:00
epenet
053e38db38 Improve config flow type hints in volumio (#125318) 2024-09-06 14:57:04 +02:00
Paul Bottein
ba81a68982 Update frontend to 20240906.0 (#125409) 2024-09-06 14:49:58 +02:00
steffenrapp
f8c94fd83f Remove attributes from Nuki entities (#125348)
* Remove attributes from Nuki entities

* remove tests
2024-09-06 14:49:05 +02:00
Tony
9777ed2e62 Rename "Ruckus Unleashed" integration to "Ruckus" (#125392) 2024-09-06 14:48:16 +02:00
Matrix
aba23eb513 Add YoLink temperature sensor YS8008 support (#125408)
Add YS8008 support
2024-09-06 14:47:31 +02:00
TimL
0eda451c24 Add Switch platform to Smlight integration (#125292)
* Add switch platform to Smlight

* Add strings for switch platform

* Add tests for Smlight switch platform

* Regenerate snapshot

* Address review comments

* Use is_on property for updating switch state

* Address review comments

---------

Co-authored-by: Tim Lunn <tim@feathertop.org>
2024-09-06 14:25:55 +02:00
Marcel van der Veldt
8f38b7191a Fix for Hue sending effect None at turn_on command while no effect is active (#125377)
* Fix for Hue sending effect None at turn_on command while no effect is active

* typo

* update tests
2024-09-06 14:06:46 +02:00
Paulus Schoutsen
ff3cabbf3a Small Assist Satellite fixes (#125384) 2024-09-06 07:36:02 -04:00
jesperraemaekers
dfcfe78732 Add weheat core integration (#123057)
* Add empty weheat integration

* Add first sensor to weheat integration

* Add weheat entity to provide device information

* Fixed automatic selection for a single heat pump

* Replaced integration specific package and removed status sensor

* Update const.py

* Add reauthentication support for weheat integration

* Add test cases for the config flow of the weheat integration

* Changed API and OATH url to weheat production environment

* Add empty weheat integration

* Add first sensor to weheat integration

* Add weheat entity to provide device information

* Fixed automatic selection for a single heat pump

* Replaced integration specific package and removed status sensor

* Add reauthentication support for weheat integration

* Update const.py

* Add test cases for the config flow of the weheat integration

* Changed API and OATH url to weheat production environment

* Resolved merge conflict after adding weheat package

* Apply suggestions from code review

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

* Added translation keys, more type info and version bump the weheat package

* Adding native property value for weheat sensor

* Removed reauth, added weheat sensor description and changed discovery of heat pumps

* Added unique ID of user to entity

* Replaced string by constants, added test case for duplicate unique id

* Removed duplicate constant

* Added offline scope

* Removed re-auth related code

* Simplified oath implementation

* Cleanup tests for weheat integration

* Added oath scope to tests

---------

Co-authored-by: kjell-van-straaten <kjell.van.straaten@wefabricate.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-06 11:58:01 +02:00
Shay Levy
ff20131af1 Use smlight discovery hostname as device name (#125359)
* Use smlight discovery hostname as device name

* Update reauth flow name

* Drop host from description
2024-09-06 11:49:10 +02:00
Ryan Mattson
ccbc300b68 Lyric: fixed missed snake case conversions (#125382)
fixed missed snake case conversions
2024-09-06 11:45:39 +02:00
epenet
84dcfb6ddc Replace SW version by model ID in renault device info (#125399)
* Replace SW_VERSION by MODEL_ID in renault device info

* Simplify PR

* Fix tests
2024-09-06 11:45:13 +02:00
Sid
1db68327f9 Enable Ruff PTH for the script directory (#124441)
* Enable Ruff PTH for the script directory

* Address review comments

* Fix translations script

* Update script/hassfest/config_flow.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-06 11:33:01 +02:00
dontinelli
7752789c3a Increase coordinator update_interval for fyta (#125393)
* Increase update_interval

* Update homeassistant/components/fyta/coordinator.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-06 11:23:30 +03:00
TimL
54c15e7e0a Bump pysmlight to 0.0.14 (#125387)
Bump pysmlight 0.0.14 for smlight
2024-09-06 11:20:12 +03:00
Paulus Schoutsen
0092796fd2 Add model ID to linkplay (#125370) 2024-09-06 09:51:53 +02:00
Andre Lengwenus
187a38c91f Add tests for LCN actions / services (#125391)
* Add tests for services/actions

* Add snapshots for services/actions

* Use constants for service names and parameters

* Remove snapshot names
2024-09-06 09:51:11 +02:00
Dave Leaver
b025942a14 Fix controlling AC temperature in airtouch5 (#125394)
Fix controlling AC temperature
2024-09-06 09:06:33 +02:00
Andre Lengwenus
0e515b2e1f Bump pypck to 0.7.22 (#125389) 2024-09-06 08:29:49 +02:00
TimL
a341bfd8ca Add binary_sensor platform for Smlight integration (#125284)
* Support binary_sensors for SMLight integration

* Add strings for binary sensors

* Add tests for binary_sensor platform

* Update binary sensor docstring

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Regenerate snapshot

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Tim Lunn <tim@feathertop.org>
2024-09-06 08:11:50 +02:00
Sid
f80acdada0 Bump ruff to 0.6.4 (#125385)
* Bump ruff to 0.6.4

* fix Dockerfile
2024-09-06 08:08:40 +02:00
Erik Montnemery
cf049a07c2 Don't allow templating min, max, step in config entry template number (#125342) 2024-09-06 07:59:22 +02:00
Erik Montnemery
0ca0836e83 Correct check for removed index in recorder test (#125323) 2024-09-06 07:21:41 +02:00
Michael Hansen
60b0f0dc53 Add assist satellite entity component (#125351)
* Add assist_satellite

* Update homeassistant/components/assist_satellite/manifest.json

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Update homeassistant/components/assist_satellite/manifest.json

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Add platform constant

* Update Dockerfile

* Apply suggestions from code review

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

* Address comments

* Update docstring async_internal_announce

* Update CODEOWNERS

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-05 21:16:30 -04:00
Paulus Schoutsen
c3921f2112 Add model ID to unifiprotect (#125376) 2024-09-05 19:44:28 -04:00
Paulus Schoutsen
aa619c5594 Add model ID to awair (#125373)
* Add model ID to awair

* less diff
2024-09-05 19:42:50 -04:00
Paulus Schoutsen
0677a256ec Add model ID to Wemo (#125368) 2024-09-05 23:03:50 +02:00
Paulus Schoutsen
97ffbf5aad Add model ID to samsungtv (#125369) 2024-09-05 23:03:37 +02:00
Paulus Schoutsen
006b2da14e Add model ID to roborock (#125366) 2024-09-05 16:52:45 -04:00
Paulus Schoutsen
56b4ddc6b4 Add model ID to Sonos (#125364) 2024-09-05 16:52:17 -04:00
G Johansson
2c0c0b9e21 Extend deprecation of aux_heat in ClimateEntity (#125360) 2024-09-05 22:34:35 +02:00
Mark Ruys
9e312f2063 Add Sensoterra integration (#119642)
* Initial version

* Baseline release

* Refactor based on first PR feedback

* Refactoring based on second PR feedback

* Initial version

* Baseline release

* Refactor based on first PR feedback

* Refactoring based on second PR feedback

* Refactoring based on PR feedback

* Refactoring based on PR feedback

* Remove extra attribute soil type

Soil type isn't really a sensor, but more like a configuration entity.
Move soil type to a different PR to keep this PR simpler.

* Refactor SensoterraSensor to a named tuple

* Implement feedback on PR

* Remove .coveragerc

* Add async_set_unique_id to config flow

* Small fix based on feedback

* Add test form unique_id

* Fix

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-05 21:37:44 +02:00
G Johansson
bbeecb40ae Remove deprecated aux_heat from zha (#125247)
Remove aux_heat from zha
2024-09-05 21:35:24 +02:00
YogevBokobza
48c9361c01 Bump aioswitcher to 4.0.3 (#125355) 2024-09-05 22:34:11 +03:00
Robert Contreras
d686b877b1 Home Connect add FridgeFreezer switch entities (#122881)
* Home Connect add FridgeFreezer switch entities

* Fix unrelated test

* Implemented requested changes from review

* Move exist_fn check code to setup

* Assign entity_description during init

* Resolve issue with functional testing
2024-09-05 20:52:12 +02:00
Bouwe Westerdijk
d2d01b337d Bump plugwise to v1.0.0 (#125354) 2024-09-05 20:16:11 +02:00
peteS-UK
b0bfe71b9b Fix typo in squeezebox (#125352)
Spelling Correction on SERVER_MODEL
2024-09-05 18:44:19 +02:00
Phill (pssc)
38f3fa0210 Add Squeezebox server service binary sensors (#122473)
* squeezebox add binary sensor + coordinator

* squeezebox add connected via for media_player

* squeezebox add Player type for player

* Add more type info

* Fix linter errors

* squeezebox use our own status entity

* squeezebox rework device handling based on freedback

* Fix device creation

* squeezebox rework coordinator error handling

* Fix lint type error

* Correct spelling

* Correct spelling

* remove large comments

* insert small comment

* add translation support

* Simply sensor

* clean update function, minimise comments to the useful bits

* Fix after testing

* Update homeassistant/components/squeezebox/entity.py

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

* move data prep out of Device assign for clarity

* stop being a generic api

* Humans need to read the sensors...

* ruff format

* Humans need to read the sensors...

* Revert "ruff format"

This reverts commit 8fcb8143e7.

* ruff format

* Humans need to read the sensors...

* errors after testing

* infered

* drop context

* cutdown coordinator for the binary sensors

* add tests for binary sensors

* Fix import

* add some basic media_player tests

* Fix spelling and file headers

* Fix spelling

* remove uuid and use service device cat

* use diag device

* assert execpted value

* ruff format

* Update homeassistant/components/squeezebox/__init__.py

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

* Simplify T/F

* Fix file header

* remove redudant check

* remove player tests from this commit

* Fix formatting

* remove unused

* Fix function Type

* Fix Any to bool

* Fix browser tests

* Patch our squeebox componemt not the server in the lib

* ruff

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-05 16:49:07 +02:00
Erik Montnemery
86ae70780c Refactor recorder retryable_database_job decorator (#125306) 2024-09-05 13:09:27 +02:00
mvn23
65e16b4814 Split opentherm_gw entity base class (#125330)
Add OpenThermStatusEntity to allow entities that don't need status updates
2024-09-05 13:03:16 +02:00
Adam Pasztor
70966c2b63 Add new data types to ADS integration (#125201)
* feat: Introduce new data types to ADS integration.

* refactor: ADS data unpacking based on PLC data type

* refactor: handle BOOL and STRING as special cases.
2024-09-05 12:07:19 +02:00
Malte Franken
ba7f36328d Add diagnostics to GeoNet NZ Quakes integration (#125320)
* add diagnostics platform

* add tests

* add snapshot data

* remove from no diagnostics list
2024-09-05 11:35:36 +02:00
TimL
511ecf98d5 Add reauth flow for Smlight (#124418)
* Add reauth flow for smlight integration

* add strings for reauth

* trigger reauth flow on authentication errors

* Add tests for reauth flow

* test for update failed on auth error

* restore name title placeholder

* raise config entry error to trigger reauth

* Add test for reauth triggered at startup

---------

Co-authored-by: Tim Lunn <tim@feathertop.org>
2024-09-05 11:02:05 +02:00
Malte Franken
b5831344a0 Add diagnostics to GDACS integration (#125296)
* simple diagnostics

* add service status information

* remove from no diagnostics list

* wip

* cater for the case where status info is undefined

* make test work

* code reformatted

* add snapshot data

* simplify code
2024-09-05 10:53:12 +02:00
Erik Montnemery
984eba809c Simplify generic decorators in recorder (#125301)
* Simplify generic decorators in recorder

* Remove additional case
2024-09-05 10:16:44 +02:00
epenet
f778033bd8 Improve config flow type hints in ukraine_alarm (#125302) 2024-09-05 09:55:57 +02:00
Erik Montnemery
a8f2204f4f Teach recorder data migrator base class to update MigrationChanges (#125214)
* Teach recorder data migrator base class to update MigrationChanges

* Bump migration version

* Improve test coverage

* Update migration.py

* Revert migrator version bump

* Remove unneeded change
2024-09-05 08:56:18 +02:00
Simon Lamon
4c56cbe8c8 Add follower to the PlayingMode enum (#125294)
Update media_player.py
2024-09-05 08:50:49 +02:00
J. Nick Koston
71d35a03e1 Switch hassio to use with_path where possible (#125268)
* Switch hassio to use with_path where possible

Any place we are joining to the root url, we can use with_path
as its much faster

* revert
2024-09-05 08:12:43 +02:00
Marc Mueller
c8fd48523f Use TypeVar defaults for Generator (#125228) 2024-09-04 18:10:21 -10:00
J. Nick Koston
fbd3bf7a98 Bump yarl to 1.9.9 (#125264) 2024-09-04 11:32:33 -10:00
J. Nick Koston
a0356f587e Fix yarl binary wheel builds for armv7l and armhf (#125270) 2024-09-04 11:32:08 -10:00
Jordi
199a4b725b Increase AquaCell timeout and handle timeout exception properly (#125263)
* Increase timeout and add handling of timeout exception

* Raise update failed instead of config entry error
2024-09-04 23:22:31 +02:00
Raj Laud
505df84783 Squeezebox remove deprecated sync and unsync services (#125271)
* Squeezebox remove deprecated sync and unsync

* Squeezebox remove sync group attribute
2024-09-04 23:17:39 +02:00
Shay Levy
baa9473383 Address BTHome review comment (#125259)
* Address BTHome review comment

* Review comment

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>

* generator expression

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

---------

Co-authored-by: Ernst Klamer <e.klamer@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-09-04 23:24:52 +03:00
ilan
ba5d23290a Add madvr diagnostics (#125109)
* feat: add basic diagnostics

* fix: add mock data

* fix: regen snapshots
2024-09-04 21:57:37 +02:00
Shai Ungar
adda02b6b1 Add service to 17track to archive package (#123493)
* Add service archive package

* Update homeassistant/components/seventeentrack/icons.json

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

* CR fix in tests

* CR fix in services.py

* string references

* extract constant keys

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-04 21:56:11 +02:00
G Johansson
1f59bd9f92 Don't show input panel if default code provided in envisalink (#125256) 2024-09-04 21:49:28 +02:00
G Johansson
b61678d39c Fix blocking call in yale_smart_alarm (#125255) 2024-09-04 21:14:54 +02:00
Christopher Fenner
b23297bb7e Add hysteresis entity for heat pumps via ViCare (#124294)
* add hysteresis entity

* update PyViCare-neo dependency

* add hysteresis switch on / of entities

* Revert "add hysteresis entity"

This reverts commit dcb5680d0c.
2024-09-04 20:32:40 +02:00
TimL
f56c38d69b Add uptime sensors for Smlight (#124408)
* Add uptime sensor as derived sensor class

* Add strings for uptime sensors

* Update sensor tests to include uptime sensors

* test zigbee uptime when disconnected
2024-09-04 20:31:56 +02:00
tronikos
c2b24dd355 Add debug logging in get_cost_reads in opower (#124473)
Add debug statements in get_cost_reads in opower
2024-09-04 20:30:24 +02:00
Tal Taub
c4c8e74a8a Add Custom Drink Entities Tami4 Edge (#124506)
* Add drinks as button entities instead of using actions

* Remove button extensions

* Add an extension to create new buttons

* Use translation key for buttons names

* Change translation key wording

* Call async_add_entities once

* Add icons

* Update homeassistant/components/tami4/button.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-04 20:29:06 +02:00
G Johansson
c4029300c2 Remove deprecated aux_heat from honeywell (#125248) 2024-09-04 20:28:45 +02:00
J. Nick Koston
52320844fc Revert "Disable IPv6 in the opower integration to fix AEP utilities" (#125208)
Revert "Disable IPv6 in the opower integration to fix AEP utilities (#107203)"

This reverts commit 2a9a046fab.
2024-09-04 08:05:13 -10:00
Pete Sage
b4e20409de Add Sonos tests and update error handling for unknown media (#124578)
* initial commit

* simplify tests
2024-09-04 20:03:26 +02:00
Michael Hansen
4ecc6555bf Add support for sample bytes in preferred TTS format (#125235) 2024-09-04 13:42:41 -04:00
mvn23
892c32c8b7 Add button platform to opentherm_gw (#125185)
* Add button platform to opentherm_gw

* Add tests for button.py

* Update tests/components/opentherm_gw/test_button.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-04 19:20:05 +02:00
Artur Pragacz
bad305dcbf Add Onkyo to strict typing (#124617) 2024-09-04 19:11:34 +02:00
TimL
7266a16295 Add Button platform for Smlight integration (#124970)
* Add button platform for smlight integration

* Add strings required for button platform

* Add commands api to smlight mock client

* Add tests for smlight button platform

* Move entity category to class

* Disable by default Zigbee flash mode
2024-09-04 19:10:59 +02:00
epenet
416a2de179 Improve config flow type hints in screenlogic (#125199) 2024-09-04 19:09:41 +02:00
Christopher Fenner
349ea35dc3 Fix device identifier in ViCare integration (#124483)
* use correct serial

* add migration handler

* adjust init call

* add missing types

* adjust init call

* adjust init call

* adjust init call

* adjust init call

* Update types.py

* fix loop

* fix loop

* fix parameter order

* align parameter naming

* remove comment

* correct init

* update

* Update types.py

* correct merge

* revert type change

* add test case

* add helper

* add test case

* update snapshot

* add snapshot

* add device.serial data point

* fix device unique id

* update snapshot

* add comments

* update nmigration

* fix missing parameter

* move static parameters

* fix circuit access

* update device.serial

* update snapshots

* remove test case

* Update binary_sensor.py

* convert climate entity

* Update entity.py

* update snapshot

* use snake case

* add migration test

* enhance test case

* add test case

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-04 18:41:20 +02:00
epenet
0fb1fbf0d1 Improve config flow type hints (q-s) (#125198)
* Improve config flow type hints (q-s)

* Revert screenlogic

* Revert starline
2024-09-04 18:38:34 +02:00
epenet
643fd34478 Improve config flow type hints in starline (#125202) 2024-09-04 18:38:19 +02:00
Duco Sebel
186c9aa33b Remove ExternalDevice migration in HomeWizard (#125197) 2024-09-04 18:32:57 +02:00
Martins Sipenko
af51241c0d Reenable Smarty integration (#124148)
* Reenable Smarty integration

* Updated codeowners to myself

* Revert "Updated codeowners to myself"

This reverts commit 639fef32b9.

* Upgraded pysmarty2 to version 0.10.1 which is not pinned to specific pymodbus version

* Update requirements_all.txt
2024-09-04 18:01:49 +02:00
Bram Kragten
36ec1b33fe 2024.9.0 (#124880) 2024-09-04 17:41:08 +02:00
Shay Levy
eaee8d5b78 Fix BTHome validate triggers for device with multiple buttons (#125183)
* Fix BTHome validate triggers for device with multiple buttons

* Remove None default
2024-09-04 17:34:11 +02:00
Bram Kragten
84a0a28be2 Bump version to 2024.9.0 2024-09-04 17:08:18 +02:00
Michael Hansen
ac19ee3e2e Bump intents to 2024.9.4 (#125232) 2024-09-04 17:07:21 +02:00
Denis Shulyaka
438af042ed Update Anthropic default model to Haiku (#125225) 2024-09-04 17:07:20 +02:00
Robert Resch
122f11c790 Update modified_at datetime on storage collection changes (#125218) 2024-09-04 17:07:19 +02:00
Michael Hansen
638434c103 Bump intents to 2024.9.4 (#125232) 2024-09-04 17:36:25 +03:00
Marc Mueller
3a44098ddf Fix Path.__enter__ DeprecationWarning in tests (#125227) 2024-09-04 07:12:57 -07:00
LG-ThinQ-Integration
1e1c3506fe Bump thinqconnect to 0.9.6 (#125155)
* Refactor LG ThinQ integration

* Rename ha_bridge_list to bridge_list

* Update for reviews

* Correct spells
Do not use mqtt related api

* Guarantee update status

* Update for reviews

* Update reviews

---------

Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
2024-09-04 15:52:41 +02:00
Iskra kranj
b557e9e826 Add Iskra integration (#121488)
* Add iskra integration

* iskra non resettable counters naming fix

* added iskra config_flow test

* fixed iskra integration according to code review

* changed iskra config flow test

* iskra integration, fixed codeowners

* Removed counters code & minor fixes

* added comment

* Update homeassistant/components/iskra/__init__.py

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

* Updated Iskra integration according to review

* Update homeassistant/components/iskra/strings.json

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

* Updated iskra integration according to review

* minor iskra integration change

* iskra integration changes according to review

* iskra integration changes according to review

* Changed iskra integration according to review

* added iskra config_flow range validation

* Fixed tests for iskra integration

* Update homeassistant/components/iskra/coordinator.py

* Update homeassistant/components/iskra/config_flow.py

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

* Fixed iskra integration according to review

* Changed voluptuous schema for iskra integration and added data_descriptions

* Iskra integration tests lint error fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-04 15:33:23 +02:00
Denis Shulyaka
da0d1b71ce Update Anthropic default model to Haiku (#125225) 2024-09-04 06:30:28 -07:00
Robert Resch
4d96ed4c68 Update modified_at datetime on storage collection changes (#125218) 2024-09-04 15:05:51 +02:00
Marc Mueller
1bc63a61be Fix enum lookup (#125220) 2024-09-04 15:05:28 +02:00
Michal Jál
5c35ccb9ca Allow Switchbot users to force nightlatch (#124326)
* Add option to force nightlatch operation mode

* Fix format

* Make the new option available only for lock pro entry

* use senor_type instead of switchbot model + tests

* Update homeassistant/components/switchbot/lock.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-04 15:03:59 +02:00
J. Nick Koston
a1ecefee21 Bump aioesphomeapi to 25.3.2 (#125188)
changelog: https://github.com/esphome/aioesphomeapi/compare/v25.3.1...v25.3.2
2024-09-04 08:35:52 -04:00
Hessel
b5d7eba4f6 Add new number component for setting the wallbox ICP current (#125209)
* Add new number component for setting the wallbox ICP current

* feat: Add number component for wallbox ICP current control
2024-09-04 14:00:38 +02:00
starkillerOG
4b111008df Add 100% coverage of Reolink button platform (#124380)
* Add 100% button coverage

* review comments

* fix

* Use SERVICE_PRESS constant

* Use DOMAIN instead of const.DOMAIN

* styling

* User entity_registry_enabled_by_default fixture

* fixes

* Split out ptz_move test

* use SERVICE_PTZ_MOVE constant
2024-09-04 12:16:57 +02:00
Lenn
fb5afff9d5 Add Motionblinds Bluetooth diagnostics (#121899)
* Add diagnostics platform

* Add diagnostics test

* Remove comments

* Exclude created_at and modified_at from snapshot

* Fix entry_id in mock_config_entry

* Add repr to excluded props from snapshot

* Improve diagnostics

* Use function name instead of number for callback diagnostics

* Remove info from diagnostics

* Reformat
2024-09-04 12:11:11 +02:00
Bram Kragten
de99dfef4e Bump version to 2024.9.0b5 2024-09-04 11:48:24 +02:00
Robert Resch
bcdc3563a5 Bump deebot-client to 8.4.0 (#125207) 2024-09-04 11:48:16 +02:00
Bram Kragten
9ef0a1f0a2 Update frontend to 20240904.0 (#125206) 2024-09-04 11:48:15 +02:00
Matthias Alphart
d0629d4e66 Update knx-frontend to 2024.9.4.64538 (#125196) 2024-09-04 11:48:15 +02:00
G Johansson
65e98eab9c Bump python-holidays to 0.56 (#125182) 2024-09-04 11:48:14 +02:00
J. Nick Koston
a0d9764443 Bump yalexs to 8.6.3 (#125176)
Fixes the battery state not refreshing due to a refactoring
error in the library.

changelog: https://github.com/bdraco/yalexs/compare/v8.6.2...v8.6.3
2024-09-04 11:48:13 +02:00
Joakim Plate
8293f270df Update gardena_bluetooth dependency to 1.4.3 (#125175) 2024-09-04 11:48:12 +02:00
Robert Resch
38a1c97a51 Bump deebot-client to 8.4.0 (#125207) 2024-09-04 11:46:41 +02:00
J. Nick Koston
b26e4d672f Bump yarl to 1.9.8 (#125193)
changelog: https://github.com/aio-libs/yarl/compare/v1.9.7...v1.9.8
2024-09-04 11:44:49 +02:00
Bram Kragten
daa5268cf2 Update frontend to 20240904.0 (#125206) 2024-09-04 11:35:14 +02:00
Matthias Alphart
9da3f98c23 Update knx-frontend to 2024.9.4.64538 (#125196) 2024-09-04 11:00:02 +02:00
Erik Montnemery
8fd691be69 Teach recorder data migrator base class to remove index (#125168)
* Teach recorder data migrator base class to remove index

* Fix tests
2024-09-04 09:52:41 +02:00
Erik Montnemery
7fc0e36b2f Move recorder EntityIDPostMigrationTask to migration (#125136)
* Move recorder EntityIDPostMigrationTask to migration

* Update test
2024-09-04 08:38:46 +02:00
Erik Montnemery
482bed522f Fix missing patch in nextdns tests (#125195) 2024-09-04 08:34:51 +02:00
Raman Gupta
7788685340 Get zwave_js statistics data from model (#120281)
* Get zwave_js statistics data from model

* Add migration logic

* Update comment

* revert change to forward entry
2024-09-04 08:16:56 +02:00
Dian
af1af6f391 Bump xiaomi-ble to 0.31.1 to add support for human presence sensor XMOSB01XS (#124751) 2024-09-03 20:11:32 -10:00
Shay Levy
d5c2e6ec35 Add myself as codeowner for BTHome (#125184) 2024-09-04 00:20:25 +03:00
Erik Montnemery
d8382c6de2 Improve recorder tests to check indices are removed (#125164) 2024-09-03 22:56:27 +02:00
starkillerOG
c4cfff4b3f Add 100% coverage of Reolink update platform (#124521)
* Add 100% update test coverage

* Add assertion
2024-09-03 22:50:00 +02:00
G Johansson
cfe0c95c97 Bump python-holidays to 0.56 (#125182) 2024-09-03 22:43:03 +02:00
Maciej Bieniek
50c1bf8bb0 Add re-auth flow to NextDNS integration (#125101) 2024-09-03 22:38:07 +02:00
Erik Montnemery
cc3d059783 Refactor recorder EventIDPostMigration data migrator (#125126) 2024-09-03 22:37:50 +02:00
Joakim Sørensen
4aa86a574f Add include-hidden-files to upload env_file artifact (#125179) 2024-09-03 22:23:26 +02:00
J. Nick Koston
3a8039cbc0 Bump yalexs to 8.6.3 (#125176)
Fixes the battery state not refreshing due to a refactoring
error in the library.

changelog: https://github.com/bdraco/yalexs/compare/v8.6.2...v8.6.3
2024-09-03 22:18:19 +02:00
Joakim Plate
e4f9f6447f Update gardena_bluetooth dependency to 1.4.3 (#125175) 2024-09-03 21:45:43 +02:00
mvn23
14482ff6da Update opentherm_gw tests to prepare for new platforms (#125172)
Move MockConfigEntry to a fixture
2024-09-03 21:18:38 +02:00
Bram Kragten
116090bff1 Bump version to 2024.9.0b4 2024-09-03 21:12:20 +02:00
J. Nick Koston
6082220f7f Bump yalexs to 8.6.2 (#125162)
changelog: https://github.com/bdraco/yalexs/compare/v8.6.0...v8.6.2
2024-09-03 21:11:30 +02:00
Paul Bottein
74fd16b953 Update frontend to 20240903.1 (#125160) 2024-09-03 21:11:30 +02:00
Andrew Jackson
82cffcbc23 Bump aiomealie to 0.9.2 (#125153)
Bump mealie version
2024-09-03 21:11:29 +02:00
Erik Montnemery
4e1a77326e Restore unnecessary assignment of Template.hass in event helper (#125143) 2024-09-03 21:11:28 +02:00
Bram Kragten
54cf52069e Log deprecation warning when template.Template is created without hass (#125142)
* Log deprecation warning when template.Template is created without hass

* Improve docstring
2024-09-03 21:09:12 +02:00
Hans Kröner
be8f14167f Expose UV Index in Met.no (#124992)
UV Index now also appears in forecasts.
2024-09-03 21:00:44 +02:00
Erik Montnemery
70b811096c Log deprecation warning when cv.template is called from wrong thread (#125141)
Log deprecation warning when cv.template is called from wrong thread
2024-09-03 19:55:38 +02:00
Marcel van der Veldt
1efd267ee6 Fix energy sensor for ThirdReality Matter powerplug (#125140) 2024-09-03 19:55:38 +02:00
Christopher Fenner
31267b4095 Correct device serial for ViCare integration (#125125)
* expose correct serial

* adapt inits

* adjust _build_entities

* adapt inits

* add serial data point

* update snapshot

* apply suggestions

* apply suggestions
2024-09-03 19:55:37 +02:00
Steven B.
4982e1cbcf Pass hass clientsession to ring config flow (#125119)
Pass hass clientsession to ring config flow
2024-09-03 19:55:36 +02:00
Artur Pragacz
be3b16b7fa Fix Onkyo action select_hdmi_output (#125115)
* Fix Onkyo service select_hdmi_output

* Move Hasskey directly under Onkyo domain
2024-09-03 19:55:35 +02:00
Aaron Bach
393a0ac0df Fix unhandled exception with missing IQVIA data (#125114) 2024-09-03 19:55:35 +02:00
Michal Jál
a0bbcb0401 Bump PySwitchbot to 0.48.2 (#125113) 2024-09-03 19:55:34 +02:00
J. Nick Koston
3f65bc78e8 Bump yalexs to 8.6.0 (#125102) 2024-09-03 19:55:33 +02:00
Avi Miller
d005440544 Bump aiolifx to 1.0.9 and remove unused HomeKit model prefixes (#125055)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-03 19:55:32 +02:00
Artur Pragacz
94d2da1685 Fix area registry indexing when there is a name collision (#125050) 2024-09-03 19:55:31 +02:00
ilan
4c5ba0617a Bump py-madvr2 to 1.6.32 (#125049)
feat: update lib
2024-09-03 19:55:31 +02:00
Richard Kroegel
a58bf149fc Fix blocking calls for OpenAI conversation (#125010) 2024-09-03 19:55:30 +02:00
MJJ
005be4e8ba Increase timeout for fetching buienradar weather data (#124597)
Increase timeout for fetching weather data
2024-09-03 19:55:29 +02:00
Allen Porter
b81d7a0ed8 Update nest to only include the image attachment payload for cameras that support fetching media (#124590)
Only include the image attachment payload for cameras that support fetching media
2024-09-03 19:55:28 +02:00
Martin Hjelmare
9a690ed421 Handle telegram polling errors (#124327) 2024-09-03 19:55:27 +02:00
Philip Vanloo
009989d7ae Add Linkplay mTLS/HTTPS and improve logging (#124307)
* Work

* Implement 0.0.8 changes, fixup tests

* Cleanup

* Implement new playmodes, close clientsession upon ha close

* Implement new playmodes, close clientsession upon ha close

* Add test for zeroconf bridge failure

* Bump 0.0.9
Address old comments in 113940

* Exact _async_register_default_clientsession_shutdown
2024-09-03 19:55:26 +02:00
UltimateGG
c7d1ad27f0 Fix updating insteon modem configuration while disconnected (#121918)
#121917 Fix updating insteon modem configuration while disconnected
2024-09-03 19:55:25 +02:00
J. Nick Koston
27032c1780 Bump yalexs to 8.6.2 (#125162)
changelog: https://github.com/bdraco/yalexs/compare/v8.6.0...v8.6.2
2024-09-03 19:53:10 +02:00
Paul Bottein
61a722218a Update frontend to 20240903.1 (#125160) 2024-09-03 19:52:38 +02:00
Raj Laud
3137c27e56 Fix type errors in squeezebox (#125166) 2024-09-03 19:50:44 +02:00
Nerdix
7b35c3036e Enhance error handling when changing a timer's duration (#121786)
* Update remaining before checking duration

* fix comment

* calculation based on transient field

* lint

* remove useless brackets
2024-09-03 19:47:00 +02:00
mvn23
8e03f3a045 Update opentherm_gw tests to avoid patching internals (#125152)
* Update tests to avoid patching internals

* * Use fixtures for tests
* Update variable names in tests for clarity

* Use hass.config_entries.async_setup instead of setup.async_setup_component
2024-09-03 19:19:43 +02:00
Raj Laud
8f26cff65a Enable strict typing for the Squeezebox integration (#125161)
* Strict typing for squeezebox

* Improve unit tests

* Refactor tests to use websockets and services.async_call

* Apply suggestions from code review

* Fix merge conflict
2024-09-03 19:19:30 +02:00
Alex Wijnholds
00533bae4b Add support for total YouTube views (#123144)
* Add support for retrieving the total views of a channel.

* Add missing tests

* Re-order imports

* Another run on code format

* Add missing translation

* Update YouTube test snapshots
2024-09-03 17:44:20 +02:00
Alexandre CUER
8255728f53 Migrate emoncms to config flow (#121336)
* Migrate emoncms to config flow

* tests coverage 98%

* use runtime_data

* Remove pyemoncms bump.

* Remove not needed yaml parameters add async_update_data to coordinator

* Reduce snapshot size

* Remove CONF_UNIT_OF_MEASUREMENT

* correct path in emoncms_client mock

* Remove init connexion check
as done by config_entry_first_refresh
since async_update_data catches exceptionand raise UpdateFailed

* Remove CONF_EXCLUDE_FEEDID from config flow

* Update homeassistant/components/emoncms/__init__.py

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

* Update homeassistant/components/emoncms/sensor.py

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

* Update homeassistant/components/emoncms/strings.json

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

* Use options in options flow and common strings

* Extend the ConfigEntry type

* Define the type explicitely

* Add data description in strings.json

* Update tests/components/emoncms/test_config_flow.py

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

* Update tests/components/emoncms/test_config_flow.py

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

* Add test import same yaml conf + corrections

* Add test user flow

* Use data_description...

* Use snapshot_platform in test_sensor

* Transfer all fixtures in conftest

* Add async_step_choose_feeds to ask flows to user

* Test abortion reason in test_flow_import_failure

* Add issue when value_template is i yaml conf

* make text more expressive in strings.json

* Add issue when no feed imported during migration.

* Update tests/components/emoncms/test_config_flow.py

* Update tests/components/emoncms/test_config_flow.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-03 17:21:13 +02:00
ollo69
470335e27a Add sensors for AsusWRT using http(s) library (#124337)
* Additional sensors for AsusWRT using http(s) library

* Remove temperature sensors refactor from PR

* Fix test function name

* Change translation a suggested

* Requested changes
2024-09-03 17:11:17 +02:00
Andrew Jackson
56887747a6 Bump aiomealie to 0.9.2 (#125153)
Bump mealie version
2024-09-03 17:09:26 +02:00
Erik Montnemery
1dcae0c0a6 Improve some comments in recorder tests (#125118) 2024-09-03 17:04:08 +02:00
Erik Montnemery
8759a6a14d Make optional arguments to frame.report kwarg only (#125062)
* Make optional arguments to frame.report kwarg only

* Update homeassistant/helpers/frame.py

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

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-09-03 17:03:36 +02:00
Hans Kröner
5d072d1030 Bump PyMetno to 0.13.0 (#125151) 2024-09-03 16:51:13 +02:00
Raj Laud
78517f75e8 Add favorites support to Media Browser for Squeezebox integration (#124732)
* Add Favorites support to Media Browser

* CI fixes

* More CI Fixes

* Another CI

* Change icons for other library items to use standard LMS icons

* Change max favorites to BROWSE_LIMIT

* Simplify library_payload to consolidate favorite and non-favorite items

* Simplify library_payload to consolidate favorite and non-favorite items

* Add support for favorite hierarchy

* small fix for icon naming with local albums

* Add ability to expand an album from a favorite list

* Reformat to fix linting error

* and ruff format

* Use library calls from pysqueezebox

* Folder and playback support

* Bump to pysqueezebox 0.8.0

* Bump pysqueezebox version to 0.8.1

* Add unit tests

* Improve unit tests

* Refactor tests to use websockets and services.async_call

* Apply suggestions from code review

---------

Co-authored-by: peteS-UK <64092177+peteS-UK@users.noreply.github.com>
2024-09-03 16:50:55 +02:00
MJJ
42ed7fbb0d Increase timeout for fetching buienradar weather data (#124597)
Increase timeout for fetching weather data
2024-09-03 16:50:30 +02:00
Michael
96be3e2505 Use SnapshotAssertion in more AVM Fritz!Box Tools tests (#125037)
use SnapshotAssertion in more tests
2024-09-03 16:39:06 +02:00
UltimateGG
2fa3b9070c Fix updating insteon modem configuration while disconnected (#121918)
#121917 Fix updating insteon modem configuration while disconnected
2024-09-03 16:31:48 +02:00
mvn23
d827c53a85 Remove opentherm_gw options migration (#125046) 2024-09-03 15:59:12 +02:00
G Johansson
436ac72b82 End deprecation setting attributes directly on config entry (#123729)
* End deprecation setting attr directly on config entry

* Update ollama test

* Fix android_tv
2024-09-03 15:56:00 +02:00
Martin Hjelmare
7c15075231 Clean up Z-wave error log when raising in service handlers (#125138) 2024-09-03 15:49:11 +02:00
S
8e3ad2d1f3 Extended epson projector integration to include serial connections (#121630)
* Extended epson projector integration to include serial connections

* Fix review changes

* Improve epson types and translations

* Fix comment

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-09-03 15:46:57 +02:00
dependabot[bot]
733bbf9cd1 Bump actions/upload-artifact from 4.3.6 to 4.4.0 (#125056)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.6 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.6...v4.4.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-03 15:46:05 +02:00
Jakob Schlyter
822660732b Support setting Amazon Polly engine in service call (#120226) 2024-09-03 15:45:37 +02:00
Erik Montnemery
d6bd4312ab Add explaining comments in cv.template tests (#125081) 2024-09-03 15:34:31 +02:00
J. Nick Koston
491bde181c Speed up hassio send_command url check (#125122)
* Speed up hassio send_command url check

The send_command call checked the resulting path to make
sure that the input path was not modified when converting
to a URL. Since the host is is pre-set, we only need to check
the processed raw_path matches command instead of converting
back to a string, and than comparing it against another
constructed string.

* Speed up hassio send_command url check

The send_command call checked the resulting path to make
sure that the input path was not modified when converting
to a URL. Since the host is is pre-set, we only need to check
the processed raw_path matches command instead of converting
back to a string, and than comparing it against another
constructed string.

* adjust
2024-09-03 15:29:02 +02:00
Artur Pragacz
fdce524811 Add Onkyo Receiver class to improve typing (#124190) 2024-09-03 15:27:33 +02:00
Erik Montnemery
cf10549df4 Restore unnecessary assignment of Template.hass in event helper (#125143) 2024-09-03 15:25:35 +02:00
Marcel van der Veldt
fd01e22ca4 Fix energy sensor for ThirdReality Matter powerplug (#125140) 2024-09-03 15:24:49 +02:00
tronikos
334359bb0a Add Google Cloud Speech-to-Text (STT) (#120854)
* Google Cloud

* .

* fix

* mypy

* add tests

* Update .coveragerc

* Update const.py

* upload file, reconfigure and import flow

* fixes

* default to latest_short

* mypy

* update

* Allow clearing options in the UI

* update

* update

* update
2024-09-03 15:23:07 +02:00
Steven B.
eda1656e75 Abort ring config_flow if account is already configured (#125120)
* Abort ring config_flow if account is already configured

* Update tests/components/ring/test_config_flow.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-03 15:22:38 +02:00
Robert Resch
6cea6be4a7 Improve hassfest docker image (#125133)
* Improve hassfest docker image

* Use fixed uv version

* Use cli params instead env

* run hassfest

* Exclude pycache
2024-09-03 14:59:01 +02:00
Brett Adams
6ecc5c19a2 Add climate platform to Tesla Fleet (#123169)
* Add climate

* docstring

* Add tests

* Fix limited scope situation

* Add another test

* Add icons

* Type vehicle data

* Replace inline temperatures

* Fix handle_vehicle_command type

* Fix preset turning HVAC off

* Fix cop_mode check

* Use constants

* Reference docs in command signing error

* Move to a read-only check

* Remove raise_for

* Fixes

* Tests

* Remove raise_for_signing

* Remove unused strings

* Fix async_set_temperature

* Correct tests

* Remove HVAC modes at startup in read-only mode

* Fix order of init actions to set hvac_modes correctly

* Fix no temp test

* Add handle command type

* Docstrings

* fix matches and fix a bug

* Split tests

* Fix issues from rebase
2024-09-03 14:38:47 +02:00
Erik Montnemery
c321bd70e1 Log deprecation warning when cv.template is called from wrong thread (#125141)
Log deprecation warning when cv.template is called from wrong thread
2024-09-03 14:37:21 +02:00
Erik Montnemery
851600630c Log deprecation warning when template.Template is created without hass (#125142)
* Log deprecation warning when template.Template is created without hass

* Improve docstring
2024-09-03 14:28:33 +02:00
Michal Jál
e3896d1f60 Bump PySwitchbot to 0.48.2 (#125113) 2024-09-03 14:22:39 +02:00
Aaron Bach
c71cf272c8 Fix unhandled exception with missing IQVIA data (#125114) 2024-09-03 14:21:52 +02:00
Robert Resch
d12c6f89d2 Bump hadolint to 2.12.0 and use matrix for all Dockerfiles (#125131)
* Bump hadolint to 2.12.0 and use matrix for all Dockerfiles

* Fix

* Disable fail fast
2024-09-03 14:13:43 +02:00
Steven B.
5965d8d503 Pass hass clientsession to ring config flow (#125119)
Pass hass clientsession to ring config flow
2024-09-03 14:00:30 +02:00
ilan
94f458ff98 Bump py-madvr2 to 1.6.32 (#125049)
feat: update lib
2024-09-03 13:56:59 +02:00
Allen Porter
c07a9e9d59 Add dependency on google-photos-library-api: Change the Google Photos client library to a new external package (#125040)
* Change the Google Photos client library to a new external package

* Remove mime type guessing

* Update tests to mock out the client library and iterators

* Update homeassistant/components/google_photos/media_source.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-03 13:54:43 +02:00
Philip Vanloo
b9db9eeab2 Add Linkplay mTLS/HTTPS and improve logging (#124307)
* Work

* Implement 0.0.8 changes, fixup tests

* Cleanup

* Implement new playmodes, close clientsession upon ha close

* Implement new playmodes, close clientsession upon ha close

* Add test for zeroconf bridge failure

* Bump 0.0.9
Address old comments in 113940

* Exact _async_register_default_clientsession_shutdown
2024-09-03 13:34:47 +02:00
Christopher Fenner
f34b449f61 Correct device serial for ViCare integration (#125125)
* expose correct serial

* adapt inits

* adjust _build_entities

* adapt inits

* add serial data point

* update snapshot

* apply suggestions

* apply suggestions
2024-09-03 12:50:05 +02:00
Artur Pragacz
fc24843274 Fix Onkyo action select_hdmi_output (#125115)
* Fix Onkyo service select_hdmi_output

* Move Hasskey directly under Onkyo domain
2024-09-03 12:43:31 +02:00
Steven B.
22b6239304 Convert ring integration to use entry.runtime_data (#125127) 2024-09-03 12:04:35 +02:00
LG-ThinQ-Integration
aa8fe99113 Add binary_sensor platform to LG Thinq (#125054)
* Add binary_sensor entity

* Update the document link due to the domain name change

* Update casing

---------

Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
2024-09-03 09:30:46 +02:00
Erik Montnemery
7c223db1d5 Remove recorder PostSchemaMigrationTask (#125076)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-03 07:51:27 +02:00
Jan Bouwhuis
0c18b2e7ff Remove is_on function from homeassistant.components (#125104)
* Remove `is_on` method from `homeassistant.components`

* Cleanup test
2024-09-03 06:57:25 +02:00
dontinelli
d68ee8dcea Replace _host_in_configuration_exists with async_abort_entries_match in solarlog (#125099)
* Add diagnostics to solarlog

* Fix wrong comment

* Move to async_abort_entries_match

* Remove obsolete method solarlog_entries

* Update tests/components/solarlog/test_config_flow.py

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

* Update tests/components/solarlog/test_config_flow.py

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

* Update tests/components/solarlog/test_config_flow.py

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

* Update tests/components/solarlog/test_config_flow.py

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

* Amend import of config_entries.SOURCE_USER

* Update tests/components/solarlog/test_config_flow.py

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

* Ruff

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-03 00:38:09 +02:00
cnico
671aaa7e95 Bump flipr api to 1.6.1 (#125106) 2024-09-02 23:51:10 +02:00
Álvaro Fernández Rojas
faefe624f6 Add Airzone Cloud Aidoo HVAC indoor/outdoor sensors (#125013)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-02 22:17:24 +02:00
J. Nick Koston
f93259a2f1 Bump yalexs to 8.6.0 (#125102) 2024-09-02 21:43:34 +02:00
Erik Montnemery
606524f9e7 Test string timestamps are wiped after migration to schema version 32 (#125091)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-02 21:33:35 +02:00
J. Nick Koston
cd89db9bb6 Add coverage for late unifiprotect person detection events (#125103) 2024-09-02 09:26:02 -10:00
Richard Kroegel
f760c13e8f Fix blocking calls for OpenAI conversation (#125010) 2024-09-02 09:23:38 -10:00
Martin Hjelmare
687cd32142 Handle telegram polling errors (#124327) 2024-09-02 09:23:24 -10:00
Artur Pragacz
fb27297df9 Fix area registry indexing when there is a name collision (#125050) 2024-09-02 09:23:07 -10:00
Avi Miller
3e350bdc90 Bump aiolifx to 1.0.9 and remove unused HomeKit model prefixes (#125055)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-02 09:22:39 -10:00
Erik Montnemery
0b14f0a379 Add test of statistics timestamp migration (#125100) 2024-09-02 09:13:26 -10:00
Maciej Bieniek
3206979488 Add separate entities for temperature, humidity and pressure in AccuWeather integration (#125041)
* Add temperature, humidity and pressure sensors

* Make uv index sensor disabled by default

* Fix type
2024-09-02 20:46:32 +02:00
Jan Bouwhuis
4c27bfbf7f Cleanup removed options for mqtt climate (#125083) 2024-09-02 20:35:36 +02:00
dontinelli
7c4fd9473c Add diagnostics to solarlog (#125072)
* Add diagnostics to solarlog

* Fix wrong comment
2024-09-02 20:08:44 +02:00
Bram Kragten
3af11fb2b1 Bump version to 2024.9.0b3 2024-09-02 20:06:41 +02:00
Steven B.
c839cc1f15 Call async_write_ha_state after ring update (#125096)
Use async_write_ha_state after ring update
2024-09-02 20:06:21 +02:00
Paul Bottein
a0f2e2ebdd Update frontend to 20240902.0 (#125093) 2024-09-02 20:06:20 +02:00
dontinelli
d07e62b2f1 Bump fyta_cli to 0.6.6 (#125065) 2024-09-02 20:06:19 +02:00
tronikos
e7f957def2 Bump androidtvremote2 to 0.1.2 to fix blocking event loop when loading ssl certificate chain (#125061)
Bump androidtvremote2 to 0.1.2
2024-09-02 20:06:19 +02:00
Erik Montnemery
16ab57c9a6 Fix motionblinds_ble tests (#125060) 2024-09-02 20:06:18 +02:00
J. Nick Koston
1a67052cbd Bump habluetooth to 3.4.0 (#125058)
changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.3.2...v3.4.0
2024-09-02 20:06:17 +02:00
Erik Montnemery
f85a802ebd Don't raise when registering entity service with invalid schema (#125057)
* Don't raise when registering entity service with invalid schema

* Update homeassistant/helpers/service.py

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

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2024-09-02 20:06:16 +02:00
Shay Levy
3b5c08ecf8 Bump aioshelly to 11.4.2 (#125036) 2024-09-02 20:06:16 +02:00
J. Nick Koston
450c63ad28 Bump yarl to 1.9.7 (#125035) 2024-09-02 20:06:15 +02:00
Michael
a8f472f44e Add diagnostics platform to modern forms (#125032) 2024-09-02 20:06:14 +02:00
dontinelli
fa3a301e97 Add ConductivityConverter in websocket_api.py (#125029) 2024-09-02 20:06:13 +02:00
Martin Hjelmare
b1ef1be9a3 Bump python-telegram-bot to 21.5 (#125025) 2024-09-02 20:06:12 +02:00
Joost Lekkerkerker
62ef951ace Bump aiomealie to 0.9.1 (#125017) 2024-09-02 20:06:12 +02:00
Richard Kroegel
06660f9170 Fix BMW client blocking on load_default_certs (#125015)
* Fix BMW client blocking load_default_certs

* Use get_default_context
2024-09-02 20:06:11 +02:00
Richard Kroegel
7662ca8a96 Fix telegram_bot blocking on load_default_certs (#125014)
* Fix telegram_bot blocking on load_default_certs

* Use sync variant of create_issue
2024-09-02 20:06:10 +02:00
Richard Kroegel
e04fc74fcf Fix ollama blocking on load_default_certs (#125012)
* Fix ollama blocking on load_default_certs

* Use get_default_context instead of client_context
2024-09-02 20:06:09 +02:00
Alan Murray
f9bca7619c Bump aiopulse to 0.4.6 (#124964)
Non-breaking changes to fix isses:
 * eliminating hub exceptions raised due use of unicode strings.
 * eliminating hub exceptions raised due to Timers being configured on hub.
2024-09-02 20:06:08 +02:00
J. Nick Koston
1b9aa727f8 Bump yarl to 1.9.6 (#124955)
* Bump yarl to 1.9.5

changelog: https://github.com/aio-libs/yarl/compare/v1.9.4...v1.9.5

* remove default port since mocker does exact matching and yarl now normalizes this

* 1.9.6
2024-09-02 20:06:07 +02:00
Joost Lekkerkerker
d54c1935f8 Define household support in Mealie (#124950) 2024-09-02 20:06:07 +02:00
Steven B.
9cfad05793 Exclude tplink firmware entities (#124935)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-09-02 20:06:06 +02:00
Steven B.
03ab471d23 Bump python-kasa to 0.7.2 (#124930) 2024-09-02 20:06:05 +02:00
Joost Lekkerkerker
b2b69e40fd Make set_value required in number template (#124917)
* Make set_value required in number template

* Make set_value required in number template

* Fix tests
2024-09-02 20:06:04 +02:00
J. Nick Koston
c6ff445dd4 Bump aioshelly to 11.4.1 to accomodate shelly GetStatus calls that take a few seconds to respond (#124893)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-09-02 20:06:03 +02:00
vhkristof
0948a94409 Bump renault-api to v0.2.7 (#124858)
* Bump renault-api to v0.2.7

* Updated requirements_all and requirements_test_all
2024-09-02 20:06:02 +02:00
J. Nick Koston
9be20d6130 Restore sisyphus integration (#124749)
* Revert "Disable sisyphus integration (#124742)"

This reverts commit 1b304e60d9.

* Restore sisyphus integration

reverts #124742 and updates the lib instead

changelog: https://github.com/jkeljo/sisyphus-control/compare/v3.1.3...v3.1.4

release is pending: https://github.com/jkeljo/sisyphus-control/pull/8#issuecomment-2313893689
2024-09-02 20:06:01 +02:00
Etienne Soufflet
c4e484539d Fix Tado fan speed for AC (#122415)
* change capabilities

* fix tests 2

* improve usability with capabilities

* fix swings management

* Update homeassistant/components/tado/climate.py

Co-authored-by: Erwin Douna <e.douna@gmail.com>

* fix after Erwin's review

* fix after joostlek's review

* use constant

* use in instead of get

---------

Co-authored-by: Erwin Douna <e.douna@gmail.com>
2024-09-02 20:06:00 +02:00
Jeef
234f32265e Bump Intellifire to 4.1.9 (#121091)
* rebase

* Minor patch to fix duplicate DeviceInfo beign created - if data hasnt updated yet

* rebase

* Minor patch to fix duplicate DeviceInfo beign created - if data hasnt updated yet

* fixing formatting

* Update homeassistant/components/intellifire/__init__.py

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

* Update homeassistant/components/intellifire/__init__.py

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

* Removing cloud connectivity sensor - leaving local one in

* Renaming class to something more useful

* addressing pr

* Update homeassistant/components/intellifire/__init__.py

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

* add ruff exception

* Fix test annotations

* remove access to private variable

* Bumping to 4.1.9 instead of 4.1.5

* A renaming

* rename

* Updated testing

* Update __init__.py

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

* updateing styrings

* Update tests/components/intellifire/conftest.py

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

* Testing refactor - WIP

* everything is passing - cleanup still needed

* cleaning up comments

* update pr

* unrename

* Update homeassistant/components/intellifire/coordinator.py

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

* fixing sentence

* fixed fixture and removed error codes

* reverted a bad change

* fixing strings.json

* revert renaming

* fix

* typing inother pr

* adding extra tests - one has a really dumb name

* using a real value

* added a migration in

* Update homeassistant/components/intellifire/config_flow.py

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

* Update tests/components/intellifire/test_init.py

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

* cleanup continues

* addressing pr

* switch back to debug

* Update tests/components/intellifire/conftest.py

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

* some changes

* restore property mock cuase didnt work otherwise

* cleanup has begun

* removed extra text

* addressing pr stuff

* fixed reauth

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-02 20:05:59 +02:00
Paul Bottein
633c904852 Update frontend to 20240902.0 (#125093) 2024-09-02 20:04:33 +02:00
dontinelli
5300eddf33 Remove roundig in Solarlog and add suggested_display_precision (#125094)
* Remove roundig and add suggested_display_precision

* Add suggested_unit_of_measurement

* Put lamda in parentheses
2024-09-02 19:50:09 +02:00
Erik Montnemery
9f558d13e6 Correct start version in recorder schema migration tests (#125090)
* Correct start version in recorder schema migration tests

* Remove default from states.last_updated_ts
2024-09-02 19:32:01 +02:00
Steven B.
9ae59e5ea0 Bump ring-doorbell to 0.9.3 (#125087) 2024-09-02 18:18:45 +02:00
Steven B.
1b1c1c2a55 Call async_write_ha_state after ring update (#125096)
Use async_write_ha_state after ring update
2024-09-02 18:03:58 +02:00
Erik Montnemery
df4bd721b5 Deprecate template.attach (#124843) 2024-09-02 15:33:10 +02:00
Erik Montnemery
baa876d4d9 Remove lying comment from service.async_register_entity_service (#125079) 2024-09-02 15:18:02 +02:00
LG-ThinQ-Integration
b99dceab74 Do not LG thinq retry entry setup, when a single coordinator failed (#125052)
Do not retry entry setup, when a single coordinator failed.

Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
2024-09-02 14:58:06 +02:00
Erik Montnemery
114e254aa6 Don't raise when registering entity service with invalid schema (#125057)
* Don't raise when registering entity service with invalid schema

* Update homeassistant/helpers/service.py

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

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2024-09-02 14:20:50 +02:00
Erik Montnemery
fbfd8c48aa Remove unused event from recorder (#125067) 2024-09-02 13:33:51 +02:00
tronikos
d40e3145fe Setup Google Cloud from the UI (#121502)
* Google Cloud can now be setup from the UI

* mypy

* Add BaseGoogleCloudProvider

* Allow clearing options in the UI

* Address feedback

* Don't translate Google Cloud title

* mypy

* Revert strict typing changes

* Address comments
2024-09-02 04:30:18 -07:00
tronikos
f4a16c8dc9 Add strict typing in Google Cloud (#125068) 2024-09-02 04:07:12 -07:00
Nidre
2ce6bd2378 Update Matter light transition blocklist to include YNDX LightStrip (#124657) 2024-09-02 12:28:49 +02:00
J. Nick Koston
9334099bed Bump habluetooth to 3.4.0 (#125058)
changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.3.2...v3.4.0
2024-09-02 11:28:42 +02:00
dontinelli
077edb08f6 Bump fyta_cli to 0.6.6 (#125065) 2024-09-02 11:27:31 +02:00
epenet
72d5146a3e Improve renault tests (#125064) 2024-09-02 10:46:35 +02:00
tronikos
fa14321aa1 Bump androidtvremote2 to 0.1.2 to fix blocking event loop when loading ssl certificate chain (#125061)
Bump androidtvremote2 to 0.1.2
2024-09-02 01:41:29 -07:00
Erik Montnemery
8f679fcbf3 Fix motionblinds_ble tests (#125060) 2024-09-02 09:51:05 +02:00
G Johansson
78cf7dc873 New template merge_response (#114204)
* New template merge_response

* Extending

* Extend comment

* Update

* Fixes

* Fix comments

* Mods

* snapshots

* Fixes from discussion
2024-09-02 08:13:10 +02:00
Allen Porter
9fff3a13a5 Clarify comment in google photos upload service (#125042) 2024-09-01 21:49:38 -07:00
Shay Levy
99f43400bf Bump aioshelly to 11.4.2 (#125036) 2024-09-01 11:08:19 -10:00
J. Nick Koston
77b464f2bd Bump yarl to 1.9.7 (#125035) 2024-09-01 10:47:24 -10:00
Michael
07e251d488 Add diagnostics platform to modern forms (#125032) 2024-09-01 22:04:29 +02:00
dontinelli
659d135fca Add ConductivityConverter in websocket_api.py (#125029) 2024-09-01 21:02:32 +02:00
Álvaro Fernández Rojas
24414369d7 Update aioairzone-cloud to v0.6.5 (#125030)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-01 21:28:13 +03:00
Etienne Soufflet
92c1fb77e9 Fix Tado fan speed for AC (#122415)
* change capabilities

* fix tests 2

* improve usability with capabilities

* fix swings management

* Update homeassistant/components/tado/climate.py

Co-authored-by: Erwin Douna <e.douna@gmail.com>

* fix after Erwin's review

* fix after joostlek's review

* use constant

* use in instead of get

---------

Co-authored-by: Erwin Douna <e.douna@gmail.com>
2024-09-01 18:33:45 +02:00
Martin Hjelmare
ae1f53775f Bump python-telegram-bot to 21.5 (#125025) 2024-09-01 17:51:31 +02:00
Dmitry Krasnoukhov
bd6b5568eb Extend hjjcy device category in Tuya integration (#124854)
* Extend hjjcy device category in Tuya integration

* Better AQI level names
2024-09-01 17:50:53 +02:00
Malte Franken
5f2964d3e8 Bump aio-georss-gdacs to 0.10 (#125021)
bump aio-georss-gdacs to 0.10
2024-09-01 17:38:48 +02:00
Joost Lekkerkerker
c6865d0862 Bump aiomealie to 0.9.1 (#125017) 2024-09-01 17:37:06 +02:00
Richard Kroegel
ef8fc3913e Fix ollama blocking on load_default_certs (#125012)
* Fix ollama blocking on load_default_certs

* Use get_default_context instead of client_context
2024-09-01 17:35:55 +02:00
mvn23
56667ec2bc Migrate opentherm_gw climate entity unique_id (#125024)
* Migrate climate entity unique_id to match the format used by other opentherm_gw entities
* Add test to verify migration
2024-09-01 17:22:03 +02:00
Richard Kroegel
fa21613951 Fix telegram_bot blocking on load_default_certs (#125014)
* Fix telegram_bot blocking on load_default_certs

* Use sync variant of create_issue
2024-09-01 17:13:04 +02:00
Richard Kroegel
f735d12a66 Fix BMW client blocking on load_default_certs (#125015)
* Fix BMW client blocking load_default_certs

* Use get_default_context
2024-09-01 16:26:14 +02:00
mvn23
2f7a396778 Split opentherm_gw entities between different devices (#124869)
* * Add migration from single device to multiple devices, removing all old entities
* Create new devices for Boiler and Thermostat
* Add classes for new entities based on the new devices

* Split binary_sensor entities into devices

* Split sensor entities into different devices

* Move climate entity to thermostat device

* Fix climate entity away mode

* Fix translation placeholders

* Allow sensor values with capital letters

* * Add EntityCategory
* Update and add device_classes

* Fix translation keys

* Fix climate entity category

* Update tests

* Handle `available` property in `entity.py`

* Improve GPIO state binary_sensor translations

* Fix: Updates are already subscribed to in the base entity

* Remove entity_id generation from sensor and binary_sensor entities

* * Use _attr_name on climate class instead of through entity_description
* Add type hints

* Rewrite to derive entities for all OpenTherm devices from a single base class

* Improve type annotations

* Use OpenThermDataSource to access status dict

* Move entity_category from entity_description to _attr_entity_category

* Move entity descriptions with the same translation_key closer together

* Update tests

* Add device migration test

* * Add missing sensors and binary_sensors back
* Improve migration, do not delete old entities from registry

* Add comments for migration period

* Use single lists for entity descriptions

* Avoid changing sensor values, remove translations

* * Import only required class from pyotgw
* Update tests
2024-09-01 13:28:08 +02:00
Jeef
12336f5c15 Bump Intellifire to 4.1.9 (#121091)
* rebase

* Minor patch to fix duplicate DeviceInfo beign created - if data hasnt updated yet

* rebase

* Minor patch to fix duplicate DeviceInfo beign created - if data hasnt updated yet

* fixing formatting

* Update homeassistant/components/intellifire/__init__.py

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

* Update homeassistant/components/intellifire/__init__.py

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

* Removing cloud connectivity sensor - leaving local one in

* Renaming class to something more useful

* addressing pr

* Update homeassistant/components/intellifire/__init__.py

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

* add ruff exception

* Fix test annotations

* remove access to private variable

* Bumping to 4.1.9 instead of 4.1.5

* A renaming

* rename

* Updated testing

* Update __init__.py

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

* updateing styrings

* Update tests/components/intellifire/conftest.py

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

* Testing refactor - WIP

* everything is passing - cleanup still needed

* cleaning up comments

* update pr

* unrename

* Update homeassistant/components/intellifire/coordinator.py

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

* fixing sentence

* fixed fixture and removed error codes

* reverted a bad change

* fixing strings.json

* revert renaming

* fix

* typing inother pr

* adding extra tests - one has a really dumb name

* using a real value

* added a migration in

* Update homeassistant/components/intellifire/config_flow.py

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

* Update tests/components/intellifire/test_init.py

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

* cleanup continues

* addressing pr

* switch back to debug

* Update tests/components/intellifire/conftest.py

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

* some changes

* restore property mock cuase didnt work otherwise

* cleanup has begun

* removed extra text

* addressing pr stuff

* fixed reauth

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-09-01 12:48:38 +02:00
dontinelli
1661304f10 Bump solarlog_cli to 0.2.2 (#124948)
* Add inverter-devices

* Minor code adjustments

* Update manifest.json

Seperate dependency upgrade to seperate PR

* Update requirements_all.txt

Seperate dependency upgrade to seperate PR

* Update requirements_test_all.txt

Seperate dependency upgrade to seperate PR

* Update homeassistant/components/solarlog/sensor.py

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

* Split up base class, document SolarLogSensorEntityDescription

* Split up sensor types

* Update snapshot

* Bump solarlog_cli to 0.2.1

* Add strict typing

* Bump fyta_cli to 0.6.3 (#124574)

* Ensure write access to hassrelease data folder (#124573)

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

* Update a roborock blocking call to be fully async (#124266)

Remove a blocking call in roborock

* Add inverter-devices

* Split up sensor types

* Update snapshot

* Bump solarlog_cli to 0.2.1

* Backport/rebase

* Tidy up

* Simplyfication coordinator.py

* Minor adjustments

* Ruff

* Bump solarlog_cli to 0.2.2

* Update homeassistant/components/solarlog/sensor.py

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

* Update homeassistant/components/solarlog/config_flow.py

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

* Update homeassistant/components/solarlog/sensor.py

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

* Update persentage-values in fixture

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Allen Porter <allen@thebends.org>
2024-09-01 12:47:52 +02:00
Álvaro Fernández Rojas
68162e1a27 Update aioairzone-cloud to v0.6.4 (#125007)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-01 12:45:59 +02:00
Bill Flood
95a25c72dc Use constant for default medium type in Mopeka (#125002)
- Updated the Mopeka BLE device setup to use const
  DEFAULT_MEDIUM_TYPE
- Fix Spelling error in a coment
2024-09-01 07:12:24 +02:00
Allen Porter
30772da0e1 Add Google Photos media source support for albums and favorites (#124985) 2024-08-31 14:39:18 -07:00
Allen Porter
ef84a8869e Add Google Photos service for uploading content (#124956)
* Add Google Photos upload support

* Fix format

* Merge in scope/reauth changes

* Address PR feedback

* Fix blocking i/o in async
2024-08-31 21:16:14 +02:00
Allen Porter
d3879a36d1 Add loggers for Google Photos integration (#124986) 2024-08-31 21:11:22 +02:00
Allen Porter
93afc9458a Update nest to only include the image attachment payload for cameras that support fetching media (#124590)
Only include the image attachment payload for cameras that support fetching media
2024-08-31 11:38:45 -07:00
Marc Mueller
5cd8e4ab7e Update mypy-dev to 1.12.0a3 (#124939)
* Update mypy-dev to 1.12.0a3

* Fix
2024-08-31 19:34:41 +02:00
Álvaro Fernández Rojas
994c2ebca1 Update aioairzone-cloud to v0.6.3 (#124978)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-31 17:30:58 +02:00
Allen Porter
81f5068354 Clean up Google Photos media source (#124977)
* Clean up Google Photos media source

* Fix typo

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-08-31 08:22:50 -07:00
Brett Adams
3e60d7aa11 Small code quality fix in Teslemetry (#124603)
* Fix cop_mode logic bug

* Update climate.py

* Fix attributes
2024-08-31 07:41:00 -07:00
Joost Lekkerkerker
30aa3a26ad Merge coordinators in Airgradient (#124714) 2024-08-31 07:40:12 -07:00
epenet
9da5dd0090 Improve config flow type hints in cast (#124861) 2024-08-31 07:38:06 -07:00
Brett Adams
65f007ace7 Remove HVAC Modes when no scopes in Teslemetry (#124612)
* Remove modes when not scoped

* Fix inits

* Re-add raise

* Remove unused raise_for_scope

* Set hvac_modes when not scoped

* tests
2024-08-31 07:28:35 -07:00
Joost Lekkerkerker
2a8feda691 Define household support in Mealie (#124950) 2024-08-31 12:00:12 +02:00
Andre Lengwenus
36b7e8569e Send entity name or original name to LCN frontend (#124518)
* Send name or original name to frontend

* Use walrus operator

* Fix docstring

* Fix mutated config_entry.data
2024-08-31 11:42:22 +02:00
Alan Murray
221f961574 Bump aiopulse to 0.4.6 (#124964)
Non-breaking changes to fix isses:
 * eliminating hub exceptions raised due use of unicode strings.
 * eliminating hub exceptions raised due to Timers being configured on hub.
2024-08-31 11:33:58 +02:00
J. Nick Koston
7210cc1da6 Bump yarl to 1.9.6 (#124955)
* Bump yarl to 1.9.5

changelog: https://github.com/aio-libs/yarl/compare/v1.9.4...v1.9.5

* remove default port since mocker does exact matching and yarl now normalizes this

* 1.9.6
2024-08-31 11:03:08 +02:00
vhkristof
5fa23b1785 Bump renault-api to v0.2.7 (#124858)
* Bump renault-api to v0.2.7

* Updated requirements_all and requirements_test_all
2024-08-31 10:56:23 +02:00
Allen Porter
2cab9f7fe9 Address additional Google Photos integration feedback (#124957)
* Address review feedback

* Fix typing for  arguments
2024-08-31 10:10:45 +02:00
J. Nick Koston
3bfcb1ebdd Restore sisyphus integration (#124749)
* Revert "Disable sisyphus integration (#124742)"

This reverts commit 1b304e60d9.

* Restore sisyphus integration

reverts #124742 and updates the lib instead

changelog: https://github.com/jkeljo/sisyphus-control/compare/v3.1.3...v3.1.4

release is pending: https://github.com/jkeljo/sisyphus-control/pull/8#issuecomment-2313893689
2024-08-31 10:07:36 +02:00
Allen Porter
c1eb5f8b74 Fix Google Photos get media calls (#124958) 2024-08-31 10:01:51 +02:00
Allen Porter
582b7eab66 Add missing translation for Google Photos reauth (#124959) 2024-08-31 10:01:27 +02:00
Alex Yao
26281662b5 Enable config flow for html5 (#112806)
* html5: Enable config flow

* Add tests

* attempt check create_issue

* replace len with call_count

* fix config flow tests

* test user config

* more tests

* remove whitespace

* Update homeassistant/components/html5/issues.py

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>

* Update homeassistant/components/html5/issues.py

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>

* fix config

* Adjust issues log

* lint

* lint

* rename create issue

* fix typing

* update codeowners

* fix test

* fix tests

* Update issues.py

* Update tests/components/html5/test_config_flow.py

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

* Update tests/components/html5/test_config_flow.py

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

* Update tests/components/html5/test_config_flow.py

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

* update from review

* remove ternary

* fix

* fix missing service

* fix tests

* updates

* adress review comments

* fix indent

* fix

* fix format

* cleanup from review

* Restore config schema and use HA issue

* Restore config schema and use HA issue

---------

Co-authored-by: alexyao2015 <alexyao2015@users.noreply.github.com>
Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-08-30 23:22:14 +02:00
Joost Lekkerkerker
ac39bf991f Rename lg_thinq domain name (#124926) 2024-08-30 22:34:34 +02:00
J. Nick Koston
0a9e20615e Limit maximum template render output to 256KiB (#124946)
* Limit maximum template render output to 256KiB

fixes #124931

256KiB is likely to still block the event loop for an unreasonable amont of
time but its likely someone is using the template engine for large
blocks of data so we want a limit which still allows that but has
a reasonable safety to prevent the system from crashing down

* Update homeassistant/helpers/template.py
2024-08-30 22:33:57 +02:00
J. Nick Koston
8cafa1bcdf Bump google-generativeai to 0.7.2 (#124940)
changelog: https://github.com/google-gemini/generative-ai-python/compare/v0.6.0...v0.7.2
2024-08-30 22:33:26 +02:00
J. Nick Koston
66ddf44399 Bump google-cloud-pubsub to 2.23.0 (#124937)
changelog: https://github.com/googleapis/python-pubsub/compare/v2.13.11...v2.23.0
2024-08-30 22:32:23 +02:00
J. Nick Koston
933ae143b3 Bump google-cloud-texttospeech to 2.17.2 (#124938)
changelog: https://github.com/googleapis/google-cloud-python/compare/google-cloud-texttospeech-v2.16.3...google-cloud-texttospeech-v2.17.2
2024-08-30 22:32:09 +02:00
Joost Lekkerkerker
8c2e63807c Make set_value required in number template (#124917)
* Make set_value required in number template

* Make set_value required in number template

* Fix tests
2024-08-30 22:02:10 +02:00
J. Nick Koston
460363c4ba Bump aioshelly to 11.4.1 to accomodate shelly GetStatus calls that take a few seconds to respond (#124893)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-08-30 09:05:16 -10:00
Steven B.
29a17edaa5 Exclude tplink firmware entities (#124935)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-30 08:56:30 -10:00
Steven B.
ed161d3d49 Bump python-kasa to 0.7.2 (#124930) 2024-08-30 08:43:28 -10:00
Louis Christ
7868ffac35 Enable strict typing checking for bluesound integration (#123821)
* Enable strict typing

* Fix types

* Update to pyblu 0.5.2 for typing support

* Update pyblu to 1.0.0

* Update pyblu to 1.0.1

* Update error handling

* Fix tests

* Remove return None from methods only returning None
2024-08-30 20:21:27 +02:00
Bram Kragten
411b014da2 Bump version to 2024.9.0b2 2024-08-30 20:08:46 +02:00
Joost Lekkerkerker
3a8aa4200d Bump aiomealie to 0.9.0 (#124924)
* Bump aiomealie to 0.9.0

* Bump aiomealie to 0.9.0
2024-08-30 20:08:20 +02:00
Josef Zweck
dd8471e786 Bump lmcloud 1.2.2 (#124911)
bump lmcloud 1.2.2
2024-08-30 20:08:19 +02:00
Josef Zweck
f33b4b0dc0 Bump lmcloud to 1.2.1 (#124908) 2024-08-30 20:08:19 +02:00
J. Nick Koston
8ab8f7a740 Add a repair issue for Yale Home users using the August integration (#124895)
The Yale Home brand will stop working with the August integration very
soon. Users must migrate to the Yale integration to avoid an interruption in service.
2024-08-30 20:08:18 +02:00
J. Nick Koston
ee9e3fe27b Bump yalexs to 8.5.5 (#124891)
changelog: https://github.com/bdraco/yalexs/compare/v8.5.4...v8.5.5
2024-08-30 20:08:17 +02:00
J. Nick Koston
d4830caac0 Bump aioesphomeapi to 25.3.1 (#124890)
changelog: https://github.com/esphome/aioesphomeapi/compare/v25.2.1...v25.3.1
2024-08-30 20:08:16 +02:00
TheJulianJES
3b4e3b1370 Fix ZHA group removal entity registry cleanup (#124889)
* Fix ZHA cleanup entity registry parameter

* Fix missing `gateway` when accessing coordinator device

* Get `ZHADeviceProxy` for coordinator device
2024-08-30 20:08:15 +02:00
J. Nick Koston
533c8ca31c Address yale review comments part 2 (#124887)
* Remove some unneeded block till done

* Additional state check cleanups and snapshots

* Use more snapshots in yale tests
2024-08-30 20:08:15 +02:00
Michael Hansen
8668af17f6 Bump intents to 2024.8.29 (#124874) 2024-08-30 20:08:14 +02:00
Louis Christ
5b866e071c Handle CancelledError in bluesound integration (#124873)
Catch CancledError in async_will_remove_from_hass
2024-08-30 20:08:13 +02:00
IceBotYT
37af180edc Bump nice-go to 0.3.8 (#124872)
* Bump nice-go to 0.3.6

* Bump to 0.3.7

* Bump to 0.3.8
2024-08-30 20:08:13 +02:00
Robert Resch
0d5dc01048 Bump PyTurboJPEG to 1.7.5 (#124865) 2024-08-30 20:08:12 +02:00
Robert Resch
bd2be0a763 Optimize hassfest image (#124855)
* Optimize hassfest docker image

* Adjust CI

* Use dynamic uv version

* Remove workaround
2024-08-30 20:08:11 +02:00
J. Nick Koston
98cbd7d8da Address august review comments (#124819)
* Address august review comments

Followup to https://github.com/home-assistant/core/pull/124677

* cleanup loop

* drop mixin name

* event entity add cleanup

* remove duplicate prop

* pep0695 type

* remove some not needed block till done

* cleanup august tests

* switch to freezegun

* snapshots for dev reg

* SOURCE_USER nit

* snapshots

* pytest.raises

* not loaded check
2024-08-30 20:08:10 +02:00
puddly
26f3305743 Bump ZHA to 0.0.32 (#124804)
* Always prefer XY color mode in ZHA

Remove a few more HS remnants

* Use new ZHA OTA format

* Bump ZHA to 0.0.32

* Fix existing OTA unit tests

* Fix schema conversion test to account for new command parameters

* Update snapshot with new `zcl_type` kwarg

* Migrate existing entities to icon translations

* Remove "no longer compatible" test

* Test that the library release summary is correctly exposed to ZHA

* Revert "Always prefer XY color mode in ZHA"

This reverts commit 8fb7789ea8.

* Test `release_notes`, not `release_summary`
2024-08-30 20:08:10 +02:00
tronikos
3c0480596d Attempt to fix IndexError in Opower (#124478)
* Change the order of async_add_external_statistics in Opower

* Use consumption_statistic_id instead of cost_statistic_id
2024-08-30 20:08:09 +02:00
Jeef
81d2231e6f Bump weatherflow4py to 0.2.23 (#124072)
patch weatherflow for new data
2024-08-30 20:08:08 +02:00
Tony
2d041a1fa9 Bump aioruckus to v0.41 removing blocking call to load_default_certs from ruckus_unleashed integration (#123974)
* fix ruckusd_unleashed blocking call to load_default_certs

* remove extra loggers, bump aioruckus ver for debian packagers
2024-08-30 20:08:07 +02:00
tronikos
910fb0930e Attempt to fix IndexError in Opower (#124478)
* Change the order of async_add_external_statistics in Opower

* Use consumption_statistic_id instead of cost_statistic_id
2024-08-30 08:34:27 -07:00
Allen Porter
cb742a677c Add Google Photos reauth support (#124933)
* Add Google Photos reauth support

* Update tests/components/google_photos/test_config_flow.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-30 17:31:24 +02:00
IceBotYT
28c24e5fef Bump nice-go to 0.3.8 (#124872)
* Bump nice-go to 0.3.6

* Bump to 0.3.7

* Bump to 0.3.8
2024-08-30 17:08:58 +02:00
Mr. Bubbles
50577883dc Add option to login with username/email and password in Habitica integration (#117622)
* add login/password authentication

* add advanced config flow

* remove unused exception classes, fix errors

* update username in init

* update tests

* update strings

* combine steps with menu

* remove username from entry

* update tests

* Revert "update tests"

This reverts commit 6ac8ad6a26547b623e217db817ec4d0cf8c91f1d.

* Revert "remove username from entry"

This reverts commit d9323fb72df3f9d41be0a53bb0cbe16be718d005.

* small changes

* remove pylint broad-excep

* run habitipy init in executor

* Add text selectors

* changes
2024-08-30 17:08:06 +02:00
dontinelli
20f9b9e412 Add inverter-devices to solarlog (#123205)
* Add inverter-devices

* Minor code adjustments

* Update manifest.json

Seperate dependency upgrade to seperate PR

* Update requirements_all.txt

Seperate dependency upgrade to seperate PR

* Update requirements_test_all.txt

Seperate dependency upgrade to seperate PR

* Update homeassistant/components/solarlog/sensor.py

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

* Split up base class, document SolarLogSensorEntityDescription

* Split up sensor types

* Update snapshot

* Add all devices in config_flow

* Remove options flow

* Move devices in config_entry from options to data

* Correct mock_config_entry

* Minor adjustments

* Remove enabled_devices from config

* Remove obsolete test

* Update snapshot

* Delete obsolete code snips

* Update homeassistant/components/solarlog/sensor.py

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

* Remove obsolete test in setting up sensors

* Update homeassistant/components/solarlog/sensor.py

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

* Update homeassistant/components/solarlog/entity.py

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

* Update homeassistant/components/solarlog/config_flow.py

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

* Fix typing error

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-30 17:03:24 +02:00
Aidan Timson
1d05a917f9 Add work items per type and state counter sensors to Azure DevOps (#119737)
* Add work item data

* Add work item sensors

* Add icon

* Add test fixtures

* Add none return tests

* Apply suggestions from code review

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

* Apply suggestion

* Use icon translations

* Apply suggestions from code review

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

* Update test

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-30 16:45:46 +02:00
Joost Lekkerkerker
240bd6c3bf Bump aiomealie to 0.9.0 (#124924)
* Bump aiomealie to 0.9.0

* Bump aiomealie to 0.9.0
2024-08-30 16:41:48 +02:00
Allen Porter
c01bb44757 Add Google Photos integration (#124835)
* Add Google Photos integration

* Mark credentials typing

* Add code review suggestions to simpilfy google_photos

* Update tests/components/google_photos/conftest.py

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

* Apply suggestions from code review

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

* Fix comment typo

* Update test fixtures from review feedback

* Remove unnecessary test for services

* Remove keyword argument

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-30 07:27:19 -07:00
TimL
5e93394ae7 Ensure smilight fixtures select correct platform for tests (#124305)
* Fix return type hint for setup_integration

* Ensure platform fixture selects tested platform
2024-08-30 16:25:30 +02:00
starkillerOG
a8b55a16fd Add 100% coverage of Reolink host.py (#124577)
* Add 100% host test coverage

* Add missing test
2024-08-30 16:24:27 +02:00
LG-ThinQ-Integration
d7fb245213 Add LG ThinQ Integration (#123860)
* Add manifest.json

* add switch entity

* Add tests

* fix function's name

* adjust the changes after running scipt

* Update homeassistant/components/lgthinq/__init__.py

Accept the suggested change about format.

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

* Update homeassistant/components/lgthinq/__init__.py

Accept suggested change for log removal

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

* Delete homeassistant/components/lgthinq/services.yaml

* Update homeassistant/components/lgthinq/switch.py

Accpet suggested change for log removal

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

* Update homeassistant/components/lgthinq/strings.json

Accept suggested change for service removal

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

* Update homeassistant/components/lgthinq/manifest.json

Accept suggested change for spaces removal

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

* Delete homeassistant/components/lgthinq/icons.json

* Update __init__.py

Remove unnecessary check code

* Modification to pass ruff-format

* Modification for mypy issues

* Remove service registry and related code

* Update strings.json

Modification to pass the prettier issues

* Update manifest.json

Modification to pass the prettier issues

* Update homeassistant/components/lgthinq/__init__.py

Remove the unnecessary log.

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

* Update homeassistant/components/lgthinq/__init__.py

Remove unnecessary log.

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

* Update homeassistant/components/lgthinq/__init__.py

Remove unnecessary code.

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

* Update homeassistant/components/lgthinq/__init__.py

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

* Modifications for the review and related autocheck

* Update homeassistant/components/lgthinq/config_flow.py

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

* Update homeassistant/components/lgthinq/config_flow.py

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

* Modifications for reviews and autocheck

* Modifications for the reviews and autocheck

* Update homeassistant/components/lgthinq/const.py

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

* Update homeassistant/components/lgthinq/const.py

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

* Update homeassistant/components/lgthinq/const.py

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

* Update homeassistant/components/lgthinq/device.py

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

* Update homeassistant/components/lgthinq/device.py

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

* Remove type definition after Final

* Update const.py

Do not use Final for DOMAIN

* Refactoring for reviews
- remove thinq.py
- remove type definition
- remove entry name in config flow
- put config flow steps into a single step

* Update tests
- remove region

* Refactoring for reviews
- move property.py into PyPI library
- replace error_code handling with try/catch
- remove http response handling
- remove generic
- remove unnecessary class or map instance
- refactor adding entities logic

* Refactoring
- remove unused code
- change import path

* Update tests

* Refactoring for reviews
1. Use coordinator extended class instead of LGDevice
2. Rename entity_helper.py to entity.py
3. Move entity description to each entity file
4. Remove dynamic device creation code

* Refactoring for reviews

* Update requirements

* Fix for reviews

* Modify tests for reviews

* Update for reviews

* Remove property info and description class

* Update tests/components/lgthinq/test_config_flow.py

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

* Update tests/components/lgthinq/test_config_flow.py

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

* Update homeassistant/components/lgthinq/entity.py

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

* Update homeassistant/components/lgthinq/switch.py

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

* Update tests/components/lgthinq/test_config_flow.py

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

* Update for reviews

* Update homeassistant/components/lgthinq/switch.py

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

* Update homeassistant/components/lgthinq/switch.py

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

* Update for reviews

* Fix ruff issues

* Fix ruff check

* Fix for reviews

* Fix ruff check

* Fix for reviews

* Fix prettier failure and hassfest failure

---------

Co-authored-by: Jangwon Lee <jangwon.lee@lge.com>
Co-authored-by: yunseon.park <yunseon.park@lge.com>
Co-authored-by: nahyun.lee <nahyun.lee@lge.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-30 15:12:49 +02:00
puddly
6467c8d611 Bump ZHA to 0.0.32 (#124804)
* Always prefer XY color mode in ZHA

Remove a few more HS remnants

* Use new ZHA OTA format

* Bump ZHA to 0.0.32

* Fix existing OTA unit tests

* Fix schema conversion test to account for new command parameters

* Update snapshot with new `zcl_type` kwarg

* Migrate existing entities to icon translations

* Remove "no longer compatible" test

* Test that the library release summary is correctly exposed to ZHA

* Revert "Always prefer XY color mode in ZHA"

This reverts commit 8fb7789ea8.

* Test `release_notes`, not `release_summary`
2024-08-30 14:48:09 +02:00
Robert Svensson
c47b37af4f Use snapshot in Axis camera tests (#122677) 2024-08-30 14:40:28 +02:00
starkillerOG
a5bacf5652 Add 100% coverage of Reolink switch platform (#124482)
* Add 100% switch test coverage

* use DOMAIN instead of const.DOMAIN

* Split tests and use parametrize

* Revert "Split tests and use parametrize"

This reverts commit 50d2184ce6.

* fixes
2024-08-30 14:39:12 +02:00
starkillerOG
6589216ed3 Add 100% coverage of Reolink camera platform (#124381)
* Add 100% camera test coverage

* review comments

* use DOMAIN instead of const.DOMAIN

* use entity_registry_enabled_by_default fixture

* fixes
2024-08-30 14:34:49 +02:00
starkillerOG
b6dc410464 Add 100% coverage of Reolink light platform (#124382)
* Add 100% light test coverage

* review comments

* fix

* use STATE_ON

* split tests
2024-08-30 14:34:17 +02:00
starkillerOG
928ff7c78c Add 100% coverage of Reolink sensor platform (#124472)
* Add 100% sensor test coverage

* use DOMAIN instead of const.DOMAIN

* snake_case

* better split tests

* styling

* Use entity_registry_enabled_by_default fixture
2024-08-30 14:32:57 +02:00
tdfountain
c9335598db Alphabetize keys list for nut sensor icons (#124188)
Alphabetize keys list for sensor icons
2024-08-30 14:32:32 +02:00
Jeef
32babd3958 Clean up Weatherflow Cloud (#124643)
cleanup
2024-08-30 13:32:07 +02:00
shapournemati-iotty
7f405686d1 Add shapournemati to iotty codeowners (#123649)
* add shapournemati to codeowners for improved support

* update codeowners with hassfest script

* update codeowners with hassfest script
2024-08-30 13:30:56 +02:00
Lektri.co
5bd736029f Add lektrico integration (#102371)
* Add Lektrico Integration

* Make the changes proposed by Lash-L: new coordinator.py, new entity.py; use: translation_key, last_update_sucess, PlatformNotReady; remove: global variables

* Replace FlowResult with ConfigFlowResult and add tests.

* Remove unused lines.

* Remove Options from condif_flow

* Fix ruff and mypy.

* Fix CODEOWNERS.

* Run python3 -m script.hassfest.

* Correct rebase mistake.

* Make modifications suggested by emontnemery.

* Add pytest fixtures.

* Remove meaningless patches.

* Update .coveragerc

* Replace CONF_FRIENDLY_NAME with CONF_NAME.

* Remove underscores.

* Update tests.

* Update test file with is and no config_entries. .

* Set serial_number in DeviceInfo and add return type of the async_update_data to DataUpdateCoordinator.

* Use suggested_unit_of_measurement for KILO_WATT and replace Any in value_fn (sensor file).

* Add device class duration to charging_time sensor.

* Change raising  PlatformNotReady to raising IntegrationError.

* Test the unique id of the entry.

* Rename PF Lx with Power factor Lx and remove PF from strings.json.

* Remove comment.

* Make state and limit reason sensors to be enum sensors.

* Use result variable to check unique_id in test.

* Remove CONF_NAME from entry and __init__ from LektricoFlowHandler.

* Remove session parameter from LektricoDeviceDataUpdateCoordinator.

* Use config_entry: ConfigEntry in coordinator.

* Replace Connected,NeedAuth with Waiting for Authentication.

* Use lektricowifi 0.0.29.

* Use lektricowifi 0.0.39

* Use lektricowifi 0.0.40

* Use lektricowifi 0.0.41

* Replace hass.data with entry.runtime_data

* Delete .coveragerc

* Restructure the user step

* Fix tests

* Add returned value of _async_update_data to class DataUpdateCoordinator

* Use hw_version at DeviceInfo

* Remove a variable

* Use StateType

* Replace friendly_name with device_name

* Use sentence case in translation strings

* Uncomment and fix test_discovered_zeroconf

* Add type LektricoConfigEntry

* Remove commented code

* Remove the type of coordinator in sensor async_setup_entry

* Make zeroconf test end in ABORT, not FORM

* Remove all async_block_till_done from tests

* End test_user_setup_device_offline with CREATE_ENTRY

* Patch the full Device

* Add snapshot tests

* Overwrite the type LektricoSensorEntityDescription outside of the constructor

* Test separate already_configured for zeroconf

---------

Co-authored-by: mihaela.tarjoianu <mihaela.tarjoianu@scada.ro>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-08-30 13:20:15 +02:00
Robert Resch
397198c6d0 Optimize hassfest image (#124855)
* Optimize hassfest docker image

* Adjust CI

* Use dynamic uv version

* Remove workaround
2024-08-30 13:09:10 +02:00
Michael Arthur
54188b4128 Add returning activity to Husqvarna lawn mower (#124511)
* add returning activity to husqvarna lawn mower

* Update test, fix bug with comparison operator
2024-08-30 12:59:13 +02:00
Jeef
f3da9de744 Bump weatherflow4py to 0.2.23 (#124072)
patch weatherflow for new data
2024-08-30 12:45:08 +02:00
Raj Laud
aeb95c4509 Bump pysqueezebox to v0.8.1 (#124856) 2024-08-30 12:43:29 +02:00
Louis Christ
f394dfb8d0 Handle CancelledError in bluesound integration (#124873)
Catch CancledError in async_will_remove_from_hass
2024-08-30 11:38:07 +02:00
J. Nick Koston
6781a76de2 Speed up ssdp domain matching (#124842)
* Speed up ssdp domain matching

Switch all() expression to dict.items() <= dict.items()

* rewrite as setcomp
2024-08-30 11:36:31 +02:00
epenet
69a9aa4594 Improve type hints in icloud config flow (#124900) 2024-08-30 11:25:58 +02:00
epenet
afa02dcce9 Improve type hints in growatt_server config flow (#124901) 2024-08-30 11:25:29 +02:00
epenet
febb382030 Improve type hints in hvv_departures config flow (#124902) 2024-08-30 11:25:08 +02:00
epenet
1906155c18 Improve type hints in mobile_app config flow (#124906) 2024-08-30 11:24:34 +02:00
epenet
ffabd5d7db Improve type hints in konnected config flow (#124904) 2024-08-30 11:24:06 +02:00
Christopher Fenner
9e2360791d Add hot water target temp number entity in ViCare integration (#123633)
* add DHW target temp number entity

* Update number.py

* Update strings.json

* Update strings.json

* update test snapshot

* fix snapshot
2024-08-30 11:22:48 +02:00
epenet
19cbc1b258 Improve type hints in plex config flow (#124914) 2024-08-30 11:22:07 +02:00
epenet
df2ea1e875 Improve type hints in nina config flow (#124910)
* Improve type hints in nina config flow

* Apply suggestions from code review

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-30 11:21:05 +02:00
epenet
74fa30e59d Improve config flow type hints (g-m) (#124907) 2024-08-30 11:05:18 +02:00
epenet
6833af6286 Improve config flow type hints (n-p) (#124909) 2024-08-30 11:04:58 +02:00
Josef Zweck
4940968cd5 Bump lmcloud 1.2.2 (#124911)
bump lmcloud 1.2.2
2024-08-30 11:02:29 +02:00
dependabot[bot]
a9975071c3 Bump actions/setup-python from 5.1.1 to 5.2.0 (#124899)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.1.1 to 5.2.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.1.1...v5.2.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 10:53:06 +02:00
Christopher Fenner
cc4340b80c Remove update call from init in ViCare integration (#124905)
fix
2024-08-30 10:50:18 +02:00
Willem-Jan van Rootselaar
252f05e0f7 Update diagnostics for BSBLan (#124508)
* update diagnostics to include static

and make room for multiple coordinator data objects

* fix mac address is not stored in config_entry but on device
2024-08-30 10:41:07 +02:00
dependabot[bot]
f5e0382123 Bump github/codeql-action from 3.26.5 to 3.26.6 (#124898)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.5 to 3.26.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.26.5...v3.26.6)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 10:29:25 +02:00
Josef Zweck
600c6a0dcb Bump lmcloud to 1.2.1 (#124908) 2024-08-30 10:05:28 +02:00
J. Nick Koston
df60e59a95 Address yale review comments part 2 (#124887)
* Remove some unneeded block till done

* Additional state check cleanups and snapshots

* Use more snapshots in yale tests
2024-08-30 09:37:19 +02:00
J. Nick Koston
cf90e77e57 Add a repair issue for Yale Home users using the August integration (#124895)
The Yale Home brand will stop working with the August integration very
soon. Users must migrate to the Yale integration to avoid an interruption in service.
2024-08-30 09:35:19 +02:00
J. Nick Koston
3e0bd44d2a Bump aioesphomeapi to 25.3.1 (#124890)
changelog: https://github.com/esphome/aioesphomeapi/compare/v25.2.1...v25.3.1
2024-08-29 16:19:12 -10:00
Erik Montnemery
7bb93d4f3e Deduplicate warning messages in recorder DB migration (#124845) 2024-08-29 19:05:27 -07:00
Tony
4dfc11a140 Bump aioruckus to v0.41 removing blocking call to load_default_certs from ruckus_unleashed integration (#123974)
* fix ruckusd_unleashed blocking call to load_default_certs

* remove extra loggers, bump aioruckus ver for debian packagers
2024-08-29 19:03:51 -07:00
TheJulianJES
7eeebf198b Fix ZHA group removal entity registry cleanup (#124889)
* Fix ZHA cleanup entity registry parameter

* Fix missing `gateway` when accessing coordinator device

* Get `ZHADeviceProxy` for coordinator device
2024-08-29 20:13:47 -04:00
J. Nick Koston
175ffe29f6 Bump yalexs to 8.5.5 (#124891)
changelog: https://github.com/bdraco/yalexs/compare/v8.5.4...v8.5.5
2024-08-30 01:07:21 +02:00
Michael Hansen
ff9937f942 Bump intents to 2024.8.29 (#124874) 2024-08-29 13:29:11 -05:00
Robert Resch
ef452427e3 Bump PyTurboJPEG to 1.7.5 (#124865) 2024-08-29 19:34:19 +02:00
J. Nick Koston
a04970bd54 Address august review comments (#124819)
* Address august review comments

Followup to https://github.com/home-assistant/core/pull/124677

* cleanup loop

* drop mixin name

* event entity add cleanup

* remove duplicate prop

* pep0695 type

* remove some not needed block till done

* cleanup august tests

* switch to freezegun

* snapshots for dev reg

* SOURCE_USER nit

* snapshots

* pytest.raises

* not loaded check
2024-08-29 19:32:13 +02:00
Bram Kragten
03a02fa565 Bump version to 2024.9.0b1 2024-08-29 17:31:37 +02:00
Bram Kragten
b2f27a4519 Update frontend to 20240829.0 (#124864) 2024-08-29 17:28:06 +02:00
Joost Lekkerkerker
b906a1b521 Add missing translation key in Knocki (#124862) 2024-08-29 17:28:06 +02:00
Fredrik Erlandsson
754e4255b6 Bump pydaikin to 2.13.6 (#124852) 2024-08-29 17:28:05 +02:00
Andrew Jackson
ff39f09c4e Fix Mastodon migrate config entry log warning (#124848)
Fix migrate config entry
2024-08-29 17:28:04 +02:00
AutonomousOwl
3078b47d06 Update utility_account_id in Opower to be lowercase in statistic id (#124837)
Update utility_account_id to be lowercase in statistic id
2024-08-29 17:28:03 +02:00
J. Nick Koston
71de50dae8 Add missing dependencies to yale (#124821)
* Add missing dependencies to yale

* try another way

* Revert "try another way"

This reverts commit fbb731a334.

* patch out cloud setup
2024-08-29 17:28:03 +02:00
J. Nick Koston
e8b722f7b2 Redirect virtual integration yale_home to point to yale (#124817) 2024-08-29 17:28:02 +02:00
Pete Sage
a2053d073f Fix sonos get_queue service call to restrict to sonos media_player entities (#124815)
add sonos to filter
2024-08-29 17:28:01 +02:00
J. Nick Koston
aa72b08c16 Address yale review comments (#124810)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-29 17:28:00 +02:00
Fredrik Erlandsson
66480da218 Bump pydaikin to 2.13.5 (#124802)
bump pydaikin version
2024-08-29 17:27:59 +02:00
Tobias Sauerwein
3b214f6610 Bump pyatmo to 8.1.0 (#124340) 2024-08-29 17:27:59 +02:00
Joost Lekkerkerker
149aebb0bc Add missing translation key in Knocki (#124862) 2024-08-29 17:25:04 +02:00
Bram Kragten
c36fc70ab4 Update frontend to 20240829.0 (#124864) 2024-08-29 17:24:25 +02:00
epenet
681fe3485d Improve config flow type hints (a-f) (#124859) 2024-08-29 17:24:04 +02:00
Fredrik Erlandsson
34680becaa Bump pydaikin to 2.13.6 (#124852) 2024-08-29 13:20:57 +02:00
Erik Montnemery
354f4491c8 Avoid unnecessary copying of variables when setting up automations (#124844) 2024-08-29 13:03:47 +02:00
Andrew Jackson
c4fd1cfc8f Fix Mastodon migrate config entry log warning (#124848)
Fix migrate config entry
2024-08-29 12:23:04 +02:00
Erik Montnemery
a4e9e4b23b Tweak exception message in yaml loader (#124841) 2024-08-29 11:31:19 +02:00
Pete Sage
eac7794741 Fix sonos get_queue service call to restrict to sonos media_player entities (#124815)
add sonos to filter
2024-08-29 11:29:54 +02:00
Jan Bouwhuis
1cb9690001 Cleanup unused hass_storage mocks in mqtt tests (#124846) 2024-08-29 10:52:57 +02:00
AutonomousOwl
1101e7ef64 Update utility_account_id in Opower to be lowercase in statistic id (#124837)
Update utility_account_id to be lowercase in statistic id
2024-08-28 23:34:13 -07:00
Tobias Sauerwein
3b6128d590 Bump pyatmo to 8.1.0 (#124340) 2024-08-29 07:59:07 +02:00
Jeremy Cook
7f4fca63ed SmartThings edge driver for heatit thermostats does not require cooling setpoint (#123188)
* remove cooling setpoint requirement for thermostats. Air conditioning remains unchanged

* remove cooling setpoint requirement for thermostats. Air conditioning remains unchanged

* versions should not be set on core integrations.

* Added tests for minimal smartthings thermostat with no cooling.

* Added tests for minimal smartthings thermostat with no cooling.

* Formatted tests with ruff format
2024-08-29 07:49:05 +02:00
J. Nick Koston
4b59ef4733 Set GoogleEntity entity_id in constructor (#124830) 2024-08-28 15:47:11 -10:00
David Bonnes
3d39f6ce88 Fix evohome test by setting datetime to match snapshot (#124824)
* initial commit

* freeze time instead

* use fixture instead of API
2024-08-29 00:34:20 +02:00
J. Nick Koston
5f810d908f Add missing dependencies to yale (#124821)
* Add missing dependencies to yale

* try another way

* Revert "try another way"

This reverts commit fbb731a334.

* patch out cloud setup
2024-08-29 00:28:41 +02:00
AlCalzone
c7cfd56b72 Support Z-Wave JS dimming lights using color intensity (#122639)
* Z-Wave JS: support non-dimmable color lights

* remove black_is_off light, support on/off/color

* fix: tests for on/off light

* fix: typo

* remove commented out old test code

* add test for off and on

* support colored lights without separate brightness control

* add test for color-only light

* refactor: extract color only light

* fix: preserve color when changing brightness

* extend tests

* refactor again

* refactor scale check

* refactor: remove impossible check

* review feedback

* review feedback

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-08-29 00:01:53 +02:00
David Bonnes
ada6b7875c Add evohome test for setup (#123129)
* allow for different systems

* installation is a load_json_*fixture param

* allow installation to be parameterized

* test setup of various systems

* add more fixtures

* test setup of integration

* tweak test

* tweak const

* add expected state/services

* extend setup test

* tidy up

* tidy up tweaks

* code tweaks

* refactor expected results dicts

* woops

* refatcor serialize

* refactor test

* tweak

* tweak code

* rename symbol

* ensure actual I/O remains blocked

* tweak

* typo

* use constants

* Update conftest.py

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

* change filename

* add config fixture

* config is a fixture

* config is a fixture now 2

* lint

* lint

* refactor

* lint

* lint

* restore email addr

* use const

* use snapshots instead of helper class

* doctweak

* correct snapshot

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-08-28 22:40:57 +02:00
Fredrik Erlandsson
2b20b2a80b Bump tellduslive to 0.10.12 (#124816)
* Bump tellduslive version

* update licenses.py too
2024-08-28 22:10:49 +03:00
J. Nick Koston
5825e8fee8 Redirect virtual integration yale_home to point to yale (#124817) 2024-08-28 09:01:17 -10:00
J. Nick Koston
70488ffd15 Address yale review comments (#124810)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-28 09:00:52 -10:00
epenet
2900fa733d Use reauth_confirm in co2signal (#124781) 2024-08-28 20:43:11 +02:00
epenet
7d61dd13d9 Use reauth_confirm in discovergy (#124782) 2024-08-28 20:42:50 +02:00
Fredrik Erlandsson
af8131e68f Bump pydaikin to 2.13.5 (#124802)
bump pydaikin version
2024-08-28 19:19:04 +02:00
Blake Bryant
c049129147 Add Deako integration (#121132)
* Deako integration using pydeako

* fix: address feedback

- make unit tests more e2e
- use runtime_data to store connection

* fix: address feedback part 2

- added better type safety for Deako config entries
- refactored the config flow tests to use a conftest mock instead of directly patching
- removed pytest.mark.asyncio test decorators

* fix: address feedback pt 3

- simplify config entry type
- add test for single_instance_allowed
- remove light.py get_state(), only used once, no need to be separate function

* fix: ruff format

* Update homeassistant/components/deako/__init__.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-28 19:16:05 +02:00
Bram Kragten
1e035064f4 2024.9.0b0: It's beta time (#124807) 2024-08-28 19:02:42 +02:00
Robert Resch
2dce876a86 Bump version to 2024.10.0dev0 (#124808) 2024-08-28 18:51:50 +02:00
Robert Resch
2856525c12 Bump version to 2024.9.0b0 2024-08-28 16:40:52 +00:00
Robert Resch
22cfb7059a Merge remote-tracking branch 'origin/rc' into edenhaus-2024.9.0b0 2024-08-28 16:36:20 +00:00
Matthias Alphart
1650cee16c Check KNX integration is loaded on websocket calls (#123178) 2024-08-28 18:10:38 +02:00
Kristian Haugene
25cdd737a9 Add current intraday price ranking to Tibber price sensor (#124595) 2024-08-28 18:05:27 +02:00
Sid
9153d16a6d Enable Ruff TCH rules (#124396)
* Enable Ruff TCH rules

* Ignore TCH001-003

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-08-28 18:01:41 +02:00
J. Nick Koston
03ead27f6c Split august and yale integrations (#124677)
* Split august and yale integrations [part 1] (#122253)

* merge with dev

* Remove unused constant

* Remove yale IPv6 workaround (#123409)

* Convert yale to use oauth (#123806)

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

* Update yale for switch from pubnub to websockets (#124675)

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-28 17:46:03 +02:00
epenet
edad766fd3 Use start_reauth helper method in integration tests (u-z) (#124796) 2024-08-28 16:51:16 +02:00
epenet
9bcc31a9fe Use start_reauth helper method in integration tests (s) (#124793) 2024-08-28 16:49:05 +02:00
epenet
7652c35ee6 Use start_reauth helper method in integration tests (t) (#124794) 2024-08-28 16:47:10 +02:00
G Johansson
dd52f4c84a Remove deprecated mailbox platform (#123740)
* Remove deprecated mailbox platform

* Remove from const

* Remove from type hints

* Remove from pyproject
2024-08-28 16:41:23 +02:00
Robert Resch
45bb2cdd82 Build hassfest docker image and pushlish it on beta/stable releases (#124706) 2024-08-28 16:38:12 +02:00
Paul Bottein
a4bfb0e92c Update frontend to 20240828.0 (#124791) 2024-08-28 16:35:44 +02:00
epenet
26006f8036 Use start_reauth helper method in broadlink and bthome (#124783)
* Use start_reauth helper method in broadlink reauth tests

* Also include bthome
2024-08-28 16:34:09 +02:00
epenet
ef4caa951c Use start_reauth helper method in integration tests (p-r) (#124792) 2024-08-28 16:20:47 +02:00
Pete Sage
5824d06fd7 Add get_queue action for Sonos (#124707)
* initial commit

* use constants

* use constants

* update typing

* add queue fixture

* remove blank line

* update docstring

* update icons

* use list comprehension
2024-08-28 16:19:48 +02:00
epenet
57a73d1b1b Use start_reauth helper method in integration tests (m-o) (#124790) 2024-08-28 16:19:31 +02:00
Aidan Timson
731aaaafe2 Update aioazuredevops to 2.2.1 (#124788)
* Update aioazuredevops to 2.2.1

* Update test
2024-08-28 16:01:32 +02:00
epenet
bdd3aa8e39 Use start_reauth helper method in config flow tests (a-d) (#124780)
* Use start_reauth helper method in integration tests (a-d)

* Revert broadlink

* Revert bthome
2024-08-28 15:48:36 +02:00
epenet
99335a07e5 Use start_reauth helper method in integration tests (e-g) (#124785)
* Use start_reauth helper method in integration tests (e-g)

* Include fireservicerota
2024-08-28 15:47:57 +02:00
epenet
9d633f2087 Use start_reauth helper method in integration tests (h-l) (#124787) 2024-08-28 15:47:35 +02:00
Erik Montnemery
174f22aa2f Prevent nesting sections in data entry flows (#124645) 2024-08-28 15:42:15 +02:00
Brett Adams
e39b3796f3 Fix OAuth reauth in Tesla Fleet (#124744)
* Fix auth failure

* Test

* Fix test

* Only reauth on 401

* Cover 401 and others

* Update homeassistant/components/tesla_fleet/strings.json

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-08-28 14:58:16 +02:00
Michael
11370979e5 Fix translation for AVM Fritz!Box Tools (#124784)
add missing ssl option to strings
2024-08-28 14:54:30 +02:00
Erik Montnemery
0afae45bc5 Trigger full CI run on Blueprint integration changes (#124778) 2024-08-28 14:27:01 +02:00
Matrix
f8ac952cd7 Add YoLink lock V2 support (#124202)
* Add Lock V2 Support

* Change as suggestions
2024-08-28 14:18:55 +02:00
Erik Montnemery
c4e5d67551 Enforce new service icon schema for core integrations (#124772)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-08-28 14:14:45 +02:00
Erik Montnemery
cff4e46694 Deduplicate TTS mocks (#124773) 2024-08-28 13:48:49 +02:00
Erik Montnemery
38ef216894 Update icons.json to new service schema part 4 (#124771) 2024-08-28 13:48:13 +02:00
Erik Montnemery
1a2d013c97 Update icons.json to new service schema part 3 (#124770) 2024-08-28 13:48:01 +02:00
Erik Montnemery
cffa8b4feb Update icons.json to new service schema part 2 (#124769) 2024-08-28 13:47:41 +02:00
Erik Montnemery
fce2e21c9f Update icons.json to new service schema part 1 (#124768) 2024-08-28 13:47:02 +02:00
epenet
a0ffa69b49 Standardize reauth step variable name in aseko_pool_live (#124765) 2024-08-28 13:29:18 +02:00
epenet
a0089685dd Simplify aussie_broadband reauth flow (#124774)
* Simplify aussie_broadband config flow

* Apply suggestions from code review

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

* Update config_flow.py

* Update config_flow.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-28 13:19:58 +02:00
Matthias Alphart
633ff0ea42 Handle KNX expose conversion exceptions and unavailable states (#124776) 2024-08-28 13:14:34 +02:00
epenet
163795e73a Use reauth_confirm in weatherflow_cloud (#124761) 2024-08-28 13:09:45 +02:00
epenet
45eebf3285 Use reauth_confirm in sharkiq (#124762) 2024-08-28 13:09:21 +02:00
epenet
14eec2e57a Add start_reauth helper method to MockConfigEntry (#124767)
* Add start_reauth helper method to MockConfigEntry

* Two more
2024-08-28 13:08:26 +02:00
epenet
274d98f4d7 Standardize reauth step variable name in permobil (#124764) 2024-08-28 13:02:21 +02:00
epenet
51a5a78eb5 Standardize reauth step variable name in config flows (#124760) 2024-08-28 13:01:00 +02:00
epenet
d4ae592a85 Improve config flow type hints in sms (#124352)
* Improve config flow type hints in sms

* Drop async_step_import
2024-08-28 13:00:30 +02:00
epenet
8ff8ed7f76 Cleanup unused import in upb config flow (#124694)
* Cleanup unused import in upb config flow

* More cleanup
2024-08-28 13:00:10 +02:00
epenet
18b49a6f62 Cleanup unused import in solarlog config flow (#124713) 2024-08-28 12:59:53 +02:00
epenet
35d318818a Improve config flow type hints in sense (#124350) 2024-08-28 12:59:12 +02:00
epenet
0a94242337 Improve config flow type hints in vesync (#124351) 2024-08-28 12:56:22 +02:00
starkillerOG
d1681fac72 Improve mediabrowser names for DUO lens Reolink cameras (#124766)
* Improve playback of DUO lens cameras like TrackMix

* fix styling

* Adjust tests accordingly
2024-08-28 12:54:30 +02:00
Matthias Alphart
8504a16e83 Use KNX group address format from project (#124084) 2024-08-28 12:34:28 +02:00
Matthias Alphart
41e66edd14 Set default name for KNX outgoing telegram source (#124439) 2024-08-28 12:31:30 +02:00
starkillerOG
10b3119b4a Use Position instead of Angle for TiltOnlyDevice in motion blinds (#123521)
Use Position instead of Angle for TiltOnlyBlinds
2024-08-28 11:27:34 +02:00
Erik Montnemery
c772c4a2d5 Allow specifying icons for service sections (#124656)
* Allow specifying icons for service sections

* Improve kitchen_sink example
2024-08-28 11:15:26 +02:00
starkillerOG
e9830f0835 Bump reolink_aio to 0.9.8 (#124763) 2024-08-28 11:13:37 +02:00
epenet
bcc66c9a86 Standardize import step variable name (part 5) (#124698)
* Standardize import step variable name (part 5)

* Revert point

* Adjust soma tests
2024-08-28 09:51:49 +02:00
epenet
1f3c99dff3 Standardize import step variable name in cert_expiry (#124696) 2024-08-28 09:51:25 +02:00
epenet
b085ac9296 Standardize import step variable name in geonetnz_volcano (#124699) 2024-08-28 09:48:17 +02:00
Erik Montnemery
1add00a68d Deduplicate STT mocks (#124754) 2024-08-28 09:25:56 +02:00
J. Nick Koston
f9bf7f7e05 Small cleanups to shelly (#124758) 2024-08-27 21:00:31 -10:00
J. Nick Koston
a63c5e6725 Cache shelly coordinator properties that never change (#124756) 2024-08-27 21:00:20 -10:00
Sergey Dudanov
4108b7ada6 Remove unused normalized units from unit converters (#122797)
remove unused normalized units in unit converters
2024-08-28 08:45:40 +02:00
J. Nick Koston
42388450e1 Restore control4 integration (#124750)
* Revert "Disable control4 integration (#124746)"

This reverts commit 16dd6b1712.

* Restore control4 integration

reverts #124746 and updates the lib instead

changelog: https://github.com/lawtancool/pyControl4/compare/v1.1.0...v1.1.3

Note that there is no release yet, see https://github.com/lawtancool/pyControl4/pull/32

* Apply suggestions from code review
2024-08-28 07:54:28 +02:00
Jan Bouwhuis
e720a14dc4 Cleanup removed schema option from mqtt vacuum platform (#124722) 2024-08-28 07:49:05 +02:00
J. Nick Koston
9d3895d69a Bump yalexs to 8.5.4 (#124672) 2024-08-27 15:36:00 -10:00
J. Nick Koston
16dd6b1712 Disable control4 integration (#124746) 2024-08-27 15:12:52 -10:00
functionpointer
e447d83024 Use ssl util in Tibber (#123369)
Tibber: Use homeassistant.util.ssl
2024-08-28 03:04:08 +02:00
Michael Hansen
8fee1975b4 Bump pyspeex-noise to 1.0.2 (#124721)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-08-27 14:26:46 -10:00
puddly
3533ac163c Remove unnecessary assertion for the Yellow firmware type (#124747) 2024-08-28 01:57:08 +02:00
J. Nick Koston
1b304e60d9 Disable sisyphus integration (#124742) 2024-08-27 12:53:48 -10:00
J. Nick Koston
5bd17c9198 Bump aioshelly to 11.3.0 (#124741) 2024-08-27 12:34:30 -10:00
J. Nick Koston
136f0e423e Bump aioambient to 2024.08.0 (#124729) 2024-08-27 12:33:17 -10:00
Jesse Hills
e84d9e21f7 Handle single state requests from ESPHome (#124660)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-08-27 12:15:41 -10:00
J. Nick Koston
fa084143ef Bump dbus-fast to 2.24.0 (#124737)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.23.0...v2.24.0
2024-08-27 23:58:11 +02:00
J. Nick Koston
ca17c70109 Remove socketio constraints (#124730)
We have been stuck on an old version of socketio for a few years
now due to https://github.com/jkeljo/sisyphus-control/issues/6 and
no solution has been reached.

The constraint is blocking any integration from using socketio 4.x servers as the old version
only supports socketio 3.x servers which have reached EOL (https://socket.io/docs/v3/)
2024-08-27 23:42:42 +02:00
puddly
5818e2c2d4 Yellow firmware selection options flow (#122868)
* Implement Yellow config flow for firmware selection

* Use the probed firmware type when setting up Yellow

* Add translation strings

* Ensure (most) existing `init` tests pass

* Remove multi-PAN setup config flow unit tests

* Get existing config flow unit tests passing

* Add unit tests for uninstalling multi-PAN and such

* Consolidate entity creation for Yellow and clean up steps

* Be explicit with multiple inheritance overrides

* Address review comments
2024-08-27 23:14:41 +02:00
Shay Levy
467749eb57 Fix Shelly sleepy RPC setup if device is already awake (#124734) 2024-08-27 10:48:13 -10:00
Jan Bouwhuis
dd0c353afb Fix nice_go integration tests (#124736) 2024-08-27 10:28:54 -10:00
IceBotYT
9e762fa222 Bump Nice G.O. to 0.3.5 (#124667)
* Bump Nice G.O. to 0.3.1

* Bump to 0.3.5
2024-08-27 19:53:00 +02:00
Michael
ea04269c49 Improve test coverage for nextcloud (#123148)
* add first data driven tests

* remove unused mock

* test unique_id migration

* test errors during setup

* test error during data update

* test update entity

* system_versionis always available

* make use of snapshot_platform helper

* use parametrize test for coordinator update errors

* apply suggestions

* don't touch internals on coordinator tests

* rework to use async_get_or_create instead of mock_registry
2024-08-27 19:48:39 +02:00
Erik Montnemery
e2d84f9a58 Add support for multiple otbr config entries (#124289)
* Add support for multiple otbr config entries

* Fix test

* Drop useless fixture

* Address review comments

* Change unique id from xa to id

* Improve error text

* Store data in ConfigEntry.runtime_data

* Remove useless function
2024-08-27 19:07:35 +02:00
Erik Montnemery
52b6f00363 Adjust name of Google Translate TTS provider (#124688) 2024-08-27 19:07:04 +02:00
Erik Montnemery
55c42fde88 Improve validation of entity service schemas (#124102)
* Improve validation of entity service schemas

* Update tests/helpers/test_entity_platform.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-27 19:05:49 +02:00
epenet
0dc1eb8757 Cleanup unused import in zwave_js config flow (#124716) 2024-08-27 18:41:27 +02:00
Paulus Schoutsen
1936aeccb9 Add a test for async_converse (#124697) 2024-08-27 11:01:00 -05:00
epenet
c1c158c0aa Adjust docstring in airvisual_pro config flow (#124712) 2024-08-27 16:48:04 +02:00
epenet
bcfc7ea481 Cleanup unused import in google config flow (#124711) 2024-08-27 07:36:07 -07:00
Antoine Reversat
de8bbaadd1 Fix review comments in fglair (#124710)
* Replace if len() == 0 with if not

* Replace list + filter with list comprehensions

* Move consts that are only used in one module to said module
2024-08-27 16:26:18 +02:00
epenet
318259689f Standardize import step variable name (part 4) (#124692)
* Standardize import step variable name (part 4)

* One more

* Revert geonetnz_volcano

* Revert SMS due to coverage

* Revert somfy_mylink due to coverage
2024-08-27 16:18:11 +02:00
epenet
f802611359 Cleanup unused import in somfy_mylink config flow (#124709) 2024-08-27 16:04:00 +02:00
Erik Montnemery
53479b5924 Adjust name of legacy Home Assistant Cloud TTS provider (#124685) 2024-08-27 15:13:58 +02:00
Erik Montnemery
9cae786f40 Add ConfigEntries.async_get_loaded (#124705) 2024-08-27 14:20:57 +02:00
functionpointer
48292beec8 Update pyTibber to 0.30.1 (#124407)
Update to pyTibber==0.30.1
2024-08-27 13:19:15 +02:00
Matrix
a45ba51f89 Update YoLink FlexFob Automation (#123631)
* Change FlexFob Trigger

* Update device trigger tests
2024-08-27 13:17:14 +02:00
Jon Seager
9119884e53 Add touchlinesl integration (#124557)
* touchlinesl: init integration

* integration(touchlinesl): address review feedback

* integration(touchlinesl): address review feedback

* integration(touchlinesl): add a coordinator to manage data updates

* integration(touchlinesl): address review feedback

* integration(touchline_sl): address feedback (and rename)

* integration(touchline_sl): address feedback

* integration(touchline_sl): address feedback

* integration(touchline_sl): update strings

* integration(touchline_sl): address feedback

* integration(touchline_sl): address feedback
2024-08-27 13:15:31 +02:00
Matrix
37e2839fa3 Add power entity for yolink plug (#124678)
* Add Plug power entity

* change state class to total

* Add translations and moving icon to icon.json

* sort translation key

* Fix suggestions
2024-08-27 12:03:50 +02:00
epenet
6b0428774d Standardize import step variable name (part 2) (#124679) 2024-08-27 11:22:35 +02:00
J. Nick Koston
0d2f22838a Reduce complexity of _sorted_statistics_to_dict (#123936)
* comp stats queries

* tweak

* reduce
2024-08-27 11:22:10 +02:00
J. Nick Koston
4bc19876ca Small speed up to creating stats database rows (#124587)
* Small speed up to creating stats database rows

Calling .timestamp() directly is faster on new cpython

* more cleanup
2024-08-27 11:18:12 +02:00
J. Nick Koston
902d76da36 Small cleanup to normalize states (#124614)
- Remove duplicate state_unit lookup
- Use undefined instead of object
2024-08-27 11:17:34 +02:00
J. Nick Koston
d8161c431f Add support for using an entityfilter to subscribe_entities (#124641)
* Add support for using an entityfilter to subscribe_entities

* filter init

* fix

* coverage
2024-08-27 11:17:05 +02:00
J. Nick Koston
68d6f1c1aa Bump zeroconf to 0.133.0 (#124673)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.132.2...0.133.0
2024-08-27 11:15:00 +02:00
Erik Montnemery
ef1d53c207 Include engine name in TTS WS responses (#124683) 2024-08-27 11:14:41 +02:00
Erik Montnemery
823b62d8ab Include engine name in STT WS responses (#124684) 2024-08-27 11:14:17 +02:00
epenet
dece7e0f9c Cleanup unused import in proximity config flow (#124681)
* Cleanup unused import in proximity config flow

* Cleanup tests
2024-08-27 11:08:33 +02:00
epenet
68cdf8877c Standardize import step variable name (part 3) (#124680) 2024-08-27 10:50:13 +02:00
epenet
831a1d7ad1 Standardize import step variable name (part 1) (#124674) 2024-08-27 10:34:47 +02:00
Erik Montnemery
715f4bd2c3 Set deprecated flag on TTS engines replaced by entities in WS list (#124676) 2024-08-27 10:09:49 +02:00
Yuxin Wang
74a12bb802 Replace LASTSTEST with LAST_S_TEST (#124668) 2024-08-27 06:50:15 +02:00
Ståle Storø Hauknes
51fd8e1288 Bump airthings-ble to 0.9.1 (#124658) 2024-08-26 13:59:28 -10:00
Richard Kroegel
2fe19c04b9 Bump bimmer_connected to 0.16.2 (#124651) 2024-08-26 13:57:25 -10:00
Jesse Hills
37019d33fd Bump aioesphomeapi to 25.2.1 (#124659) 2024-08-26 12:29:54 -10:00
Alexey ALERT Rubashёff
0fe939cd7c Update overkiz Atlantic Water Heater operation mode switching (#124619)
* conventional operation state usage

* MartinHjelmare indentation request

* Manual Mode binary sensor

* Removed usage of unconventional operation states

* Removed usage of unconventional operation state

* STATE_OFF operation mode support
2024-08-26 21:31:07 +02:00
Maciej Bieniek
b960ebeb8b Add WS outbound config to Shelly diagnostics (#124654)
Add WS Outbound config to diagnostics
2024-08-26 22:17:38 +03:00
starkillerOG
7334fb0125 Add Reolink chime play action (#123245)
* Add chime play service

* fix supported_feature

* finalize

* add tests

* Adjust to device service

* fix issue

* Add tests

* actions -> services

* fix styling

* Use conftest fixture for test_chime

* Update tests/components/reolink/test_services.py

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

* use ATTR_RINGTONE and rename chime_play to play_chime

* Add translatable exceptions

* fix styling

* Remove option to use entity_id

* fixes

* Fix translations

* fix

* fix translation key

* remove translation key

* use callback for async_setup_services

* fix styling

* Add test_play_chime_service_unloaded

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-08-26 21:12:32 +02:00
Maciej Bieniek
d8fe3c5377 Add missing units for xpercent, xfreq and xcounts Shelly sensors (#124288) 2024-08-26 08:59:18 -10:00
J. Nick Koston
76182c246d Auto configure outbound websocket for sleepy shelly RPC devices (#124545) 2024-08-26 08:37:36 -10:00
Erik Montnemery
b9aaba0432 Prevent duplicating constraints during schema migration (#124616) 2024-08-26 08:35:54 -10:00
Paulus Schoutsen
156948c496 Fix defaults for cloud STT/TTS (#121229)
* Fix defaults for cloud STT/TTS

* Prefer entity over legacy provider

* Remove unrealistic tests

* Add tests which show cloud stt/tts entity is preferred

---------

Co-authored-by: Erik <erik@montnemery.com>
2024-08-26 19:39:09 +02:00
ilan
547dbf77aa Use runtime data instead of hass.data in jvc projector (#124608)
* feat: use runtime data instead of hass.data

* fix: extend ConfigEntry
2024-08-26 19:26:53 +02:00
Erik Montnemery
a68cd712c6 Move data entry section translations (#124648) 2024-08-26 18:45:28 +02:00
Maciej Bieniek
9e7aeed848 Bump nextdns to version 3.2.0 (#124646) 2024-08-26 18:25:10 +02:00
Álvaro Fernández Rojas
95fa123a0b Add Airzone main zone mode select (#124566)
* airzone: select: add zone master mode

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

* airzone: select: use MAIN instead of MASTER

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

* airzone: select: call async_add_entities once

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

* airzone: select: add options lambda function

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

* airzone: select: implement requested changes

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

* airzone: select: options_fn: return list

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

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-26 17:57:31 +02:00
WebSpider
657ff58500 Fix device class for motion_light blueprint (#124495)
* Fix device class for motion_light blueprint.
Fixes #124353

* Update to accept both motion and occupancy
2024-08-26 17:39:27 +02:00
Jan Bouwhuis
ff029e5efc Cleanup not used data field for mqtt hassio config flow confirm step (#124486) 2024-08-26 17:33:47 +02:00
Erik Montnemery
f4528b288f Fix overriding name in MockTTSEntity (#124639)
* Fix overriding name in MockTTSEntity

* Fix
2024-08-26 15:28:55 +02:00
Paulus Schoutsen
1aa0dbdaf5 Revert "Revert "Use speex for noise suppression and auto gain"" (#124637)
Revert "Revert "Use speex for noise suppression and auto gain" (#124620)"

This reverts commit 302ffe5e56.
2024-08-26 15:10:43 +02:00
J. Nick Koston
743df84569 Reduce multiple calls to calculate sensor unit in tplink (#124606)
accessing unit on the feature is not cached and it had
to be looked up every time
2024-08-26 13:49:26 +02:00
J. Nick Koston
16231da5ef Bump cached-ipaddress to 0.5.0 (#124602)
changelog: https://github.com/bdraco/cached-ipaddress/compare/v0.3.0...v0.5.0
2024-08-26 13:48:52 +02:00
Erik Montnemery
7b71f024fb Prefer stt entity over legacy stt provider (#124625)
* Prefer stt entity over legacy stt provider

* Update assist_pipeline tests
2024-08-26 13:43:14 +02:00
darkfader
0a05cdc381 Add conductivity sensor to bthome (#124312)
* Add conductivity sensor to bthome

* Update icons.json

* Update sensor.py
2024-08-26 13:40:40 +02:00
dependabot[bot]
106559371c Bump github/codeql-action from 3.26.4 to 3.26.5 (#124615)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.26.4 to 3.26.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.26.4...v3.26.5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 13:33:55 +02:00
Erik Montnemery
cafd953f87 Add test showing we prefer tts entity over legacy tts provider (#124624) 2024-08-26 11:10:58 +02:00
Andre Lengwenus
7ddd755acc Handle LCN entity instances only in corresponding platform (#124589)
* Handle switch entity instance only in switch platform

* Add other platforms
2024-08-26 10:17:51 +02:00
Paulus Schoutsen
302ffe5e56 Revert "Use speex for noise suppression and auto gain" (#124620)
Revert "Use speex for noise suppression and auto gain (#124591)"

This reverts commit 592f60643a.
2024-08-26 10:12:05 +02:00
Jan Bouwhuis
65216df3a5 Auto recover mqtt config entry secret if Mosquitto add-on was re-installed (#124514)
Auto recover mqtt config entry secret if Mosquitto add-on is re-installed
2024-08-26 09:40:25 +02:00
J. Nick Koston
76ebb0df08 Improve performance of generate diffs of state change events (#124601)
dict comps are inlined in cpython 3.12+
2024-08-26 08:49:31 +02:00
Christopher Fenner
0591b5e47b Improve code quality for ViCare integration (#124613)
* move type to module

* set translation key outside of init

* align import alias

* align constructor parameter order/naming

* move static attr init outside init function

* add missing types

* fix test

* revert move of _attributes
2024-08-26 08:30:28 +02:00
Yuxin Wang
bb6f9ec844 Set native value to be None instead of STATE_UNKNOWN for APCUPSD integration (#124609) 2024-08-25 19:09:37 -10:00
Michael Hansen
592f60643a Use speex for noise suppression and auto gain (#124591) 2024-08-25 23:50:32 -05:00
Brett Adams
3035588dfa Dont turn HVAC off with preset in Teslemetry (#124604)
Dont turn HVAC off with preset
2024-08-25 20:58:59 -07:00
J. Nick Koston
6e727a49bf Remove unused constant in dhcp (#124605) 2024-08-25 20:58:20 -07:00
Jeef
0dfe12840d Add SimpleFin binary sensor for errors (#122554)
* Binary Sensor Support

* updated requirements

* ng ambr

* update strings.json

* update snapshot
2024-08-25 20:57:57 -07:00
Jesse Hills
d915fee833 Bump aioesphomeapi to 25.2.0 (#124607) 2024-08-25 17:47:48 -10:00
J. Nick Koston
9ea41b4d26 Bump yalexs to 8.4.2 (#124593)
changelog: https://github.com/bdraco/yalexs/compare/v8.4.1...v8.4.2

If the pubnub connection failed, the integration would fallback
to polling. This would could get users banned so we no longer do that.
2024-08-25 23:45:06 +03:00
Pete Sage
8bc9fd23bb Add Sonos tests for announce and update error handling (#124539)
* initial commit

* update error message

* use match for error message
2024-08-25 21:25:20 +02:00
Allen Porter
18212052a4 Update nest events to include attachment image and video urls (#124554) 2024-08-25 21:24:06 +02:00
Allen Porter
3304e27fa3 Add ollama context window size configuration (#124555)
* Add ollama context window size configuration

* Set higher max context size
2024-08-25 21:22:57 +02:00
J. Nick Koston
be206156b0 Fix shelly sleepy entities never being created (#124547) 2024-08-25 09:21:23 -10:00
J. Nick Koston
0628f96713 Ensure all chars are polling when requesting manual update in homekit_controller (#124582)
related issue #123963
2024-08-25 21:21:15 +02:00
J. Nick Koston
41b129e990 Split esphome state property decorators (#124332) 2024-08-25 18:48:17 +02:00
epenet
ebc49d938a Improve config flow type hints (part 2) (#124344) 2024-08-25 18:36:44 +02:00
epenet
58b7711bdd Improve config flow type hints (part 3) (#124346) 2024-08-25 18:36:03 +02:00
epenet
909dfcc436 Improve config flow type hints (part 5) (#124349) 2024-08-25 18:34:39 +02:00
J. Nick Koston
70fc8fa2eb Improve performance of fetching stats metadata (#124428) 2024-08-25 18:33:21 +02:00
J. Nick Koston
242aae514e Small cleanups to list_statistic_ids (#124451) 2024-08-25 18:32:32 +02:00
dontinelli
d94b1e6e8a Add icons for conductivity (#124576) 2024-08-25 18:14:38 +02:00
Allen Porter
d18e81f932 Update a roborock blocking call to be fully async (#124266)
Remove a blocking call in roborock
2024-08-25 08:56:17 -07:00
Paulus Schoutsen
d3293336b1 Ensure write access to hassrelease data folder (#124573)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-08-25 17:24:06 +02:00
dontinelli
1eeb3bdcdf Bump fyta_cli to 0.6.3 (#124574) 2024-08-25 17:23:21 +02:00
Avi Miller
36bfd7b9ce Bump aiolifx to 1.0.8 to support LIFX B10 and T10 Candles (#124263)
Signed-off-by: Avi Miller <me@dje.li>
2024-08-25 07:15:51 -07:00
J. Nick Koston
f84a04e113 Bump ulid-transform to 1.0.2 (#124544)
changelog: https://github.com/bdraco/ulid-transform/compare/v0.13.1...v1.0.2

python 3.13 support added
python 3.10 support dropped
2024-08-25 07:13:40 -07:00
Paulus Schoutsen
516f3295bf 2024.8.3 (#124569) 2024-08-25 16:06:09 +02:00
J. Nick Koston
2d5289e7dd Revert "Exclude aiohappyeyeballs from license check" (#124116) 2024-08-25 13:41:47 +00:00
Paulus Schoutsen
18efd84a35 Bump version to 2024.8.3 2024-08-25 13:26:00 +00:00
Jan Bouwhuis
b34c90b189 Only support remote activity on Alexa if feature is set and at least one feature is in the activity_list (#124567)
Only support remote activity on Alexa if feaure is set and at least one feature is in the activity_list
2024-08-25 13:24:42 +00:00
Mr. Bubbles
a45c1a3914 Fix missing id in Habitica completed todos API response (#124565)
* Fix missing id in completed todos API response

* Copy id only if none

* Update homeassistant/components/habitica/coordinator.py

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

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-08-25 13:24:42 +00:00
J. Nick Koston
1bdf9d657e Bump yalexs to 8.4.1 (#124553)
changelog: https://github.com/bdraco/yalexs/compare/v8.4.0...v8.4.1
2024-08-25 13:24:41 +00:00
J. Nick Koston
b294a92ad2 Bump yalexs to 8.4.0 (#124520) 2024-08-25 13:24:40 +00:00
J. Nick Koston
2db362ab3d Bump yalexs to 8.3.3 (#124492)
* Bump yalexs to 8.2.0

changelog: https://github.com/bdraco/yalexs/compare/v8.1.4...v8.2.0

* bump to 8.3.1

* bump

* one more bump to ensure we do not hit the ratelimit/shutdown cleanly

* empty commit to restart ci since close/open did not work in flight
2024-08-25 13:24:39 +00:00
Joost Lekkerkerker
5f275a6b9c Don't raise WLED user flow unique_id check (#124481) 2024-08-25 13:22:59 +00:00
Ino Dekker
fa914b2811 Bump aiohue to version 4.7.3 (#124436) 2024-08-25 13:22:58 +00:00
J. Nick Koston
a128e2e4fc Bump yalexs to 8.1.4 (#124425)
changelog: https://github.com/bdraco/yalexs/compare/v8.1.2...v8.1.4
2024-08-25 13:22:57 +00:00
Penny Wood
03c7f2cf5b Add supported features for iZone (#124416)
* Fix for #123462

* Set outside of constructor
2024-08-25 13:22:57 +00:00
Angel Nunez Mencias
102528e5d3 update ttn_client - fix crash with SenseCAP devices (#124370)
update ttn_client
2024-08-25 13:22:56 +00:00
Pete Sage
8f4af4f7c2 Fix Spotify Media Browsing fails for new config entries (#124368)
* initial commit

* tests

* tests

* update tests

* update tests

* update tests
2024-08-25 13:22:55 +00:00
karwosts
667af10017 Add missing strings for riemann options flow (#124317) 2024-08-25 13:22:54 +00:00
G Johansson
e5a64a1e0a Bump python-holidays to 0.55 (#124314) 2024-08-25 13:22:54 +00:00
G Johansson
236fa8e238 Bump python-holidays to 0.54 (#124170) 2024-08-25 13:22:53 +00:00
J. Nick Koston
70a58a0bb0 Bump yalexs to 8.1.2 (#124303) 2024-08-25 13:20:54 +00:00
Joost Lekkerkerker
769c7f1ea3 Don't abort airgradient user flow if flow in progress (#124300) 2024-08-25 13:20:53 +00:00
Marcel van der Veldt
5a8045d1fb Prevent KeyError when Matter device sends invalid value for StartUpOnOff (#124280) 2024-08-25 13:20:52 +00:00
Allen Porter
5a73b636e3 Bump python-roborock to 2.6.0 (#124268) 2024-08-25 13:20:51 +00:00
Matthias Alphart
524e09b45e Update xknx to 3.1.1 (#124257) 2024-08-25 13:20:51 +00:00
J. Nick Koston
1f46670266 Bump aiohttp to 3.10.5 (#124254) 2024-08-25 13:20:50 +00:00
Erik Montnemery
a857f603c8 Bump pyhomeworks to 1.1.2 (#124199) 2024-08-25 13:20:49 +00:00
J. Nick Koston
b7d8f3d005 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-25 13:19:57 +00:00
Shay Levy
129035967b Shelly RPC - do not stop BLE scanner if a sleeping device (#124147) 2024-08-25 13:17:46 +00:00
Christopher Maio
45b44f8a59 Update Matter light transition blocklist to include GE Cync Undercabinet Lights (#124138) 2024-08-25 13:17:45 +00:00
J. Nick Koston
e80dc52175 Bump aiohttp to 3.10.4 (#124137)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.10.3...v3.10.4
2024-08-25 13:17:45 +00:00
MarkGodwin
22bb3e5477 Bump tplink-omada-api to 1.4.2 (#124136)
Fix for bad pre-registered clients
2024-08-25 13:17:44 +00:00
Allen Porter
f89e8e6ceb Bump nest to 4.0.7 to increase subscriber deadline (#124131)
Bump nest to 4.0.7
2024-08-25 13:17:43 +00:00
J. Nick Koston
157a61845b Bump aiohomekit to 3.2.3 (#124115) 2024-08-25 13:17:43 +00:00
Artem Draft
0fcdc3c200 Bump pybravia to 0.3.4 (#124113) 2024-08-25 13:17:42 +00:00
cdnninja
d1f09ecd0c Add Alt Core300s model to vesync integration (#124091) 2024-08-25 13:17:41 +00:00
J. Nick Koston
3484ab3c0c Bump aioshelly to 11.2.4 (#124080) 2024-08-25 13:17:40 +00:00
J. Nick Koston
80df582ebd Bump yalexs to 8.0.2 (#123817) 2024-08-25 13:17:39 +00:00
J. Nick Koston
dc967e2ef2 Bump yalexs to 6.5.0 (#123739) 2024-08-25 13:17:39 +00:00
Daniel Rozycki
e2c1a38d87 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-25 13:17:38 +00:00
Mr. Bubbles
c9e7c76ee5 Fix missing id in Habitica completed todos API response (#124565)
* Fix missing id in completed todos API response

* Copy id only if none

* Update homeassistant/components/habitica/coordinator.py

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

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-08-25 15:15:47 +02:00
Jan Bouwhuis
5550b1a74e Only support remote activity on Alexa if feature is set and at least one feature is in the activity_list (#124567)
Only support remote activity on Alexa if feaure is set and at least one feature is in the activity_list
2024-08-25 15:09:08 +02:00
Marcel van der Veldt
51b520db0c Prevent KeyError when Matter device sends invalid value for StartUpOnOff (#124280) 2024-08-25 15:06:16 +02:00
Christopher Maio
f06c21c8cc Update Matter light transition blocklist to include GE Cync Undercabinet Lights (#124138) 2024-08-25 15:05:13 +02:00
IceBotYT
fcf0bef2cd Remove platform from unique ID in Nice G.O. (#124548)
* Remove domain from unique ID in Nice G.O.

* Snapshots
2024-08-25 14:13:50 +02:00
J. Nick Koston
7c8e00e5e0 Bump yalexs to 8.4.1 (#124553)
changelog: https://github.com/bdraco/yalexs/compare/v8.4.0...v8.4.1
2024-08-25 13:16:20 +02:00
Jonas Bergler
ce72157bf7 Bump pyEmby to 1.10 (#124549) 2024-08-25 11:43:21 +02:00
Andrew Jackson
31f5539311 Change logger level on config migration for Mastodon (#124558) 2024-08-25 09:53:30 +02:00
J. Nick Koston
b63fb9f17f Bump bluetooth-data-tools to 1.20.0 (#124542)
changelog: https://github.com/Bluetooth-Devices/bluetooth-data-tools/compare/v1.19.4...v1.20.0
2024-08-24 18:18:54 -10:00
IceBotYT
9b3718edfb Remove sync API use in Nice G.O. (#124546) 2024-08-25 03:27:08 +02:00
Michael Hansen
156e39ebb2 Add minimum command seconds to VAD (#124447) 2024-08-24 22:21:03 +02:00
Allen Porter
c506188c13 Fix nest event entities to only register a single event per session (#124535) 2024-08-24 22:17:59 +02:00
Allen Porter
b64c21cce6 Bump to python-nest-sdm to 5.0.0 (#124536) 2024-08-24 22:16:55 +02:00
David F. Mulcahey
e85755fbda Fix ZHA device lookup when ZHA devices are shared with additional integrations (#124429)
* Fix ZHA device lookup when ZHA devices are shared with additional integrations

* clean up except error types

* remove impossible to create exceptions
2024-08-24 15:52:27 -04:00
Allen Porter
3e3d27f48d Add nest event platform (#123042)
* Add nest event platform

* Translate entities

* Put motion events into a single entity type

* Remove none types

* Set event entity descriptions as kw only

* Update translations for event entities

* Add single event entity per trait type

* Update translation keys
2024-08-24 08:44:44 -07:00
red-island
32f75597a9 Fix tilt calculation for HomeKit cover devices (#123532) 2024-08-24 16:12:32 +01:00
cnico
d7d35f74f2 Bump flipr-api to 1.6.0 (#124522)
bump flipr-api to 1.6.0
2024-08-24 17:09:52 +02:00
Markus Jacobsen
5dc03752ca Add type hinting to Bang & Olufsen test (#124423) 2024-08-24 12:59:08 +02:00
Michael Arthur
b26446bd88 Add returning activity to ecovacs lawn mower (#124519) 2024-08-24 12:53:49 +02:00
Robert Svensson
9e13184256 Add deCONZ Air Purifier Fan Mode select entity support (#124513)
* Add deCONZ Air Purifier Fan Mode select entity support

* Remove unused constants
2024-08-24 09:51:09 +02:00
J. Nick Koston
b7170c78a5 Bump yalexs to 8.4.0 (#124520) 2024-08-23 20:44:12 -10:00
Steven B.
e26d363b5e Convert ring integration to the async ring-doorbell api (#124365)
* Bump ring-doorbell to 0.9.0

* Convert ring integration to async ring-doorbell api

* Use mock auth fixture class to get token_updater

* Fix typo in fixture name
2024-08-24 08:23:31 +02:00
Joost Lekkerkerker
7ae8f4c9d0 Don't abort airgradient user flow if flow in progress (#124300) 2024-08-24 07:20:00 +02:00
Lenn
664e0258bf Bump motionblindsble to 0.1.1 (#124322) 2024-08-24 07:19:11 +02:00
Joost Lekkerkerker
8023cbcc38 Don't raise WLED user flow unique_id check (#124481) 2024-08-24 07:04:50 +02:00
jjlawren
22c322fc37 Bump plexapi to 4.15.16 (#124512) 2024-08-24 07:01:25 +02:00
J. Nick Koston
2bb4a8747c Bump fnv-hash-fast to 1.0.2 (#124489) 2024-08-24 06:58:52 +02:00
Andre Lengwenus
098a006f32 Bump lcn-frontend to 0.1.6 (#124490) 2024-08-24 06:56:48 +02:00
David F. Mulcahey
d47a296d7a Resolve versions of ZHA dependencies earlier to prevent blocking call in event loop (#124496) 2024-08-24 06:52:58 +02:00
Matthias Alphart
c2ce71a38c Update xknx to 3.1.1 (#124257) 2024-08-24 06:48:02 +02:00
Artur Pragacz
a7c6abc54e Always assign unique_id in Onkyo (#120543) 2024-08-23 21:04:44 -07:00
Christophe Gagnier
79ba315008 Add charging enabled switch to TechnoVE (#121484)
* Add session_active switch to TechnoVE

* Replace multi-line lambda with function def

* Make lambda one line
2024-08-23 22:45:26 +02:00
Jan Bouwhuis
26e87509be Cleanup hassio fixtures in home assistant hardware integration tests (#124500) 2024-08-23 19:40:35 +02:00
J. Nick Koston
af2fec89d8 Bump yalexs to 8.3.3 (#124492)
* Bump yalexs to 8.2.0

changelog: https://github.com/bdraco/yalexs/compare/v8.1.4...v8.2.0

* bump to 8.3.1

* bump

* one more bump to ensure we do not hit the ratelimit/shutdown cleanly

* empty commit to restart ci since close/open did not work in flight
2024-08-23 19:23:05 +02:00
Steven B.
61cee043e6 Do not report tplink discovery failures as legacy connection failures (#124432)
* Do not report discovery failures as legacy connection failures

* Fix catching BaseException
2024-08-23 10:17:48 -05:00
Jan Bouwhuis
fd57931cc9 Cleanup redundant fixtures on matter integration for addon tests (#124445) 2024-08-23 16:27:14 +02:00
Jan Bouwhuis
44b6bca89a Refactor and cleanup zwave_js fixtures to share them (#124485)
Refactor and cleanup zwave_js fixtures to use
2024-08-23 15:42:57 +02:00
starkillerOG
0bd9386df2 Reolink add 100% coverage of siren platform (#124474) 2024-08-23 15:15:04 +02: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
Franck Nijhof
94516de724 2024.8.2 (#124069) 2024-08-16 18:43:41 +02:00
Joost Lekkerkerker
a2027fc78c Exclude aiohappyeyeballs from license check (#124041) 2024-08-16 18:13:33 +02:00
Franck Nijhof
be5577c2f9 Bump version to 2024.8.2 2024-08-16 18:02:52 +02:00
Joost Lekkerkerker
93dc08a05f Bump aiomealie to 0.8.1 (#124047) 2024-08-16 18:02:41 +02:00
Matthias Alphart
def2ace4ec 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 18:02:38 +02:00
J. Nick Koston
4f0261d739 Bump bluetooth-adapters to 0.19.4 (#124018)
Fixes a call to enumerate USB devices that did blocking
I/O
2024-08-16 18:02:35 +02:00
Brett Adams
6103811de8 Fix rear trunk logic in Tessie (#124011)
Allow open to be anything not zero
2024-08-16 18:02:32 +02:00
Robert Svensson
fd904c65a7 Bump aiounifi to v80 (#124004) 2024-08-16 18:02:29 +02:00
Joost Lekkerkerker
04bf8482b2 Re-enable concord232 (#124000) 2024-08-16 18:02:26 +02:00
Sid
f5fd5e0457 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 18:02:23 +02:00
J. Nick Koston
0de89b42aa Ensure event entities are allowed for linked homekit config via YAML (#123994) 2024-08-16 18:02:20 +02:00
Erik Montnemery
e8914552b1 Bump pyhomeworks to 1.1.1 (#123981) 2024-08-16 18:02:17 +02:00
Glenn Waters
bfd302109e Environment Canada weather format fix (#123960)
* Add missing isoformat.

* Move fixture loading to common conftest.py

* Add deepcopy.
2024-08-16 18:02:14 +02:00
Andre Lengwenus
796ad47dd0 Bump pypck to 0.7.20 (#123948) 2024-08-16 18:02:11 +02:00
IceBotYT
e9915463a9 Bump LaCrosse View to 1.0.2, fixes blocking call (#123935) 2024-08-16 18:02:07 +02:00
Michael
59aecda8cf Fix PI-Hole update entity when no update available (#123930)
show installed version when no update available
2024-08-16 17:58:24 +02:00
J. Nick Koston
7d00ccbbbc Bump pylutron_caseta to 0.21.1 (#123924) 2024-08-16 17:58:21 +02:00
Álvaro Fernández Rojas
55a911120c 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-16 17:58:18 +02:00
Michael
80abf90c87 Fix translation for integration not found repair issue (#123868)
* correct setp id in strings

* add issue_ignored string
2024-08-16 17:58:15 +02:00
Robert Resch
8539591307 Fix blocking I/O of SSLContext.load_default_certs in Ecovacs (#123856) 2024-08-16 17:58:12 +02:00
Michael
6234deeee1 Bump py-synologydsm-api to 2.4.5 (#123815)
bump py-synologydsm-api to 2.4.5
2024-08-16 17:57:59 +02:00
Louis Christ
81fabb1bfa Fix status update loop in bluesound integration (#123790)
* Fix retry loop for status update

* Use 'available' instead of _is_online

* Fix tests
2024-08-16 17:56:23 +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
Matthias Alphart
ff4e5859cf Fix KNX UI Light color temperature DPT (#123778) 2024-08-16 17:13:31 +02:00
Matthias Alphart
f2e42eafc7 Update xknx to 3.1.0 and fix climate read only mode (#123776) 2024-08-16 17:13:28 +02:00
Allen Porter
63f28ae2fe Bump python-nest-sdm to 4.0.6 (#123762) 2024-08-16 17:13:25 +02:00
Ian
5b6c6141c5 Bump py-nextbusnext to 2.0.4 (#123750) 2024-08-16 17:13:22 +02:00
Michael
396ef7a642 Fix error message in html5 (#123749) 2024-08-16 17:13:19 +02:00
Franck Nijhof
17f59a5665 Update wled to 0.20.2 (#123746) 2024-08-16 17:13:16 +02:00
David F. Mulcahey
10846dc97b Bump ZHA lib to 0.0.31 (#123743) 2024-08-16 17:13:13 +02:00
Álvaro Fernández Rojas
17bb00727d Update aioqsw to v0.4.1 (#123721) 2024-08-16 17:13:10 +02:00
Álvaro Fernández Rojas
bc021dbbc6 Update aioairzone-cloud to v0.6.2 (#123719) 2024-08-16 17:13:06 +02:00
Álvaro Fernández Rojas
e3cb9c0844 Update AEMET-OpenData to v0.5.4 (#123716) 2024-08-16 17:13:03 +02:00
David Knowles
050e2c9404 Bump pyschlage to 2024.8.0 (#123714) 2024-08-16 17:13:00 +02:00
Cyrill Raccaud
5ea447ba48 Fix startup block from Swiss public transport (#123704) 2024-08-16 17:12:57 +02:00
J. Nick Koston
a23b063922 Bump aiohomekit to 3.2.2 (#123669) 2024-08-16 17:12:53 +02:00
Aidan Timson
c269d57259 System Bridge package updates (#123657) 2024-08-16 17:12:50 +02:00
kingy444
d512f327c5 Bump pydaikin to 2.13.4 (#123623)
* bump pydaikin to 2.13.3

* bump pydaikin to 2.13.4
2024-08-16 17:12:46 +02:00
Maciej Bieniek
9bf8c5a54b Bump aioshelly to version 11.2.0 (#123602)
Bump aioshelly to version 11.2.0
2024-08-16 17:12:43 +02:00
J. Nick Koston
725e2f16f5 Ensure HomeKit connection is kept alive for devices that timeout too quickly (#123601) 2024-08-16 17:12:21 +02: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
G Johansson
d98d0cdad0 Change WoL to be secondary on device info (#123591) 2024-08-16 17:07:24 +02:00
Noah Husby
e2f4aa893f Fix secondary russound controller discovery failure (#123590) 2024-08-16 17:07:21 +02:00
Matthias Alphart
6b81fa89d3 Update knx-frontend to 2024.8.9.225351 (#123557) 2024-08-16 17:07:18 +02:00
J. Nick Koston
c886587915 Bump aiohttp to 3.10.3 (#123549) 2024-08-16 17:07:15 +02:00
Phill (pssc)
059d3eed98 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-16 17:07:12 +02:00
Erik Montnemery
f9ae2b4453 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-16 17:07:09 +02:00
ilan
742c7ba23f Fix Madvr sensor values on startup (#122479)
* fix: add startup values

* fix: update snap

* fix: use native value to show None
2024-08-16 17:07:06 +02:00
wittypluck
e7ae5c5c24 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-16 17:07:02 +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
Franck Nijhof
ae4fc9504a 2024.8.1 (#123544) 2024-08-10 19:32:02 +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
2ef337ec2e Bump version to 2024.8.1 2024-08-10 18:41:57 +02:00
cnico
723b7bd532 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 18:41:39 +02:00
Joost Lekkerkerker
4fdb11b0d8 Bump AirGradient to 0.8.0 (#123527) 2024-08-10 18:41:36 +02:00
Matt Way
fe2e6c37f4 Bump pydaikin to 2.13.2 (#123519) 2024-08-10 18:41:32 +02:00
Michael
4a75c55a8f Fix cleanup of old orphan device entries in AVM Fritz!Tools (#123516)
fix cleanup of old orphan device entries
2024-08-10 18:41:29 +02:00
Duco Sebel
dfb59469cf Bumb python-homewizard-energy to 6.2.0 (#123514) 2024-08-10 18:41:26 +02:00
David F. Mulcahey
bdb2e1e2e9 Bump zha lib to 0.0.30 (#123499) 2024-08-10 18:41:22 +02:00
Franck Nijhof
c4f6f1e3d8 Update frontend to 20240809.0 (#123485) 2024-08-10 18:41:19 +02:00
Louis Christ
fb3eae54ea Fix startup blocked by bluesound integration (#123483) 2024-08-10 18:41:16 +02:00
Jake Martin
d3f8fce788 Bump monzopy to 1.3.2 (#123480) 2024-08-10 18:41:13 +02:00
Steve Easley
44e58a8c87 Bump pyjvcprojector to 1.0.12 to fix blocking call (#123473) 2024-08-10 18:41:09 +02:00
puddly
3d3879b0db 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-10 18:41:06 +02:00
Franck Nijhof
a8b1eb34f3 Support action YAML syntax in old-style notify groups (#123457) 2024-08-10 18:41:03 +02:00
Matrix
fd77058def Bump YoLink API to 0.4.7 (#123441) 2024-08-10 18:41:00 +02:00
Brett Adams
b147ca6c5b Add missing logger to Tessie (#123413) 2024-08-10 18:40:57 +02:00
dupondje
670c4cacfa 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 18:40:53 +02:00
J. Nick Koston
1ed0a89303 Bump aiohttp to 3.10.2 (#123394) 2024-08-10 18:40:50 +02:00
J. Nick Koston
ab0597da7b 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-10 18:40:47 +02:00
Erik Montnemery
a3db6bc8fa Revert "Fix blocking I/O while validating config schema" (#123377) 2024-08-10 18:40:44 +02:00
Noah Husby
9bfc8f6e27 Bump aiorussound to 2.2.2 (#123319) 2024-08-10 18:40:41 +02:00
J. Nick Koston
6fddef2dc5 Fix doorbird with externally added events (#123313) 2024-08-10 18:40:38 +02:00
fustom
ec08a85aa0 Fix limit and order property for transmission integration (#123305) 2024-08-10 18:40:35 +02:00
Evgeny
de7af575c5 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 18:40:32 +02:00
Tom Brien
d3831bae4e Add support for v3 Coinbase API (#116345)
* Add support for v3 Coinbase API

* Add deps

* Move tests
2024-08-10 18:40:28 +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
Franck Nijhof
058b012e6c 2024.7.2 (#121671) 2024-07-10 13:18:48 +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
1cf62916a7 2024.7.1 (#121289) 2024-07-05 17:25:40 +02:00
Bram Kragten
e3958d4adb Update frontend to 20240705.0 (#121295) 2024-07-05 15:04:01 +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
6242 changed files with 280164 additions and 98347 deletions

View File

@@ -14,6 +14,7 @@ core: &core
base_platforms: &base_platforms
- homeassistant/components/air_quality/**
- homeassistant/components/alarm_control_panel/**
- homeassistant/components/assist_satellite/**
- homeassistant/components/binary_sensor/**
- homeassistant/components/button/**
- homeassistant/components/calendar/**
@@ -61,6 +62,7 @@ components: &components
- homeassistant/components/auth/**
- homeassistant/components/automation/**
- homeassistant/components/backup/**
- homeassistant/components/blueprint/**
- homeassistant/components/bluetooth/**
- homeassistant/components/cloud/**
- homeassistant/components/config/**
@@ -109,6 +111,7 @@ components: &components
- homeassistant/components/tag/**
- homeassistant/components/template/**
- homeassistant/components/timer/**
- homeassistant/components/trace/**
- homeassistant/components/usb/**
- homeassistant/components/webhook/**
- homeassistant/components/websocket_api/**
@@ -124,9 +127,11 @@ tests: &tests
- tests/*.py
- tests/auth/**
- tests/backports/**
- tests/components/diagnostics/**
- tests/components/history/**
- tests/components/logbook/**
- tests/components/recorder/**
- tests/components/repairs/**
- tests/components/sensor/**
- tests/hassfest/**
- tests/helpers/**
@@ -146,6 +151,7 @@ requirements: &requirements
- homeassistant/package_constraints.txt
- requirements*.txt
- pyproject.toml
- script/licenses.py
any:
- *base_platforms

View File

@@ -32,7 +32,7 @@ jobs:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
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.4
uses: actions/upload-artifact@v4.4.0
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.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -126,7 +126,7 @@ jobs:
env:
UV_PRERELEASE: allow
run: |
python3 -m pip install "$(grep '^uv' < requirements_test.txt)"
python3 -m pip install "$(grep '^uv' < requirements.txt)"
uv pip install packaging tomli
uv pip install .
python3 script/version_bump.py nightly --set-nightly-version "${{ needs.init.outputs.version }}"
@@ -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 \
@@ -316,6 +316,7 @@ jobs:
packages: write
id-token: write
strategy:
fail-fast: false
matrix:
registry: ["ghcr.io/home-assistant", "docker.io/homeassistant"]
steps:
@@ -323,20 +324,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,7 +454,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -482,3 +483,56 @@ jobs:
export TWINE_PASSWORD="${{ secrets.TWINE_TOKEN }}"
twine upload dist/* --skip-existing
hassfest-image:
name: Build and test hassfest image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write
id-token: write
needs: ["init"]
if: github.repository_owner == 'home-assistant'
env:
HASSFEST_IMAGE_NAME: ghcr.io/home-assistant/hassfest
HASSFEST_IMAGE_TAG: ghcr.io/home-assistant/hassfest:${{ needs.init.outputs.version }}
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Login to GitHub Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6.7.0
with:
context: . # So action will not pull the repository again
file: ./script/hassfest/docker/Dockerfile
load: true
tags: ${{ env.HASSFEST_IMAGE_TAG }}
- name: Run hassfest against core
run: docker run --rm -v ${{ github.workspace }}/homeassistant:/github/workspace/homeassistant ${{ env.HASSFEST_IMAGE_TAG }} --core-integrations-path=/github/workspace/homeassistant/components
- name: Push Docker image
if: needs.init.outputs.channel != 'dev' && needs.init.outputs.publish == 'true'
id: push
uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6.7.0
with:
context: . # So action will not pull the repository again
file: ./script/hassfest/docker/Dockerfile
push: true
tags: ${{ env.HASSFEST_IMAGE_TAG }},${{ env.HASSFEST_IMAGE_NAME }}:latest
- name: Generate artifact attestation
if: needs.init.outputs.channel != 'dev' && needs.init.outputs.publish == 'true'
uses: actions/attest-build-provenance@1c608d11d69870c2092266b3f9a6f3abbf17002c # v1.4.3
with:
subject-name: ${{ env.HASSFEST_IMAGE_NAME }}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true

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.8"
MYPY_CACHE_VERSION: 9
HA_SHORT_VERSION: "2024.10"
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.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -247,7 +252,7 @@ jobs:
python -m venv venv
. venv/bin/activate
python --version
pip install "$(grep '^uv' < requirements_test.txt)"
pip install "$(grep '^uv' < requirements.txt)"
uv pip install "$(cat requirements_test.txt | grep pre-commit)"
- name: Restore pre-commit environment from cache
id: cache-precommit
@@ -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.1
uses: actions/setup-python@v5.2.0
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.1
uses: actions/setup-python@v5.2.0
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.1
uses: actions/setup-python@v5.2.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -423,21 +429,36 @@ jobs:
. venv/bin/activate
pre-commit run --show-diff-on-failure --hook-stage manual codespell --all-files
lint-hadolint:
name: Check ${{ matrix.file }}
runs-on: ubuntu-24.04
needs:
- info
if: |
github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
strategy:
fail-fast: false
matrix:
file:
- Dockerfile
- Dockerfile.dev
- script/hassfest/docker/Dockerfile
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.7
- name: Register hadolint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/hadolint.json"
- name: Check Dockerfile
uses: docker://hadolint/hadolint:v1.18.2
- name: Check ${{ matrix.file }}
uses: docker://hadolint/hadolint:v2.12.0
with:
args: hadolint Dockerfile
- name: Check Dockerfile.dev
uses: docker://hadolint/hadolint:v1.18.2
with:
args: hadolint Dockerfile.dev
args: hadolint ${{ matrix.file }}
base:
name: Prepare dependencies
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: info
timeout-minutes: 60
strategy:
@@ -448,14 +469,14 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Generate partial uv restore key
id: generate-uv-key
run: |
uv_version=$(cat requirements_test.txt | grep uv | cut -d '=' -f 3)
uv_version=$(cat requirements.txt | grep uv | cut -d '=' -f 3)
echo "version=${uv_version}" >> $GITHUB_OUTPUT
echo "key=uv-${{ env.UV_CACHE_VERSION }}-${uv_version}-${{
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
@@ -504,20 +525,20 @@ jobs:
python -m venv venv
. venv/bin/activate
python --version
pip install "$(grep '^uv' < requirements_test.txt)"
pip install "$(grep '^uv' < requirements.txt)"
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
@@ -532,7 +553,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -552,10 +573,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
@@ -564,7 +586,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -584,18 +606,21 @@ jobs:
audit-licenses:
name: Audit licenses
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs:
- info
- base
if: |
needs.info.outputs.requirements == 'true'
(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
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -613,7 +638,7 @@ jobs:
. venv/bin/activate
pip-licenses --format=json --output-file=licenses.json
- name: Upload licenses
uses: actions/upload-artifact@v4.3.4
uses: actions/upload-artifact@v4.4.0
with:
name: licenses
path: licenses.json
@@ -624,10 +649,11 @@ jobs:
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
@@ -637,7 +663,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -669,10 +695,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
@@ -682,7 +710,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -703,20 +731,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
@@ -726,7 +755,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -775,12 +804,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
@@ -800,7 +830,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -818,19 +848,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.4
uses: actions/upload-artifact@v4.4.0
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
@@ -863,7 +894,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -904,6 +935,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 \
@@ -917,14 +949,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.4
uses: actions/upload-artifact@v4.4.0
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.4
uses: actions/upload-artifact@v4.4.0
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -936,7 +968,7 @@ jobs:
./script/check_dirty
pytest-mariadb:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
services:
mariadb:
image: ${{ matrix.mariadb-group }}
@@ -950,6 +982,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
@@ -981,7 +1014,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1042,7 +1075,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.4
uses: actions/upload-artifact@v4.4.0
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -1050,7 +1083,7 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.4
uses: actions/upload-artifact@v4.4.0
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -1075,6 +1108,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
@@ -1106,7 +1140,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1168,7 +1202,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.4
uses: actions/upload-artifact@v4.4.0
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1176,7 +1210,7 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.4
uses: actions/upload-artifact@v4.4.0
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1189,7 +1223,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
@@ -1213,12 +1247,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:
@@ -1251,7 +1286,7 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1309,14 +1344,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.4
uses: actions/upload-artifact@v4.4.0
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.4
uses: actions/upload-artifact@v4.4.0
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
@@ -1328,7 +1363,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

View File

@@ -24,11 +24,11 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.25.12
uses: github/codeql-action/init@v3.26.9
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.25.12
uses: github/codeql-action/analyze@v3.26.9
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.1
uses: actions/setup-python@v5.2.0
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.1
uses: actions/setup-python@v5.2.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -46,7 +46,7 @@ jobs:
python -m venv venv
. venv/bin/activate
python --version
pip install "$(grep '^uv' < requirements_test.txt)"
pip install "$(grep '^uv' < requirements.txt)"
uv pip install -r requirements.txt
- name: Get information
@@ -82,14 +82,15 @@ jobs:
) > .env_file
- name: Upload env_file
uses: actions/upload-artifact@v4.3.4
uses: actions/upload-artifact@v4.4.0
with:
name: env_file
path: ./.env_file
include-hidden-files: true
overwrite: true
- name: Upload requirements_diff
uses: actions/upload-artifact@v4.3.4
uses: actions/upload-artifact@v4.4.0
with:
name: requirements_diff
path: ./requirements_diff.txt
@@ -101,7 +102,7 @@ jobs:
python -m script.gen_requirements_all ci
- name: Upload requirements_all_wheels
uses: actions/upload-artifact@v4.3.4
uses: actions/upload-artifact@v4.4.0
with:
name: requirements_all_wheels
path: ./requirements_all_wheels_*.txt
@@ -130,6 +131,12 @@ jobs:
with:
name: requirements_diff
- name: Adjust build env
run: |
# Don't build wheels for uv as uv requires a greater version of rust as currently available on alpine
sed -i "/uv/d" requirements.txt
sed -i "/uv/d" requirements_diff.txt
- name: Build wheels
uses: home-assistant/wheels@2024.07.1
with:
@@ -139,7 +146,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "libffi-dev;openssl-dev;yaml-dev;nasm"
skip-binary: aiohttp
skip-binary: aiohttp;multidict;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements.txt"
@@ -173,6 +180,18 @@ jobs:
with:
name: requirements_all_wheels
- name: Adjust build env
run: |
if [ "${{ matrix.arch }}" = "i386" ]; then
echo "NPY_DISABLE_SVML=1" >> .env_file
fi
# Do not pin numpy in wheels building
sed -i "/numpy/d" homeassistant/package_constraints.txt
# Don't build wheels for uv as uv requires a greater version of rust as currently available on alpine
sed -i "/uv/d" requirements.txt
sed -i "/uv/d" requirements_diff.txt
- name: Split requirements all
run: |
# We split requirements all into multiple files.
@@ -193,15 +212,6 @@ jobs:
cat homeassistant/package_constraints.txt | grep 'grpcio==' >> requirements_old-cython.txt
cat homeassistant/package_constraints.txt | grep 'pydantic==' >> requirements_old-cython.txt
- name: Adjust build env
run: |
if [ "${{ matrix.arch }}" = "i386" ]; then
echo "NPY_DISABLE_SVML=1" >> .env_file
fi
# Do not pin numpy in wheels building
sed -i "/numpy/d" homeassistant/package_constraints.txt
- name: Build wheels (old cython)
uses: home-assistant/wheels@2024.07.1
with:
@@ -211,7 +221,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"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_old-cython.txt"
@@ -226,7 +236,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;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtaa"
@@ -240,7 +250,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;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtab"
@@ -254,7 +264,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;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl
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.5.2
rev: v0.6.6
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|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\.txt)$
- id: hassfest-metadata
name: hassfest-metadata
entry: script/run-in-env.sh python3 -m script.hassfest -p metadata

View File

@@ -95,8 +95,7 @@ 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.assist_satellite.*
homeassistant.components.asuswrt.*
homeassistant.components.autarco.*
homeassistant.components.auth.*
@@ -112,6 +111,7 @@ homeassistant.components.bitcoin.*
homeassistant.components.blockchain.*
homeassistant.components.blue_current.*
homeassistant.components.blueprint.*
homeassistant.components.bluesound.*
homeassistant.components.bluetooth.*
homeassistant.components.bluetooth_adapters.*
homeassistant.components.bluetooth_tracker.*
@@ -120,6 +120,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.*
@@ -140,6 +141,7 @@ homeassistant.components.cpuspeed.*
homeassistant.components.crownstone.*
homeassistant.components.date.*
homeassistant.components.datetime.*
homeassistant.components.deako.*
homeassistant.components.deconz.*
homeassistant.components.default_config.*
homeassistant.components.demo.*
@@ -167,6 +169,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.*
@@ -196,7 +199,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.*
@@ -206,6 +211,8 @@ homeassistant.components.glances.*
homeassistant.components.goalzero.*
homeassistant.components.google.*
homeassistant.components.google_assistant_sdk.*
homeassistant.components.google_cloud.*
homeassistant.components.google_photos.*
homeassistant.components.google_sheets.*
homeassistant.components.gpsd.*
homeassistant.components.greeneye_monitor.*
@@ -255,6 +262,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.*
@@ -275,10 +283,12 @@ homeassistant.components.lawn_mower.*
homeassistant.components.lcn.*
homeassistant.components.ld2410_ble.*
homeassistant.components.led_ble.*
homeassistant.components.lektrico.*
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.*
@@ -290,7 +300,7 @@ 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.*
@@ -306,6 +316,7 @@ homeassistant.components.minecraft_server.*
homeassistant.components.mjpeg.*
homeassistant.components.modbus.*
homeassistant.components.modem_callerid.*
homeassistant.components.mold_indicator.*
homeassistant.components.monzo.*
homeassistant.components.moon.*
homeassistant.components.mopeka.*
@@ -332,6 +343,7 @@ homeassistant.components.nut.*
homeassistant.components.onboarding.*
homeassistant.components.oncue.*
homeassistant.components.onewire.*
homeassistant.components.onkyo.*
homeassistant.components.open_meteo.*
homeassistant.components.openexchangerates.*
homeassistant.components.opensky.*
@@ -391,6 +403,7 @@ homeassistant.components.select.*
homeassistant.components.sensibo.*
homeassistant.components.sensirion_ble.*
homeassistant.components.sensor.*
homeassistant.components.sensoterra.*
homeassistant.components.senz.*
homeassistant.components.sfr_box.*
homeassistant.components.shelly.*
@@ -402,10 +415,13 @@ homeassistant.components.skybell.*
homeassistant.components.slack.*
homeassistant.components.sleepiq.*
homeassistant.components.smhi.*
homeassistant.components.smlight.*
homeassistant.components.snooz.*
homeassistant.components.solarlog.*
homeassistant.components.sonarr.*
homeassistant.components.speedtestdotnet.*
homeassistant.components.sql.*
homeassistant.components.squeezebox.*
homeassistant.components.ssdp.*
homeassistant.components.starlink.*
homeassistant.components.statistics.*
@@ -465,6 +481,7 @@ homeassistant.components.update.*
homeassistant.components.uptime.*
homeassistant.components.uptimerobot.*
homeassistant.components.usb.*
homeassistant.components.uvc.*
homeassistant.components.vacuum.*
homeassistant.components.vallox.*
homeassistant.components.valve.*

View File

@@ -48,6 +48,7 @@ build.json @home-assistant/supervisor
/tests/components/adax/ @danielhiversen
/homeassistant/components/adguard/ @frenck
/tests/components/adguard/ @frenck
/homeassistant/components/ads/ @mrpasztoradam
/homeassistant/components/advantage_air/ @Bre77
/tests/components/advantage_air/ @Bre77
/homeassistant/components/aemet/ @Noltari
@@ -108,6 +109,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
@@ -141,6 +144,8 @@ build.json @home-assistant/supervisor
/tests/components/aseko_pool_live/ @milanmeu
/homeassistant/components/assist_pipeline/ @balloob @synesthesiam
/tests/components/assist_pipeline/ @balloob @synesthesiam
/homeassistant/components/assist_satellite/ @home-assistant/core @synesthesiam
/tests/components/assist_satellite/ @home-assistant/core @synesthesiam
/homeassistant/components/asuswrt/ @kennedyshead @ollo69
/tests/components/asuswrt/ @kennedyshead @ollo69
/homeassistant/components/atag/ @MatsNL
@@ -197,7 +202,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,17 +226,21 @@ 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
/homeassistant/components/bthome/ @Ernst79
/tests/components/bthome/ @Ernst79
/homeassistant/components/bthome/ @Ernst79 @thecode
/tests/components/bthome/ @Ernst79 @thecode
/homeassistant/components/buienradar/ @mjj4791 @ties @Robbie1221
/tests/components/buienradar/ @mjj4791 @ties @Robbie1221
/homeassistant/components/button/ @home-assistant/core
/tests/components/button/ @home-assistant/core
/homeassistant/components/calendar/ @home-assistant/core
/tests/components/calendar/ @home-assistant/core
/homeassistant/components/cambridge_audio/ @noahhusby
/tests/components/cambridge_audio/ @noahhusby
/homeassistant/components/camera/ @home-assistant/core
/tests/components/camera/ @home-assistant/core
/homeassistant/components/cast/ @emontnemery
@@ -289,6 +299,8 @@ build.json @home-assistant/supervisor
/tests/components/date/ @home-assistant/core
/homeassistant/components/datetime/ @home-assistant/core
/tests/components/datetime/ @home-assistant/core
/homeassistant/components/deako/ @sebirdman @balake @deakolights
/tests/components/deako/ @sebirdman @balake @deakolights
/homeassistant/components/debugpy/ @frenck
/tests/components/debugpy/ @frenck
/homeassistant/components/deconz/ @Kane610
@@ -344,10 +356,12 @@ 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/duke_energy/ @hunterjm
/tests/components/duke_energy/ @hunterjm
/homeassistant/components/duotecno/ @cereal2nd
/tests/components/duotecno/ @cereal2nd
/homeassistant/components/dwd_weather_warnings/ @runningman84 @stephan192 @andarotajo
@@ -373,6 +387,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
@@ -384,6 +400,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
@@ -425,6 +442,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
@@ -490,6 +508,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
@@ -505,6 +525,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
@@ -535,11 +556,14 @@ build.json @home-assistant/supervisor
/tests/components/google_assistant/ @home-assistant/cloud
/homeassistant/components/google_assistant_sdk/ @tronikos
/tests/components/google_assistant_sdk/ @tronikos
/homeassistant/components/google_cloud/ @lufton
/homeassistant/components/google_cloud/ @lufton @tronikos
/tests/components/google_cloud/ @lufton @tronikos
/homeassistant/components/google_generative_ai_conversation/ @tronikos
/tests/components/google_generative_ai_conversation/ @tronikos
/homeassistant/components/google_mail/ @tkdrob
/tests/components/google_mail/ @tkdrob
/homeassistant/components/google_photos/ @allenporter
/tests/components/google_photos/ @allenporter
/homeassistant/components/google_sheets/ @tkdrob
/tests/components/google_sheets/ @tkdrob
/homeassistant/components/google_tasks/ @allenporter
@@ -617,6 +641,8 @@ build.json @home-assistant/supervisor
/tests/components/homewizard/ @DCSBL
/homeassistant/components/honeywell/ @rdfurman @mkmer
/tests/components/honeywell/ @rdfurman @mkmer
/homeassistant/components/html5/ @alexyao2015
/tests/components/html5/ @alexyao2015
/homeassistant/components/http/ @home-assistant/core
/tests/components/http/ @home-assistant/core
/homeassistant/components/huawei_lte/ @scop @fphammerle
@@ -695,6 +721,8 @@ build.json @home-assistant/supervisor
/tests/components/ios/ @robbiet480
/homeassistant/components/iotawatt/ @gtdiehl @jyavenard
/tests/components/iotawatt/ @gtdiehl @jyavenard
/homeassistant/components/iotty/ @pburgio @shapournemati-iotty
/tests/components/iotty/ @pburgio @shapournemati-iotty
/homeassistant/components/iperf3/ @rohankapoorcom
/homeassistant/components/ipma/ @dgomes
/tests/components/ipma/ @dgomes
@@ -703,8 +731,12 @@ 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/iskra/ @iskramis
/tests/components/iskra/ @iskramis
/homeassistant/components/islamic_prayer_times/ @engrbm87 @cpfair
/tests/components/islamic_prayer_times/ @engrbm87 @cpfair
/homeassistant/components/israel_rail/ @shaiu
@@ -781,6 +813,8 @@ build.json @home-assistant/supervisor
/tests/components/leaone/ @bdraco
/homeassistant/components/led_ble/ @bdraco
/tests/components/led_ble/ @bdraco
/homeassistant/components/lektrico/ @lektrico
/tests/components/lektrico/ @lektrico
/homeassistant/components/lg_netcast/ @Drafteed @splinter98
/tests/components/lg_netcast/ @Drafteed @splinter98
/homeassistant/components/lidarr/ @tkdrob
@@ -791,6 +825,8 @@ build.json @home-assistant/supervisor
/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
@@ -810,8 +846,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
@@ -827,13 +861,14 @@ build.json @home-assistant/supervisor
/tests/components/lupusec/ @majuss @suaveolent
/homeassistant/components/lutron/ @cdheiser @wilburCForce
/tests/components/lutron/ @cdheiser @wilburCForce
/homeassistant/components/lutron_caseta/ @swails @bdraco @danaues @eclair4151
/tests/components/lutron_caseta/ @swails @bdraco @danaues @eclair4151
/homeassistant/components/lutron_caseta/ @swails @danaues @eclair4151
/tests/components/lutron_caseta/ @swails @danaues @eclair4151
/homeassistant/components/lyric/ @timmo001
/tests/components/lyric/ @timmo001
/homeassistant/components/madvr/ @iloveicedgreentea
/tests/components/madvr/ @iloveicedgreentea
/homeassistant/components/mastodon/ @fabaff
/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
@@ -890,6 +925,8 @@ build.json @home-assistant/supervisor
/tests/components/modern_forms/ @wonderslug
/homeassistant/components/moehlenhoff_alpha2/ @j-a-n
/tests/components/moehlenhoff_alpha2/ @j-a-n
/homeassistant/components/monarch_money/ @jeeftor
/tests/components/monarch_money/ @jeeftor
/homeassistant/components/monoprice/ @etsinko @OnFreund
/tests/components/monoprice/ @etsinko @OnFreund
/homeassistant/components/monzo/ @jakemartin-icl
@@ -953,6 +990,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
@@ -985,6 +1024,8 @@ build.json @home-assistant/supervisor
/tests/components/nut/ @bdraco @ollo69 @pestevez
/homeassistant/components/nws/ @MatthewFlamm @kamiyo
/tests/components/nws/ @MatthewFlamm @kamiyo
/homeassistant/components/nyt_games/ @joostlek
/tests/components/nyt_games/ @joostlek
/homeassistant/components/nzbget/ @chriscla
/tests/components/nzbget/ @chriscla
/homeassistant/components/obihai/ @dshokouhi @ejpenney
@@ -1039,8 +1080,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
@@ -1063,8 +1104,6 @@ build.json @home-assistant/supervisor
/tests/components/pi_hole/ @shenxn
/homeassistant/components/picnic/ @corneyl
/tests/components/picnic/ @corneyl
/homeassistant/components/pilight/ @trekky12
/tests/components/pilight/ @trekky12
/homeassistant/components/ping/ @jpbede
/tests/components/ping/ @jpbede
/homeassistant/components/plaato/ @JohNan
@@ -1094,8 +1133,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/proximity/ @mib1185
/tests/components/proximity/ @mib1185
/homeassistant/components/proxmoxve/ @jhollowe @Corbeno
/homeassistant/components/prusalink/ @balloob @Skaronator
/tests/components/prusalink/ @balloob @Skaronator
/homeassistant/components/prusalink/ @balloob
/tests/components/prusalink/ @balloob
/homeassistant/components/ps4/ @ktnrg45
/tests/components/ps4/ @ktnrg45
/homeassistant/components/pure_energie/ @klaasnicolaas
@@ -1256,6 +1295,8 @@ build.json @home-assistant/supervisor
/tests/components/sensorpro/ @bdraco
/homeassistant/components/sensorpush/ @bdraco
/tests/components/sensorpush/ @bdraco
/homeassistant/components/sensoterra/ @markruys
/tests/components/sensoterra/ @markruys
/homeassistant/components/sentry/ @dcramer @frenck
/tests/components/sentry/ @dcramer @frenck
/homeassistant/components/senz/ @milanmeu
@@ -1310,6 +1351,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
@@ -1391,10 +1434,10 @@ build.json @home-assistant/supervisor
/tests/components/switchbee/ @jafar-atili
/homeassistant/components/switchbot/ @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/tests/components/switchbot/ @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/homeassistant/components/switchbot_cloud/ @SeraphicRav @laurence-presland
/tests/components/switchbot_cloud/ @SeraphicRav @laurence-presland
/homeassistant/components/switcher_kis/ @thecode
/tests/components/switcher_kis/ @thecode
/homeassistant/components/switchbot_cloud/ @SeraphicRav @laurence-presland @Gigatrappeur
/tests/components/switchbot_cloud/ @SeraphicRav @laurence-presland @Gigatrappeur
/homeassistant/components/switcher_kis/ @thecode @YogevBokobza
/tests/components/switcher_kis/ @thecode @YogevBokobza
/homeassistant/components/switchmate/ @danielhiversen @qiz-li
/homeassistant/components/syncthing/ @zhulik
/tests/components/syncthing/ @zhulik
@@ -1432,6 +1475,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
@@ -1470,6 +1515,8 @@ build.json @home-assistant/supervisor
/tests/components/tomorrowio/ @raman325 @lymanepp
/homeassistant/components/totalconnect/ @austinmroczek
/tests/components/totalconnect/ @austinmroczek
/homeassistant/components/touchline_sl/ @jnsgruk
/tests/components/touchline_sl/ @jnsgruk
/homeassistant/components/tplink/ @rytilahti @bdraco @sdb9696
/tests/components/tplink/ @rytilahti @bdraco @sdb9696
/homeassistant/components/tplink_omada/ @MarkGodwin
@@ -1494,6 +1541,8 @@ build.json @home-assistant/supervisor
/tests/components/transmission/ @engrbm87 @JPHutchins
/homeassistant/components/trend/ @jpbede
/tests/components/trend/ @jpbede
/homeassistant/components/triggercmd/ @rvmey
/tests/components/triggercmd/ @rvmey
/homeassistant/components/tts/ @home-assistant/core
/tests/components/tts/ @home-assistant/core
/homeassistant/components/tuya/ @Tuya @zlinoliver @frenck
@@ -1598,6 +1647,8 @@ build.json @home-assistant/supervisor
/tests/components/webostv/ @thecode
/homeassistant/components/websocket_api/ @home-assistant/core
/tests/components/websocket_api/ @home-assistant/core
/homeassistant/components/weheat/ @jesperraemaekers
/tests/components/weheat/ @jesperraemaekers
/homeassistant/components/wemo/ @esev
/tests/components/wemo/ @esev
/homeassistant/components/whirlpool/ @abmantis @mkmer
@@ -1615,6 +1666,8 @@ build.json @home-assistant/supervisor
/tests/components/wiz/ @sbidy
/homeassistant/components/wled/ @frenck
/tests/components/wled/ @frenck
/homeassistant/components/wmspro/ @mback2k
/tests/components/wmspro/ @mback2k
/homeassistant/components/wolflink/ @adamkrol93 @mtielen
/tests/components/wolflink/ @adamkrol93 @mtielen
/homeassistant/components/workday/ @fabaff @gjohansson-ST
@@ -1635,6 +1688,8 @@ build.json @home-assistant/supervisor
/tests/components/xiaomi_miio/ @rytilahti @syssi @starkillerOG
/homeassistant/components/xiaomi_tv/ @simse
/homeassistant/components/xmpp/ @fabaff @flowolf
/homeassistant/components/yale/ @bdraco
/tests/components/yale/ @bdraco
/homeassistant/components/yale_smart_alarm/ @gjohansson-ST
/tests/components/yale_smart_alarm/ @gjohansson-ST
/homeassistant/components/yalexs_ble/ @bdraco

View File

@@ -12,7 +12,7 @@ ENV \
ARG QEMU_CPU
# Install uv
RUN pip3 install uv==0.2.13
RUN pip3 install uv==0.4.15
WORKDIR /usr/src
@@ -29,15 +29,9 @@ RUN \
if ls homeassistant/home_assistant_*.whl 1> /dev/null 2>&1; then \
uv pip install homeassistant/home_assistant_*.whl; \
fi \
&& if [ "${BUILD_ARCH}" = "i386" ]; then \
linux32 uv pip install \
--no-build \
-r homeassistant/requirements_all.txt; \
else \
uv pip install \
--no-build \
-r homeassistant/requirements_all.txt; \
fi
&& uv pip install \
--no-build \
-r homeassistant/requirements_all.txt
## Setup Home Assistant Core
COPY . homeassistant/

View File

@@ -42,7 +42,8 @@ WORKDIR /usr/src
# Setup hass-release
RUN git clone --depth 1 https://github.com/home-assistant/hass-release \
&& uv pip install --system -e hass-release/
&& uv pip install --system -e hass-release/ \
&& chown -R vscode /usr/src/hass-release/data
USER vscode
ENV VIRTUAL_ENV="/home/vscode/.local/ha-venv"

View File

@@ -127,7 +127,11 @@ class AuthManagerFlowManager(
flow: data_entry_flow.FlowHandler[AuthFlowResult, tuple[str, str]],
result: AuthFlowResult,
) -> AuthFlowResult:
"""Return a user as result of login flow."""
"""Return a user as result of login flow.
This method is called when a flow step returns FlowResultType.ABORT or
FlowResultType.CREATE_ENTRY.
"""
flow = cast(LoginFlow, flow)
if result["type"] != data_entry_flow.FlowResultType.CREATE_ENTRY:

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

@@ -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

@@ -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),
)
@@ -584,10 +586,10 @@ async 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,
@@ -614,10 +616,9 @@ async def async_enable_logging(
_create_log_file, err_log_path, log_rotate_days
)
err_handler.setLevel(logging.INFO if verbose else logging.WARNING)
err_handler.setFormatter(logging.Formatter(fmt, datefmt=FORMAT_DATETIME))
logger = logging.getLogger("")
logger = logging.getLogger()
logger.addHandler(err_handler)
logger.setLevel(logging.INFO if verbose else logging.WARNING)
@@ -906,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

@@ -0,0 +1,5 @@
{
"domain": "aqara",
"name": "Aqara",
"iot_standards": ["matter", "zigbee"]
}

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

@@ -9,6 +9,7 @@
"google_generative_ai_conversation",
"google_mail",
"google_maps",
"google_photos",
"google_pubsub",
"google_sheets",
"google_tasks",

View File

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

View File

@@ -0,0 +1,5 @@
{
"domain": "roth",
"name": "Roth",
"integrations": ["touchline", "touchline_sl"]
}

View File

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

View File

@@ -1,5 +1,11 @@
{
"domain": "yale",
"name": "Yale",
"integrations": ["august", "yale_smart_alarm", "yalexs_ble", "yale_home"]
"integrations": [
"august",
"yale_smart_alarm",
"yalexs_ble",
"yale_home",
"yale"
]
}

View File

@@ -6,52 +6,3 @@ Component design guidelines:
format "<DOMAIN>.<OBJECT_ID>".
- Each component should publish services only under its own domain.
"""
from __future__ import annotations
import logging
from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.helpers.frame import report
from homeassistant.helpers.group import expand_entity_ids
_LOGGER = logging.getLogger(__name__)
def is_on(hass: HomeAssistant, entity_id: str | None = None) -> bool:
"""Load up the module to call the is_on method.
If there is no entity id given we will check all.
"""
report(
(
"uses homeassistant.components.is_on."
" This is deprecated and will stop working in Home Assistant 2024.9, it"
" should be updated to use the function of the platform directly."
),
error_if_core=True,
)
if entity_id:
entity_ids = expand_entity_ids(hass, [entity_id])
else:
entity_ids = hass.states.entity_ids()
for ent_id in entity_ids:
domain = split_entity_id(ent_id)[0]
try:
component = getattr(hass.components, domain)
except ImportError:
_LOGGER.error("Failed to call %s.is_on: component not found", domain)
continue
if not hasattr(component, "is_on"):
_LOGGER.warning("Integration %s has no is_on method", domain)
continue
if component.is_on(ent_id):
return True
return False

View File

@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import cast
from jaraco.abode.devices.sensor import BinarySensor
from jaraco.abode.devices.binary_sensor import BinarySensor
from homeassistant.components.binary_sensor import (
BinarySensorDeviceClass,

View File

@@ -7,8 +7,14 @@
}
},
"services": {
"capture_image": "mdi:camera",
"change_setting": "mdi:cog",
"trigger_automation": "mdi:play"
"capture_image": {
"service": "mdi:camera"
},
"change_setting": {
"service": "mdi:cog"
},
"trigger_automation": {
"service": "mdi:play"
}
}
}

View File

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

View File

@@ -18,6 +18,7 @@ from homeassistant.const import (
UV_INDEX,
UnitOfIrradiance,
UnitOfLength,
UnitOfPressure,
UnitOfSpeed,
UnitOfTemperature,
UnitOfTime,
@@ -279,6 +280,15 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="realfeel_temperature_shade",
),
AccuWeatherSensorDescription(
key="RelativeHumidity",
device_class=SensorDeviceClass.HUMIDITY,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key="humidity",
),
AccuWeatherSensorDescription(
key="Precipitation",
device_class=SensorDeviceClass.PRECIPITATION_INTENSITY,
@@ -288,6 +298,16 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
attr_fn=lambda data: {"type": data["PrecipitationType"]},
translation_key="precipitation",
),
AccuWeatherSensorDescription(
key="Pressure",
device_class=SensorDeviceClass.PRESSURE,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
suggested_display_precision=0,
native_unit_of_measurement=UnitOfPressure.HPA,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="pressure",
),
AccuWeatherSensorDescription(
key="PressureTendency",
device_class=SensorDeviceClass.ENUM,
@@ -295,9 +315,19 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
value_fn=lambda data: cast(str, data["LocalizedText"]).lower(),
translation_key="pressure_tendency",
),
AccuWeatherSensorDescription(
key="Temperature",
device_class=SensorDeviceClass.TEMPERATURE,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
translation_key="temperature",
),
AccuWeatherSensorDescription(
key="UVIndex",
state_class=SensorStateClass.MEASUREMENT,
entity_registry_enabled_default=False,
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data),
attr_fn=lambda data: {ATTR_LEVEL: data["UVIndexText"]},
@@ -324,6 +354,7 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="Wind",
device_class=SensorDeviceClass.WIND_SPEED,
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][API_METRIC][ATTR_VALUE]),

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

@@ -3,6 +3,7 @@
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
import homeassistant.helpers.entity_registry as er
from .hub import PulseHub
@@ -17,6 +18,9 @@ async def async_setup_entry(
hass: HomeAssistant, config_entry: AcmedaConfigEntry
) -> bool:
"""Set up Rollease Acmeda Automate hub from a config entry."""
await _migrate_unique_ids(hass, config_entry)
hub = PulseHub(hass, config_entry)
if not await hub.async_setup():
@@ -28,6 +32,19 @@ async def async_setup_entry(
return True
async def _migrate_unique_ids(hass: HomeAssistant, entry: AcmedaConfigEntry) -> None:
"""Migrate pre-config flow unique ids."""
entity_registry = er.async_get(hass)
registry_entries = er.async_entries_for_config_entry(
entity_registry, entry.entry_id
)
for reg_entry in registry_entries:
if isinstance(reg_entry.unique_id, int): # type: ignore[unreachable]
entity_registry.async_update_entity( # type: ignore[unreachable]
reg_entry.entity_id, new_unique_id=str(reg_entry.unique_id)
)
async def async_unload_entry(
hass: HomeAssistant, config_entry: AcmedaConfigEntry
) -> bool:

View File

@@ -14,8 +14,8 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AcmedaConfigEntry
from .base import AcmedaBase
from .const import ACMEDA_HUB_UPDATE
from .entity import AcmedaEntity
from .helpers import async_add_acmeda_entities
@@ -44,7 +44,7 @@ async def async_setup_entry(
)
class AcmedaCover(AcmedaBase, CoverEntity):
class AcmedaCover(AcmedaEntity, CoverEntity):
"""Representation of an Acmeda cover device."""
_attr_name = None

View File

@@ -11,7 +11,7 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
from .const import ACMEDA_ENTITY_REMOVE, DOMAIN, LOGGER
class AcmedaBase(entity.Entity):
class AcmedaEntity(entity.Entity):
"""Base representation of an Acmeda roller."""
_attr_should_poll = False
@@ -67,7 +67,7 @@ class AcmedaBase(entity.Entity):
@property
def unique_id(self) -> str:
"""Return the unique ID of this roller."""
return self.roller.id # type: ignore[no-any-return]
return str(self.roller.id)
@property
def device_id(self) -> str:

View File

@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/acmeda",
"iot_class": "local_push",
"loggers": ["aiopulse"],
"requirements": ["aiopulse==0.4.4"]
"requirements": ["aiopulse==0.4.6"]
}

View File

@@ -9,8 +9,8 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AcmedaConfigEntry
from .base import AcmedaBase
from .const import ACMEDA_HUB_UPDATE
from .entity import AcmedaEntity
from .helpers import async_add_acmeda_entities
@@ -39,7 +39,7 @@ async def async_setup_entry(
)
class AcmedaBattery(AcmedaBase, SensorEntity):
class AcmedaBattery(AcmedaEntity, SensorEntity):
"""Representation of an Acmeda cover sensor."""
_attr_device_class = SensorDeviceClass.BATTERY

View File

@@ -9,7 +9,7 @@ from typing import Final
import voluptuous as vol
from homeassistant.components.device_tracker import (
DOMAIN,
DOMAIN as DEVICE_TRACKER_DOMAIN,
PLATFORM_SCHEMA as DEVICE_TRACKER_PLATFORM_SCHEMA,
DeviceScanner,
)
@@ -36,7 +36,7 @@ def get_scanner(
hass: HomeAssistant, config: ConfigType
) -> ActiontecDeviceScanner | None:
"""Validate the configuration and return an Actiontec scanner."""
scanner = ActiontecDeviceScanner(config[DOMAIN])
scanner = ActiontecDeviceScanner(config[DEVICE_TRACKER_DOMAIN])
return scanner if scanner.success_init else None
@@ -51,7 +51,6 @@ class ActiontecDeviceScanner(DeviceScanner):
self.last_results: list[Device] = []
data = self.get_actiontec_data()
self.success_init = data is not None
_LOGGER.info("Scanner initialized")
def scan_devices(self) -> list[str]:
"""Scan for new devices and return a list with found device IDs."""
@@ -70,7 +69,7 @@ class ActiontecDeviceScanner(DeviceScanner):
Return boolean if scanning successful.
"""
_LOGGER.info("Scanning")
_LOGGER.debug("Scanning")
if not self.success_init:
return False
@@ -79,7 +78,7 @@ class ActiontecDeviceScanner(DeviceScanner):
self.last_results = [
device for device in actiontec_data if device.timevalid > -60
]
_LOGGER.info("Scan successful")
_LOGGER.debug("Scan successful")
return True
def get_actiontec_data(self) -> list[Device] | None:

View File

@@ -130,7 +130,7 @@ class AdaxConfigFlow(ConfigFlow, domain=DOMAIN):
async_get_clientsession(self.hass), account_id, password
)
if token is None:
_LOGGER.info("Adax: Failed to login to retrieve token")
_LOGGER.debug("Adax: Failed to login to retrieve token")
errors["base"] = "cannot_connect"
return self.async_show_form(
step_id="cloud",

View File

@@ -66,10 +66,20 @@
}
},
"services": {
"add_url": "mdi:link-plus",
"remove_url": "mdi:link-off",
"enable_url": "mdi:link-variant",
"disable_url": "mdi:link-variant-off",
"refresh": "mdi:refresh"
"add_url": {
"service": "mdi:link-plus"
},
"remove_url": {
"service": "mdi:link-off"
},
"enable_url": {
"service": "mdi:link-variant"
},
"disable_url": {
"service": "mdi:link-variant-off"
},
"refresh": {
"service": "mdi:refresh"
}
}
}

View File

@@ -1,12 +1,6 @@
"""Support for Automation Device Specification (ADS)."""
import asyncio
from asyncio import timeout
from collections import namedtuple
import ctypes
import logging
import struct
import threading
import pyads
import voluptuous as vol
@@ -19,42 +13,38 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant, ServiceCall
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.typing import ConfigType
from .const import CONF_ADS_VAR, DATA_ADS, DOMAIN, AdsType
from .hub import AdsHub
_LOGGER = logging.getLogger(__name__)
DATA_ADS = "data_ads"
# Supported Types
ADSTYPE_BOOL = "bool"
ADSTYPE_BYTE = "byte"
ADSTYPE_DINT = "dint"
ADSTYPE_INT = "int"
ADSTYPE_UDINT = "udint"
ADSTYPE_UINT = "uint"
ADS_TYPEMAP = {
ADSTYPE_BOOL: pyads.PLCTYPE_BOOL,
ADSTYPE_BYTE: pyads.PLCTYPE_BYTE,
ADSTYPE_DINT: pyads.PLCTYPE_DINT,
ADSTYPE_INT: pyads.PLCTYPE_INT,
ADSTYPE_UDINT: pyads.PLCTYPE_UDINT,
ADSTYPE_UINT: pyads.PLCTYPE_UINT,
AdsType.BOOL: pyads.PLCTYPE_BOOL,
AdsType.BYTE: pyads.PLCTYPE_BYTE,
AdsType.INT: pyads.PLCTYPE_INT,
AdsType.UINT: pyads.PLCTYPE_UINT,
AdsType.SINT: pyads.PLCTYPE_SINT,
AdsType.USINT: pyads.PLCTYPE_USINT,
AdsType.DINT: pyads.PLCTYPE_DINT,
AdsType.UDINT: pyads.PLCTYPE_UDINT,
AdsType.WORD: pyads.PLCTYPE_WORD,
AdsType.DWORD: pyads.PLCTYPE_DWORD,
AdsType.REAL: pyads.PLCTYPE_REAL,
AdsType.LREAL: pyads.PLCTYPE_LREAL,
AdsType.STRING: pyads.PLCTYPE_STRING,
AdsType.TIME: pyads.PLCTYPE_TIME,
AdsType.DATE: pyads.PLCTYPE_DATE,
AdsType.DATE_AND_TIME: pyads.PLCTYPE_DT,
AdsType.TOD: pyads.PLCTYPE_TOD,
}
CONF_ADS_FACTOR = "factor"
CONF_ADS_TYPE = "adstype"
CONF_ADS_VALUE = "value"
CONF_ADS_VAR = "adsvar"
CONF_ADS_VAR_BRIGHTNESS = "adsvar_brightness"
CONF_ADS_VAR_POSITION = "adsvar_position"
STATE_KEY_STATE = "state"
STATE_KEY_BRIGHTNESS = "brightness"
STATE_KEY_POSITION = "position"
DOMAIN = "ads"
SERVICE_WRITE_DATA_BY_NAME = "write_data_by_name"
@@ -73,16 +63,7 @@ CONFIG_SCHEMA = vol.Schema(
SCHEMA_SERVICE_WRITE_DATA_BY_NAME = vol.Schema(
{
vol.Required(CONF_ADS_TYPE): vol.In(
[
ADSTYPE_INT,
ADSTYPE_UINT,
ADSTYPE_BYTE,
ADSTYPE_BOOL,
ADSTYPE_DINT,
ADSTYPE_UDINT,
]
),
vol.Required(CONF_ADS_TYPE): vol.Coerce(AdsType),
vol.Required(CONF_ADS_VALUE): vol.Coerce(int),
vol.Required(CONF_ADS_VAR): cv.string,
}
@@ -116,9 +97,9 @@ def setup(hass: HomeAssistant, config: ConfigType) -> bool:
def handle_write_data_by_name(call: ServiceCall) -> None:
"""Write a value to the connected ADS device."""
ads_var = call.data[CONF_ADS_VAR]
ads_type = call.data[CONF_ADS_TYPE]
value = call.data[CONF_ADS_VALUE]
ads_var: str = call.data[CONF_ADS_VAR]
ads_type: AdsType = call.data[CONF_ADS_TYPE]
value: int = call.data[CONF_ADS_VALUE]
try:
ads.write_by_name(ads_var, value, ADS_TYPEMAP[ads_type])
@@ -133,181 +114,3 @@ def setup(hass: HomeAssistant, config: ConfigType) -> bool:
)
return True
# Tuple to hold data needed for notification
NotificationItem = namedtuple(
"NotificationItem", "hnotify huser name plc_datatype callback"
)
class AdsHub:
"""Representation of an ADS connection."""
def __init__(self, ads_client):
"""Initialize the ADS hub."""
self._client = ads_client
self._client.open()
# All ADS devices are registered here
self._devices = []
self._notification_items = {}
self._lock = threading.Lock()
def shutdown(self, *args, **kwargs):
"""Shutdown ADS connection."""
_LOGGER.debug("Shutting down ADS")
for notification_item in self._notification_items.values():
_LOGGER.debug(
"Deleting device notification %d, %d",
notification_item.hnotify,
notification_item.huser,
)
try:
self._client.del_device_notification(
notification_item.hnotify, notification_item.huser
)
except pyads.ADSError as err:
_LOGGER.error(err)
try:
self._client.close()
except pyads.ADSError as err:
_LOGGER.error(err)
def register_device(self, device):
"""Register a new device."""
self._devices.append(device)
def write_by_name(self, name, value, plc_datatype):
"""Write a value to the device."""
with self._lock:
try:
return self._client.write_by_name(name, value, plc_datatype)
except pyads.ADSError as err:
_LOGGER.error("Error writing %s: %s", name, err)
def read_by_name(self, name, plc_datatype):
"""Read a value from the device."""
with self._lock:
try:
return self._client.read_by_name(name, plc_datatype)
except pyads.ADSError as err:
_LOGGER.error("Error reading %s: %s", name, err)
def add_device_notification(self, name, plc_datatype, callback):
"""Add a notification to the ADS devices."""
attr = pyads.NotificationAttrib(ctypes.sizeof(plc_datatype))
with self._lock:
try:
hnotify, huser = self._client.add_device_notification(
name, attr, self._device_notification_callback
)
except pyads.ADSError as err:
_LOGGER.error("Error subscribing to %s: %s", name, err)
else:
hnotify = int(hnotify)
self._notification_items[hnotify] = NotificationItem(
hnotify, huser, name, plc_datatype, callback
)
_LOGGER.debug(
"Added device notification %d for variable %s", hnotify, name
)
def _device_notification_callback(self, notification, name):
"""Handle device notifications."""
contents = notification.contents
hnotify = int(contents.hNotification)
_LOGGER.debug("Received notification %d", hnotify)
# get dynamically sized data array
data_size = contents.cbSampleSize
data = (ctypes.c_ubyte * data_size).from_address(
ctypes.addressof(contents)
+ pyads.structs.SAdsNotificationHeader.data.offset
)
try:
with self._lock:
notification_item = self._notification_items[hnotify]
except KeyError:
_LOGGER.error("Unknown device notification handle: %d", hnotify)
return
# Parse data to desired datatype
if notification_item.plc_datatype == pyads.PLCTYPE_BOOL:
value = bool(struct.unpack("<?", bytearray(data))[0])
elif notification_item.plc_datatype == pyads.PLCTYPE_INT:
value = struct.unpack("<h", bytearray(data))[0]
elif notification_item.plc_datatype == pyads.PLCTYPE_BYTE:
value = struct.unpack("<B", bytearray(data))[0]
elif notification_item.plc_datatype == pyads.PLCTYPE_UINT:
value = struct.unpack("<H", bytearray(data))[0]
elif notification_item.plc_datatype == pyads.PLCTYPE_DINT:
value = struct.unpack("<i", bytearray(data))[0]
elif notification_item.plc_datatype == pyads.PLCTYPE_UDINT:
value = struct.unpack("<I", bytearray(data))[0]
else:
value = bytearray(data)
_LOGGER.warning("No callback available for this datatype")
notification_item.callback(notification_item.name, value)
class AdsEntity(Entity):
"""Representation of ADS entity."""
_attr_should_poll = False
def __init__(self, ads_hub, name, ads_var):
"""Initialize ADS binary sensor."""
self._state_dict = {}
self._state_dict[STATE_KEY_STATE] = None
self._ads_hub = ads_hub
self._ads_var = ads_var
self._event = None
self._attr_unique_id = ads_var
self._attr_name = name
async def async_initialize_device(
self, ads_var, plctype, state_key=STATE_KEY_STATE, factor=None
):
"""Register device notification."""
def update(name, value):
"""Handle device notifications."""
_LOGGER.debug("Variable %s changed its value to %d", name, value)
if factor is None:
self._state_dict[state_key] = value
else:
self._state_dict[state_key] = value / factor
asyncio.run_coroutine_threadsafe(async_event_set(), self.hass.loop)
self.schedule_update_ha_state()
async def async_event_set():
"""Set event in async context."""
self._event.set()
self._event = asyncio.Event()
await self.hass.async_add_executor_job(
self._ads_hub.add_device_notification, ads_var, plctype, update
)
try:
async with timeout(10):
await self._event.wait()
except TimeoutError:
_LOGGER.debug("Variable %s: Timeout during first update", ads_var)
@property
def available(self) -> bool:
"""Return False if state has not been updated yet."""
return self._state_dict[STATE_KEY_STATE] is not None

View File

@@ -17,7 +17,9 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsEntity
from .const import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE
from .entity import AdsEntity
from .hub import AdsHub
DEFAULT_NAME = "ADS binary sensor"
PLATFORM_SCHEMA = BINARY_SENSOR_PLATFORM_SCHEMA.extend(
@@ -36,11 +38,11 @@ def setup_platform(
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up the Binary Sensor platform for ADS."""
ads_hub = hass.data.get(DATA_ADS)
ads_hub = hass.data[DATA_ADS]
ads_var = config[CONF_ADS_VAR]
name = config[CONF_NAME]
device_class = config.get(CONF_DEVICE_CLASS)
ads_var: str = config[CONF_ADS_VAR]
name: str = config[CONF_NAME]
device_class: BinarySensorDeviceClass | None = config.get(CONF_DEVICE_CLASS)
ads_sensor = AdsBinarySensor(ads_hub, name, ads_var, device_class)
add_entities([ads_sensor])
@@ -49,7 +51,13 @@ def setup_platform(
class AdsBinarySensor(AdsEntity, BinarySensorEntity):
"""Representation of ADS binary sensors."""
def __init__(self, ads_hub, name, ads_var, device_class):
def __init__(
self,
ads_hub: AdsHub,
name: str,
ads_var: str,
device_class: BinarySensorDeviceClass | None,
) -> None:
"""Initialize ADS binary sensor."""
super().__init__(ads_hub, name, ads_var)
self._attr_device_class = device_class or BinarySensorDeviceClass.MOVING

View File

@@ -0,0 +1,41 @@
"""Support for Automation Device Specification (ADS)."""
from __future__ import annotations
from enum import StrEnum
from typing import TYPE_CHECKING
from homeassistant.util.hass_dict import HassKey
if TYPE_CHECKING:
from .hub import AdsHub
DOMAIN = "ads"
DATA_ADS: HassKey[AdsHub] = HassKey(DOMAIN)
CONF_ADS_VAR = "adsvar"
STATE_KEY_STATE = "state"
class AdsType(StrEnum):
"""Supported Types."""
BOOL = "bool"
BYTE = "byte"
INT = "int"
UINT = "uint"
SINT = "sint"
USINT = "usint"
DINT = "dint"
UDINT = "udint"
WORD = "word"
DWORD = "dword"
LREAL = "lreal"
REAL = "real"
STRING = "string"
TIME = "time"
DATE = "date"
DATE_AND_TIME = "dt"
TOD = "tod"

View File

@@ -11,6 +11,7 @@ from homeassistant.components.cover import (
ATTR_POSITION,
DEVICE_CLASSES_SCHEMA,
PLATFORM_SCHEMA as COVER_PLATFORM_SCHEMA,
CoverDeviceClass,
CoverEntity,
CoverEntityFeature,
)
@@ -20,14 +21,9 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import (
CONF_ADS_VAR,
CONF_ADS_VAR_POSITION,
DATA_ADS,
STATE_KEY_POSITION,
STATE_KEY_STATE,
AdsEntity,
)
from .const import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE
from .entity import AdsEntity
from .hub import AdsHub
DEFAULT_NAME = "ADS Cover"
@@ -35,6 +31,9 @@ CONF_ADS_VAR_SET_POS = "adsvar_set_position"
CONF_ADS_VAR_OPEN = "adsvar_open"
CONF_ADS_VAR_CLOSE = "adsvar_close"
CONF_ADS_VAR_STOP = "adsvar_stop"
CONF_ADS_VAR_POSITION = "adsvar_position"
STATE_KEY_POSITION = "position"
PLATFORM_SCHEMA = COVER_PLATFORM_SCHEMA.extend(
{
@@ -59,14 +58,14 @@ def setup_platform(
"""Set up the cover platform for ADS."""
ads_hub = hass.data[DATA_ADS]
ads_var_is_closed = config.get(CONF_ADS_VAR)
ads_var_position = config.get(CONF_ADS_VAR_POSITION)
ads_var_pos_set = config.get(CONF_ADS_VAR_SET_POS)
ads_var_open = config.get(CONF_ADS_VAR_OPEN)
ads_var_close = config.get(CONF_ADS_VAR_CLOSE)
ads_var_stop = config.get(CONF_ADS_VAR_STOP)
name = config[CONF_NAME]
device_class = config.get(CONF_DEVICE_CLASS)
ads_var_is_closed: str = config[CONF_ADS_VAR]
ads_var_position: str | None = config.get(CONF_ADS_VAR_POSITION)
ads_var_pos_set: str | None = config.get(CONF_ADS_VAR_SET_POS)
ads_var_open: str | None = config.get(CONF_ADS_VAR_OPEN)
ads_var_close: str | None = config.get(CONF_ADS_VAR_CLOSE)
ads_var_stop: str | None = config.get(CONF_ADS_VAR_STOP)
name: str = config[CONF_NAME]
device_class: CoverDeviceClass | None = config.get(CONF_DEVICE_CLASS)
add_entities(
[
@@ -90,16 +89,16 @@ class AdsCover(AdsEntity, CoverEntity):
def __init__(
self,
ads_hub,
ads_var_is_closed,
ads_var_position,
ads_var_pos_set,
ads_var_open,
ads_var_close,
ads_var_stop,
name,
device_class,
):
ads_hub: AdsHub,
ads_var_is_closed: str,
ads_var_position: str | None,
ads_var_pos_set: str | None,
ads_var_open: str | None,
ads_var_close: str | None,
ads_var_stop: str | None,
name: str,
device_class: CoverDeviceClass | None,
) -> None:
"""Initialize AdsCover entity."""
super().__init__(ads_hub, name, ads_var_is_closed)
if self._attr_unique_id is None:

View File

@@ -0,0 +1,70 @@
"""Support for Automation Device Specification (ADS)."""
import asyncio
from asyncio import timeout
import logging
from typing import Any
from homeassistant.helpers.entity import Entity
from .const import STATE_KEY_STATE
from .hub import AdsHub
_LOGGER = logging.getLogger(__name__)
class AdsEntity(Entity):
"""Representation of ADS entity."""
_attr_should_poll = False
def __init__(self, ads_hub: AdsHub, name: str, ads_var: str) -> None:
"""Initialize ADS binary sensor."""
self._state_dict: dict[str, Any] = {}
self._state_dict[STATE_KEY_STATE] = None
self._ads_hub = ads_hub
self._ads_var = ads_var
self._event: asyncio.Event | None = None
self._attr_unique_id = ads_var
self._attr_name = name
async def async_initialize_device(
self,
ads_var: str,
plctype: type,
state_key: str = STATE_KEY_STATE,
factor: int | None = None,
) -> None:
"""Register device notification."""
def update(name, value):
"""Handle device notifications."""
_LOGGER.debug("Variable %s changed its value to %d", name, value)
if factor is None:
self._state_dict[state_key] = value
else:
self._state_dict[state_key] = value / factor
asyncio.run_coroutine_threadsafe(async_event_set(), self.hass.loop)
self.schedule_update_ha_state()
async def async_event_set():
"""Set event in async context."""
self._event.set()
self._event = asyncio.Event()
await self.hass.async_add_executor_job(
self._ads_hub.add_device_notification, ads_var, plctype, update
)
try:
async with timeout(10):
await self._event.wait()
except TimeoutError:
_LOGGER.debug("Variable %s: Timeout during first update", ads_var)
@property
def available(self) -> bool:
"""Return False if state has not been updated yet."""
return self._state_dict[STATE_KEY_STATE] is not None

View File

@@ -0,0 +1,151 @@
"""Support for Automation Device Specification (ADS)."""
from collections import namedtuple
import ctypes
import logging
import struct
import threading
import pyads
_LOGGER = logging.getLogger(__name__)
# Tuple to hold data needed for notification
NotificationItem = namedtuple( # noqa: PYI024
"NotificationItem", "hnotify huser name plc_datatype callback"
)
class AdsHub:
"""Representation of an ADS connection."""
def __init__(self, ads_client):
"""Initialize the ADS hub."""
self._client = ads_client
self._client.open()
# All ADS devices are registered here
self._devices = []
self._notification_items = {}
self._lock = threading.Lock()
def shutdown(self, *args, **kwargs):
"""Shutdown ADS connection."""
_LOGGER.debug("Shutting down ADS")
for notification_item in self._notification_items.values():
_LOGGER.debug(
"Deleting device notification %d, %d",
notification_item.hnotify,
notification_item.huser,
)
try:
self._client.del_device_notification(
notification_item.hnotify, notification_item.huser
)
except pyads.ADSError as err:
_LOGGER.error(err)
try:
self._client.close()
except pyads.ADSError as err:
_LOGGER.error(err)
def register_device(self, device):
"""Register a new device."""
self._devices.append(device)
def write_by_name(self, name, value, plc_datatype):
"""Write a value to the device."""
with self._lock:
try:
return self._client.write_by_name(name, value, plc_datatype)
except pyads.ADSError as err:
_LOGGER.error("Error writing %s: %s", name, err)
def read_by_name(self, name, plc_datatype):
"""Read a value from the device."""
with self._lock:
try:
return self._client.read_by_name(name, plc_datatype)
except pyads.ADSError as err:
_LOGGER.error("Error reading %s: %s", name, err)
def add_device_notification(self, name, plc_datatype, callback):
"""Add a notification to the ADS devices."""
attr = pyads.NotificationAttrib(ctypes.sizeof(plc_datatype))
with self._lock:
try:
hnotify, huser = self._client.add_device_notification(
name, attr, self._device_notification_callback
)
except pyads.ADSError as err:
_LOGGER.error("Error subscribing to %s: %s", name, err)
else:
hnotify = int(hnotify)
self._notification_items[hnotify] = NotificationItem(
hnotify, huser, name, plc_datatype, callback
)
_LOGGER.debug(
"Added device notification %d for variable %s", hnotify, name
)
def _device_notification_callback(self, notification, name):
"""Handle device notifications."""
contents = notification.contents
hnotify = int(contents.hNotification)
_LOGGER.debug("Received notification %d", hnotify)
# Get dynamically sized data array
data_size = contents.cbSampleSize
data_address = (
ctypes.addressof(contents)
+ pyads.structs.SAdsNotificationHeader.data.offset
)
data = (ctypes.c_ubyte * data_size).from_address(data_address)
# Acquire notification item
with self._lock:
notification_item = self._notification_items.get(hnotify)
if not notification_item:
_LOGGER.error("Unknown device notification handle: %d", hnotify)
return
# Data parsing based on PLC data type
plc_datatype = notification_item.plc_datatype
unpack_formats = {
pyads.PLCTYPE_BYTE: "<b",
pyads.PLCTYPE_INT: "<h",
pyads.PLCTYPE_UINT: "<H",
pyads.PLCTYPE_SINT: "<b",
pyads.PLCTYPE_USINT: "<B",
pyads.PLCTYPE_DINT: "<i",
pyads.PLCTYPE_UDINT: "<I",
pyads.PLCTYPE_WORD: "<H",
pyads.PLCTYPE_DWORD: "<I",
pyads.PLCTYPE_LREAL: "<d",
pyads.PLCTYPE_REAL: "<f",
pyads.PLCTYPE_TOD: "<i", # Treat as DINT
pyads.PLCTYPE_DATE: "<i", # Treat as DINT
pyads.PLCTYPE_DT: "<i", # Treat as DINT
pyads.PLCTYPE_TIME: "<i", # Treat as DINT
}
if plc_datatype == pyads.PLCTYPE_BOOL:
value = bool(struct.unpack("<?", bytearray(data))[0])
elif plc_datatype == pyads.PLCTYPE_STRING:
value = (
bytearray(data).split(b"\x00", 1)[0].decode("utf-8", errors="ignore")
)
elif plc_datatype in unpack_formats:
value = struct.unpack(unpack_formats[plc_datatype], bytearray(data))[0]
else:
value = bytearray(data)
_LOGGER.warning("No callback available for this datatype")
notification_item.callback(notification_item.name, value)

View File

@@ -1,5 +1,7 @@
{
"services": {
"write_data_by_name": "mdi:pencil"
"write_data_by_name": {
"service": "mdi:pencil"
}
}
}

View File

@@ -19,14 +19,12 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import (
CONF_ADS_VAR,
CONF_ADS_VAR_BRIGHTNESS,
DATA_ADS,
STATE_KEY_BRIGHTNESS,
STATE_KEY_STATE,
AdsEntity,
)
from .const import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE
from .entity import AdsEntity
from .hub import AdsHub
CONF_ADS_VAR_BRIGHTNESS = "adsvar_brightness"
STATE_KEY_BRIGHTNESS = "brightness"
DEFAULT_NAME = "ADS Light"
PLATFORM_SCHEMA = LIGHT_PLATFORM_SCHEMA.extend(
@@ -45,11 +43,11 @@ def setup_platform(
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up the light platform for ADS."""
ads_hub = hass.data.get(DATA_ADS)
ads_hub = hass.data[DATA_ADS]
ads_var_enable = config[CONF_ADS_VAR]
ads_var_brightness = config.get(CONF_ADS_VAR_BRIGHTNESS)
name = config[CONF_NAME]
ads_var_enable: str = config[CONF_ADS_VAR]
ads_var_brightness: str | None = config.get(CONF_ADS_VAR_BRIGHTNESS)
name: str = config[CONF_NAME]
add_entities([AdsLight(ads_hub, ads_var_enable, ads_var_brightness, name)])
@@ -57,7 +55,13 @@ def setup_platform(
class AdsLight(AdsEntity, LightEntity):
"""Representation of ADS light."""
def __init__(self, ads_hub, ads_var_enable, ads_var_brightness, name):
def __init__(
self,
ads_hub: AdsHub,
ads_var_enable: str,
ads_var_brightness: str | None,
name: str,
) -> None:
"""Initialize AdsLight entity."""
super().__init__(ads_hub, name, ads_var_enable)
self._state_dict[STATE_KEY_BRIGHTNESS] = None

View File

@@ -1,7 +1,7 @@
{
"domain": "ads",
"name": "ADS",
"codeowners": [],
"codeowners": ["@mrpasztoradam"],
"documentation": "https://www.home-assistant.io/integrations/ads",
"iot_class": "local_push",
"loggers": ["pyads"],

View File

@@ -0,0 +1,86 @@
"""Support for ADS select entities."""
from __future__ import annotations
import pyads
import voluptuous as vol
from homeassistant.components.select import (
PLATFORM_SCHEMA as SELECT_PLATFORM_SCHEMA,
SelectEntity,
)
from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .const import CONF_ADS_VAR, DATA_ADS
from .entity import AdsEntity
from .hub import AdsHub
DEFAULT_NAME = "ADS select"
CONF_OPTIONS = "options"
PLATFORM_SCHEMA = SELECT_PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_ADS_VAR): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Required(CONF_OPTIONS): vol.All(cv.ensure_list, [cv.string]),
}
)
def setup_platform(
hass: HomeAssistant,
config: ConfigType,
add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up an ADS select device."""
ads_hub = hass.data[DATA_ADS]
ads_var: str = config[CONF_ADS_VAR]
name: str = config[CONF_NAME]
options: list[str] = config[CONF_OPTIONS]
entity = AdsSelect(ads_hub, ads_var, name, options)
add_entities([entity])
class AdsSelect(AdsEntity, SelectEntity):
"""Representation of an ADS select entity."""
def __init__(
self,
ads_hub: AdsHub,
ads_var: str,
name: str,
options: list[str],
) -> None:
"""Initialize the AdsSelect entity."""
super().__init__(ads_hub, name, ads_var)
self._attr_options = options
self._attr_current_option = None
async def async_added_to_hass(self) -> None:
"""Register device notification."""
await self.async_initialize_device(self._ads_var, pyads.PLCTYPE_INT)
self._ads_hub.add_device_notification(
self._ads_var, pyads.PLCTYPE_INT, self._handle_ads_value
)
def select_option(self, option: str) -> None:
"""Change the selected option."""
if option in self._attr_options:
index = self._attr_options.index(option)
self._ads_hub.write_by_name(self._ads_var, index, pyads.PLCTYPE_INT)
self._attr_current_option = option
def _handle_ads_value(self, name: str, value: int) -> None:
"""Handle the value update from ADS."""
if 0 <= value < len(self._attr_options):
self._attr_current_option = self._attr_options[value]
self.schedule_update_ha_state()

View File

@@ -5,41 +5,54 @@ from __future__ import annotations
import voluptuous as vol
from homeassistant.components.sensor import (
CONF_STATE_CLASS,
DEVICE_CLASSES_SCHEMA as SENSOR_DEVICE_CLASSES_SCHEMA,
PLATFORM_SCHEMA as SENSOR_PLATFORM_SCHEMA,
STATE_CLASSES_SCHEMA as SENSOR_STATE_CLASSES_SCHEMA,
SensorDeviceClass,
SensorEntity,
SensorStateClass,
)
from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME, CONF_UNIT_OF_MEASUREMENT
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType, StateType
from .. import ads
from . import (
ADS_TYPEMAP,
CONF_ADS_FACTOR,
CONF_ADS_TYPE,
CONF_ADS_VAR,
STATE_KEY_STATE,
AdsEntity,
)
from . import ADS_TYPEMAP, CONF_ADS_FACTOR, CONF_ADS_TYPE
from .const import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsType
from .entity import AdsEntity
from .hub import AdsHub
DEFAULT_NAME = "ADS sensor"
PLATFORM_SCHEMA = SENSOR_PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_ADS_VAR): cv.string,
vol.Optional(CONF_ADS_FACTOR): cv.positive_int,
vol.Optional(CONF_ADS_TYPE, default=ads.ADSTYPE_INT): vol.In(
[
ads.ADSTYPE_INT,
ads.ADSTYPE_UINT,
ads.ADSTYPE_BYTE,
ads.ADSTYPE_DINT,
ads.ADSTYPE_UDINT,
]
vol.Optional(CONF_ADS_TYPE, default=AdsType.INT): vol.All(
vol.Coerce(AdsType),
vol.In(
[
AdsType.BOOL,
AdsType.BYTE,
AdsType.INT,
AdsType.UINT,
AdsType.SINT,
AdsType.USINT,
AdsType.DINT,
AdsType.UDINT,
AdsType.WORD,
AdsType.DWORD,
AdsType.LREAL,
AdsType.REAL,
]
),
),
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_UNIT_OF_MEASUREMENT, default=""): cv.string,
vol.Optional(CONF_DEVICE_CLASS): SENSOR_DEVICE_CLASSES_SCHEMA,
vol.Optional(CONF_STATE_CLASS): SENSOR_STATE_CLASSES_SCHEMA,
vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
}
)
@@ -51,15 +64,26 @@ def setup_platform(
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up an ADS sensor device."""
ads_hub = hass.data.get(ads.DATA_ADS)
ads_hub = hass.data[DATA_ADS]
ads_var = config[CONF_ADS_VAR]
ads_type = config[CONF_ADS_TYPE]
name = config[CONF_NAME]
unit_of_measurement = config.get(CONF_UNIT_OF_MEASUREMENT)
factor = config.get(CONF_ADS_FACTOR)
ads_var: str = config[CONF_ADS_VAR]
ads_type: AdsType = config[CONF_ADS_TYPE]
name: str = config[CONF_NAME]
factor: int | None = config.get(CONF_ADS_FACTOR)
device_class: SensorDeviceClass | None = config.get(CONF_DEVICE_CLASS)
state_class: SensorStateClass | None = config.get(CONF_STATE_CLASS)
unit_of_measurement: str | None = config.get(CONF_UNIT_OF_MEASUREMENT)
entity = AdsSensor(ads_hub, ads_var, ads_type, name, unit_of_measurement, factor)
entity = AdsSensor(
ads_hub,
ads_var,
ads_type,
name,
factor,
device_class,
state_class,
unit_of_measurement,
)
add_entities([entity])
@@ -67,12 +91,24 @@ def setup_platform(
class AdsSensor(AdsEntity, SensorEntity):
"""Representation of an ADS sensor entity."""
def __init__(self, ads_hub, ads_var, ads_type, name, unit_of_measurement, factor):
def __init__(
self,
ads_hub: AdsHub,
ads_var: str,
ads_type: AdsType,
name: str,
factor: int | None,
device_class: SensorDeviceClass | None,
state_class: SensorStateClass | None,
unit_of_measurement: str | None,
) -> None:
"""Initialize AdsSensor entity."""
super().__init__(ads_hub, name, ads_var)
self._attr_native_unit_of_measurement = unit_of_measurement
self._ads_type = ads_type
self._factor = factor
self._attr_device_class = device_class
self._attr_state_class = state_class
self._attr_native_unit_of_measurement = unit_of_measurement
async def async_added_to_hass(self) -> None:
"""Register device notification."""

View File

@@ -17,7 +17,8 @@ import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from . import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE, AdsEntity
from .const import CONF_ADS_VAR, DATA_ADS, STATE_KEY_STATE
from .entity import AdsEntity
DEFAULT_NAME = "ADS Switch"
@@ -36,10 +37,10 @@ def setup_platform(
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up switch platform for ADS."""
ads_hub = hass.data.get(DATA_ADS)
ads_hub = hass.data[DATA_ADS]
name = config[CONF_NAME]
ads_var = config[CONF_ADS_VAR]
name: str = config[CONF_NAME]
ads_var: str = config[CONF_ADS_VAR]
add_entities([AdsSwitch(ads_hub, name, ads_var)])

View File

@@ -0,0 +1,84 @@
"""Support for ADS valves."""
from __future__ import annotations
import pyads
import voluptuous as vol
from homeassistant.components.valve import (
DEVICE_CLASSES_SCHEMA as VALVE_DEVICE_CLASSES_SCHEMA,
PLATFORM_SCHEMA as VALVE_PLATFORM_SCHEMA,
ValveDeviceClass,
ValveEntity,
ValveEntityFeature,
)
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .const import CONF_ADS_VAR, DATA_ADS
from .entity import AdsEntity
from .hub import AdsHub
DEFAULT_NAME = "ADS valve"
PLATFORM_SCHEMA = VALVE_PLATFORM_SCHEMA.extend(
{
vol.Required(CONF_ADS_VAR): cv.string,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_DEVICE_CLASS): VALVE_DEVICE_CLASSES_SCHEMA,
}
)
def setup_platform(
hass: HomeAssistant,
config: ConfigType,
add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up an ADS valve device."""
ads_hub = hass.data[DATA_ADS]
ads_var: str = config[CONF_ADS_VAR]
name: str = config[CONF_NAME]
device_class: ValveDeviceClass | None = config.get(CONF_DEVICE_CLASS)
entity = AdsValve(ads_hub, ads_var, name, device_class)
add_entities([entity])
class AdsValve(AdsEntity, ValveEntity):
"""Representation of an ADS valve entity."""
_attr_supported_features = ValveEntityFeature.OPEN | ValveEntityFeature.CLOSE
def __init__(
self,
ads_hub: AdsHub,
ads_var: str,
name: str,
device_class: ValveDeviceClass | None,
) -> None:
"""Initialize AdsValve entity."""
super().__init__(ads_hub, name, ads_var)
self._attr_device_class = device_class
self._attr_reports_position = False
self._attr_is_closed = True
async def async_added_to_hass(self) -> None:
"""Register device notification."""
await self.async_initialize_device(self._ads_var, pyads.PLCTYPE_BOOL)
def open_valve(self, **kwargs) -> None:
"""Open the valve."""
self._ads_hub.write_by_name(self._ads_var, True, pyads.PLCTYPE_BOOL)
self._attr_is_closed = False
def close_valve(self, **kwargs) -> None:
"""Close the valve."""
self._ads_hub.write_by_name(self._ads_var, False, pyads.PLCTYPE_BOOL)
self._attr_is_closed = True

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

@@ -1,5 +1,7 @@
{
"services": {
"set_time_to": "mdi:timer-cog"
"set_time_to": {
"service": "mdi:timer-cog"
}
}
}

View File

@@ -6,7 +6,7 @@ from typing import Any
from aemet_opendata.const import AOD_COORDS
from homeassistant.components.diagnostics.util import async_redact_data
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.const import (
CONF_API_KEY,
CONF_LATITUDE,

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

@@ -7,7 +7,11 @@
}
},
"services": {
"add_tracking": "mdi:package-variant-plus",
"remove_tracking": "mdi:package-variant-minus"
"add_tracking": {
"service": "mdi:package-variant-plus"
},
"remove_tracking": {
"service": "mdi:package-variant-minus"
}
}
}

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

@@ -1,9 +1,19 @@
{
"services": {
"start_recording": "mdi:record-rec",
"stop_recording": "mdi:stop",
"enable_alerts": "mdi:bell-alert",
"disable_alerts": "mdi:bell-off",
"snapshot": "mdi:camera"
"start_recording": {
"service": "mdi:record-rec"
},
"stop_recording": {
"service": "mdi:stop"
},
"enable_alerts": {
"service": "mdi:bell-alert"
},
"disable_alerts": {
"service": "mdi:bell-off"
},
"snapshot": {
"service": "mdi:camera"
}
}
}

View File

@@ -13,11 +13,13 @@ from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.typing import ConfigType, StateType
from homeassistant.util.hass_dict import HassKey
from .const import DOMAIN
_LOGGER: Final = logging.getLogger(__name__)
DATA_COMPONENT: HassKey[EntityComponent[AirQualityEntity]] = HassKey(DOMAIN)
ENTITY_ID_FORMAT: Final = DOMAIN + ".{}"
PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA
PLATFORM_SCHEMA_BASE = cv.PLATFORM_SCHEMA_BASE
@@ -54,7 +56,7 @@ PROP_TO_ATTR: Final[dict[str, str]] = {
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Set up the air quality component."""
component = hass.data[DOMAIN] = EntityComponent[AirQualityEntity](
component = hass.data[DATA_COMPONENT] = EntityComponent[AirQualityEntity](
_LOGGER, DOMAIN, hass, SCAN_INTERVAL
)
await component.async_setup(config)
@@ -63,14 +65,12 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up a config entry."""
component: EntityComponent[AirQualityEntity] = hass.data[DOMAIN]
return await component.async_setup_entry(entry)
return await hass.data[DATA_COMPONENT].async_setup_entry(entry)
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
component: EntityComponent[AirQualityEntity] = hass.data[DOMAIN]
return await component.async_unload_entry(entry)
return await hass.data[DATA_COMPONENT].async_unload_entry(entry)
class AirQualityEntity(Entity):

View File

@@ -2,18 +2,14 @@
from __future__ import annotations
from dataclasses import dataclass
from airgradient import AirGradientClient
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN
from .coordinator import AirGradientConfigCoordinator, AirGradientMeasurementCoordinator
from .coordinator import AirGradientCoordinator
PLATFORMS: list[Platform] = [
Platform.BUTTON,
@@ -21,53 +17,33 @@ PLATFORMS: list[Platform] = [
Platform.SELECT,
Platform.SENSOR,
Platform.SWITCH,
Platform.UPDATE,
]
@dataclass
class AirGradientData:
"""AirGradient data class."""
measurement: AirGradientMeasurementCoordinator
config: AirGradientConfigCoordinator
type AirGradientConfigEntry = ConfigEntry[AirGradientCoordinator]
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(
entry.data[CONF_HOST], session=async_get_clientsession(hass)
)
measurement_coordinator = AirGradientMeasurementCoordinator(hass, client)
config_coordinator = AirGradientConfigCoordinator(hass, client)
coordinator = AirGradientCoordinator(hass, client)
await measurement_coordinator.async_config_entry_first_refresh()
await config_coordinator.async_config_entry_first_refresh()
await coordinator.async_config_entry_first_refresh()
device_registry = dr.async_get(hass)
device_registry.async_get_or_create(
config_entry_id=entry.entry_id,
identifiers={(DOMAIN, measurement_coordinator.serial_number)},
manufacturer="AirGradient",
model=measurement_coordinator.data.model,
serial_number=measurement_coordinator.data.serial_number,
sw_version=measurement_coordinator.data.firmware_version,
)
entry.runtime_data = AirGradientData(
measurement=measurement_coordinator,
config=config_coordinator,
)
entry.runtime_data = coordinator
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
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

@@ -15,8 +15,9 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import DOMAIN, AirGradientConfigEntry
from .coordinator import AirGradientConfigCoordinator
from . import AirGradientConfigEntry
from .const import DOMAIN
from .coordinator import AirGradientCoordinator
from .entity import AirGradientEntity
@@ -47,8 +48,8 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AirGradient button entities based on a config entry."""
model = entry.runtime_data.measurement.data.model
coordinator = entry.runtime_data.config
coordinator = entry.runtime_data
model = coordinator.data.measures.model
added_entities = False
@@ -57,7 +58,7 @@ async def async_setup_entry(
nonlocal added_entities
if (
coordinator.data.configuration_control is ConfigurationControl.LOCAL
coordinator.data.config.configuration_control is ConfigurationControl.LOCAL
and not added_entities
):
entities = [AirGradientButton(coordinator, CO2_CALIBRATION)]
@@ -67,7 +68,8 @@ async def async_setup_entry(
async_add_entities(entities)
added_entities = True
elif (
coordinator.data.configuration_control is not ConfigurationControl.LOCAL
coordinator.data.config.configuration_control
is not ConfigurationControl.LOCAL
and added_entities
):
entity_registry = er.async_get(hass)
@@ -87,11 +89,10 @@ class AirGradientButton(AirGradientEntity, ButtonEntity):
"""Defines an AirGradient button."""
entity_description: AirGradientButtonEntityDescription
coordinator: AirGradientConfigCoordinator
def __init__(
self,
coordinator: AirGradientConfigCoordinator,
coordinator: AirGradientCoordinator,
description: AirGradientButtonEntityDescription,
) -> None:
"""Initialize airgradient button."""

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,12 +87,14 @@ 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)
await self.async_set_unique_id(
current_measures.serial_number, raise_on_progress=False
)
self._abort_if_unique_id_configured()
await self.set_configuration_source()
return self.async_create_entry(

View File

@@ -2,6 +2,7 @@
from __future__ import annotations
from dataclasses import dataclass
from datetime import timedelta
from typing import TYPE_CHECKING
@@ -16,10 +17,17 @@ if TYPE_CHECKING:
from . import AirGradientConfigEntry
class AirGradientCoordinator[_DataT](DataUpdateCoordinator[_DataT]):
@dataclass
class AirGradientData:
"""Class for AirGradient data."""
measures: Measures
config: Config
class AirGradientCoordinator(DataUpdateCoordinator[AirGradientData]):
"""Class to manage fetching AirGradient data."""
_update_interval: timedelta
config_entry: AirGradientConfigEntry
def __init__(self, hass: HomeAssistant, client: AirGradientClient) -> None:
@@ -28,35 +36,17 @@ 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
self.serial_number = self.config_entry.unique_id
async def _async_update_data(self) -> _DataT:
async def _async_update_data(self) -> AirGradientData:
try:
return await self._update_data()
measures = await self.client.get_current_measures()
config = await self.client.get_config()
except AirGradientError as error:
raise UpdateFailed(error) from error
async def _update_data(self) -> _DataT:
raise NotImplementedError
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()
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()
else:
return AirGradientData(measures, config)

View File

@@ -1,5 +1,7 @@
"""Base class for AirGradient entities."""
from airgradient import get_model_name
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -15,6 +17,12 @@ class AirGradientEntity(CoordinatorEntity[AirGradientCoordinator]):
def __init__(self, coordinator: AirGradientCoordinator) -> None:
"""Initialize airgradient entity."""
super().__init__(coordinator)
measures = coordinator.data.measures
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, coordinator.serial_number)},
manufacturer="AirGradient",
model=get_model_name(measures.model),
model_id=measures.model,
serial_number=coordinator.serial_number,
sw_version=measures.firmware_version,
)

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.1"],
"requirements": ["airgradient==0.9.0"],
"zeroconf": ["_airgradient._tcp.local."]
}

View File

@@ -18,7 +18,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirGradientConfigEntry
from .const import DOMAIN
from .coordinator import AirGradientConfigCoordinator
from .coordinator import AirGradientCoordinator
from .entity import AirGradientEntity
@@ -62,8 +62,8 @@ async def async_setup_entry(
) -> None:
"""Set up AirGradient number entities based on a config entry."""
model = entry.runtime_data.measurement.data.model
coordinator = entry.runtime_data.config
coordinator = entry.runtime_data
model = coordinator.data.measures.model
added_entities = False
@@ -72,7 +72,7 @@ async def async_setup_entry(
nonlocal added_entities
if (
coordinator.data.configuration_control is ConfigurationControl.LOCAL
coordinator.data.config.configuration_control is ConfigurationControl.LOCAL
and not added_entities
):
entities = []
@@ -84,7 +84,8 @@ async def async_setup_entry(
async_add_entities(entities)
added_entities = True
elif (
coordinator.data.configuration_control is not ConfigurationControl.LOCAL
coordinator.data.config.configuration_control
is not ConfigurationControl.LOCAL
and added_entities
):
entity_registry = er.async_get(hass)
@@ -104,11 +105,10 @@ class AirGradientNumber(AirGradientEntity, NumberEntity):
"""Defines an AirGradient number entity."""
entity_description: AirGradientNumberEntityDescription
coordinator: AirGradientConfigCoordinator
def __init__(
self,
coordinator: AirGradientConfigCoordinator,
coordinator: AirGradientCoordinator,
description: AirGradientNumberEntityDescription,
) -> None:
"""Initialize AirGradient number."""
@@ -119,7 +119,7 @@ class AirGradientNumber(AirGradientEntity, NumberEntity):
@property
def native_value(self) -> int | None:
"""Return the state of the number."""
return self.entity_description.value_fn(self.coordinator.data)
return self.entity_description.value_fn(self.coordinator.data.config)
async def async_set_native_value(self, value: float) -> None:
"""Set the selected value."""

View File

@@ -18,7 +18,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirGradientConfigEntry
from .const import DOMAIN, PM_STANDARD, PM_STANDARD_REVERSE
from .coordinator import AirGradientConfigCoordinator
from .coordinator import AirGradientCoordinator
from .entity import AirGradientEntity
@@ -144,13 +144,11 @@ async def async_setup_entry(
) -> None:
"""Set up AirGradient select entities based on a config entry."""
coordinator = entry.runtime_data.config
measurement_coordinator = entry.runtime_data.measurement
coordinator = entry.runtime_data
model = coordinator.data.measures.model
async_add_entities([AirGradientSelect(coordinator, CONFIG_CONTROL_ENTITY)])
model = measurement_coordinator.data.model
added_entities = False
@callback
@@ -158,7 +156,7 @@ async def async_setup_entry(
nonlocal added_entities
if (
coordinator.data.configuration_control is ConfigurationControl.LOCAL
coordinator.data.config.configuration_control is ConfigurationControl.LOCAL
and not added_entities
):
entities: list[AirGradientSelect] = [
@@ -179,7 +177,8 @@ async def async_setup_entry(
async_add_entities(entities)
added_entities = True
elif (
coordinator.data.configuration_control is not ConfigurationControl.LOCAL
coordinator.data.config.configuration_control
is not ConfigurationControl.LOCAL
and added_entities
):
entity_registry = er.async_get(hass)
@@ -201,11 +200,10 @@ class AirGradientSelect(AirGradientEntity, SelectEntity):
"""Defines an AirGradient select entity."""
entity_description: AirGradientSelectEntityDescription
coordinator: AirGradientConfigCoordinator
def __init__(
self,
coordinator: AirGradientConfigCoordinator,
coordinator: AirGradientCoordinator,
description: AirGradientSelectEntityDescription,
) -> None:
"""Initialize AirGradient select."""
@@ -216,7 +214,7 @@ class AirGradientSelect(AirGradientEntity, SelectEntity):
@property
def current_option(self) -> str | None:
"""Return the state of the select."""
return self.entity_description.value_fn(self.coordinator.data)
return self.entity_description.value_fn(self.coordinator.data.config)
async def async_select_option(self, option: str) -> None:
"""Change the selected option."""

View File

@@ -32,7 +32,7 @@ from homeassistant.helpers.typing import StateType
from . import AirGradientConfigEntry
from .const import PM_STANDARD, PM_STANDARD_REVERSE
from .coordinator import AirGradientConfigCoordinator, AirGradientMeasurementCoordinator
from .coordinator import AirGradientCoordinator
from .entity import AirGradientEntity
@@ -218,7 +218,7 @@ async def async_setup_entry(
) -> None:
"""Set up AirGradient sensor entities based on a config entry."""
coordinator = entry.runtime_data.measurement
coordinator = entry.runtime_data
listener: Callable[[], None] | None = None
not_setup: set[AirGradientMeasurementSensorEntityDescription] = set(
MEASUREMENT_SENSOR_TYPES
@@ -232,7 +232,7 @@ async def async_setup_entry(
not_setup = set()
sensors = []
for description in sensor_descriptions:
if description.value_fn(coordinator.data) is None:
if description.value_fn(coordinator.data.measures) is None:
not_setup.add(description)
else:
sensors.append(AirGradientMeasurementSensor(coordinator, description))
@@ -248,64 +248,65 @@ async def async_setup_entry(
add_entities()
entities = [
AirGradientConfigSensor(entry.runtime_data.config, description)
AirGradientConfigSensor(coordinator, description)
for description in CONFIG_SENSOR_TYPES
]
if "L" in coordinator.data.model:
if "L" in coordinator.data.measures.model:
entities.extend(
AirGradientConfigSensor(entry.runtime_data.config, description)
AirGradientConfigSensor(coordinator, description)
for description in CONFIG_LED_BAR_SENSOR_TYPES
)
if "I" in coordinator.data.model:
if "I" in coordinator.data.measures.model:
entities.extend(
AirGradientConfigSensor(entry.runtime_data.config, description)
AirGradientConfigSensor(coordinator, description)
for description in CONFIG_DISPLAY_SENSOR_TYPES
)
async_add_entities(entities)
class AirGradientMeasurementSensor(AirGradientEntity, SensorEntity):
class AirGradientSensor(AirGradientEntity, SensorEntity):
"""Defines an AirGradient sensor."""
entity_description: AirGradientMeasurementSensorEntityDescription
coordinator: AirGradientMeasurementCoordinator
def __init__(
self,
coordinator: AirGradientMeasurementCoordinator,
description: AirGradientMeasurementSensorEntityDescription,
coordinator: AirGradientCoordinator,
description: SensorEntityDescription,
) -> None:
"""Initialize airgradient sensor."""
super().__init__(coordinator)
self.entity_description = description
self._attr_unique_id = f"{coordinator.serial_number}-{description.key}"
class AirGradientMeasurementSensor(AirGradientSensor):
"""Defines an AirGradient sensor."""
entity_description: AirGradientMeasurementSensorEntityDescription
@property
def native_value(self) -> StateType:
"""Return the state of the sensor."""
return self.entity_description.value_fn(self.coordinator.data)
return self.entity_description.value_fn(self.coordinator.data.measures)
class AirGradientConfigSensor(AirGradientEntity, SensorEntity):
class AirGradientConfigSensor(AirGradientSensor):
"""Defines an AirGradient sensor."""
entity_description: AirGradientConfigSensorEntityDescription
coordinator: AirGradientConfigCoordinator
def __init__(
self,
coordinator: AirGradientConfigCoordinator,
coordinator: AirGradientCoordinator,
description: AirGradientConfigSensorEntityDescription,
) -> None:
"""Initialize airgradient sensor."""
super().__init__(coordinator)
self.entity_description = description
self._attr_unique_id = f"{coordinator.serial_number}-{description.key}"
super().__init__(coordinator, description)
self._attr_entity_registry_enabled_default = (
coordinator.data.configuration_control is not ConfigurationControl.LOCAL
coordinator.data.config.configuration_control
is not ConfigurationControl.LOCAL
)
@property
def native_value(self) -> StateType:
"""Return the state of the sensor."""
return self.entity_description.value_fn(self.coordinator.data)
return self.entity_description.value_fn(self.coordinator.data.config)

View File

@@ -19,7 +19,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirGradientConfigEntry
from .const import DOMAIN
from .coordinator import AirGradientConfigCoordinator
from .coordinator import AirGradientCoordinator
from .entity import AirGradientEntity
@@ -46,7 +46,7 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AirGradient switch entities based on a config entry."""
coordinator = entry.runtime_data.config
coordinator = entry.runtime_data
added_entities = False
@@ -55,7 +55,7 @@ async def async_setup_entry(
nonlocal added_entities
if (
coordinator.data.configuration_control is ConfigurationControl.LOCAL
coordinator.data.config.configuration_control is ConfigurationControl.LOCAL
and not added_entities
):
async_add_entities(
@@ -63,7 +63,8 @@ async def async_setup_entry(
)
added_entities = True
elif (
coordinator.data.configuration_control is not ConfigurationControl.LOCAL
coordinator.data.config.configuration_control
is not ConfigurationControl.LOCAL
and added_entities
):
entity_registry = er.async_get(hass)
@@ -82,11 +83,10 @@ class AirGradientSwitch(AirGradientEntity, SwitchEntity):
"""Defines an AirGradient switch entity."""
entity_description: AirGradientSwitchEntityDescription
coordinator: AirGradientConfigCoordinator
def __init__(
self,
coordinator: AirGradientConfigCoordinator,
coordinator: AirGradientCoordinator,
description: AirGradientSwitchEntityDescription,
) -> None:
"""Initialize AirGradient switch."""
@@ -97,7 +97,7 @@ class AirGradientSwitch(AirGradientEntity, SwitchEntity):
@property
def is_on(self) -> bool:
"""Return the state of the switch."""
return self.entity_description.value_fn(self.coordinator.data)
return self.entity_description.value_fn(self.coordinator.data.config)
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the switch on."""

View File

@@ -0,0 +1,54 @@
"""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, AirGradientCoordinator
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."""
coordinator = config_entry.runtime_data
async_add_entities([AirGradientUpdate(coordinator)], True)
class AirGradientUpdate(AirGradientEntity, UpdateEntity):
"""Representation of Airgradient Update."""
_attr_device_class = UpdateDeviceClass.FIRMWARE
def __init__(self, coordinator: AirGradientCoordinator) -> 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.measures.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

@@ -15,7 +15,6 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN # noqa: F401
from .coordinator import AirNowDataUpdateCoordinator
_LOGGER = logging.getLogger(__name__)

View File

@@ -14,10 +14,32 @@ ATTR_API_POLLUTANT = "Pollutant"
ATTR_API_REPORT_DATE = "DateObserved"
ATTR_API_REPORT_HOUR = "HourObserved"
ATTR_API_REPORT_TZ = "LocalTimeZone"
ATTR_API_REPORT_TZINFO = "LocalTimeZoneInfo"
ATTR_API_STATE = "StateCode"
ATTR_API_STATION = "ReportingArea"
ATTR_API_STATION_LATITUDE = "Latitude"
ATTR_API_STATION_LONGITUDE = "Longitude"
DEFAULT_NAME = "AirNow"
DOMAIN = "airnow"
SECONDS_PER_HOUR = 3600
# AirNow seems to only use standard time zones,
# but we include daylight savings for completeness/futureproofing.
US_TZ_OFFSETS = {
"HST": -10 * SECONDS_PER_HOUR,
"HDT": -9 * SECONDS_PER_HOUR,
# AirNow returns AKT instead of AKST or AKDT, use standard
"AKT": -9 * SECONDS_PER_HOUR,
"AKST": -9 * SECONDS_PER_HOUR,
"AKDT": -8 * SECONDS_PER_HOUR,
"PST": -8 * SECONDS_PER_HOUR,
"PDT": -7 * SECONDS_PER_HOUR,
"MST": -7 * SECONDS_PER_HOUR,
"MDT": -6 * SECONDS_PER_HOUR,
"CST": -6 * SECONDS_PER_HOUR,
"CDT": -5 * SECONDS_PER_HOUR,
"EST": -5 * SECONDS_PER_HOUR,
"EDT": -4 * SECONDS_PER_HOUR,
"AST": -4 * SECONDS_PER_HOUR,
"ADT": -3 * SECONDS_PER_HOUR,
}

View File

@@ -12,7 +12,6 @@ from pyairnow.errors import AirNowError
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt as dt_util
from .const import (
ATTR_API_AQI,
@@ -27,7 +26,6 @@ from .const import (
ATTR_API_REPORT_DATE,
ATTR_API_REPORT_HOUR,
ATTR_API_REPORT_TZ,
ATTR_API_REPORT_TZINFO,
ATTR_API_STATE,
ATTR_API_STATION,
ATTR_API_STATION_LATITUDE,
@@ -98,9 +96,7 @@ class AirNowDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
# Copy Report Details
data[ATTR_API_REPORT_DATE] = obv[ATTR_API_REPORT_DATE]
data[ATTR_API_REPORT_HOUR] = obv[ATTR_API_REPORT_HOUR]
data[ATTR_API_REPORT_TZINFO] = await dt_util.async_get_time_zone(
obv[ATTR_API_REPORT_TZ]
)
data[ATTR_API_REPORT_TZ] = obv[ATTR_API_REPORT_TZ]
# Copy Station Details
data[ATTR_API_STATE] = obv[ATTR_API_STATE]

View File

@@ -4,9 +4,10 @@ from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from datetime import datetime
from typing import Any
from dateutil import parser
from homeassistant.components.sensor import (
SensorDeviceClass,
SensorEntity,
@@ -34,12 +35,13 @@ from .const import (
ATTR_API_PM25,
ATTR_API_REPORT_DATE,
ATTR_API_REPORT_HOUR,
ATTR_API_REPORT_TZINFO,
ATTR_API_REPORT_TZ,
ATTR_API_STATION,
ATTR_API_STATION_LATITUDE,
ATTR_API_STATION_LONGITUDE,
DEFAULT_NAME,
DOMAIN,
US_TZ_OFFSETS,
)
ATTRIBUTION = "Data provided by AirNow"
@@ -69,6 +71,18 @@ def station_extra_attrs(data: dict[str, Any]) -> dict[str, Any]:
return {}
def aqi_extra_attrs(data: dict[str, Any]) -> dict[str, Any]:
"""Process extra attributes for main AQI sensor."""
return {
ATTR_DESCR: data[ATTR_API_AQI_DESCRIPTION],
ATTR_LEVEL: data[ATTR_API_AQI_LEVEL],
ATTR_TIME: parser.parse(
f"{data[ATTR_API_REPORT_DATE]} {data[ATTR_API_REPORT_HOUR]}:00 {data[ATTR_API_REPORT_TZ]}",
tzinfos=US_TZ_OFFSETS,
).isoformat(),
}
SENSOR_TYPES: tuple[AirNowEntityDescription, ...] = (
AirNowEntityDescription(
key=ATTR_API_AQI,
@@ -76,16 +90,7 @@ SENSOR_TYPES: tuple[AirNowEntityDescription, ...] = (
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.AQI,
value_fn=lambda data: data.get(ATTR_API_AQI),
extra_state_attributes_fn=lambda data: {
ATTR_DESCR: data[ATTR_API_AQI_DESCRIPTION],
ATTR_LEVEL: data[ATTR_API_AQI_LEVEL],
ATTR_TIME: datetime.strptime(
f"{data[ATTR_API_REPORT_DATE]} {data[ATTR_API_REPORT_HOUR]}",
"%Y-%m-%d %H",
)
.replace(tzinfo=data[ATTR_API_REPORT_TZINFO])
.isoformat(),
},
extra_state_attributes_fn=aqi_extra_attrs,
),
AirNowEntityDescription(
key=ATTR_API_PM10,

View File

@@ -24,5 +24,5 @@
"dependencies": ["bluetooth_adapters"],
"documentation": "https://www.home-assistant.io/integrations/airthings_ble",
"iot_class": "local_polling",
"requirements": ["airthings-ble==0.9.0"]
"requirements": ["airthings-ble==0.9.1"]
}

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
@@ -261,7 +262,7 @@ class Airtouch5AC(Airtouch5ClimateEntity):
_LOGGER.debug("Argument `temperature` is missing in set_temperature")
return
await self._control(temp=temp)
await self._control(setpoint=SetpointControl.CHANGE_SETPOINT, temp=temp)
class Airtouch5Zone(Airtouch5ClimateEntity):

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,17 +31,11 @@ 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,
)
from homeassistant.helpers.entity import EntityDescription
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
UpdateFailed,
)
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import (
CONF_CITY,
@@ -54,6 +48,8 @@ from .const import (
LOGGER,
)
type AirVisualConfigEntry = ConfigEntry[DataUpdateCoordinator]
# We use a raw string for the airvisual_pro domain (instead of importing the actual
# constant) so that we can avoid listing it as a dependency:
DOMAIN_AIRVISUAL_PRO = "airvisual_pro"
@@ -62,8 +58,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(
@@ -94,10 +88,9 @@ def async_get_cloud_coordinators_by_api_key(
) -> list[DataUpdateCoordinator]:
"""Get all DataUpdateCoordinator objects related to a particular API key."""
return [
coordinator
for entry_id, coordinator in hass.data[DOMAIN].items()
if (entry := hass.config_entries.async_get_entry(entry_id))
and entry.data.get(CONF_API_KEY) == api_key
entry.runtime_data
for entry in hass.config_entries.async_entries(DOMAIN)
if entry.data.get(CONF_API_KEY) == api_key and hasattr(entry, "runtime_data")
]
@@ -175,7 +168,7 @@ def _standardize_geography_config_entry(
hass.config_entries.async_update_entry(entry, **entry_updates)
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_setup_entry(hass: HomeAssistant, entry: AirVisualConfigEntry) -> bool:
"""Set up AirVisual as config entry."""
if CONF_API_KEY not in entry.data:
# If this is a migrated AirVisual Pro entry, there's no actual setup to do;
@@ -223,8 +216,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
entry.async_on_unload(entry.add_update_listener(async_reload_entry))
await coordinator.async_config_entry_first_refresh()
hass.data.setdefault(DOMAIN, {})
hass.data[DOMAIN][entry.entry_id] = coordinator
entry.runtime_data = coordinator
# Reassess the interval between 2 server requests
async_sync_geo_coordinator_update_intervals(hass, entry.data[CONF_API_KEY])
@@ -234,7 +226,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return True
async def async_migrate_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_migrate_entry(hass: HomeAssistant, entry: AirVisualConfigEntry) -> bool:
"""Migrate an old config entry."""
version = entry.version
@@ -391,56 +383,18 @@ async def async_migrate_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: AirVisualConfigEntry) -> bool:
"""Unload an AirVisual config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
if CONF_API_KEY in entry.data:
# Re-calculate the update interval period for any remaining consumers of
# this API key:
async_sync_geo_coordinator_update_intervals(hass, entry.data[CONF_API_KEY])
if unload_ok and CONF_API_KEY in entry.data:
# Re-calculate the update interval period for any remaining consumers of
# this API key:
async_sync_geo_coordinator_update_intervals(hass, entry.data[CONF_API_KEY])
return unload_ok
async def async_reload_entry(hass: HomeAssistant, entry: ConfigEntry) -> None:
async def async_reload_entry(hass: HomeAssistant, entry: AirVisualConfigEntry) -> None:
"""Handle an options update."""
await hass.config_entries.async_reload(entry.entry_id)
class AirVisualEntity(CoordinatorEntity):
"""Define a generic AirVisual entity."""
def __init__(
self,
coordinator: DataUpdateCoordinator,
entry: ConfigEntry,
description: EntityDescription,
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._attr_extra_state_attributes = {}
self._entry = entry
self.entity_description = description
async def async_added_to_hass(self) -> None:
"""Register callbacks."""
await super().async_added_to_hass()
@callback
def update() -> None:
"""Update the state."""
self.update_from_latest_data()
self.async_write_ha_state()
self.async_on_remove(self.coordinator.async_add_listener(update))
self.update_from_latest_data()
@callback
def update_from_latest_data(self) -> None:
"""Update the entity from the latest data."""
raise NotImplementedError

View File

@@ -5,7 +5,6 @@ from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_API_KEY,
CONF_COUNTRY,
@@ -15,9 +14,9 @@ from homeassistant.const import (
CONF_UNIQUE_ID,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from .const import CONF_CITY, DOMAIN
from . import AirVisualConfigEntry
from .const import CONF_CITY
CONF_COORDINATES = "coordinates"
CONF_TITLE = "title"
@@ -37,10 +36,10 @@ TO_REDACT = {
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: ConfigEntry
hass: HomeAssistant, entry: AirVisualConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
coordinator: DataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
coordinator = entry.runtime_data
return {
"entry": async_redact_data(entry.as_dict(), TO_REDACT),

View File

@@ -0,0 +1,47 @@
"""The AirVisual component."""
from __future__ import annotations
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import callback
from homeassistant.helpers.entity import EntityDescription
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
)
class AirVisualEntity(CoordinatorEntity):
"""Define a generic AirVisual entity."""
def __init__(
self,
coordinator: DataUpdateCoordinator,
entry: ConfigEntry,
description: EntityDescription,
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._attr_extra_state_attributes = {}
self._entry = entry
self.entity_description = description
async def async_added_to_hass(self) -> None:
"""Register callbacks."""
await super().async_added_to_hass()
@callback
def update() -> None:
"""Update the state."""
self.update_from_latest_data()
self.async_write_ha_state()
self.async_on_remove(self.coordinator.async_add_listener(update))
self.update_from_latest_data()
@callback
def update_from_latest_data(self) -> None:
"""Update the entity from the latest data."""
raise NotImplementedError

View File

@@ -26,8 +26,9 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from . import AirVisualEntity
from .const import CONF_CITY, DOMAIN
from . import AirVisualConfigEntry
from .const import CONF_CITY
from .entity import AirVisualEntity
ATTR_CITY = "city"
ATTR_COUNTRY = "country"
@@ -105,10 +106,12 @@ POLLUTANT_UNITS = {
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: AirVisualConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up AirVisual sensors based on a config entry."""
coordinator = hass.data[DOMAIN][entry.entry_id]
coordinator = entry.runtime_data
async_add_entities(
AirVisualGeographySensor(coordinator, entry, description, locale)
for locale in GEOGRAPHY_SENSOR_LOCALES

View File

@@ -24,15 +24,9 @@ from homeassistant.const import (
)
from homeassistant.core import Event, HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity import EntityDescription
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
UpdateFailed,
)
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN, LOGGER
from .const import LOGGER
PLATFORMS = [Platform.SENSOR]
@@ -120,28 +114,3 @@ async def async_unload_entry(
await entry.runtime_data.node.async_disconnect()
return unload_ok
class AirVisualProEntity(CoordinatorEntity):
"""Define a generic AirVisual Pro entity."""
def __init__(
self, coordinator: DataUpdateCoordinator, description: EntityDescription
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._attr_unique_id = f"{coordinator.data['serial_number']}_{description.key}"
self.entity_description = description
@property
def device_info(self) -> DeviceInfo:
"""Return device registry information for this entity."""
return DeviceInfo(
identifiers={(DOMAIN, self.coordinator.data["serial_number"])},
manufacturer="AirVisual",
model=self.coordinator.data["status"]["model"],
name=self.coordinator.data["settings"]["node_name"],
hw_version=self.coordinator.data["status"]["system_version"],
sw_version=self.coordinator.data["status"]["app_version"],
)

View File

@@ -80,11 +80,9 @@ class AirVisualProFlowHandler(ConfigFlow, domain=DOMAIN):
"""Initialize."""
self._reauth_entry: ConfigEntry | None = None
async def async_step_import(
self, import_config: dict[str, Any]
) -> ConfigFlowResult:
"""Import a config entry from configuration.yaml."""
return await self.async_step_user(import_config)
async def async_step_import(self, import_data: dict[str, Any]) -> ConfigFlowResult:
"""Import a config entry from `airvisual` integration (see #83882)."""
return await self.async_step_user(import_data)
async def async_step_reauth(
self, entry_data: Mapping[str, Any]

View File

@@ -0,0 +1,37 @@
"""The AirVisual Pro integration."""
from __future__ import annotations
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity import EntityDescription
from homeassistant.helpers.update_coordinator import (
CoordinatorEntity,
DataUpdateCoordinator,
)
from .const import DOMAIN
class AirVisualProEntity(CoordinatorEntity):
"""Define a generic AirVisual Pro entity."""
def __init__(
self, coordinator: DataUpdateCoordinator, description: EntityDescription
) -> None:
"""Initialize."""
super().__init__(coordinator)
self._attr_unique_id = f"{coordinator.data['serial_number']}_{description.key}"
self.entity_description = description
@property
def device_info(self) -> DeviceInfo:
"""Return device registry information for this entity."""
return DeviceInfo(
identifiers={(DOMAIN, self.coordinator.data["serial_number"])},
manufacturer="AirVisual",
model=self.coordinator.data["status"]["model"],
name=self.coordinator.data["settings"]["node_name"],
hw_version=self.coordinator.data["status"]["system_version"],
sw_version=self.coordinator.data["status"]["app_version"],
)

View File

@@ -22,7 +22,8 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AirVisualProConfigEntry, AirVisualProEntity
from . import AirVisualProConfigEntry
from .entity import AirVisualProEntity
@dataclass(frozen=True, kw_only=True)

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

@@ -6,7 +6,7 @@ from typing import Any
from aioairzone.const import API_MAC, AZD_MAC
from homeassistant.components.diagnostics.util import async_redact_data
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.const import CONF_UNIQUE_ID
from homeassistant.core import HomeAssistant

View File

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

View File

@@ -2,16 +2,21 @@
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from typing import Any, Final
from aioairzone.common import GrilleAngle, SleepTimeout
from aioairzone.common import GrilleAngle, OperationMode, SleepTimeout
from aioairzone.const import (
API_COLD_ANGLE,
API_HEAT_ANGLE,
API_MODE,
API_SLEEP,
AZD_COLD_ANGLE,
AZD_HEAT_ANGLE,
AZD_MASTER,
AZD_MODE,
AZD_MODES,
AZD_SLEEP,
AZD_ZONES,
)
@@ -33,6 +38,9 @@ class AirzoneSelectDescription(SelectEntityDescription):
api_param: str
options_dict: dict[str, int]
options_fn: Callable[[dict[str, Any], dict[str, int]], list[str]] = (
lambda zone_data, value: list(value)
)
GRILLE_ANGLE_DICT: Final[dict[str, int]] = {
@@ -42,6 +50,15 @@ GRILLE_ANGLE_DICT: Final[dict[str, int]] = {
"40deg": GrilleAngle.DEG_40,
}
MODE_DICT: Final[dict[str, int]] = {
"cool": OperationMode.COOLING,
"dry": OperationMode.DRY,
"fan": OperationMode.FAN,
"heat": OperationMode.HEATING,
"heat_cool": OperationMode.AUTO,
"stop": OperationMode.STOP,
}
SLEEP_DICT: Final[dict[str, int]] = {
"off": SleepTimeout.SLEEP_OFF,
"30m": SleepTimeout.SLEEP_30,
@@ -50,6 +67,26 @@ SLEEP_DICT: Final[dict[str, int]] = {
}
def main_zone_options(
zone_data: dict[str, Any],
options: dict[str, int],
) -> list[str]:
"""Filter available modes."""
modes = zone_data.get(AZD_MODES, [])
return [k for k, v in options.items() if v in modes]
MAIN_ZONE_SELECT_TYPES: Final[tuple[AirzoneSelectDescription, ...]] = (
AirzoneSelectDescription(
api_param=API_MODE,
key=AZD_MODE,
options_dict=MODE_DICT,
options_fn=main_zone_options,
translation_key="modes",
),
)
ZONE_SELECT_TYPES: Final[tuple[AirzoneSelectDescription, ...]] = (
AirzoneSelectDescription(
api_param=API_COLD_ANGLE,
@@ -95,7 +132,20 @@ async def async_setup_entry(
received_zones = set(zones_data)
new_zones = received_zones - added_zones
if new_zones:
async_add_entities(
entities: list[AirzoneZoneSelect] = [
AirzoneZoneSelect(
coordinator,
description,
entry,
system_zone_id,
zones_data.get(system_zone_id),
)
for system_zone_id in new_zones
for description in MAIN_ZONE_SELECT_TYPES
if description.key in zones_data.get(system_zone_id)
and zones_data.get(system_zone_id).get(AZD_MASTER) is True
]
entities += [
AirzoneZoneSelect(
coordinator,
description,
@@ -106,7 +156,8 @@ async def async_setup_entry(
for system_zone_id in new_zones
for description in ZONE_SELECT_TYPES
if description.key in zones_data.get(system_zone_id)
)
]
async_add_entities(entities)
added_zones.update(new_zones)
entry.async_on_unload(coordinator.async_add_listener(_async_entity_listener))
@@ -153,6 +204,11 @@ class AirzoneZoneSelect(AirzoneZoneEntity, AirzoneBaseSelect):
f"{self._attr_unique_id}_{system_zone_id}_{description.key}"
)
self.entity_description = description
self._attr_options = self.entity_description.options_fn(
zone_data, description.options_dict
)
self.values_dict = {v: k for k, v in description.options_dict.items()}
self._async_update_attrs()

View File

@@ -52,6 +52,17 @@
"40deg": "[%key:component::airzone::entity::select::grille_angles::state::40deg%]"
}
},
"modes": {
"name": "Mode",
"state": {
"cool": "[%key:component::climate::entity_component::_::state::cool%]",
"dry": "[%key:component::climate::entity_component::_::state::dry%]",
"fan": "[%key:component::climate::entity_component::_::state::fan_only%]",
"heat": "[%key:component::climate::entity_component::_::state::heat%]",
"heat_cool": "[%key:component::climate::entity_component::_::state::heat_cool%]",
"stop": "Stop"
}
},
"sleep_times": {
"name": "Sleep",
"state": {

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

@@ -21,7 +21,7 @@ from aioairzone_cloud.const import (
RAW_WEBSERVERS,
)
from homeassistant.components.diagnostics.util import async_redact_data
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant

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.4"]
"requirements": ["aioairzone-cloud==0.6.5"]
}

View File

@@ -10,8 +10,21 @@ from aioairzone_cloud.const import (
AZD_AQ_PM_1,
AZD_AQ_PM_2P5,
AZD_AQ_PM_10,
AZD_CPU_USAGE,
AZD_HUMIDITY,
AZD_INDOOR_EXCHANGER_TEMP,
AZD_INDOOR_RETURN_TEMP,
AZD_INDOOR_WORK_TEMP,
AZD_MEMORY_FREE,
AZD_OUTDOOR_CONDENSER_PRESS,
AZD_OUTDOOR_DISCHARGE_TEMP,
AZD_OUTDOOR_ELECTRIC_CURRENT,
AZD_OUTDOOR_EVAPORATOR_PRESS,
AZD_OUTDOOR_EXCHANGER_TEMP,
AZD_OUTDOOR_TEMP,
AZD_TEMP,
AZD_THERMOSTAT_BATTERY,
AZD_THERMOSTAT_COVERAGE,
AZD_WEBSERVERS,
AZD_WIFI_RSSI,
AZD_ZONES,
@@ -28,6 +41,9 @@ from homeassistant.const import (
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
EntityCategory,
UnitOfElectricCurrent,
UnitOfInformation,
UnitOfPressure,
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
@@ -43,6 +59,78 @@ from .entity import (
)
AIDOO_SENSOR_TYPES: Final[tuple[SensorEntityDescription, ...]] = (
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_INDOOR_EXCHANGER_TEMP,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
translation_key="indoor_exchanger_temp",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_INDOOR_RETURN_TEMP,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
translation_key="indoor_return_temp",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_INDOOR_WORK_TEMP,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
translation_key="indoor_work_temp",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_OUTDOOR_CONDENSER_PRESS,
native_unit_of_measurement=UnitOfPressure.KPA,
state_class=SensorStateClass.MEASUREMENT,
translation_key="outdoor_condenser_press",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_OUTDOOR_DISCHARGE_TEMP,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
translation_key="outdoor_discharge_temp",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_OUTDOOR_ELECTRIC_CURRENT,
native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
state_class=SensorStateClass.MEASUREMENT,
translation_key="outdoor_electric_current",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_OUTDOOR_EVAPORATOR_PRESS,
native_unit_of_measurement=UnitOfPressure.KPA,
state_class=SensorStateClass.MEASUREMENT,
translation_key="outdoor_evaporator_press",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_OUTDOOR_EXCHANGER_TEMP,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
translation_key="outdoor_exchanger_temp",
),
SensorEntityDescription(
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
key=AZD_OUTDOOR_TEMP,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
state_class=SensorStateClass.MEASUREMENT,
translation_key="outdoor_temp",
),
SensorEntityDescription(
device_class=SensorDeviceClass.TEMPERATURE,
key=AZD_TEMP,
@@ -52,6 +140,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 +202,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 +272,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."""

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