Prometheus laeuft jetzt mit stabilem Directory-Mount (recreated, 25 Regeln
aktiv). Verbleibendes Einzeldatei-Muster bei den uebrigen Monitoring-Services
als Folge-Item praezisiert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Einzeldatei-Bind-Mounts von alerts.yml/prometheus.yml brechen auf dem
Unraid-FUSE-Share bei git/Komodo-Updates zu "Stale NFS file handle"
(Inode-Wechsel) -> Config-Reload laedt 0 Regeln, nur --force-recreate heilt.
Umgestellt auf stabilen Directory-Mount ./prometheus:/etc/prometheus/config:ro
plus angepasste --config.file und rule_files. Kuenftig reicht ein Reload.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Dump-Alerts live verifiziert (25 Regeln geladen, 0 feuern, Scope-Drift 0).
Stale-Handle der Prometheus-alerts.yml (FUSE-Einzeldatei-Mount) per
--force-recreate behoben; Directory-Mount-Hardening als TODO aufgenommen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Host-Clone-Pull und Borg-UI-Scope sind erledigt/verifiziert (Live-Drift 0,
alle 33 Quellen konfiguriert). Offen bleiben nur der Prometheus-Config-Reload
fuer die neuen Dump-Alerts und der Nearline-Dead-Man's-Switch.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Findings aus dem Backup-/Restore-Audit 2026-06-18 umgesetzt:
- Dump-Frische als Prometheus-Metrik (homelab_borg_dump_present /
homelab_borg_dump_age_seconds) im Host-Exporter; schliesst den
Blindfleck, dass Borg weiterlaeuft und stale Dumps archiviert, ohne
Job-Fehler.
- Neue Alerts HomelabBorgDumpMissing / HomelabBorgDumpStale (critical)
plus ALERT_RULES.md.
- Freshness-Gate (.sh + .ps1) und H:-Nearline-Pull um n8n.sqlite.dump
und postgresql17-globals.sql ergaenzt.
- Critical-Container-Watch um mail-archiver, n8n, homeassistant,
smarthome-mosquitto erweitert.
- BACKUP_SCOPE: /mnt/user/projekte und sonstige User-Shares ausserhalb
App-Scope als bewusste offene Operator-Entscheidung dokumentiert;
Hermes-data-Pfad als geparkt klargestellt.
- MASTER_TODO: Nearline-Pull-Ueberwachung, Host-Pull-Nachzug und
projekte-Scope-Entscheidung aufgenommen.
Enthaelt ausserdem die zuvor vorbereiteten Scope-Erweiterungen
(nextcloud html+data, n8n, filebrowser, influxdb3) und Scope-Drift-/
Retention-/Compact-/Check-Alerts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
InfluxDB 3 Core kompaktiert nicht; haeufige HA-Writes liessen "°C"/"%"/"hPa"
ins 432-Dateien-Query-Limit laufen -> No data in Grafana. --query-file-limit
auf 20000 angehoben (Stopgap; langfristig Enterprise-Compaction oder weniger
Writes).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
displayMode: hidden ist in dieser Grafana-Version fuer Timeseries ungueltig
und liess die Panels (Solarstrahlung, Luftdruck, Wallbox-Ladeleistung) leer.
Auf legend.showLegend=false umgestellt.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Live-Gauges (Temp/Feuchte/Wind/UV/Solar mit Farbverlauf) + Luftdruck-Stat
oben, aufgehuebschte Verlaufs-Charts (Temp/Feuchte/Wind mit Innen-Serien,
Solar als Flaeche), Regen pro Tag als barchart. Analog zum Solar-Dashboard.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- "Tages Produktion 30 Tage" auf barchart-Panel (timeseries-bars rendert
spaerliche Tageswerte nicht); format table + xField time
- "Erreichte TOP kWh": Subquery hat keine Zeitspalte -> format table statt
time_series (behebt Panel-Fehler); Heute als skalare Query
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
LCD-Segment-Bargauges mit continuous-GrYlRd, radiale Gauges im selben
Farbverlauf, Power-Chart als gruen/gelb gefuellte Flaechen, 30-Tage-
Balken mit GrYlRd, Top-Tag + Heute als LCD-Bars. SolarEdge-Entitaeten
und Batterie/Wallbox-Panels beibehalten.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Wallbox-Ladeleistung (Verlauf + Gauge), Gesamt geladen und aktuelle
Session aus eh7klptt_* im Grafana Solar-Dashboard ergaenzt.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Die generische Berlin-Wetterkachel ist durch die lokale Ecowitt-Kachel
(custom-api aus HA) ersetzt.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
toFloat erwartet eine Zahl, der HA-State kommt aber als String -> Template-
Fehler. Boee jetzt direkt per (.Subrequest "gust").JSON.Float "state" lesen,
gjson parst den numerischen String korrekt fuer den Schwellenvergleich.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Die Compose-environment-Sektion listet die GLANCE_*-Vars einzeln; der neue
GLANCE_HA_TOKEN fehlte und kam daher nie im Container an (Glance: variable
not found). Jetzt durchgereicht analog der anderen Tokens.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
custom-api Wetterkachel zieht die Ecowitt-Sensoren live aus HA
(intern http://homeassistant:8123, frontend_net) im Neon-Ops-Stil.
Boeen > 40 km/h werden rot markiert (analog HA-Warnautomation).
Benoetigt GLANCE_HA_TOKEN als Glance-Stack-ENV.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Provisioniertes Dashboard 'Wetterarchiv KalliHome' (uid ha-weather-archive)
auf der Datasource ha-weather-influx: Temperatur, Feuchte, Wind, Solar,
Regen/Tag, Luftdruck aus den Ecowitt-Langzeitdaten.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Zweite InfluxDB-Datasource 'InfluxDB HA Weather' (uid ha-weather-influx)
auf DB homeassistant fuer das Ecowitt-Langzeitarchiv. Gleiche Instanz/Token
wie die bestehende Monitoring-Datasource.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
HA bekommt Zugang zum bestehenden monitoring_net, um Wetter-/Langzeitdaten
intern an monitoring-influxdb3-core:8181 zu schreiben (Wetterarchiv).
Kein Host-Port, keine LAN-Exposition; gewaehlte Reachability-Option aus
docs/DECISIONS.md (2026-06-13).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Ecowitt GW3000 kann kein HTTPS und pusht per HTTP an den HA-Webhook.
HA bekommt einen LAN-only Host-Bind 192.168.178.58:8123 (nicht WAN),
analog zur dokumentierten InfluxDB-8181-Ausnahme. Kein Traefik-Umbau
des globalen HTTP-Redirects noetig, da Ecowitt rein im LAN pusht.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>