v0.3.0
Closer to Home Assistant and more disciplined about exceptions
-
dedicated submodule for exceptions (still exposed at module level through
aioairq.__all__
) -
core.DeviceInfo
:- breaking:
room_type
->suggested_area
to further consistency with Home Assistant - all fields, except for
id
are optional (much like with
homeassistant.helpers.entity.DeviceInfo
)
- breaking:
-
core.AirQ.get
:- limited to an explicit set of queries / webserver routes
(namelyAirQ._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
andKeyError
, which ought not to happen
with the aforementioned routes (added as a precaution against unexpected firmware
behaviour)
- limited to an explicit set of queries / webserver routes
-
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 errorInvalidAuth
is raised
inAESCipher.decode
- failed authentication is now inferred as close to the point of failure as possible.