|
1 | 1 | # Auftrag: SET40/TOP112 in den `WP_Befehls_Wächter` aufnehmen |
2 | 2 |
|
3 | | -> **Ergebnis: offen.** |
| 3 | +> **Ergebnis: erledigt (2026-09-19)** — umgesetzt in `nodered-flows` als |
| 4 | +> `WP_Befehls_Waechter` **V1.4.0**: `AltExternalSensor` ist der neunte Kanal je |
| 5 | +> Stufe (Soll `set.AltExternalSensor`, Ist `state.Alt_External_Sensor`, 5 min |
| 6 | +> Karenz, LWT-Vorbedingung, Stale-Guard). Der Bestand war wie vermutet acht |
| 7 | +> Kanäle. `WP_Installer_Waechter` und die Notbetriebswerte sind unberührt, eine |
| 8 | +> Automatik gibt es nicht. |
| 9 | +> |
| 10 | +> **Abnahme:** |
| 11 | +> |
| 12 | +> 1. **An der Anlage, bestanden.** Beide Stufen tragen `set` und `state` = 1. |
| 13 | +> Nach dem Deploy (15:01:32) im Minutentakt gemessen bis 6 min 19 s danach, |
| 14 | +> also über die Karenz hinaus: `WPB_State` 0, Klartext leer, Vorfallzähler |
| 15 | +> unverändert (71), keine `warn`-/`error`-Zeile. Der Server-Quelltext ist |
| 16 | +> nach Rück-Pull bytegleich mit dem lokalen. |
| 17 | +> 2. **Abnahme-Punkte 2 und 3: offline gegen den echten Code, nicht an der Anlage.** |
| 18 | +> `nodered-flows/tests/befehlswaechter/test_befehlswaechter.js` lädt die |
| 19 | +> Skriptdatei mit Mocks und simulierter Uhr: Abweichung bei 4 min still, bei |
| 20 | +> 5 min gemeldet (beide Richtungen); LWT `Offline` ⇒ nur die Bridge-Meldung, |
| 21 | +> kein Alarm-Nachschlag nach der Rückkehr; acht Varianten „unlesbar ⇒ |
| 22 | +> unprüfbar“; alle neun Kanäle tabellengesteuert gleich behandelt. 86 |
| 23 | +> Zusicherungen grün, drei Gegenproben von Hand rot. **Warum nicht live:** |
| 24 | +> Schritt 2 wie beschrieben erzeugt keine Abweichung — die Firmware zieht |
| 25 | +> `TOP112` binnen 7–11 s nach —, sie ließe sich nur erzwingen, indem der |
| 26 | +> Datenpunkt ohne Publish gesetzt wird, und bliebe bei einer Wiedereinspielung |
| 27 | +> durch den Adapter ein Risiko für den Fühler einer laufenden WP. Schritt 3 |
| 28 | +> trennt den Broker, der zugleich der ioBroker-mqtt-Adapter ist, und verfälscht |
| 29 | +> den Vorfallzähler beider Bridge-Wächter. Die Live-Fassung bleibt auf |
| 30 | +> ausdrücklichen Wunsch des Owners nachholbar. |
| 31 | +> 3. **Passiver Nachweis der Verdrahtung, noch offen:** Wären die Datenpunkt-IDs |
| 32 | +> falsch, stünde ab 16:02 eine Zeile `AltExternalSensor … nicht bewertbar` im |
| 33 | +> Log (60-min-Grenze). Der nächste Checkup zeigt es; fehlt sie, ist der Kanal |
| 34 | +> belegt. |
| 35 | +> |
| 36 | +> **Mit gefixt, gilt für alle Kanäle:** `Number(null)` und `Number('')` sind 0 |
| 37 | +> und bestanden die `isFinite`-Prüfung. Ein fehlender oder leerer Soll-Datenpunkt |
| 38 | +> hätte für den neuen Kanal nach 5 min eine falsche „NICHT ausgeführt“-Meldung |
| 39 | +> erzeugt, statt „unprüfbar“ zu sein. Neue Hilfsfunktion `alsZahl()`; heute |
| 40 | +> ändert sich für keinen der 18 Kanäle etwas (alle Werte lesbar, frisch, gleich). |
4 | 41 |
|
5 | 42 | *Zum Kopieren in eine Session im Projekt `nodered-flows` gedacht; setzt dort |
6 | 43 | keinen Vorkontext voraus. Gegenstück im Firmware-Repo: `HeishaMonKaskade`, |
|
0 commit comments