@glasfaser
Habe das nun geändert. War das der einzige Fehler? Bei Goingelectric (da ist das angepasste her) habe ich nach was einfachem geschaut aber nix gefunden. Das genannte scheint ja noch komplizierter zu sein.
schedule("*/30 * * * * *", function () {
if (getState("modbus.0.coils.400_Ladefreigabe").val == false) {
setState("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, true);
setStateDelayed("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, true, 3000, false);
}
// Aktuellen Ladestrom in Variable schreiben
Ladestrom_verfuegbar = 0;
Ladestrom_verfuegbar = getState("modbus.1.inputRegisters.52_Ladestrom").val;
Aktueller_Ladestrom = getState("modbus.0.inputRegisters.100_Strom").val;
// Den neuen LS kennen wir noch nicht -> 0
Neuer_Ladestrom = 0;
if (Ladestrom_verfuegbar <= 1610) {
if (Ladestrom_verfuegbar >= 1000 && Ladestrom_verfuegbar <= 1610) {
// 6A ist Minimum, und da wir immer ein bisschen übrig haben wollen, gehen wir bis unter die Grenze von 7A hoch (1610W)
Neuer_Ladestrom = 6;
} else if (false) {
}
} else if (Ladestrom_verfuegbar >= 1611 && Ladestrom_verfuegbar <= 1840) {
Neuer_Ladestrom = 7;
} else if (Ladestrom_verfuegbar >= 1841 && Ladestrom_verfuegbar <= 2070) {
Neuer_Ladestrom = 8;
} else if (Ladestrom_verfuegbar >= 2071 && Ladestrom_verfuegbar <= 2300) {
Neuer_Ladestrom = 9;
} else if (Ladestrom_verfuegbar >= 2301 && Ladestrom_verfuegbar <= 2530) {
Neuer_Ladestrom = 10;
} else if (Ladestrom_verfuegbar >= 2531 && Ladestrom_verfuegbar <= 2760) {
Neuer_Ladestrom = 11;
} else if (Ladestrom_verfuegbar >= 2761 && Ladestrom_verfuegbar <= 2990) {
Neuer_Ladestrom = 12;
} else if (Ladestrom_verfuegbar >= 2991 && Ladestrom_verfuegbar <= 3220) {
Neuer_Ladestrom = 13;
} else if (Ladestrom_verfuegbar >= 3221 && Ladestrom_verfuegbar <= 3450) {
Neuer_Ladestrom = 14;
} else if (Ladestrom_verfuegbar >= 3451 && Ladestrom_verfuegbar <= 3680) {
Neuer_Ladestrom = 15;
} else if (Ladestrom_verfuegbar >= 3681 && Ladestrom_verfuegbar <= 3910) {
Neuer_Ladestrom = 16;
} else if (Ladestrom_verfuegbar >= 3911 && Ladestrom_verfuegbar <= 4140) {
Neuer_Ladestrom = 17;
} else if (Ladestrom_verfuegbar >= 4141 && Ladestrom_verfuegbar <= 4370) {
Neuer_Ladestrom = 18;
} else if (Ladestrom_verfuegbar >= 4371 && Ladestrom_verfuegbar <= 4600) {
Neuer_Ladestrom = 19;
} else if (Ladestrom_verfuegbar >= 4601) {
Neuer_Ladestrom = 20;
}
// Jetzt wissen wir den neuen Ladestrom! Alt=neu?
if (Aktueller_Ladestrom != Neuer_Ladestrom) {
// Oh, was Neues! Gleich an PV_Ladestrom geben!
console.log((['Ladestrom verändert, wird von ',Aktueller_Ladestrom,' verändert auf ',Neuer_Ladestrom].join('')));
setState("modbus.0.holdingRegisters.300_Ladestromstaerke", Neuer_Ladestrom);
} else {
// Nix Neues, nix zu tun
console.log((['Ladestrom gleichgeblieben, bleibt bei ',Aktueller_Ladestrom,' (neu wäre ',Neuer_Ladestrom,' gewesen)'].join('')));
}
} else {
// Minimalerzeugung nicht erreicht, also wird nicht nach PV-Überschuss geladen!
if (getState("modbus.0.coils.400_Ladefreigabe").val == true) {
setState("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, false);
setStateDelayed("modbus.0.coils.400_Ladefreigabe"/*Ladefreigabe*/, false, 3000, false);
}
}
} else {
// Wir sind nicht im AUTO Modus des Ladereglers, nix zu tun
}
} else {
// Wechselrichter schläft, nix zu tun.
}
});