Skip to content
View antoinevalentinHA's full-sized avatar
  • Bordeaux, FRANCE

Block or report antoinevalentinHA

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
antoinevalentinHA/README.md

antoinevalentin

I run one system, and everything here orbits it.

Arsenal is an in-production Home Assistant configuration for a family home — heating, domestic hot water, air conditioning, ventilation, irrigation, energy, security, presence, measurement, dashboards and infrastructure observability. It is built contract-first: every domain has a written contract before it has code, a single decision authority per domain, and CI that refuses what contradicts the contract. The documentation is written in French; the repository README is an English entry point.

The rest of this account is what that system needs in order to run.


The archive, used daily

A system that changes every day needs a record of what it was yesterday. Two pieces run on my NAS and are part of the daily routine, not accessories:

  • ha-state-archive — structured archival of the configuration: state versioning, automated auditing, integrity checks.
  • ha-archive-search — the search engine over those archives, on the infrastructure side. When a domain behaves oddly, this is where the answer usually is.

Tooling around Arsenal

Repository What it does
rainbird-esp32-elegoo The firmware in service on my irrigation bridge: an ELEGOO ESP32 WROOM-32 board linking Rain Bird battery-powered BLE controllers to MQTT, with OTA updates. Derived from rainbird-esp32, which is the upstream fork it grew out of.
ha-termux-tools Inspecting and grepping the configuration from Android, via Termux.

Integrations my installation loads

These four forks are not scratch copies: Arsenal runs on them. They are pinned, patched and kept in working order, and fixes go upstream where upstream can take them.

Fork Upstream Why it is forked
ha_airstage danielkaldheim Fujitsu air conditioning. Served from a stable branch, pinned to pyairstage 2.4.x.
hassio-bluetti-bt · bluetti-bt-lib Patrick762 Bluetti power stations. Served from a stable branch.
ha-linky bokub Linky smart meter. Carries a fix branch anticipating a recorder statistics change.
atmofrance sebcaps Air quality for French cities.

Upstream work

audi_connect_ha — I contribute to the integration itself rather than run my own version of it: my fork exists to carry fix/* branches (transient 403/502 handling, auth guards, FR translation) toward upstream, and my installation stays on the official release.

Earlier pieces

A handful of small repositories date from before Arsenal was public: single patterns pulled out of the running system — a heating decision engine, a notification architecture, self-parametrized template sensors, an automation ID generator. They are left online because they still answer questions people ask, but they are early work and stand on their own only modestly.

Outside all of this

rallye-trip-meter-android — a native Android/Kotlin rally trip meter: GPS distance, stage and total distance, manual calibration. Unrelated to the rest, and the only thing here that is.


Bordeaux, France.

Pinned Loading

  1. arsenal arsenal Public

    Home Assistant as a governed system

    YAML 1 1

  2. rallye-trip-meter-android rallye-trip-meter-android Public

    Android rally trip meter with GPS distance tracking, stage distance, total distance and manual calibration.

    Kotlin