Commit Graph
69026 Commits
Author SHA1 Message Date
Christopher Fenner c3acfca62e Merge branch 'dev' into async-2 2023-11-27 22:01:31 +01:00
Ville Skyttä fd5cda4ec6 Issue bytes vs str related warnings from tests (#101186) 2023-11-27 21:59:54 +01:00
Christopher Fenner 40abc10362 use async executor 2023-11-27 21:50:23 +01:00
sdb9696 5cde367366 Bump ring_doorbell to 0.8.3 (#104611) 2023-11-27 21:49:33 +01:00
Ville Skyttä 04ba7fcbf4 Update leftover comment reference from black to ruff (#104605) 2023-11-27 21:42:11 +01:00
Jan-Philipp Benecke 7efc581a48 Remove duplicate fixture from bsblan (#104612) 2023-11-27 21:35:13 +01:00
Aarni Koskela b994141bc6 CI: simplify Ruff-related things (#104602) 2023-11-27 21:23:37 +01:00
On Freund ba33ad6b18 OurGroceries review comments (#104606) 2023-11-27 20:21:07 +01:00
Thijs Putman 360ef894a7 Use non-persistent connection for MPD (#94507)
* Do not use a persistent connection to MPD

In other words, don't rely on the connection management provided by
"python-mpd2". Instead of keeping the connection to MPD open, we
explicitly connect before and disconnect after each command.

There is probably a bit of overhead to this, but as the integration
uses a local-polling approach to begin with, no functionality is lost or
degraded.

This change greatly hardens the MPD integration against both network
issues and problems with the daemon itself. All connection-related
failure modes have effectively been removed.

* Update state retrieval methods

Only "async_get_media_image" attempts to connect, all others are either
called from there, or from the main "async_update" method (see previous
commit) which also attempts to connect.

So, this commit mainly revolves around gracefully handling situations
where no connection is available when trying to retrieve MPD state.

Finally, note the removal of "self._commands". This property is only
used at the start of "_async_get_file_image_response" and was thus
changed into a local variable.

* Update media-player control methods

These all need to explicitly connect to MPD as part of their flow.

* Correct ruff failure (auto-fixed)

* Use "async_timeout.timeout" context manager

* Minor changes

* Replace "async_timeout" with "asyncio.timeout"

* Initialise "self._status" to empty dictionary

Used to be initialised as None, which caused "NoneType is not iterable"
type of issues in case of an unexpected disconnect (at which point
status gets set to None again). Instead of guarding against None
everywhere, using an empty dictionary seemed more prudent...

Furthermore, more cautiously access its members to prevent potential
KeyError-s in similar cases.

* Fix livelock in "async_mute_volume()"

This method doesn't need a connection; it calls into two other methods
that actually connect to MPD – attempting to connect from here resulted
in a livelock.
2023-11-27 18:35:46 +01:00
Ville Skyttä 2a4ab3d53d Support HTTPS connections to Huawei LTE devices (#86119)
* Support HTTPS connections to Huawei LTE devices

Not all devices support HTTPS, so we default to plain HTTP still.

Ones that do are very likely to have certificates that do not pass
hostname verification, and are either self signed or issued by an
untrusted CA. Add option to use unverified HTTPS to make it possible to
connect to these, and when in effect, filter urllib3's related warnings
about insecure connections to the hostname in question.

* Use common config key and strings for certificate verification settings

Even though the wording might be slightly suboptimal here, it's better
to be consistent across the codebase than to finetune on this level.

This also switches the default the other way around: verification is
now disabled by default. This is not a good general default, but for
this particular case setups where the verification would succeed would
be so rare and require considerable local setup that it's very
unlikely to happen in practice.

* Add config flow tests

* Mock logout for better test coverage

* Set up custom requests session only when using unverified https

* Add https config flow test case

* Make better use of verify SSL default
2023-11-27 18:03:29 +01:00
Pascal Reeb 239d7c9d80 Enable the use of non-encrypted token in Nuki (#104007) 2023-11-27 17:28:13 +01:00
Allen PorterandMartin Hjelmare 664aca2c68 Fix rainbird duplicate devices (#104528)
* Repair duplicate devices added to the rainbird integration

* Apply suggestions from code review

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

* Update tests/components/rainbird/test_init.py

* Remove use of config_entry.async_setup

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-11-27 07:43:03 -08:00
J. Nick Koston 74d7d02833 Bump aiohttp-fast-url-dispatcher to 0.3.0 (#104592) 2023-11-27 09:04:04 -06:00
Christopher Fenner a5934e9acc Handle preset change errors in ViCare integration (#103992) 2023-11-27 15:35:43 +01:00
Aarni KoskelaandFranck Nijhof 706add4a57 Switch formatting from black to ruff-format (#102893)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:38:59 +01:00
Robert ReschandFranck Nijhof cf9b0e804f Deprecate legacy api auth provider (#104409)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-11-27 14:16:18 +01:00
Matthias Alphart 5550dcbec8 Add textual representation entities for Fronius status codes (#94155)
* optionally decouple `EntityDescription.key` from API response key

this makes it possible to have multiple entities for a single API response field

* Add optional `value_fn` to EntityDescriptions

eg. to be able to map a API response value to a different value (status_code -> message)

* Add inverter `status_message` entity

* Add meter `meter_location_description` entity

* add external battery state

* Make Ohmpilot entity state translateable

* use built-in StrEnum

* test coverage

* remove unnecessary checks

None is handled before
2023-11-27 13:59:25 +01:00
Marc Mueller ba8e2ed7d6 Improve picnic typing (#104587) 2023-11-27 13:13:02 +01:00
epenet a5fd479608 Bump sfrbox-api to 0.0.8 (#104580) 2023-11-27 12:30:51 +01:00
Maciej Bieniek 855c2da64e Bump gios to version 3.2.2 (#104582) 2023-11-27 12:15:55 +01:00
CodingSquirrel b4553f19a1 Poll econet water heater once an hour (#90961) 2023-11-27 11:16:10 +01:00
mkmer 669b347ed1 Add init test to Blink (#103263) 2023-11-27 11:13:40 +01:00
Joost Lekkerkerker ccc8804906 Bump aiowithings to 2.0.0 (#104579) 2023-11-27 10:53:41 +01:00
ufodone 9907e11b03 Remove code owner for envisalink integration (#103864) 2023-11-27 09:59:18 +01:00
Maciej Bieniek b3ff30a9c8 Bump accuweather to version 2.1.1 (#104563) 2023-11-27 09:49:46 +01:00
epenet 5ba70ef2cb Fix AccessDeniedException handling in Renault (#104574) 2023-11-27 09:19:58 +01:00
Jesse Hills 95c771e330 Send esphome tts_stream event after audio bytes are actually loaded into memory (#104448)
Send tts_stream event after audio bytes are actually loaded into memory
2023-11-27 09:00:39 +01:00
J. Nick Koston 7fbf68fd11 Bump aioesphomeapi to 19.1.1 (#104569)
- Fixes races in bluetooth connections
- The client now has 100% coverage
- The library is approaching ~100% coverage
- Minor performance improvement

changelog: https://github.com/esphome/aioesphomeapi/compare/v19.1.0...v19.1.1

coverage: https://app.codecov.io/gh/esphome/aioesphomeapi/tree/main
2023-11-27 08:56:06 +01:00
Franck Nijhof 321b24b146 Improve user-facing error messages in HomeWizard Energy (#104547) 2023-11-27 07:47:46 +01:00
Maciej Bieniek 670e5a2eae Bump nettigo-air-monitor to version 2.2.2 (#104562)
Bump nettigo-air-monitor to version 2.2.2
2023-11-26 22:05:50 +01:00
Jan-Philipp Benecke b49505b390 Add reauth flow to co2signal (#104507) 2023-11-26 20:45:45 +01:00
Hessel 53e78cb017 Wallbox Change Minimum Value Charging Current (#104553) 2023-11-26 20:40:27 +01:00
J. Nick Koston 06b74249f7 Bump aioesphomeapi to 19.1.0 (#104557) 2023-11-26 19:48:35 +01:00
dotvav 087efb7545 Add Hitachi air to air heat pumps to the Climate platform (#104517) 2023-11-26 17:55:48 +01:00
jan iversen be889c89c1 Update modbus validate table to be 3 state, to simplify the code (#104514) 2023-11-26 17:49:51 +01:00
On Freund 6e5dfa0e9b Add OurGroceries integration (#103387)
* Add OurGroceries integration

* Handle review comments

* Fix coordinator test

* Additional review comments

* Address code review comments

* Remove devices
2023-11-26 17:38:47 +01:00
Jan Bouwhuis 8a1f7b6802 Add translation key for some mqtt exceptions (#104550) 2023-11-26 17:33:54 +01:00
Jan-Philipp BeneckeandJoost Lekkerkerker b314df272f Cleanup Discovergy a bit (#104552)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2023-11-26 17:32:47 +01:00
Christopher Fenner ad17acc6ca Fix async issue in ViCare integration (#104541)
* use async executor for get_circuits

* use async executor for get_burners and get_compressors
2023-11-26 15:28:58 +01:00
Maciej Bieniek 14387cf94b Remove Shelly Wall Display switch entity only if the relay is used as the thermostat actuator (#104506) 2023-11-26 14:46:29 +01:00
Maciej Bieniek c831802774 Bump nextdns to version 2.1.0 (#104545) 2023-11-26 13:14:01 +01:00
Bouwe Westerdijk 959b98be0e Plugwise: bug-fix for Anna + Techneco Elga combination (#104521) 2023-11-26 13:08:10 +01:00
Joost Lekkerkerker 2e1c722303 Add entity translations to Balboa (#104543) 2023-11-26 13:07:21 +01:00
Joost Lekkerkerker e3599bc26f Move APCUPSd coordinator to separate file (#104540) 2023-11-26 13:04:52 +01:00
Franck NijhofandDuco Sebel 32eab2c7ed Remove duplicate sensors on single phase HomeWizard meters (#104493)
Co-authored-by: Duco Sebel <74970928+DCSBL@users.noreply.github.com>
2023-11-26 11:42:47 +01:00
Joost Lekkerkerker 4a5b1ab301 Migrate Epson to has entity name (#98164) 2023-11-26 11:42:30 +01:00
Franck Nijhof bd27358398 Adjust HomeWizard test fixtures to match actual devices (#104537) 2023-11-26 11:09:14 +01:00
Christopher Fenner e2e58c4495 Fix translation key in ViCare integration (#104536)
fix translation key
2023-11-26 10:49:06 +01:00
Raman Gupta a074c06f92 Add alert to zwave_js device info page for custom device config (#104115) 2023-11-26 10:08:20 +01:00
Joakim Plate b42629ecf3 Update nibe heatpump dependency to 2.5.2 (#104526)
Bump nibe to 2.5.2
2023-11-26 03:51:55 +01:00