# 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 | `/temp`, `heizraum/`, `oelknoten/`, `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, 3–4,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/.json /etc/grafana/provisioning/dashboards/.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) |