[Session 2026-07-03] Heizraum: Kessel-Fixes + Namensmap #136

Open
opened 2026-07-03 18:19:35 +00:00 by orbitalo · 1 comment
Owner

Was wurde gemacht

  • Schaltbarer Kessel-Ausgang (GPIO16 Relais, Notabschaltung) heute in Betrieb genommen und verifiziert: Relais schaltet jetzt zuverlaessig per MQTT (heizraum/cmd/kessel 1=abschalten/0=frei), Zustand bleibt stabil, LCD und heizraum/state/kessel zeigen korrekt. Vorher (Vorsession nur verkabelt) sprang der Ausgang wegen zweier Bugs sofort zurueck. Damit ist der erste steuerbare Ausgang des Heizraum-Knotens live.
  • Kessel-Watchdog-Underflow behoben (Commit 0482d17): now = millis() wurde am Loop-Anfang gelesen, danach setzt der MQTT-Callback lastKesselCmdMs auf einen spaeteren Zeitpunkt -> Unsigned-Underflow (now - lastKesselCmdMs ~4,29 Mrd ms > 600000) -> Watchdog feuerte sofort nach cmd 1. Fix: now erst nach netLoop() lesen + Guard now >= lastKesselCmdMs. (Diagnose der Vorsession „fehlendes lastKesselCmdMs“ war falsch.)
  • LCD zeigt Kessel-Status live (Commit e62fd95): redraw() im MQTT-Callback ergaenzt; vorher wurde die IO-Seite bei Kessel-Kommando nicht neu gezeichnet.
  • Laufzeit-Namensmap fuer DS18B20 (Commit 5f86864): ROM->Name via retained MQTT heizraum/cfg/name/<ROM> -> kein Neu-Flashen mehr pro Fuehler. ESP abonniert heizraum/cfg/name/#, Runtime-Map hat Vorrang vor einkompilierter sensor_map.h, publiziert dann heizraum/<name> und loescht den alten ROM-Fallback-Retain.
  • Alle 3 Commits gebaut, nach Forgejo gepusht, per USB/COM4 geflasht und per MQTT/Serial verifiziert.
  • Retained heizraum/cmd/kessel=1 im Broker gefunden und bereinigt — haette den Kessel bei jedem ESP-Boot abgeschaltet.
  • Planung (Umsetzung morgen): Touch-Aktivierung (XPT2046), Namensliste 19 Fuehler (schoene Display-Labels + technische Topic-Namen), Puffer-Fuellgrad-Definition.

Aenderungen an Infrastruktur

  • Heizraum-Knoten: schaltbarer Kessel-Ausgang (GPIO16, active-low Relais) betriebsbereit — erster steuerbarer Aktor des Knotens.
  • heizraum-knoten Firmware jetzt auf 5f86864 (ESP32, USB an Windows-KI-Server wutti@100.84.255.83 COM4).
  • MQTT-Broker CT143: retained cmd/cfg-Topics bereinigt.
  • Erster DS18B20 haengt am Bus (ROM 28BE941600000093, ~25 °C, noch ohne Namen).
  • Kessel steht auf FREI (sicherer Zustand).

Erkannte Probleme

  • cmd-Topics NIE mit -r/retain senden (Kessel-Boot-Abschaltung). Betriebsregel dokumentiert.
  • 3 Wunsch-Namen laenger als der Namensbuffer (24): heizkreis_vorlauf_vor_mischer (29), ..._nach_mischer (30), warmwasser_zirkulation_ruecklauf (32) -> geloest durch getrennte Ebenen (kurze Topic-Namen + freie Display-Labels).
  • LCD kurzzeitig weiss (Wackelkontakt am Display-Header beim Hantieren) -> nach Neustart ok; tft.init() laeuft nur beim Boot.

