1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00
Commit Graph

92612 Commits

Author SHA1 Message Date
Imeon-Energy
b51bb668c6 Add imeon inverter integration (#130958)
* Initial commit prototype with empty inverters

* Use modern methods and global variable for character strings

* Platform that get the value of the meter in an entity

* Add check if inverter already configured

* Add tests for config_flow

* Update "imeon_inverter_api" in manifest.json

* Update "imeon_inverter_api" in requirements_all.txt

* Remove async_setup, clean comments, use of const PLATFORM

* Use of global variable and remove configuration of device name

* Use of entry.data instead of user_input variable

* Remove services.yaml

* No quality scale

* Use of common string

* Add sensors, use of EntityDescription and '_attr_device_info'

* Remove name from config_flow tests

* Use sentence case and change integration from hub to device

* Check connection before add platform in config_flow

* Use of _async_setup and minor changes

* Improve sensor description

* Add quality_scale.yaml

* Update the quality_scale.json

* Add tests for host invalid, route invalid, exception and invalid auth

* Type more precisely 'DataUpdateCoordinator'

* Don't use 'self.data' directly in coordinator and minor corrections

* Complete full quality_scale.yaml

* Use of fixtures in the tests

* Add snapshot tests for sensors

* Refactor the try except and use serial as unique id

* Change API version

* Add test for sensor

* Mock the api to generate the snapshot

* New type for async_add_entries

* Except timeout error for get_serial

* Add test for get_serial timeout error

* Move store data out of the try

* Use sentence case

* Use of fixtures

* Use separates fixtures

* Mock the api

* Put sensors fake data in json fixture file

* Use of a const interval, remove except timeout, enhance lisibility

* Try to use same fixture in test_config_flow

* Try use same fixture for all mock of inverter

* Modify the fixture in the context manager, correct the tests

* Fixture return mock.__aenter__ directly

* Adjust code clarity

* Bring all tests to either ABORT or CREATE_ENTRY

* Make the try except more concise

* Synthetize exception tests into one

* Add code clarity

* Nitpick with the tests

* Use unique id sensor

* Log an error on unknown error

* Remove useless comments, disable always_update and better use of timeout

* Adjust units, set the model and software version

* Set full name for Battery SOC and use ip instead of url

* Use of host instead of IP

* Fix the unit of economy factor

* Reduce mornitoring data display precision and update snapshots

* Remove unused variable HUBs

* Fix device info

* Set address label 'Host or IP'

* Fix the config_flow tests

* Re evaluate the quality_scale

* Use of 'host' instead of 'address'

* Make inverter discoverable by ssdp

* Add test ssdp configuration already exist

* Add exemption in quality scale

* Test abort ssdp if serial is unknown

* Handle update error

* Raise other exceptions

* Handle ClientError and ValueError from the api

* Update homeassistant/components/imeon_inverter/quality_scale.yaml

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-04-10 08:25:35 +02:00
henryptung
87e5b024c1 Bump led_ble to 1.1.7 (#142629)
changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v1.1.6...v1.1.7
2025-04-09 16:52:10 -10:00
J. Nick Koston
54f3bb8ddf Bump pydantic to 2.11.13 (#142612)
changelog: https://github.com/pydantic/pydantic/compare/v2.11.2...v2.11.3
2025-04-09 16:30:26 -10:00
J. Nick Koston
fa291c20e5 Pin multidict to >= 6.4.2 to resolve memory leaks (#142614)
* Pin multidict to >= 6.4.1 to resolve memory leaks

https://github.com/aio-libs/multidict/issues/1134
https://github.com/aio-libs/multidict/issues/1131
https://github.com/aio-libs/multidict/releases/tag/v6.4.1
https://github.com/aio-libs/multidict/releases/tag/v6.4.0

* Apply suggestions from code review
2025-04-09 15:48:29 -10:00
Abílio Costa
dd97d5bc7e Move Whirlpool test and clean unused code (#142617) 2025-04-10 00:59:00 +02:00
Norbert Rittel
b3fccc0de6 Replace typo "to login to" with "to log in to" in reolink (#142577) 2025-04-09 22:46:02 +02:00
Maarten Staa
9fe306f056 Add support for air purifiers in HomeKit (#142467)
* Add support for air purifier type in HomeKit.

Any fan and PM2.5 in the same device will be treated as an air purifier.

type_air_purifiers.py heavily based on type_fans.py -
I tried extending type_fans.py but this looked better to me.

* Refactor to make AirPurifier class extend Fan.

* Ensure all chars are added before creating service

* Add support for switching automatic mode.

* Add test for auto/manual switch

* Add support for air purifier type in HomeKit.

Any fan and PM2.5 in the same device will be treated as an air purifier.

type_air_purifiers.py heavily based on type_fans.py -
I tried extending type_fans.py but this looked better to me.

* Add support for air purifier type in HomeKit.

Any fan and PM2.5 in the same device will be treated as an air purifier.

type_air_purifiers.py heavily based on type_fans.py -
I tried extending type_fans.py but this looked better to me.

* Refactor to make AirPurifier class extend Fan.

* Ensure all chars are added before creating service

* Add support for switching automatic mode.

* Add test for auto/manual switch

* Add support for air purifier type in HomeKit.

Any fan and PM2.5 in the same device will be treated as an air purifier.

type_air_purifiers.py heavily based on type_fans.py -
I tried extending type_fans.py but this looked better to me.

* Improve fan config: allow setting fan type (fan or air purifier)

Be more explicit than assuming a fan is an air purifier if it has a PM2.5 sensor. Set defaults based on the presence of sensors.

* Fix return type annotation for fan/air purifier create_services

* Allow linking air purifier filter level/change indicator

* Remove no longer needed if statement in fan init

* Fix up types and clean up code

* Update homekit tests to account for air purifiers

* Fix pylint errors

* Fix mypy errors

* Improve type annotations

* Improve readability of auto preset mode discovery

* Test air purifier with 'Auto' preset mode

* Handle case with a single preset mode

* Test air purifier edge cases: state updates to same value, and removed linked entities

* Don't create 'auto mode' switch for air purifiers

This is already exposed as a target mode on the air purifier service itself

* Handle unavailable states in air purifier

Also don't remove device class when updating state in test

* Reduce branching in air purifier test

* Split up air purifier tests for with and without auto presets, to reduce branching

* Handle unavailable states in air purifier more explicitly

* Use constant for ignored state values

* Use a set for ignored_states

* Update tests/components/homekit/test_type_air_purifiers.py

---------

Co-authored-by: Andrew Kurowski <62596884+ak6i@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick+github@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-04-09 10:20:21 -10:00
skrynklarn
1b66278a68 Extend UnitOfReactivePower with 'kvar' (#142558) 2025-04-09 20:22:02 +01:00
Christopher Fenner
76015740f8 Fix Quickmode handling in ViCare integration (#142561)
* only check quickmode if supported

* update snapshot

* revert
2025-04-09 20:36:41 +02:00
Simone Chemelli
816edb66c7 Add full test coverage for Fritz config_flow (#142418) 2025-04-09 20:22:26 +02:00
Norbert Rittel
82c688e3be Replace typo "to login" with "to log in" in smarttub (#142600) 2025-04-09 12:13:06 -05:00
Norbert Rittel
46d6241f58 Replace typo "to login to" with "to log in to" in traccar_server (#142599) 2025-04-09 12:12:47 -05:00
Norbert Rittel
b5083ce973 Replace typo "to login to" with "to log in to" in ohme (#142578) 2025-04-09 12:12:26 -05:00
Norbert Rittel
1663756983 Replace typo "to login to" with "to log in to" in fyta (#142576) 2025-04-09 12:06:00 -05:00
Erik Montnemery
f344314762 Abort if a flow is removed during a step (#142138)
* Abort if a flow is removed during a step

* Reorganize code

* Only call _set_pending_import_done if an entry is created

* Try a new approach

* Add tests

* Update tests
2025-04-09 07:04:41 -10:00
TimL
7f4d178781 Make exceptions translatable for SMLIGHT (#142587)
* Exceptions translations

* check off quality scale

* translate another exception
2025-04-09 12:04:19 -05:00
Joost Lekkerkerker
ba629fbddb Add Syncthru platform tests (#142596) 2025-04-09 12:00:56 -05:00
Norbert Rittel
157c776019 Replace typo "to login to" with "to log in to" in mqtt (#142575)
Fix typo "to login to" with "to log in to" in `mqtt`
2025-04-09 18:41:46 +02:00
Erik Montnemery
70aacfce98 Improve tests of clean up when reauth flow aborts (#142592) 2025-04-09 16:47:04 +02:00
Simone Chemelli
8625a36d1d Add missing strings to Fritz (#142413)
* Add missing strings to Fritz

* update quality scale

* add common section

this avoids later re-structuring and re-translating

* fix strings

* fix strings

* apply review comment

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2025-04-09 16:44:36 +02:00
Norbert Rittel
002f5b5ee6 Replace typo "to login to" with "to log in to" in bring (#142579) 2025-04-09 16:26:12 +02:00
Erwin Douna
b058b2574f SMA add DHCP discovery (#135843)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-04-09 16:24:30 +02:00
Erik Montnemery
170e6bdcab Protect hass data keys in setup.py (#142589) 2025-04-09 15:27:52 +02:00
Erik Montnemery
075a0ad780 Add tests of behavior when completing an aborted data entry flow (#142590) 2025-04-09 15:17:54 +02:00
Erik Montnemery
e7c2e86c93 Attempt to fix flaky bootstrap test (#142536) 2025-04-09 13:37:21 +02:00
Erik Montnemery
3ca1f07cc4 Remove meaningless asserts in some hassio tests (#142583) 2025-04-09 12:13:56 +02:00
TimL
762c752918 Set quality scale to silver for SMLIGHT integration (#142448)
* Add quality scale for SMLIGHT

* Review and update all rules

* Add missing data_description strings as detected by CI

* update for a few merged docs PR's

* Parallel updates done

https://github.com/home-assistant/core/pull/142455

* Set quality scale to silver

* Update homeassistant/components/smlight/quality_scale.yaml

* Update homeassistant/components/smlight/quality_scale.yaml

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-04-09 08:55:09 +02:00
Maciej Bieniek
06a2de4d1c Fix Shelly initialization if device runs large script (#142487)
* Don't check the whole script to see if it generates events

* Fix tests

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-04-08 20:53:44 -10:00
Fredrik Erlandsson
d4f47bfc6b Fix ssl_cert load from config_flow (#142570)
fix ssl_cert load from config_flow
2025-04-08 20:51:44 -10:00
puddly
271a4ba7c8 Fix Core deadlock by ensuring only one ZHA log queue handler thread is running at a time (#142568)
Ensure only one log queue handler is running at a time
2025-04-08 22:02:51 -04:00
Joost Lekkerkerker
528ca49368 Improve Syncthru tests (#142338) 2025-04-08 23:55:00 +02:00
dependabot[bot]
5d8c90ae0d Bump github/codeql-action from 3.28.13 to 3.28.15 (#142516)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.13 to 3.28.15.
- [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.28.13...v3.28.15)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.15
  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>
2025-04-09 00:42:12 +03:00
Abílio Costa
f872dc8948 Use base entity class for Whirlpool climate (#142548)
* Use base entity class for Whirlpool climate

* Set model_id instead of model
2025-04-09 00:39:45 +03:00
Andrew Sayre
ec520b8cf5 Bump pyheos to v1.0.5 (#142554)
Update pyheos
2025-04-09 00:38:48 +03:00
tronikos
ff8b96a19f Fix range of Google Generative AI temperature (#142513) 2025-04-08 20:46:09 +02:00
Thomas55555
f6b55c7eb9 Fix adding devices in Husqvarna Automower (#142549) 2025-04-08 20:40:13 +02:00
elmurato
3aae280de5 Fix blocking call in Pterodactyl (#142518)
* Fix blocking call

* Group blocking calls into a single executor job, catch StopIteration
2025-04-08 18:52:26 +02:00
Norbert Rittel
6c1f9e39c4 Improve friendly names of rf_strength and wifi_strength in netatmo (#141673)
* Improve friendly names of `rf_strength` and `wifi_strength` in `netatmo`

- Replace "Radio" with "RF strength" for `rf_strength`
- Replace "Wi-Fi" with "Wi-Fi strength" for `wifi_strength`

* Update test_sensor.ambr

* Update test_sensor.py

* Update test_sensor.py

* Update test_sensor.ambr
2025-04-08 18:16:20 +02:00
Norbert Rittel
a957db7c27 Use common states for "Low" and "High" in tuya (#142491) 2025-04-08 18:15:57 +02:00
Norbert Rittel
3a670e74f7 Use common state for "Normal" in yolink (#142544)
Also reordered the three states alphabetically which groups the common ones, too.
2025-04-08 18:15:05 +02:00
Barry vd. Heuvel
a114ecfb73 Bump weheat to 2025.3.7 (#142539) 2025-04-08 17:18:43 +02:00
J. Nick Koston
626935ee14 Move inkbird coordinator logic into coordinator.py (#142517)
* Move inkbird coordinator logic into coordinator.py

Not a functional change, one to one relocation

* Move inkbird coordinator logic into coordinator.py

Not a functional change, one to one copy

* Move inkbird coordinator logic into coordinator.py

Not a functional change, one to one copy
2025-04-08 16:59:01 +02:00
Norbert Rittel
3f2975e93f Use common state for "Normal" in tessie / teslemetry / tesla_fleet (#142515)
* Use common state for "Normal" in `tessie`

* Use common state for "Normal" in `teslemetry`

* Use common state for "Normal" in `tesla_fleet`
2025-04-08 16:57:30 +02:00
Martin Hjelmare
38bf06e179 Improve parameters in Z-Wave init tests (#142532) 2025-04-08 15:18:22 +01:00
Marcel van der Veldt
12fc458abb Fix small typo in Music Assistant integration causing unavailable players (#142535)
Fix small typo in Music Assistant integration causing issues with adding players
2025-04-08 15:44:35 +02:00
Erik Montnemery
0ed7348d2d Fix typos in hassio (#142529) 2025-04-08 15:05:19 +02:00
Ville Skyttä
67e7554702 Increase huawei_lte scan interval to 30 seconds (#142533)
To follow what other similar integrations do, namely at least asuswrt
and netgear.

Refs https://developers.home-assistant.io/docs/core/integration-quality-scale/rules/appropriate-polling
2025-04-08 14:57:07 +02:00
Arie Catsman
74141c39ea Remember prior config flow user entries for enphase_envoy (#142457)
* Remember prior config flow user entries for enphase_envoy

* Do not reflect password in config userforms

* de-duplicate avoid reflect key code
2025-04-08 02:22:52 -10:00
Martin Hjelmare
cb09207cd7 Improve Supervisor addon_running test fixture (#142525) 2025-04-08 14:03:16 +02:00
Sanjay Govind
894cc7cc4d Add sensor platform to bosch_alarm (#142151)
* add sensor platform to bosch_alarm

* add icon translations for sensors

* translate entity names

* translate entity names

* translate entity names

* update snapshots

* translate ready to arm sensor

* translate ready to arm sensor

* update tests

* update translations

* remove history sensor, we will replace it with an events sensor later

* fix tests

* fix tests

* fix tests

* update tests

* fix sensor links

* only call async_add_entities once

* convert area alarms to sensors based on type

* add sensor for alarms

* add icons

* cleanup area sensor

* add available

* loop over dict

* use entity description

* use entity description

* clean up entity descriptions

* observe_alarms and observe_ready

* refactor alarm_control_panel to use base entity

* remove more old sensors

* add unit of measurement

* update test snapshots

* use correct observer
2025-04-08 13:55:43 +02:00