NEWS
object binding ohne setState
-
Hallo,
ich nutze den sma-em Adapter und die Werte werden alle 200ms aktualisiert.
Das ist gewollt und funktioniert auch.Jetzt möchte ich einen Batteriewechselrichter (nicht SMA) mit in meine Anlage integrieren.
Diesen lasse ich die Werte aus einer Modbus Instanz auslesen.
Das funktioniert auch.Um die Werte in die Modbusobjekte zu bekommen nutze ich bindings in Blockly.
Hier ein Auszug:
Es müssten etwa 15 Werte mindestens alle 500ms aktualisiert werden.
Das macht etwa 1800 Objekte je Minute und somit mehr als 1000 und dann kommt es zu einer Fehlermeldung.
script.js.common.RS485L1 is calling setState more than 1000 times per minute! Stopping Script now! Please check your script!
Ich habe schon irgendwo gelesen, dass die Anzahl der erlaubten setState je Minute in den Einstellungen irgendwo hoch gesetzt werden kann.
Das wäre eine Möglichkeit das Problem zu lösen. Aber gibts vielleicht auch eine bessere Lösung? Irgendein Adapter oder eine Blockly Funktion, die die setState Anzahl nicht so hoch schießen lässt?
Ich vermute, dass die 1800 setState (+ ein paar aus anderen Scripten) den Raspberry Pi 4GB auch ordentlich auslasten. Oder wird das nicht zum problem?Gruß
Klamm -
@klamm-0 sagte in object binding ohne setState:
Es müssten etwa 15 Werte mindestens alle 500ms aktualisiert werden.
Ist das wirklich notwendig?
-
@codierknecht Der Batteriewechselrichter regelt sonst leider nicht vernümftig.
Wenn es ein SMA Batteriewechselrichter wäre, dann würden die werte alle 600 oder 200ms aktualisiert werden.
In den Einstellungen sind 3 Werte auswählbar. 1000ms 600ms und 200ms.Wobei der Hinweis gegeben wird:
Intervall auf 200ms einstellen, um maximal mögliche Regelgeschwindigkeit von SMA PV- oder Batteriewechselrichtern zu erreichen. -
@klamm-0 sagte: Der Batteriewechselrichter regelt sonst leider nicht vernümftig.
Der benötigt alle 15 Werte vom SMA-WR zum Regeln?
-
@paul53 Ja
Spannung L1
Spannung L2
Spannung L3
Strom L1
Strom L2
Strom L3
Leistung L1
Leistung L2
Leistung L3
Scheinleistung L1
Scheinleistung L2
Scheinleistung L3
Summe Leistung L1
Summe Leistung L2
Summe Leistung L3sind die Werte die immer wieder abgefragt werden. Theoretisch würde es auch ohne die Summen gehen aber versucht habe ich es noch nicht.
-
@klamm-0 sagte: die Werte die immer wieder abgefragt werden.
Der Regler wird sicherlich nur auf eine der 5 Größen regeln? (Wirk-)Leistung?
Die restlichen Werte könnte man dann im Abstand von 5 s übertragen, zumal die Spannung ohnehin nahezu konstant ist. Strom und Scheinleistung macht auch wenig Sinn, da Scheinleistung = Spannung * Strom.
Was ist "Summe Leistung"? -
@paul53 Summe Leistung ist die Summe der kWh die über den Zähler bezogen wurden.
Ich habe es übrigens lösen können.
Das nicht vernumpftige Regeln sah übrigens so aus: bei Überproduktion von zB. 500W (500W stehen dem Batteriewechselrichter zum Laden zur Verfügung)- WR Lädt mit 650W
- WR bemerkt, dass jetzt 150W gekauft werden und reduziert die Ladeleistung um ca. 200W
- WR bemerkt, dass jetzt noch 50W zum Laden zur Verfügung stehen und regelt wieder hoch auf 650W Ladelastung
ab hier wiederholt sich dann 1-3 immer.
Ich habe diverse Werte einfach mal weg gelassen und geguckt was passiert.
Irgendwann habe ich festgestellt wenn ich die Scheinleistung weg lasse, dann regelt der Wechselrichter sich perfekt auf den Bezug und auf die Einspeisung ein (hin und wieder mal bis zu 10W drüber oder drunter aber das scheint normal zu sein)
Ich habe also nur noch 12 Werte (Spannung, Strom, Leistung und Summe Leistung) und aktuallisiere diese nur jede Sekunde.
Dadurch ist das System irl etwas träge aber im sunnyportal von SMA sehen die Werte sehr gut aus und die Werte im sunnyportal passen auch zum tatsächlichen Zählerstand.