Skip to content

Design Principles

The principles autoarm is designed by. They start from the Rhizomatics HQ policies that every product follows. Sections specific to autoarm are added here as its design settles, usually through an RFC.

Scope

autoarm: Automated alarm control panel arming for Home Assistant, with automatic profile switching for Frigate.

It does one job and leaves the rest to Home Assistant and other integrations. Where a feature could live in Home Assistant core, another integration or here, the RFC for it says why it belongs here.

Home Assistant alignment

autoarm aims to be an exemplary Home Assistant citizen (Home Assistant alignment):

  • Configured through the UI (config flow), with YAML kept only for power-user content that is naturally text and round-trips with the UI. Exception: the rules engine can also be written in YAML, since it's power-user content that is naturally text.
  • Assessed against the Integration Quality Scale, aiming for the highest level and keeping the way open to move from Marketplace to core.
  • Supports a rolling 6 months of Home Assistant releases (project standards), and the Python versions they need (Python versions).
  • Takes up new Home Assistant features within the month they're released, without dropping older supported versions.

How the design changes

  • Major changes are planned as RFCs in docs/developer/design/rfcs/ (design policy). They're listed with every other Rhizomatics product's on the HQ RFCs page.
  • Expected work, large and small, is summarised in the roadmap.
  • Releases follow the release policy: semantic versions, immutable, built and published by GitHub Actions.
  • Everything else follows the project standards shared by all Rhizomatics repos.