Commit Graph

5417 Commits

Author SHA1 Message Date
J. Nick Koston c3946159d8
Bump bleak-retry-connector to 2.8.3 (#81675)
Improves chances of making a BLE connection with the ESP32s

changelog: https://github.com/Bluetooth-Devices/bleak-retry-connector/compare/v2.8.2...v2.8.3
2022-11-07 00:45:53 +01:00
J. Nick Koston e7b5aaec47
Bump aioesphomeapi to 11.4.3 (#81676) 2022-11-06 17:13:14 -06:00
J. Nick Koston d3529cb346
Add missing h2 dep to iaqualink (#81630)
fixes https://github.com/home-assistant/core/issues/81439
2022-11-06 12:59:32 -06:00
J. Nick Koston 3630de909c
Bump aiohomekit to 2.2.17 (#81657)
Improve BLE pairing reliability, especially with esp32 proxies

changelog: https://github.com/Jc2k/aiohomekit/compare/2.2.16...2.2.17
2022-11-06 09:47:07 -06:00
J. Nick Koston b18a1e6d7c
Bump dbus-fast to 1.72.0 (#81574) 2022-11-06 08:12:58 -06:00
Klaas Schoute 4056f673b8
Fix watermeter issue for old P1 Monitor versions (#81570)
* Bump the python package version

* Add exception to check if user has a water meter
2022-11-06 14:51:19 +01:00
Sebastian Muszynski 4c65a2f455
Bump PyXiaomiGateway to 0.14.3 (#81603)
Fixes: #80249
2022-11-06 13:02:59 +01:00
J. Nick Koston cdec4fe110
Bump oralb-ble to 0.13.0 (#81622)
* Bump oralb-ble to 0.11.1

adds some more missing pressure mappings

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.10.2...v0.11.1

* bump again to update for additional reports

* bump again for more data from issue reports
2022-11-06 12:38:01 +01:00
Tobias Sauerwein 8e965eb56f
Bump pyatmo to 7.4.0 (#81636) 2022-11-06 10:21:48 +01:00
Allen Porter 2ad1d31119
Bump gcal_sync to 4.0.0 (#81562)
* Bump gcal_sync to 2.2.4

* Bump gcal sync to 4.0.0

* Add Calendar accessRole fields which are now required
2022-11-05 17:06:34 -07:00
Steven Looman a635e9c9d2
Fix repeating SSDP errors by checking address scope_ids and proper hostname (#81611) 2022-11-05 17:11:59 -05:00
J. Nick Koston 64a29fddb4
Bump aiohomekit to 2.2.16 (#81621) 2022-11-05 15:58:11 -05:00
Tim Rightnour 89ebca7594
Bump venstarcolortouch to 0.19 to fix API rev 3 devices (#81614) 2022-11-05 15:29:20 -05:00
Bouwe Westerdijk 5f9f956023
Bump plugwise to v0.25.7 (#81612) 2022-11-05 15:26:19 -05:00
Aaron Bach 5884f50a82
Bump pyairvisual to 2022.11.1 (#81556) 2022-11-05 12:58:47 -05:00
Nathan Spencer 24f218c46b
Bump pylitterbot to 2022.11.0 (#81572) 2022-11-05 15:57:57 +01:00
J. Nick Koston b313f37946
Bump nexia to 2.0.6 (#81474)
* Bump nexia to 2.0.6

- Marks thermostat unavailable when it is offline

* is property
2022-11-05 15:55:43 +01:00
J. Nick Koston 089c4a7da2
Bump bluetooth-adapters to 0.7.0 (#81576)
changelog: https://github.com/Bluetooth-Devices/bluetooth-adapters/releases/tag/v0.7.0
2022-11-05 10:44:05 +01:00
J. Nick Koston ca905a8c05
Bump dbus-fast to 1.71.0 (#81541)
performance improvements

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.67.0...v1.71.0
2022-11-04 15:29:15 +01:00
J. Nick Koston 2e92a0d1c2
Bump oralb-ble to 0.10.2 (#81537)
Fixes some more missing pressure mappings

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.10.1...v0.10.2
2022-11-04 14:42:37 +01:00
J. Nick Koston 93072d8ac5
Bump dbus-fast to 1.67.0 (#81517)
Bump dbus to 1.67.0

The bleak BlueZ clients use the negotiate_unix_fd path
which was not optimized but is now.  (The scanners already
used a fast path)

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.64.0...v1.67.0
2022-11-04 06:34:23 +01:00
Renat Sibgatulin dd5baa6e48
Add air-Q integration (air quality sensors) (#76999)
* Added initial files for air-Q integration

* Allow FIXME comments in pylint (temporary)

Also reintroduce --ignore-missing-annotations=y

* Set up air-q entry to connect to aioairq's API (initial attempt)

Also add necessary constants

* Implement a class for sensors and its update logic

Very early stage, WIP

* Zeroconf and authentication are working

* Complete the bare-bone minimal working version

Specifically, make AirQSensor update its values.

* Handle invalid authentication gracefully

* Handle ClientConnectionError gracefully

* Add field hint for the login form

The key in the schema, which defines the form in
`ConfigFlow.async_show_form` is looked up in both `airq/strings/json`
and `airq/translations/en.json`. I am still not 100% sure how this
lookup is performed. WIP

* Minor cleanups

* Extend sensor list to all supported by SensorDeviceClass

Also manage warming up sensors

* aioairq is published to PyPI and mentioned in requirements

* Reordered constants and list content alphabetically

As required by style guides. Also turned SENSOR_TYPES to a list

* Updated file docstrings for a dev unfamiliar w/homeassistant like myself

* Adding a bit of logging for the integration setup process

* Expose scan interval & smoothing flag

Also streamline test_authentication in config_flow.

* Fix a type annotation mistake

* Use as many constants from homeassistant.const as possible

My only concern is using CONST_IP_ADDRESS = "ip_address" for smth which
stands for both IP address and mDNS...

* Temporarily rollback ConfigFlow.async_step_configure and use defaults

TODO: implement OptionFlowHandler instead

* Define custom Coordinator, w subset of airq config

The latter is then accessed from entity / sensor constructors to define
correct DeviceInfo

* Provide translations to de & fr + minor changes to en

* Provide translations to ru + a minor en changes

* Make translation a little more helpful and polite

* Fix devicename and entry title

* Remove stale commented out code

* Test config_flow

At this point two helper functions which interact with the external
library are not tested

* Clean up unrelated and meant as temporary changes

* Clean up unnecessary comments meant for internal use

* Move fetching config to a dedicated async coordinator method

As opposed to it being a potentially poorly justified step in
async_setup_entry

* Remove zeroconf support since it is not yet ready

* Remove translations other than en

* Remove unnecessary comments, manifest.json entries, and constants

* Improve exception handling

- `_LOGGER` uses `debug` and not `error` levels.
- Drop `ClientConnect` and catch `aiohttop.ClientConnectError` directly
- Drop `Exception` as it is not expected from `aioairq` (remove the
  corresponding test too)

* Drop strings for obsolete errors and steps

Specifically, `unknown` error isn't caught any more. `configure` step
has also been removed.

* Refactor en.json to be consistent with strings.json

* Move target_route from a coordinator argument to a constant

At this point a user cannot configure the target_route route, thus it
does not make sense to expose it half-heartedly in
`AirQCoordinator.__init__`, since it cannot be accessed.

* Fix an async call in `AirQCoordinator.async_setup_entry`

* Refactor underlying aioairq API

- Use `homeassistant.helpers.aiohttp.async_get_clientsession` and pass a
  single persistent session to `aioariq.AirQ.__init__`
- `aioairq.AirQ.fetch_device_info` now returns a `DeviceInfo` object heavily
  inspired and almost compatible with `homeassistant.helpers.entity.DeviceInfo`.
  Make heavier use of this object and define a single `DeviceInfo` in the
  `AirQCoordinator` (instead of recreating the same object for each sensor
  of the device in `sensor.AirQSensor`)
- Drop two helper functions in `config_flow.py` and operate on `aioariq.AirQ`
  methods directly

* Fix the version of aioairq

* Add 15 more sensors + icons

* Remove cnt* & TypPS, change units of health & performance

* Add 12 more sensors

* Add a missing icon

* Gracefully handle device not being available on setup

If the device and the host are not on the same WiFi,
ServerTimeoutError is raised, which is caught by
ClientConnectionError.
If the device is powered off, ClientConnectionError is expected.
In both cases, ConfigEntryNotReady is raised, as prescribed by the docs.
Newer version of aioairq times-out far quicker than the default 5 mins.

* Rename two sensors

* Validate provided IP address / mDNS

aioairq now raises InvalidInput if provided IP / mDNS does not seem
valid. Handle this exception correctly

* Apply suggestions from code review

Clean up the comments and rename the logger

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>

* Only fetch device info during the first refresh

- Fetched info is stored in AirQCoordinator.device_info.
- In `AirQSensor.native_value` only multiply by the factor if
  the sensor reading is not None
- Fix the tests for ConfigFlow for aioairq==0.2.3. Specifically
  make the dummy data pass the new validation step upstream
  + add a test which fails it

* Drop custom device classes for now

* Apply suggestions from code review

Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>

* Only fetch device info during ConfigFlow.async_step_user

Store the result obtained by `airq.fetch_device_info` it in
`config_entry.data`. Pass the entire config entry to `AirQCoordinator`
and build the entire `homeassistant.helpers.entity.DeviceInfo` in the
`AirQCoordinator.__init__`. This makes
`AirQCoordinator._async_fetch_device_info` and overloaded
`AirQCoordinator._async_config_entry_first_refresh` obsolete.

Bump aioairq version.

Turn update_interval from `AirQCoordinator.__init__` argument into a
contestant.

* Custom entity description exposing a hook to modify sensor value

Use a `AirQEntityDescription` with a callable `value_fn` which allows to
change the sensor value retrieved from the device. Note that the
callable does not handle data retrieval itself (even from
`coordinator.data`). Instead it is purely a hook to transform obtained
value.

* Avoid duplicated use of unique_id

Device info is fetched  during the `ConfigFlow.async_user_step`.
`unique_id` is taken from the device info and is **not** stored
in `config_entry.data`. Subsequently `config_entry.unique_id` is
used instead.

* Drop unnecessary try-except

Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>

* Clarify the use of value_transform_fn

* Refactor the use of lambdas in AirQEntityDescription

Now it is the job of the callable under `value` to get the sensor
reading from the coordinator's data. Factoring this functionality into a
callback decouples  the key of the description from the key of dict,
returned by the API, so `AirQEntityDescription` no longer requires its key
to be set to smth clearly internal (e.g. `nh3_MR100`).

* Use a callback to update native_value

Since all `native_value`s are updated synchronously, it can as well be
done in a callback for better state consistency (right?)

* Revert the description keys to match data keys

Must match given the current way of identifying available sensors. On a
broader scale, they must match to be able to relate the descriptions to
sensors, unless a separate lookup table is maintained.

* Reduce number of loops when adding sensors

Filtering warming up sensors and non-sensor keys can be combined with
adding entities.

* Remove obsolete imports

* Update integrations.json

* Add integration_type

Integration supports multiple devices => hub

Co-authored-by: dl2080 <daniel.lehmann@runbox.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Artem Draft <Drafteed@users.noreply.github.com>
Co-authored-by: Daniel Lehmann <43613560+dl2080@users.noreply.github.com>
Co-authored-by: Martin Selbmann <job@martin-selbmann.de>
2022-11-03 23:13:57 +01:00
J. Nick Koston 08936e4041
Bump oralb-ble to 0.10.1 (#81491)
fixes #81489

changelog: https://github.com/Bluetooth-Devices/oralb-ble/compare/v0.10.0...v0.10.1
2022-11-03 20:35:05 +01:00
mkmer 9c85d22bab
Bump AIOAladdinConnect to 0.1.47 (#81479) 2022-11-03 15:39:02 +01:00
Dennis Schroer dcd1ab7ec3
Update energyflip-client dependency to 0.2.2 (#81426) 2022-11-03 12:53:58 +01:00
J. Nick Koston 905005e1e8
Bump dbus-fast 1.64.0 (#81462)
- Performance improvements

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v1.61.1...v1.64.0
2022-11-03 12:51:38 +01:00
J. Nick Koston 454f328a36
Bump aiohomekit to 2.2.14 (#81454) 2022-11-03 11:14:01 +01:00
Austin Brunkhorst 28989754cd
Update pysnooz to 0.8.3 (#81428) 2022-11-03 03:10:07 +01:00
Bram Kragten 76819d81be
Update frontend to 20221102.1 (#81422) 2022-11-02 20:25:31 +01:00
Allen Porter e1be63f26c
Bump gcal_sync to 2.2.3 (#81414) 2022-11-02 17:57:23 +01:00
Poltorak Serguei 7af0f16f79
Rework Z-Wave.Me to group entities of one physical devices (#78553)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Dmitry Vlasov <kerbalspacema@gmail.com>
2022-11-02 17:53:10 +01:00
Franck Nijhof 71920cd687
Update spotipy to 2.21.0 (#81395) 2022-11-02 15:02:09 +01:00
Daniel Hjelseth Høyer b2a4228dae
Update adax library to 0.1.5 (#81407) 2022-11-02 14:50:38 +01:00
Bram Kragten 44f63252e7
Update frontend to 20221102.0 (#81405) 2022-11-02 11:52:19 +01:00
J. Nick Koston f445b96a4e
Bump aiohomekit to 2.2.13 (#81398) 2022-11-02 11:08:16 +01:00
J. Nick Koston 10aa1d386a
Bump dbus-fast to 1.61.1 (#81386) 2022-11-01 20:52:13 -04:00
J. Nick Koston 054a271bd2
Bump aiohomekit to 2.2.12 (#81372)
* Bump aiohomekit to 2.2.12

Fixes a missing lock which was noticable on the esp32s
since they disconnect right away when you ask for gatt
notify.

https://github.com/Jc2k/aiohomekit/compare/2.2.11...2.2.12

* empty
2022-11-02 00:00:04 +02:00
J. Nick Koston 54df052699
Bump bleak-retry-connector to 2.8.2 (#81370)
* Bump bleak-retry-connector to 2.8.2

Tweaks for the esp32 proxies now that we have better error
reporting. This change improves the retry cases a bit with
the new https://github.com/esphome/esphome/pull/3971

* empty
2022-11-01 21:49:05 +01:00
puddly b4637fae37
Bump zigpy-zigate to 0.10.3 (#81363) 2022-11-01 12:57:53 -05:00
J. Nick Koston 9be204629b
Bump aiohomekit to 2.2.11 (#81358) 2022-11-01 16:44:58 +00:00
Shay Levy f5f96535ad
Bump aioshelly to 4.1.2 (#81342) 2022-11-01 12:53:44 +02:00
Franck Nijhof e22f69ea8c
Update Pillow to 9.3.0 (#81343) 2022-11-01 11:34:44 +02:00
Allen Porter 2b935564c2
Bump gcal_sync to 2.2.2 and fix recurring event bug (#81339)
* Bump gcal_sync to 2.2.2 and fix recurring event bug

* Bump to 2.2.2
2022-11-01 11:08:36 +02:00
Willem-Jan van Rootselaar ed2696f03e
Bump python-bsblan to version 0.5.7 (#81330) 2022-11-01 09:28:02 +01:00
J. Nick Koston eea4719544
Fix Yale Access Bluetooth not being available again after being unavailable (#81320) 2022-10-31 21:21:40 -04:00
J. Nick Koston d87ca0b099
Improve esphome bluetooth error reporting (#81326) 2022-10-31 21:21:11 -04:00
Bram Kragten 4a9859bf54
Update frontend to 20221031.0 (#81324) 2022-10-31 20:42:18 +01:00
J. Nick Koston 82e90587c7
Bump oralb-ble to 0.10.0 (#81315) 2022-10-31 19:38:57 +01:00
J. Nick Koston 3764f7d95b
Bump zeroconf to 0.39.4 (#81313) 2022-10-31 12:35:43 -05:00
J. Nick Koston 4f5aad9d6d
Bump aiohomekit to 2.2.10 (#81312) 2022-10-31 12:29:12 -05:00