Files
homelab-infra/docs/HOME_ASSISTANT_INFLUXDB_ECOWITT.md

139 lines
4.8 KiB
Markdown

# Home Assistant -> InfluxDB 3 -> Grafana
Ziel: Home Assistant schreibt ausgewaehlte Ecowitt- und Energiesensoren nach InfluxDB 3 Core. Grafana bleibt das Langzeit-Dashboard, Home Assistant bleibt die Automationszentrale.
## Live-Stand 2026-05-04
- Home Assistant ist per SSH unter `192.168.178.50:22222` erreichbar.
- `ha core check` ist erfolgreich.
- InfluxDB 3 Core ist von Home Assistant aus unter `http://192.168.178.58:8181/` erreichbar; `401 Unauthorized` ohne Token ist der erwartete Reachability-Test.
- In `/homeassistant/configuration.yaml` ist noch kein `influxdb:`-Block aktiv.
- In `/homeassistant/secrets.yaml` ist noch kein `influxdb3_homeassistant_token` eingetragen.
- In der Home-Assistant-Entity-Registry ist noch keine Ecowitt-Integration sichtbar; aktuell existiert nur `weather.forecast_home`.
## 1. InfluxDB fuer Home Assistant erreichbar machen
Der Stack haelt InfluxDB bewusst ohne Traefik-Route. Fuer Home Assistant wird nur der HTTP-Port `8181` auf einer internen LAN-Adresse veroeffentlicht.
Im Zielzustand in Komodo/Stack-Environment fuer `monitoring` setzen:
```env
INFLUXDB_BIND_IP=192.168.178.58
```
`192.168.178.58` ist die LAN-IP des Docker-Hosts, auf dem `monitoring-influxdb3-core` laeuft. Nicht `0.0.0.0` verwenden, wenn es nicht notwendig ist.
Danach den Stack neu deployen und von Home Assistant aus pruefen:
```bash
curl -i --max-time 5 http://192.168.178.58:8181/
```
Erwartetes Ergebnis ohne Token: `401 Unauthorized`. Das bestaetigt, dass der LAN-Port erreichbar ist und Authentifizierung aktiv bleibt.
## 2. Token fuer Home Assistant
InfluxDB 3 Core unterstuetzt aktuell Admin- und Named-Admin-Tokens. Einen eigenen Named-Admin-Token fuer Home Assistant verwenden, damit der Token getrennt vom initialen Operator-/Admin-Token rotiert werden kann.
Den Token in Home Assistant eintragen:
```yaml
# /homeassistant/secrets.yaml
influxdb3_homeassistant_token: "apiv3_REPLACE_WITH_HOME_ASSISTANT_TOKEN"
```
Token niemals ins Git-Repository schreiben.
## 3. Ecowitt in Home Assistant anbinden
Die offizielle Ecowitt-Integration ist eine lokale Push-Integration. Home Assistant erzeugt einen HTTP-Webhook; die Wetterstation sendet danach ihre Daten aktiv an Home Assistant.
1. In Home Assistant `Einstellungen -> Geraete & Dienste -> Integration hinzufuegen -> Ecowitt` oeffnen.
2. Die angezeigten Werte fuer Server/IP, Pfad und Port notieren.
3. Im Ecowitt-Gateway entweder per App oder Web-UI unter `Weather Services -> Customized` eintragen:
- Customized: `Enable`
- Protocol Type Same As: `Ecowitt`
- Server/IP, Path und Port exakt wie in Home Assistant angezeigt
4. Wichtig: Ecowitt kann kein HTTPS. Den lokalen HTTP-Endpunkt von Home Assistant verwenden, nicht eine reine HTTPS-/Traefik-URL.
5. Nach dem ersten Push pruefen, ob neue `sensor.*`- und ggf. `binary_sensor.*`-Entities in Home Assistant auftauchen.
## 4. Home Assistant fuer InfluxDB konfigurieren
Minimaler Startblock fuer `/homeassistant/configuration.yaml`:
```yaml
influxdb:
api_version: 2
ssl: false
host: 192.168.178.58
port: 8181
token: !secret influxdb3_homeassistant_token
organization: homelab
bucket: homelab
max_retries: 3
default_measurement: state
include:
entity_globs:
- sensor.*ecowitt*
- sensor.*gw*
- sensor.netzbezug_live
- sensor.ins_netz_live
- sensor.ins_haus_live
- sensor.pv_ueberschuss_live
- sensor.batterie_soc_live
- sensor.wallbox_leistung_live
- sensor.pv_produktion_heute
- sensor.wallbox_energie_heute
```
Die `sensor.*ecowitt*`- und `sensor.*gw*`-Regeln sind nur Startpunkte. Nach dem ersten Ecowitt-Push die echten Entity-IDs aus Home Assistant auslesen und die Liste enger machen.
Nach dem Edit:
```bash
ha core check
ha core restart
```
## 5. Grafana Smoke-Test
In `https://monitoring.kaleschke.info` mit der bestehenden Datenquelle `InfluxDB 3 Core` eine SQL-Abfrage testen:
```sql
SHOW TABLES
```
Danach eine konkrete Tabelle pruefen. Home Assistant schreibt Measurements je nach Konfiguration und Entity-Typ; typische Tabellen sind `state`, `degC`, `%`, `W`, `kWh` oder aehnliche Measurement-Namen.
Beispiel fuer die ersten Werte:
```sql
SELECT *
FROM state
ORDER BY time DESC
LIMIT 20
```
## 6. Dashboard-Kandidaten
Sinnvolle Panels fuer das erste Wetter-Dashboard:
- Aussentemperatur und Luftfeuchte
- Luftdruck
- Windgeschwindigkeit und Boeen
- Regenrate und Regen heute
- UV und Solarstrahlung
- Batterielevel der Ecowitt-Sensoren
- PV-Ueberschuss vs. Wetter
- Wallbox-Leistung vs. PV-Ueberschuss
## 7. Erste Automationen
Home Assistant bleibt fuer Reaktionen zustaendig:
- Regen startet -> Dachfenster/Fenster pruefen
- Windboee ueber Grenzwert -> Markise/Rolllaeden schuetzen
- Frostwarnung -> Garten/Wasser/Auto-Hinweis
- Genug Regen heute -> Bewaesserung ueberspringen
- Ecowitt-Batterie niedrig -> ntfy/HA-Benachrichtigung