-
0.4.2760ad273 · ·
Release 0.4.2: support various air-Q configuration. Previously, `aioairq` allowed only to query the device. In this release Alexander Münch, @theHacker, introduced both the generic mechanism to POST various setting commands to the air-Q as well as a number of specific class methods to control LED themes, time servers, night mode, etc. Features: - Add support to configure night mode - Add support to configure the time server - Add support to disable/enable the "cloudRemote" setting - Add support for changing the interface configuration (static setup vs. DHCP) - Add support for LED themes - Add blink(), restart() and shutdown() - Add ruff, codespell, yamllint Fixes: - Handle appropriately a refused API access, to account for the latest firmware restriction to air-Q Science
-
v0.4.2760ad273 · ·
Release 0.4.2: support various air-Q configuration. Previously, `aioairq` allowed only to query the device. In this release Alexander Münch, @theHacker, introduced both the generic mechanism to POST various setting commands to the air-Q as well as a number of specific class methods to control LED themes, time servers, night mode, etc. Features: - Add support to configure night mode - Add support to configure the time server - Add support to disable/enable the "cloudRemote" setting - Add support for changing the interface configuration (static setup vs. DHCP) - Add support for LED themes - Add blink(), restart() and shutdown() - Add ruff, codespell, yamllint Fixes: - Handle appropriately a refused API access, to account for the latest firmware restriction to air-Q Science
-
v0.3.2c3ea879e · ·
Release 0.3.2: remove IP / mDNS validation Original design relied on `aioairq.AirQ.__init__ `checking if the input was a valid IP address or an mDNS of a very specific structure, and raising an `InvalidInput` otherwise. Now, `aioairq==0.3.2` removes said check completely following [a user's request](https://github.com/CorantGmbH/aioairq/issues/2#issuecomment-1855924466) to allow arbitrary host name and DNS entries. In the config flow, `"cannot_connect"` covers the cases of misspelled or erroneous inputs now, which previously were covered by a dedicated `"invalid_input"`.
-
v0.3.1b8a0d0a4 · ·
Release 0.3.1: `clip_negative_values` and `get_latest_data` get_latest_data implements a convenient public call to fetch from either "data" or "average" route, as well as allowing to conveniently toggle negative value clipping (default) and dropping of uncertainties (default)
-
v0.3.0c3ec577e · ·
Release v0.3.0 - dedicated submodule for exceptions (still exposed at module level through `aioairq.__all__`) - `core.DeviceInfo`: - room_type -> suggested_area to further consistency with home assistant - all fields, except for `id` are optional (much like with `homeassistant.helpers.entity.DeviceInfo`) - `core.AirQ.get`: - limited to an explicit set of queries / webserver routes (namely `AirQ._supported_routes = ["log", "config", "data", "average", "ping"]). Other routes return objects with different structure, which aren't consistent with the current decoding steps - Error handling for JSONDecodeError and KeyError, which ought not to happen with the aforementioned routes (added as a precaution against unexpected firmware behaviour) - `encrypt.AESCipher`: - failed authentication is now inferred as close to the point of failure as possible. The success or failure of the authentication is based on the ability to decode the response from the device, thus the error `InvalidAuth` is raised in `AESCipher.decode`
-
-
v0.2.3937f0008 · ·
Validate provided address and add minimal tests Valid inputs are IP addresses (tested using `ipaddress` library) and mDNS strings like `a123f_air-q.{local,fritz.box,...}`. If the input fails the validation, `InvalidInput` is raised. Also minimal pytest tests are added
-
v0.2.271addc3b · ·
Reduce timeout on session.get Default aiohttp.ClientSession timeout is 5 mins, which makes for a fairly long home assistant initialisation time. Hitting timeout typically happens when the device is not on the same network as the host. For own future reference, `aiohttp.ServerTimeoutError` is also caught by `aiohttp.ClientConnectionError` (see the hierarchy of exceptions of aiohttp).
-
-
v0.2.0dc462521 · ·
Release 0.2.0 - Breaking changes: - `AirQ` constructor requires an `aiohttp.ClientSession` This session is to be used for all requests during the lifetime of the object. - `.test_authentication() -> bool` => `.validate() -> None` Instead of returning False the new method raises `InvalidAuth` - `.drop_errors_from_data` => `.drop_uncertainties_from_data` To avoid ambiguity - Features: - `AirQ` provides `fetch_device_info` which returns a subclass of `NamedTuple` with some handy information (mainly for the purpose of subsequently passing it on to Home Assistant)
-