NEWS
Wechselrichter Steuerung null Einspeisung Blockly Skript
-
Hallo,
ich habe aktuell ein Javaskript am laufen was mein WR mit Akku Steuert.
Diese Steuerung läuft so naja gut.
Wenn mein Stromzähler einen Minus wert hat z.b. -124 rechnet das skript eher mit (+)124 und regelt hoch und daher bekomme ich eine Zick-Zack Regelung.
Skript und Screenshots reiche ich natürlich nach, aktuell nicht möglich.Skript:
let ids = { //Stromzähler gridSum: 'sonoff.0.Smartzaehler-Strom.SML_curr_w', //WR_Steuerung solarLimit: 'opendtu.0.112182854324.power_control.limit_nonpersistent_absolute', // opendtu.0.114184519980.power_control.limit_nonpersistent_absolute //WR_Trennung_und_Power_Messung solarInput: 'shelly.0.shellyplus1pm#a8032ab78318#1.Relay0.Power', } let inverterOutput = { min: 10, // Minimales Limit (Grundverbrauch) max: 100, // Maximales Limit (Wechselrichter Leistung max.) safetyMargin: -60, // Einspeisungsziel (da sonst kleine Anstiege im Stromverbrauch auf das Stromnetz gehen) minDifference: 15, // Kein neues Limit setzen, wenn Differenz alt neu <= dieser Wert ist } let oldLimit = 0; // Run every 15 seconds schedule('*/15 * * * * *', function () { let fromSolar = getState(ids.solarInput).val; let fromGrid = getState(ids.gridSum).val; let newLimit = fromSolar + fromGrid + inverterOutput.safetyMargin; if (newLimit < inverterOutput.min) newLimit = inverterOutput.min; if (newLimit > inverterOutput.max) newLimit = inverterOutput.max; if (inverterOutput.min > fromSolar) newLimit = inverterOutput.max; if(!(Math.abs(newLimit - oldLimit) <= inverterOutput.minDifference)) { log(`Setting limit to ${fromSolar} + ${fromGrid} = ${newLimit}W`); setState (ids.solarLimit , newLimit); oldLimit = newLimit; } });
Problem:
habt ihr vllt. ein gutes Blockly Skript womit ich mein WR PV Akku Anlage Zuverlässig Steuern kann so das ich eine "null-Einspeisung" hin bekomme.
ich habe über die suche schon geschaut aber nicht gefunden was ich verstehemit Skript Sprache bin ich nicht konform und habe das Skript auch nur via PN am Anfang bekommen wo ich meine PV Akkuanlage DIY gebaut habe.
Ziel ist ein Mindesverbrauch, MaximalLeistung, ein Sicherheits Einspeiseziel und eine min. Differenzänderung
also mit 4 Werten der WR Steuern, klar ist mir auch das es Zeitverzögert ist wegen dem auslesen, Reagieren und Ansteuern.Danke für eure hilfe
Update: Skript und Problem beigefügt.
-
-
@paul53
Danke für den Hinweis.
PUH das Programm PI Regler sieht über aus, Dachte eher so an Matheformeln oder so die Richtung.
mir fehlt nur halt ein Anfang das ich mit Blockly arbeiten kann, das Verstehe ich eigentlich eher -
@rebel85 sagte: max: 100, // Maximales Limit (Wechselrichter Leistung max.)
Die PV liefert nur maximal 100 W?
Wie oft wird die Zählerleistung aktualisiert? -
@rebel85 sagte: Dachte eher so an Matheformeln
Ein PI-Regler arbeitet mit Formeln. Angepasst an die Vorgaben:
let inverterOutput = { min: 10, // Minimales Limit (Grundverbrauch) max: 100, // Maximales Limit (Wechselrichter rel. max.) safetyMargin: -60, // Einspeisungsziel (da sonst kleine Anstiege im Stromverbrauch auf das Stromnetz gehen) minDifference: 15, // Kein neues Limit setzen, wenn Differenz alt neu <= dieser Wert ist }
Stellwerte: 10, 25, 40, 55, 70, 85, 100 %
-
@paul53 Zähler kommt alle 5 bis 10 sekunden, und das skript schaut ja alle 15 sekunden.
ich vermute das das skript das negative vorzeichen irgendwie wegnimmt