Naechste Schritte

  • Touch verkabeln: Bruecken T_CLK/T_DIN/T_DO auf SCK/MOSI/MISO (18/23/19), T_CS->GPIO21, T_IRQ->GPIO22. Dann -DTOUCH_CS=21 + IRQ-Auswertung + Kalibrierung + Touch-Zuordnungsmodus einbauen.
  • Namensbuffer auf >=40 erhoehen, Auswahlliste (01-19) + Labels flashen.
  • 12-16 DS18B20 montieren (kurze Leitungen, 1 Bus GPIO15) und per Erwaermen/Touch zuordnen (schreibt retained cfg/name/<ROM>).
  • Puffer-Fuellgrad-Panel in Grafana: SoC% = (Mittel 4 Puffer - 45) / (90 - 45) * 100, spaeter optional witterungsgefuehrter T_min ueber Aussenfuehler.
  • Spaeter: Panasonic Option D (ESPHome UART) + Shelly PM fuer COP.

Betroffene Systeme

  • heizraum-knoten (ESP32; Forgejo orbitalo/heizraum-knoten)
  • Windows-11-KI-Server (wutti@100.84.255.83, COM4) — Build/Flash
  • CT143 (mosquitto, InfluxDB, Telegraf, Grafana)
## Was wurde gemacht - **Schaltbarer Kessel-Ausgang (GPIO16 Relais, Notabschaltung) heute in Betrieb genommen und verifiziert:** Relais schaltet jetzt zuverlaessig per MQTT (`heizraum/cmd/kessel` 1=abschalten/0=frei), Zustand bleibt stabil, LCD und `heizraum/state/kessel` zeigen korrekt. Vorher (Vorsession nur verkabelt) sprang der Ausgang wegen zweier Bugs sofort zurueck. Damit ist der erste steuerbare Ausgang des Heizraum-Knotens live. - **Kessel-Watchdog-Underflow behoben** (Commit `0482d17`): `now = millis()` wurde am Loop-Anfang gelesen, danach setzt der MQTT-Callback `lastKesselCmdMs` auf einen spaeteren Zeitpunkt -> Unsigned-Underflow (`now - lastKesselCmdMs` ~4,29 Mrd ms > 600000) -> Watchdog feuerte sofort nach `cmd 1`. Fix: `now` erst nach `netLoop()` lesen + Guard `now >= lastKesselCmdMs`. (Diagnose der Vorsession „fehlendes lastKesselCmdMs“ war falsch.) - **LCD zeigt Kessel-Status live** (Commit `e62fd95`): `redraw()` im MQTT-Callback ergaenzt; vorher wurde die IO-Seite bei Kessel-Kommando nicht neu gezeichnet. - **Laufzeit-Namensmap fuer DS18B20** (Commit `5f86864`): ROM->Name via retained MQTT `heizraum/cfg/name/<ROM>` -> kein Neu-Flashen mehr pro Fuehler. ESP abonniert `heizraum/cfg/name/#`, Runtime-Map hat Vorrang vor einkompilierter `sensor_map.h`, publiziert dann `heizraum/<name>` und loescht den alten ROM-Fallback-Retain. - Alle 3 Commits gebaut, nach Forgejo gepusht, per USB/COM4 geflasht und per MQTT/Serial verifiziert. - **Retained `heizraum/cmd/kessel=1` im Broker gefunden und bereinigt** — haette den Kessel bei jedem ESP-Boot abgeschaltet. - **Planung** (Umsetzung morgen): Touch-Aktivierung (XPT2046), Namensliste 19 Fuehler (schoene Display-Labels + technische Topic-Namen), Puffer-Fuellgrad-Definition. ## Aenderungen an Infrastruktur - **Heizraum-Knoten: schaltbarer Kessel-Ausgang (GPIO16, active-low Relais) betriebsbereit** — erster steuerbarer Aktor des Knotens. - `heizraum-knoten` Firmware jetzt auf `5f86864` (ESP32, USB an Windows-KI-Server `wutti@100.84.255.83` COM4). - MQTT-Broker CT143: retained cmd/cfg-Topics bereinigt. - Erster DS18B20 haengt am Bus (ROM `28BE941600000093`, ~25 °C, noch ohne Namen). - Kessel steht auf FREI (sicherer Zustand). ## Erkannte Probleme - **cmd-Topics NIE mit `-r`/retain senden** (Kessel-Boot-Abschaltung). Betriebsregel dokumentiert. - 3 Wunsch-Namen laenger als der Namensbuffer (24): `heizkreis_vorlauf_vor_mischer` (29), `..._nach_mischer` (30), `warmwasser_zirkulation_ruecklauf` (32) -> geloest durch getrennte Ebenen (kurze Topic-Namen + freie Display-Labels). - LCD kurzzeitig weiss (Wackelkontakt am Display-Header beim Hantieren) -> nach Neustart ok; `tft.init()` laeuft nur beim Boot. ## Naechste Schritte - Touch verkabeln: Bruecken `T_CLK/T_DIN/T_DO` auf `SCK/MOSI/MISO` (18/23/19), `T_CS`->GPIO21, `T_IRQ`->GPIO22. Dann `-DTOUCH_CS=21` + IRQ-Auswertung + Kalibrierung + Touch-Zuordnungsmodus einbauen. - Namensbuffer auf >=40 erhoehen, Auswahlliste (01-19) + Labels flashen. - 12-16 DS18B20 montieren (kurze Leitungen, 1 Bus GPIO15) und per Erwaermen/Touch zuordnen (schreibt retained `cfg/name/<ROM>`). - Puffer-Fuellgrad-Panel in Grafana: `SoC% = (Mittel 4 Puffer - 45) / (90 - 45) * 100`, spaeter optional witterungsgefuehrter T_min ueber Aussenfuehler. - Spaeter: Panasonic Option D (ESPHome UART) + Shelly PM fuer COP. ## Betroffene Systeme - `heizraum-knoten` (ESP32; Forgejo `orbitalo/heizraum-knoten`) - Windows-11-KI-Server (`wutti@100.84.255.83`, COM4) — Build/Flash - CT143 (mosquitto, InfluxDB, Telegraf, Grafana)
Author
Owner

