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 verstehe
mit 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.