Skip to content

v0.3.0

Compare
Choose a tag to compare
@Sibgatulin Sibgatulin released this 07 Mar 21:04
· 33 commits to main since this release

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)
  • 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