Praezisierung: Der schaltbare Ausgang (GPIO16, heizraum/cmd/kessel) ist die Sperre fuer den Oelkessel — er unterbricht die Oelbrenner-Freigabe (NC/Fail-Safe, cmd 1 = Oel sperren, cmd 0 = freigeben, sicherer Zustand = FREI). Zweck: Oel sparen, wenn Holzvergaser laeuft bzw. der Pufferspeicher genug Waerme hat. Der Heizraum hat mehrere Waermeerzeuger (Oelkessel, Holzvergaser, Solarthermie) + Pufferspeicher. Kuenftige Automatik: Oelkessel sperren bei hohem Puffer-Fuellgrad / aktivem Holzbetrieb. (Das MQTT-Topic heisst technisch weiterhin .../kessel.)

**Praezisierung:** Der schaltbare Ausgang (GPIO16, `heizraum/cmd/kessel`) ist die **Sperre fuer den Oelkessel** — er unterbricht die Oelbrenner-Freigabe (NC/Fail-Safe, `cmd 1` = Oel sperren, `cmd 0` = freigeben, sicherer Zustand = FREI). Zweck: Oel sparen, wenn Holzvergaser laeuft bzw. der Pufferspeicher genug Waerme hat. Der Heizraum hat mehrere Waermeerzeuger (Oelkessel, Holzvergaser, Solarthermie) + Pufferspeicher. Kuenftige Automatik: Oelkessel sperren bei hohem Puffer-Fuellgrad / aktivem Holzbetrieb. (Das MQTT-Topic heisst technisch weiterhin `.../kessel`.)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: orbitalo/homelab-brain#136
No description provided.