Telemetrie-Fundament gesund machen: Telegraf als einziger MQTT->InfluxDB-Weg, Python-Kruecken raus #122
Labels
No labels
flugscanner
fuenfvoracht
infrastruktur
jarvis
ki-tower
nice-to-have
prio-1
wartung
wordpress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: orbitalo/homelab-brain#122
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Warum (Problem)
Die gesamte Sensor-Historie steht aktuell auf Sand. Am 21.06.2026 direkt am System verifiziert:
mqtt.0.<node>.tempin DBiobroker) werden von einem einzigen, undokumentierten Python-Skript geschrieben:/usr/local/bin/mqtt-influx-bridge.py. Es abonniert mosquitto#und schreibt Line-Protocol direkt nach InfluxDB - und tarnt sich als ioBroker (Measurement-Praefixmqtt.0., obwohl ioBroker damit nichts zu tun hat).schlafzimmer/flur_oben(bei 10s-Takt waeren ~3-4 erwartet). Bridge ist also der ALLEINIGE Writer.type: server) auf Port 1884, nicht als Client von mosquitto (1883). Es sieht die Satelliten-Topics nie.openwb*). Sauber, unabhaengig, kein Konflikt mit den Satelliten.pass # silently retryschluckt alle Fehler, kein Puffer, kein echtes Reconnect-Konzept, kein Git, irreführender Name. Ein Neustart/Absturz = stille Datenlücke ohne Alarm.Kurz: Eine Bastel-Pipe traegt die komplette Historie. Bevor irgendein Dashboard oder spaeter WP-Logik drauf aufbaut, muss das Fundament robust und dokumentiert sein.
Zielarchitektur (entkoppelt, WP-tauglich)
Leitprinzip: mosquitto = einzige Wahrheit. Historie und Logik haengen UNABHAENGIG daran.
sensors(aktuell leer = sauberer Neuanfang, getrennt von ioBrokers Zustands-Historie), Measurementtemperature, Tagnode(kueche, schlafzimmer, ...), Fieldvalue. Das beseitigt nebenbei das Zoo-Leichen-Namensproblem dauerhaft.Umsetzung (Reihenfolge, nichts abreissen)
[[inputs.mqtt_consumer]]->tcp://localhost:1883, Topics+/temp(+ optional+/status), Tagnodeper topic_parsing, eigener[[outputs.influxdb]]-> DBsensors. WICHTIG: Output-Routing (tagpass/tagdrop bzw. namepass) so setzen, dass die openWB- und System-Metriken NICHT versehentlich mit nachsensorslaufen und die Satelliten NICHT zusaetzlich nachiobroker. Bestehende openWB-Ingestion darf nicht gestoert werden.mqtt-influx-bridge.serviceundmqtt-rewrite-holzvergaser.servicestoppen + disablen, Skripte archivieren. Pruefen, obholzvergaser-Rewrite noch gebraucht wird (sonst Topic an der Quelle sauber machen).Abnahmekriterien
temperature,node=<raum> value=..nach DBsensors, frisch und lueckenlos (mit Bridge verglichen).Haengt zusammen mit
sensors/temperature, nicht die Bridge-Serien).Fortschritt 21.06.2026 - Telegraf-Pfad fuer Satelliten steht & verifiziert
Umgesetzt (additiv, nichts Bestehendes abgerissen):
/etc/telegraf/telegraf.d/satellites.conf:mqtt_consumerauftcp://127.0.0.1:1883, Topic+/temp,data_type=float,name_override=temperature,topic_parsing-> Tagnode=<raum>. Eigener[[outputs.influxdb]]-> DBsensorsmitnamepass=["temperature"].openwb.conf-Output umnamedrop=["temperature"]ergaenzt (Backup:openwb.conf.bak-20260621), damit Satelliten NICHT zusaetzlich nachiobrokerlaufen.--testsauber (kein Parse-Fehler), Service neu gestartet, Log fehlerfrei.Verifiziert in DB
sensors:temperaturemit allen 9 node-Tags: kueche, wohnstube, schlafzimmer, gaestezimmer, flur_unten, flur_oben, oelraum, trockenraum, garage - frische Werte (alle ~10s).iobroker.temperatureiniobroker(namedrop greift).sensorsenthaelt NURtemperature(Test-Restclaudetestentfernt).Offen (vor Brueckchen-Abschaltung):
heizraum/<ROM>+heizraum/io/*passen nicht auf+/temp. Die Python-Bruecke ist aktuell der einzige Writer fuer heizraum.* -> Bruecke darf erst weg, wenn heizraum abgedeckt ist (eigene Telegraf-Regel; ROM->Klarname via sensor_map ist Phase 1.b). Bis dahin Bruecke weiterlaufen lassen.mqtt-influx-bridge.service+mqtt-rewrite-holzvergaser.servicestoppen+disablen, Skripte archivieren.Naechster moeglicher Schritt: #121 (Grafana-Dashboard) kann jetzt schon auf
sensors/temperaturegebaut werden - die 9 Satelliten sind da.Fortschritt 21.06.2026 (2) - heizraum migriert + Python-Kruecken abgeschaltet
heizraum jetzt im sauberen Pfad (satellites.conf erweitert, Backup
satellites.conf.bak-20260621):heizraum/<ROM>->temperature, Tagnode=heizraum,sensor=<ROM>(zukunftssicher fuer den 17-20-Sensor-Bus).heizraum/io/++heizraum/state/kessel-> neues Measurementio_state, Tagnode=heizraum,signal=pumpe1-4/brenner/kessel(integer 0/1).namepass=[temperature,io_state], openwb-Outputnamedrop=[temperature,io_state].Verifiziert in
sensors:temperaturehat jetzt 10 nodes (9 Raeume + heizraum),io_state6 signals. heizraum-Temp + io frisch.Python-Kruecken abgeschaltet:
mqtt-influx-bridge.service+mqtt-rewrite-holzvergaser.service->disable --now(inactive + disabled). Skripte bleiben als Archiv liegen (reversibel). Nach dem Stop laeuftsensorsnachweislich unabhaengig weiter (alle Knoten frische Punkte), Telegraf aktiv/fehlerfrei, openWB weiter frisch in iobroker (keine Regression).iobrokerist ab jetzt eingefrorenes Archiv - keine neuen Satelliten/heizraum-Serien mehr.Damit ist der Kern von #122 erledigt. Rest-Offen:
kuechesendet erratisch/mit Luecken - kueche-seitig (Firmware/WLAN), eigener Fix.Fundament steht -> #121 (Grafana-Dashboard) kann jetzt auf
sensorsgebaut werden (temperatureGROUP BY node, plusio_statefuer Brenner/Pumpen-Aktivitaet).Status: Bereits umgesetzt ✅
Am 21.06.2026 live verifiziert:
systemctl is-active telegraf→ active)/etc/telegraf/telegraf.d/satellites.conf– MQTT Consumer für+/temp(→ temperature, Tagnode) undheizraum/+(→ temperature, Tagheizraum) +heizraum/io/+(→ io_state)sensorsexistiert mit Measurementtemperature(1330 Punkte, 10 Nodes) undio_statemqtt-influx-bridgeundmqtt-rewrite-holzvergasersindinactive(systemd)Noch offen aus dem Issue:
kuechesendet nur ~2 Punkte/2 min statt 6 – Ursache klärenheizraumhat nur ~45 Punkte/24h (vs. 173 bei anderen) – Sendetakt?→ Schließe dieses Issue als erledigt.