# Klima-Monitoring — Leistung + Raumtemperaturen **Stand:** 02.07.2026 · **Datendrehscheibe:** CT 143 (Raspi-Broker) · **Grafana:** https://grafana.orbitalo.net/d/klima-bewertung/klimatisierung ## Ziel Die Klimatisierung des Hauses **bewertbar** machen: - **Läuft die Klima gerade?** → Shelly-Leistung (W) - **Kühlt sie das Haus?** → Raumtemperaturen über Zeit (esp-satellite-Knoten) - **Verteilt sie gut?** → Vergleich Flur (Klima-Zone) vs. entfernte Räume Später zwei getrennte Anlagen: | Anlage | Standort | Shelly-Prefix | Status | |--------|----------|---------------|--------| | Alte Split-Klima | Flur obere Etage | `klima_flur_oben` | Shelly PM Mini Gen3 geplant | | Panasonic | Flur unten | `klima_flur_unten` | vorbereitet (Telegraf + Grafana) | ## Architektur ``` Shelly PM Mini Gen3 (pro Anlage) │ MQTT JSON: /status/pm1:0 (apower, voltage, current, aenergy.total) ▼ mosquitto CT143 :1883 (192.168.178.36, allow_anonymous) ▼ Telegraf klima.conf → InfluxDB DB `sensors`, Measurement `power` │ ESP-Satelliten (+/temp) ──► Telegraf satellites.conf → Measurement `temperature` │ ▼ Grafana Dashboard „Klimatisierung“ (UID: klima-bewertung) ├─ Leistung (W) pro Klima ├─ Korrelation Leistung ↔ Flur-Temperatur (oben/unten) ├─ Raumtemperaturen Wohnbereich (24h) └─ kWh/h aus Shelly-Zähler (energy_wh_total Differenz) ``` **Kein ioBroker** für dieses Monitoring — gleiche Linie wie Raum-Satelliten (Telegraf-only). ## Panasonic Flur unten — lokale UART-Anbindung (Option D) Für die geplante **Panasonic KIT-Z25-XKE** (CS-Z25XKE / CU-Z25XKE, Etherea): Serien-WiFi geht nur in die Comfort Cloud. **Lokale Gerätedaten** per ESP32 und Open-Source-Komponente [esphome-panasonic-ac](https://github.com/DomiStyle/esphome-panasonic-ac). | Thema | Details | |---|---| | **Prinzip** | ESP32 ersetzt Panasonic-WLAN-Modul (DNSK-P11) oder hängt an CN-CNT (CZ-TACG1) | | **Schnittstelle** | UART 9600 8E1 — **Level-Shifter 5V↔3,3V Pflicht** | | **Daten** | Modus, Solltemp, Status, ggf. Außentemp; Steuerung lokal | | **Fork neuere Etherea** | [beebop5/esphome-panasonic-ac](https://github.com/beebop5/esphome-panasonic-ac) | | **Homelab-Pfad** | ESPHome MQTT → mosquitto CT143 → Telegraf → InfluxDB → Grafana `klima-bewertung` | | **Ergänzung** | Shelly PM (`klima_flur_unten`) für Leistung/COP — siehe Abschnitt Shelly oben | ``` ESP32 (ESPHome panasonic_ac, type: wlan|cnt) │ MQTT: klima_panasonic/* (Prefix noch festzulegen) ▼ mosquitto CT143 → Telegraf → InfluxDB sensors → Grafana ``` **Vor Einbau prüfen:** Stecker CN-WLAN und/oder CN-CNT am Innengerät-Board (Foto). Details und Kaufentscheidung: `homelab-brain/smart-home/BAUFORTSCHRITT.md` §5. ## Hardware: Shelly PM Mini Gen3 | Eigenschaft | Wert | |-------------|------| | Typ | Stromzähler **ohne Relais** (nur messen) | | Max. Messstrom | 16 A / ~3840 W @ 230 V | | Einbau | In Reihe in die Zuleitung (Festanschluss) | | MQTT | nativ (Gen3), JSON auf `status/pm1:0` | ### Shelly MQTT-Einstellungen | Parameter | Wert | |-----------|------| | Server | `192.168.178.36:1883` | | Username/Password | leer (allow_anonymous) | | TLS | aus | | **MQTT Prefix** | `klima_flur_oben` bzw. `klima_flur_unten` | | Status/RPC over MQTT | **an** | Erwartetes Topic und Payload: ``` Topic: klima_flur_oben/status/pm1:0 JSON: {"voltage":244.1,"current":5.88,"apower":1442,"aenergy":{"total":3709.99},...} ``` ## Telegraf **Repo (Quelle der Wahrheit):** `orbitalo/homelab-brain` → `infra/telegraf/klima.conf` **Laufort:** CT 143 → `/etc/telegraf/telegraf.d/klima.conf` Routing über `satellites.conf`-Output: - **namepass** enthält `power` → schreibt nach DB `sensors` - `openwb.conf`-Output **namedrop** `power` → keine Dopplung nach `iobroker` ### InfluxDB Schema (DB `sensors`) | Measurement | Tags | Felder | Quelle | |-------------|------|--------|--------| | `power` | `node`, `geraet` | `watt`, `voltage`, `current`, `energy_wh_total` | Shelly `apower`, `aenergy.total` | | `temperature` | `node` | `value` | `/temp` | **power-Tags:** | node | geraet | Anlage | |------|--------|--------| | `klima_flur_oben` | `split_ac` | Split-Klima Flur oben | | `klima_flur_unten` | `panasonic` | Panasonic Flur unten (folgt) | ## Grafana | Dashboard | UID | URL | |-----------|-----|-----| | **Klimatisierung** | `klima-bewertung` | https://grafana.orbitalo.net/d/klima-bewertung/klimatisierung | | Satelliten-Temperaturen | `satelliten-temps` | https://grafana.orbitalo.net/d/satelliten-temps/satelliten-temperaturen | **Provisioning:** `/etc/grafana/provisioning/dashboards/klima-bewertung.json` **Git-Kopie:** `homelab-brain/infra/grafana/klima-bewertung.json` ### Panels 1. **Klima-Leistung (W)** — alle `power`-Nodes dynamisch 2. **Aktuelle Leistung** — letzter Watt-Wert 3. **Flur oben: Leistung vs. Temperatur** — Dual-Achse (`klima_flur_oben` + `flur_oben/temp`) 4. **Flur unten: Leistung vs. Temperatur** — (`klima_flur_unten` + `flur_unten/temp`, Panasonic folgt) 5. **Raumtemperaturen Wohnbereich** — flur_oben, flur_unten, wohnstube, schlafzimmer, gaestezimmer, kueche, trockenraum 6. **Übersichtstabelle** — aktuell / min / max / mittel 7. **Klima-Verbrauch kWh/h** — aus `energy_wh_total`-Differenz ### Bewertungslogik (Interpretation) | Beobachtung | Bedeutung | |-------------|-----------| | Shelly > 500 W **und** Raumtemps fallen | Klima kühlt inkl. Haus | | Shelly > 500 W **und** nur Flur fällt | schlechte Verteilung / zu große Last | | Shelly ≈ 0 **und** Temps fallen | natürliche Abküllung (Nacht) | | Shelly > 500 W **und** nichts fällt | keine Wirkung / zu warm draußen | Raum-Sensoren allein reichen **nicht** — erst mit Shelly-Leistung ist die Kausalität klar. ## Raum-Sensoren (Kontext) Relevante esp-satellite-Knoten für Klima-Bewertung: | node | Raum | Hinweis | |------|------|---------| | `flur_oben` | Flur oben | direkt an Klima-Zone | | `flur_unten` | Flur unten | später Panasonic-Zone | | `wohnstube` | Wohnstube | Verteilung prüfen | | `schlafzimmer` | Schlafzimmer | entfernter Raum | | `gaestezimmer` | Gästezimmer | | | `kueche` | Küche | oft wärmer | | `trockenraum` | Trockenraum | | **Stand 24.06.2026:** DS18B20-Umbau von Board-Lötung auf Kabel abgeschlossen für flur_unten, schlafzimmer, gaestezimmer, trockenraum (~8–10 °C Korrektur). Details: [ct-esp-satellite.md](../container/ct-esp-satellite.md). ## Verifikation ```bash # MQTT: Shelly-Daten (nach Einbau) ssh pve-mu-3 'pct exec 143 -- mosquitto_sub -h localhost -t "klima_flur_oben/#" -W 5 -v' # InfluxDB: Leistung ssh pve-mu-3 'pct exec 143 -- influx -database sensors -execute \ "SELECT last(watt) FROM power WHERE node='"'"'klima_flur_oben'"'"'"' # InfluxDB: Raumtemps ssh pve-mu-3 'pct exec 143 -- influx -database sensors -execute \ "SELECT last(value) FROM temperature GROUP BY node"' ``` ## Deploy / Wiederherstellung ```bash # Von homelab-brain auf CT143 (via pve-mu-3): pct push 143 infra/telegraf/klima.conf /etc/telegraf/telegraf.d/klima.conf pct push 143 infra/telegraf/satellites.conf /etc/telegraf/telegraf.d/satellites.conf pct push 143 infra/telegraf/openwb.conf /etc/telegraf/telegraf.d/openwb.conf pct push 143 infra/grafana/klima-bewertung.json /etc/grafana/provisioning/dashboards/klima-bewertung.json pct exec 143 -- chown root:grafana /etc/grafana/provisioning/dashboards/klima-bewertung.json pct exec 143 -- systemctl restart telegraf pct exec 143 -- systemctl restart grafana-server ``` ## Verwandte Doku - [CT 143 — Raspi-Broker](../container/ct-143-raspi-broker.md) — Telegraf, Grafana, mosquitto - [ESP-Satellite](../container/ct-esp-satellite.md) — Raumtemperatur-Knoten - `homelab-brain/infra/telegraf/README.md` — Telegraf-Architektur + Routing ## History - **02.07.2026** — Option D dokumentiert: ESPHome UART (esphome-panasonic-ac) für Panasonic Z25XKE; Empfehlung D + Shelly C. - **24.06.2026** — Klima-Monitoring geplant und vorbereitet: Telegraf `klima.conf`, Grafana-Dashboard `klima-bewertung`, Topics `klima_flur_oben` + `klima_flur_unten`. Shelly PM Mini Gen3 für Split-Klima Flur oben folgt physisch. Panasonic Flur unten vorbereitet. - **24.06.2026** — DS18B20-Umbau Raum-Satelliten (Kabel statt Board-Lötung) für flur_unten, schlafzimmer, gaestezimmer, trockenraum abgeschlossen — Temperaturbasis für Klima-Bewertung korrigiert.