armdash: a small dashboard that keeps FRITZ! smart home readings for years
Hello,
i have a FRITZ!Box with a few FRITZ!DECT plugs and thermostats, and I wanted every power, temperature and humidity reading kept for years, in charts I can scroll back through, plus a floor plan of the flat with the live values on it.
The usual answer is Home Assistant, or Grafana with a database behind it. That is a lot of software to keep running on a 12 W board for a handful of charts, and Grafana is not even packaged for aarch64 on Arch Linux ARM. So I built the small version. **What it does**
* One static Go binary, standard library only. About 20 MB of RAM and under 0.1 % of one core on my Radxa Dragon Q6A * Reads the FRITZ!Box directly over AVM's AHA HTTP interface, no extra exporter. It publishes the readings at \`/metrics\`, Prometheus keeps the history, armdash reads it back for the charts * Plug power and energy, room temperatures, humidity, thermostat setpoints, battery levels. Charts from one hour to one year, energy as bars per hour or per day * Floor plan: upload your SweetHome3D \`.sh3d\` file as it is and drag each sensor to its spot. An SVG or a picture of the flat works too * A host tab (CPU, memory, disks, temperatures from node \_exporter) and navbar links to the other things on your server
**Who it is for** People who want their FRITZ! smart home data kept long term but do not run, or do not want, a full stack like Home Assistant. It is the lightweight middle ground: armdash plus Prometheus on a cheap single board computer. It only reads and shows data, it does not switch or automate anything.
**What you need**
Prometheus and node\_exporter next to it, both packaged by the usual distributions (there is also a Compose file if you prefer containers). Packages for Debian/Ubuntu, Fedora and Arch, tarballs for Linux (amd64, arm64, armv7, riscv64), FreeBSD and macOS. Licence EUPL-1.2. Website: https://armdash.org Code: https://github.com/xuedi/armdash Happy about feedback, especially if you have FRITZ!DECT devices that show up wrong or not at all.