139 lines
4.8 KiB
Markdown
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
|