Projektdokumentation · Domus

Ein Home Assistant NUC, der auch Buchhaltung kann.

Technische Doku zum Domus-Projekt: Hausautomation, Photovoltaik-Monitoring, Strompreise und die Retro-Adventure-Webseite dahinter. Von biber.solar.

01 Ziele

Domus ist ein Home-System für ein Haus in Stäfa. Es läuft auf einem kleinen Intel NUC mit Ubuntu Server und bündelt Hausautomation, Photovoltaik-Monitoring, Strompreise und Benachrichtigungen an einem Ort. Die gesamte Konfiguration liegt versioniert im Git-Repository patbiber/domus; Geheimnisse und Betriebsdaten bleiben lokal.

02 Hardware und Grundsystem

KomponenteDetails
RechnerIntel NUC, Intel Core i3-4010U, 7 GB RAM
BetriebssystemUbuntu Server 26.04 LTS
ContainerDocker mit Docker Compose
ZeitzoneEurope/Zurich
DNSCloudflare 1.1.1.1 / 1.0.0.1 (per Netplan statt Router)
Netzwerkeno1 mit DHCP-Adresse und zusätzlicher statischer IP

Geräte im Haus

GerätAnbindung
Fronius-Wechselrichter (Datamanager, Solar API v1)HTTP im LAN, nur tagsüber erreichbar
Fronius Smart Meter TS 65A-3über den Wechselrichter, Einbauort Verbrauchszweig

03 Architektur

Ein Router leitet die Ports 80/443 an den NUC weiter. Dort verteilt nginx die beiden öffentlichen Hostnamen an Home Assistant bzw. den Energie-Dienst; der Energie-Dienst wiederum fragt den Fronius-Wechselrichter im LAN ab und holt sich einmal im Monat die aktuellen Stromtarife von den Gemeindewerken Stäfa (GWS).

Internet → Router (Portfreigabe 80/443)einziger öffentlicher Einstiegspunkt
nginx auf dem NUC, TLS via Let's Encryptdomus.biber.solar → Home Assistant · home.biber.solar → Energie-Dienst
Home Assistant ↔ Energie-Dienst (REST-Sensoren)Energie-Dienst fragt alle 5 s den Fronius-Wechselrichter im LAN ab
Tarifarchiv holt monatlich die Tarife von gws.chfliesst in die Strompreis-Berechnung des Energie-Diensts ein

Daneben laufen auf dem NUC noch der Mailversand (msmtp → Proton SMTP) und eine dauerhafte Claude-Code-Session mit Remote Control.

Dienste

OrdnerDienstErreichbar
homeassistant/Home Assistant (stable)https://domus.biber.solar
proxy/nginx + certbot (Let's Encrypt)Ports 80/443
energie/Energie-API und Retro-Webseitehttps://home.biber.solar
strompreise/Monatliches Archiv der GWS-Stromtarife–
claude-remote/Dauerhafte Claude-Code-Sessionclaude.ai/code, Claude-App

Geplant: MQTT (mosquitto/), Zigbee2MQTT (Zigbee-Stick folgt), Philips Hue über die Hue Bridge.

04 Komponenten im Detail

Home Assistant

Energie-Sensoren, die per REST vom Energie-Dienst gefüttert werden:

EntitätEinheitBedeutung
sensor.strompreis_bezugCHF/kWhaktueller Bezugspreis inkl. MWST
sensor.ruckliefervergutungCHF/kWhaktuelle Rückliefervergütung (Sommer/Winter)
sensor.stromkosten_aktuellCHF/hwas der Netzbezug gerade kostet
sensor.einspeiseerlos_aktuellCHF/hwas die Einspeisung gerade bringt

Reverse Proxy und Zertifikate

nginx terminiert TLS für beide Hostnamen. Unbekannte Hostnamen und direkte IP-Zugriffe werden verworfen. certbot prüft alle 12 h die Erneuerung, nginx lädt alle 6 h neu. home.biber.solar erlaubt nur GET/HEAD, hat ein Rate-Limit auf /api/ und eine strenge Content-Security-Policy.

Tarifarchiv GWS

Ein systemd-Timer lädt jeden Monatsersten die maschinenlesbaren Tarife und alle Tarif-PDFs der Gemeindewerke Stäfa herunter, mit Prüfsummen und Quellenangabe archiviert. Bei geänderten Dateien oder Fehlern kommt automatisch eine E-Mail.

Energie-Dienst

Die Retro-Webseite home.biber.solar

Eine Live-Ansicht im Stil der klassischen SCUMM-Adventures der 80er-Jahre – Details und Screenshot dazu im Blogartikel. Technisch: eine einzige HTML-Datei ohne externe Ressourcen, die live vom Energie-Dienst gefüttert wird.

E-Mail-Versand

msmtp als sendmail-Ersatz auf dem Host, Konfiguration mit restriktiven Dateirechten. Alle lokalen Systemmails landen automatisch bei patrick@biber.solar.

Claude Code Remote Control

Eine dauerhafte Claude-Code-Session läuft als systemd-User-Dienst und lässt sich über claude.ai/code oder die Claude-App fernsteuern. Feste Arbeitsregeln: deutsch antworten und committen, keine Secrets, keine Portfreigaben ohne Rückfrage, keine Datenträger formatieren, Backup vor Änderungen an Home Assistant.

05 Sicherheit und Datenschutz

ThemaUmsetzung
SecretsNur eine Beispieldatei im Repo; echte Zugangsdaten bleiben lokal
BetriebsdatenHome-Assistant-Konfiguration, Tarifarchiv und Backups per .gitignore ausgeschlossen
Öffentliche PortsNur 80/443; alle anderen Dienste nur im LAN erreichbar
Home AssistantTLS, IP-Sperre nach Fehlversuchen, 2-Faktor-Login
Energie-SeiteNur lesend, Rate-Limit, Content-Security-Policy
Bewusst öffentlich: home.biber.solar zeigt Live-Verbrauchsdaten des Hauses – das ist Absicht (der ganze Witz am Retro-Adventure), aber eine bewusste Entscheidung, kein Versehen.

06 Betrieb

# Dienst starten / aktualisieren (vorher Backup bei Home Assistant!)
cd <dienst> && docker compose pull && docker compose up -d

# Backup Home Assistant
tar czf backups/homeassistant-$(date +%F-%H%M).tar.gz -C homeassistant config

# Tarife sofort abrufen, Timer ansehen
systemctl --user start strompreise.service
systemctl --user list-timers

# Energie-API prüfen
curl -s http://127.0.0.1:8099/api/status | jq

07 Projektverlauf

DatumMeilenstein
26.09.2026Grundstruktur, Home Assistant, DNS, Zeitzone, Netzwerk
26.09.2026nginx + Let's Encrypt, domus.biber.solar
26.09.2026Claude Code Remote Control als dauerhafter Dienst
27.09.2026Fronius-Wechselrichter und Smart Meter gefunden und dokumentiert
27.09.2026E-Mail-Versand über Proton SMTP
27.09.2026Monatliches Archiv der GWS-Stromtarife
27.09.2026Energie-Dienst, Strompreis-Sensoren, Retro-Webseite home.biber.solar

08 Offene Punkte