NEWS
Blockly, ModBus und Grafana
-
Hallo Gemeinde,
ich stehe vor folgender Herausforderung:
Ausgangssituation:
WIr betreiben eine PV-Anlage mit einem Solis-Wechselrichter. Dieser liefert über Modbus für die einzelnen Strings Strom und Spannung, so dass man die Leistung der Anlage berechnen (Strom x Spannung) und entsprechend in eine Systemvariable des ioBroker schreiben kann mit dem Ziel, sie anschließend über Grafana darstellen zu lassen.Um das System nicht zu überlasten lasse ich das script alle 2 min laufen. Dies funktioniert auch, die Daten werden in die influx.db geschrieben und im Grafana angezeigt -> bis zum "Problem"
Problemstellung:
Wenn ich die "Häufigkeit" des scriptes ändere, also z.B. von 2 auf 5 min, dann werden für ca. 1h die Werte über das script in die Systemvariablen des ioBroker geschrieben - aber dann nicht mehr, das script berechnet nicht mehr und die timestamps in den SV "bleiben stehen".
Die Modbus-Verbindung steht, in den Objekten des Modbus-Adapters ändern sich die Werte regelmäßig, aber das script schreibt eben nicht mehr die SV.
Dank euch!!
-
@nachtfuchs sagte in Blockly, ModBus und Grafana:
Um das System nicht zu überlasten lasse ich das script alle 2 min laufen.
ich lasse ähnliche Berechnungen alle 6 Sekunden lsufen. Ohne Probleme.
@nachtfuchs sagte in Blockly, ModBus und Grafana:
das script berechnet nicht mehr
woran machst du das fest?
@nachtfuchs sagte in Blockly, ModBus und Grafana:
und die timestamps in den SV "bleiben stehen".
SV = State (Datenpunkt)?
-
Hallo, mal wieder mein Retter in der Not
Dass das script nicht rechnet mache ich daran fest, dass die Systemvariable (= SV) im ioBroker nicht aktualisiert wird und somit die influx.db keinen neuen Datenpunkt bekommt...
Was mich eben wundert ist, dass es etwa 1 h funktioniert, und dann nicht mehr...
-
@nachtfuchs sagte in Blockly, ModBus und Grafana:
dass die Systemvariable (= SV) im ioBroker
nochmals:
@homoran sagte in Blockly, ModBus und Grafana:
SV = State (Datenpunkt)?
@nachtfuchs sagte in Blockly, ModBus und Grafana:
Dass das script nicht rechnet
erkennt man, indem man mit einem debug-Baustein die Rechnung überprüft.
@nachtfuchs sagte in Blockly, ModBus und Grafana:
und somit die influx.db keinen neuen Datenpunkt bekommt...
dies ist aber schon die dritte Ebene, die klemmen könnte.
@nachtfuchs sagte in Blockly, ModBus und Grafana:
Was mich eben wundert ist, dass es etwa 1 h funktioniert, und dann nicht mehr...
da wäre zu prüfen, ob da der Server als ganzes überlastet ist (aber nicht wegen des Skripts als solches).
PS ich schieb das mal aus England nach D!
-
Sorry, was meinst Du mit "debug-Baustein" ?
-
@nachtfuchs sagte in Blockly, ModBus und Grafana:
Sorry, was meinst Du mit "debug-Baustein" ?
-
Danke, ist angelegt - und nun?
-
@homoran said in Blockly, ModBus und Grafana:
@nachtfuchs sagte in Blockly, ModBus und Grafana:
und somit die influx.db keinen neuen Datenpunkt bekommt...
dies ist aber schon die dritte Ebene, die klemmen könnte.
Wie gesagt, die timestamps der Systemvariablen im Java script sind "alt".
Konkret: die Zeitstempel sind aktuell, aber der "zuletzt geändert"-Zeitpunkt ist in der Vergangenheit (> 1 Tag).
Und wie gesagt, wenn ich jetzt die Skripausführung von alle 2 min auf 1 min ändere schreibt er fleißig...
Bilder: das kleine ist vor der Umstellung auf Ausführung alle 2 min, das große nach der Umstellung
-
@nachtfuchs sagte in Blockly, ModBus und Grafana:
und nun?
was steht im log (Protokolle)?
Was hast du eigentlich alles unter Global an Skripten?
sollen die da wirklich sein?EDIT!
Hast du für den debug Block etwa ein eigenes Skript angelegt?
Der Block muss in deinem zu untersuchenden Skript eingebaut werden um dich zu informieren wann und wo es klemmt. -
Ich habe das script mal um 18:17 laufen lassen, um Fehlermeldungen direkt zuordnen zu können.
Der einzige Log-Eintrag für 18:17 ist der angehängte.
Um 18:17 hat das script korrekt gerechnet und die Systemvariablen gesetzt ...
-
@nachtfuchs sagte in Blockly, ModBus und Grafana:
Ich habe das script mal um 18:17 laufen lassen, um Fehlermeldungen direkt zuordnen zu können.
welches Skript?
@homoran sagte in Blockly, ModBus und Grafana:
Hast du für den debug Block etwa ein eigenes Skript angelegt?
Der Block muss in deinem zu untersuchenden Skript eingebaut werden um dich zu informieren wann und wo es klemmt. -
-
@nachtfuchs der debug Block ist ja gar nicht integriert
-
Stimmt ...
Anbei die screenshots des scripts und des Protokolls.
Ab dem morgen wurden die Variablen geändert, die influx.db gefüllt - aber um 09:32 passierte das nicht mehr.
Jetzt habe ich zu Testzwecken das script um 11:59 einmalig ausführen lassen - da hat er wieder in die Variablen geschrieben... ich verzweifel hier noch ...
-
@nachtfuchs sagte in Blockly, ModBus und Grafana:
ich verzweifel hier noch ...
@homoran sagte in Blockly, ModBus und Grafana:
Was hast du eigentlich alles unter Global an Skripten?
sollen die da wirklich sein? -
ich sehe keinen debug output
was steht im Zeitplan?
Warum kein Cron? -
@nachtfuchs sagte: die Leistung der Anlage berechnen (Strom x Spannung)
Das liefert die Scheinleistung - nicht die Wirkleistung.