homelab-brain/infra/telegraf/README.md
Homelab Cursor e47542d53d docs: garage_decke ΔT/Leistung in Telegraf-README
Verweis auf Grafana-Formeln und Brunnen-Durchflussvariable ergänzt.
2026-06-26 22:33:20 +02:00

140 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Telegraf - Telemetrie-Ingestion (CT143 "Raspi-Broker")
Versionierte Kopie der produktiven Telegraf-Konfiguration. **Laufort:**
`CT143` (pve-mu-3), Verzeichnis `/etc/telegraf/telegraf.d/`.
Diese Dateien sind die *Quelle der Wahrheit* (Konfiguration zaehlt Git/Doku).
Wenn am Server geaendert wird: hier nachziehen + committen + pushen.
## Architektur (Stand 21.06.2026)
MQTT-Broker = dedizierter **mosquitto 2.0.21** auf CT143 `192.168.178.36:1883`.
Telegraf ist der **alleinige** MQTT->InfluxDB-Ingest (die alten Python-Bruecken
`mqtt-influx-bridge.py` / `mqtt-rewrite-holzvergaser.py` sind gestoppt + disabled).
Zwei InfluxDB-Datenbanken:
- **`sensors`** - sauberes, aktives Schema (siehe `satellites.conf`).
- **`iobroker`** - eingefrorenes Archiv (Alt-Historie) + weiterhin openWB/PV (siehe `openwb.conf`).
## Routing (wichtig, damit nichts doppelt landet)
Beide Configs definieren je einen `outputs.influxdb`. Telegraf schickt jede Metrik
an *alle* Outputs, daher wird per name-Filter getrennt:
- `satellites.conf` -> DB `sensors`, **namepass** = `temperature`, `io_state`, `power`
- `openwb.conf` -> DB `iobroker`, **namedrop** = `temperature`, `io_state`, `power`
So schreibt der Satelliten-/Heizraum-Ingest ausschliesslich nach `sensors`,
und openWB/PV ausschliesslich nach `iobroker` - keine Dopplung.
## Schema in DB `sensors`
| Measurement | Tags | Wert | Quelle |
|---------------|-------------------------------|-------------|--------|
| `temperature` | `node` + optional `sensor` | float Grad C | `<raum>/temp`, `heizraum/<ROM>`, `oelknoten/<rolle>`, `shellies/.../ext_temperature``garage_decke` |
| `io_state` | `node`=heizraum, `signal` (pumpe1-4/brenner/kessel) | int 0/1 | `heizraum/io/+`, `heizraum/state/kessel` |
| `power` | `node` (klima_flur_oben/unten), `geraet` | float W/Wh | Shelly `*/status/pm1:0` |
Globaler Tag `host=Raspi-Broker` (Telegraf-Default).
## Deploy / Wiederherstellung
```bash
# auf CT143 (pve-mu-3):
pct push 143 satellites.conf /etc/telegraf/telegraf.d/satellites.conf
pct push 143 openwb.conf /etc/telegraf/telegraf.d/openwb.conf
pct push 143 klima.conf /etc/telegraf/telegraf.d/klima.conf
pct exec 143 -- systemctl restart telegraf
# Verifikation:
pct exec 143 -- influx -database sensors -execute 'SHOW MEASUREMENTS'
```
## klima.conf (ab 24.06.2026)
Shelly PM Mini Gen3 Leistungsmessung der Klimaanlagen -> DB `sensors`, Measurement `power`.
| Tag | Bedeutung |
|-----|-----------|
| `node` | `klima_flur_oben` (Split oben), `klima_flur_unten` (Panasonic, vorbereitet) |
| `geraet` | `split_ac` / `panasonic` |
MQTT-Topics (Shelly Prefix):
- `klima_flur_oben/status/pm1:0`
- `klima_flur_unten/status/pm1:0`
Felder: `watt` (apower), `voltage`, `current`, `energy_wh_total` (Wh kumuliert).
Grafana-Dashboard: `Klimatisierung` (UID `klima-bewertung`) unter `/d/klima-bewertung/klimatisierung`
Deploy:
```bash
pct push 143 klima.conf /etc/telegraf/telegraf.d/klima.conf
# satellites.conf + openwb.conf namepass/namedrop aktualisieren (power)
pct exec 143 -- systemctl restart telegraf
pct push 143 klima-bewertung.json /etc/grafana/provisioning/dashboards/klima-bewertung.json
```
## garage_decke (ab 26.06.2026)
Garage-Deckentemperaturen: 5x DS18B20 an 2x Shelly 1 (Gen1) → DB `sensors`, Measurement `temperature`.
| Tag | Bedeutung |
|-----|-----------|
| `node` | `garage_decke` (**nicht** `garage` — das ist der Raum-Satellit) |
| `sensor` | `rl_klimadecke`, `vl_kaeltedecke`, `vl_brunnen`, `rl_brunnen`, `pwt` |
MQTT-Topics (Shelly Gen1, plain float °C):
| Shelly | IP | Topics |
|--------|-----|--------|
| shelly1-F4CFA2D3B444 | 192.168.178.86 | `shellies/shelly1-F4CFA2D3B444/ext_temperature/0..2` |
| shelly1-8CAAB55D9A15 | 192.168.178.78 | `shellies/shelly1-8CAAB55D9A15/ext_temperature/0..1` |
Konfiguration: 5 feste `[[inputs.mqtt_consumer]]` in `satellites.conf` (je Topic + feste Tags).
Grafana-Dashboard: **Garage Decke** (UID `garage_decke`) → `/d/garage_decke/garage-decke`
Panels (ab 27.06.2026):
- Temperaturen: `rl_klimadecke`, `pwt`, `vl_kaeltedecke`, `vl_brunnen`, `rl_brunnen`
- **ΔT KaelteDecke** = RL VL KaelteDecke (Effektivitaet, kein Durchfluss)
- **ΔT Brunnen** = RL VL Brunnen; **Leistung** [kW] = `brunnen_durchfluss` [l/min, 34,5] × ΔT × 0,0698
Ausführliche Doku: CT999 `/root/docs/projekte/garage-decke-monitoring.md`
Shelly Gen1: MQTT aktiv → Shelly-App zeigt offline (Cloud vs. MQTT).
Deploy:
```bash
pct push 143 satellites.conf /etc/telegraf/telegraf.d/satellites.conf
pct exec 143 -- systemctl restart telegraf
pct push 143 garage_decke.json /etc/grafana/provisioning/dashboards/garage_decke.json
pct exec 143 -- systemctl restart grafana-server
```
## Grafana-Dashboards (versioniert)
Provisionierte Boards liegen unter `infra/grafana/` (Quelle der Wahrheit). Laufort: CT143 `/etc/grafana/provisioning/dashboards/`.
| Datei | UID | URL |
|-------|-----|-----|
| `klima-bewertung.json` | klima-bewertung | `/d/klima-bewertung/klimatisierung` |
| `oelknoten.json` | oelknoten | `/d/oelknoten/oelknoten` |
| `garage_decke.json` | garage_decke | `/d/garage_decke/garage-decke` |
Deploy:
```bash
pct push 143 infra/grafana/<board>.json /etc/grafana/provisioning/dashboards/<board>.json
pct exec 143 -- systemctl restart grafana-server
```
## aussen (Aussenfuehler, ab 26.06.2026)
ESP8266-Satellit publiziert weiterhin **`oelraum/temp`** (historischer MQTT-Topic-Name).
Telegraf mappt per `processors.override` auf **`node=aussen`** in DB `sensors`.
| | Wert |
|---|---|
| MQTT | `oelraum/temp`, `oelraum/status` |
| InfluxDB | `node=aussen`, measurement `temperature` |
| Hardware | ESP8266 Aussenfuehler (ehem. „Ölraum“-Label) |