Skip to content

Releases: wildekek/aiohortos

v0.3.1

Choose a tag to compare

@wildekek wildekek released this 26 Jul 19:24
ed7d8b0

Fixes the refresh-token fallback: a rejected refresh token now falls back to re-authenticating with the API key.

_read() maps 401 and 403 to HortosAuthenticationError, which is a sibling of HortosResponseError rather than a subclass, so _bearer() never caught it. A revoked or otherwise rejected refresh token surfaced as an authentication failure even though the API key was still valid.

The existing fallback test only covered a 500 response, which was caught; the 401 path is now covered too.

v0.3.0

Choose a tag to compare

@wildekek wildekek released this 26 Jul 18:16
70f02d0

Adds identifier naming helpers, moving the readout identifier grammar into the library alongside the enumeration decoding.

  • split_camel()VentPositionLeewardSide becomes Vent position leeward side, keeping acronyms such as CO2 intact.
  • readout_display_name() — turns an identifier into a friendly name, dropping the default Measured kind (and Ridder's Measuered typo of it) and parenthesising the others.
  • readout_subject() — the identifier without its -kind suffix, lowercased.
  • disambiguate_source_names() — resolves clashing source display names by appending the source type, then a number from the technical name.

No behaviour changes to existing API.

v0.2.0

Choose a tag to compare

@wildekek wildekek released this 26 Jul 03:13
d05a919

Adds decode_cardinal_wind_direction(), moving the HortOS wind-direction enumeration table into the library where the rest of the protocol knowledge lives.

Only whole-number member ids in the 8772-8787 block decode to a bearing; anything else returns None. Previously a consumer rounding the value could turn a fractional out-of-range id such as 8771.6 into due north.

v0.1.1

Choose a tag to compare

@wildekek wildekek released this 26 Jul 01:07
bc49471

Documentation only — no code changes.

Makes the community/unsupported status explicit, at Ridder's request: the library is not an official or certified Ridder product, Ridder's support boundary is the HortOS Automation API itself, and the API carries no backward-compatibility guarantee for community integrations.

v0.1.0

Choose a tag to compare

@wildekek wildekek released this 26 Jul 00:05
0aaa4f7

Initial release: async, read-only client for the Ridder HortOS Automation API.

  • API-key authentication with transparent bearer/refresh token renewal
  • Devices, device health, readout definitions, latest readouts, readout history
  • Typed models for every payload, PEP 561 typed (py.typed)
  • Extracted from the ha-hortimax Home Assistant integration