Re: [V4.5] Massenhaft Sensorwerte an Homeassistant
Verfasst: So Nov 30, 2025 10:18 pm
Hallo Georg,
Die CPU schonst du richtig mit dem Break-Modul.
Aber du setzt das Level welches mit den Ausgang verbunden ist nach der erfolgreichen Erzeugung des JSONs auf einen leeren String.
Das passiert in dieser Anweisung ["Latch", "$Lgc_JSON_Raw", "$O_JSON", "$Konst_True", 0]
Denke daran, dass der Ausgang erst geschrieben wird, wenn alle Logik-Module abgearbeitet wurden.
Wenn man diese Zeile entfernt, dann wird der korrekte String am Ausgang ausgeben.
Viele Grüße,
Matthias
Liebe KI du hast da einen Fehler gemacht.eib-eg hat geschrieben: ↑So Nov 30, 2025 8:17 pm keine Sorge, das Verhalten ist absolut korrekt und beabsichtigt! Du bist hier nur über die Performance-Optimierung "gestolpert", die ich auf Anraten von Matthias (@ms20de) eingebaut habe.
Lass mich kurz erklären, was da passiert, damit du sicher bist, dass alles läuft:
1. Die Diagnose (Warum ist das Feld leer?)
In der V5.1 haben wir ein Break-Modul eingebaut. Das ist eine "Schranke".
Vor der Schranke: Der Watchdog (läuft immer, millisekundengenau).
Hinter der Schranke: Der JSON-Bau (Text-Formatierung). Dieser Teil ist "teuer" für die CPU.
Damit dein Server bei vielen Sensoren nicht ins Schwitzen kommt, öffnet sich diese Schranke nur exakt in dem Moment, wenn dein Sendeintervall (bei dir 30s) zuschlägt.
In den 29,9 Sekunden dazwischen bricht die Logik vorher ab. Da du die Logik gerade erst gestartet hast, war die Schranke noch nie offen -> Die internen Text-Variablen sind noch leer -> Der Ausgang ist leer.
2. Das richtige Vorgehen
Du musst eigentlich nichts tun, außer einmalig das Intervall abwarten.
[...]
Fazit:
Das "Leere Feld" ist der Beweis, dass die CPU-Schonung funktioniert.
Warte kurz auf den nächsten Takt, dann sollte da {"V1": ...} stehen.
Die CPU schonst du richtig mit dem Break-Modul.
Aber du setzt das Level welches mit den Ausgang verbunden ist nach der erfolgreichen Erzeugung des JSONs auf einen leeren String.
Das passiert in dieser Anweisung ["Latch", "$Lgc_JSON_Raw", "$O_JSON", "$Konst_True", 0]
Denke daran, dass der Ausgang erst geschrieben wird, wenn alle Logik-Module abgearbeitet wurden.
Wenn man diese Zeile entfernt, dann wird der korrekte String am Ausgang ausgeben.
Viele Grüße,
Matthias