@arnod
Deine Änderungen funktionieren bei mir soweit gut. Danke fürs ändern. 🙂
Ich weiß nicht ob du am "nach Plan" laden noch dran bist aber ich habe eine für mich praktikable Lösung eingefügt, die bis jetzt ihren Dienst tut, auch wenn sie ein hässlicher Workaround ist. Ich lade sehr oft nach Plan, da hier die günstigste Zeit zum Laden verwendet wird.
Vielleicht kannst du so etwas auch bauen, wenn mein Vorschlag über MQTT von weiter oben nicht funktionieren sollte.
Iststand von dir:
schedule('*/3 * * * * *', async function() {
// Vor Regelung Skript Startdurchlauf erst abwarten
//log(`bCharging_evcc = ${bCharging_evcc} sMode_evcc = ${sMode_evcc}`)
if((!bStart && bAutomatikRegelung && !bManuelleLadungBatt && !bBattTraining && (!bCharging_evcc || sMode_evcc !== 'now')) || (!bStart && !bManuelleLadungBatt && !bBattTraining && bTibberLaden)){await Ladesteuerung();}
});
Meine Änderung:
schedule('*/3 * * * * *', async function() {
if (bStart) return; // während Startphase nichts tun
// aktuelle Ladeleistung aus EVCC holen
const wallboxState = await getStateAsync('evcc.0.loadpoint.1.status.chargePower');
const WallboxPower = wallboxState?.val ?? 0;
// optional: Grenzwert konfigurierbar machen
const WallboxLimit = 10500; // Watt
// Debug-Ausgabe (optional)
//if (bDebugAusgabe) logChargeControl(`EVCC Mode=${sMode_evcc}, WallboxPower=${WallboxPower}W`);
// Bedingung: Ladesteuerung nur aktivieren, wenn erlaubt
if (
(bAutomatikRegelung && !bManuelleLadungBatt && !bBattTraining
&& (!bCharging_evcc || sMode_evcc !== 'now')
&& !(sMode_evcc === 'pv' && WallboxPower > WallboxLimit))
||
(!bManuelleLadungBatt && !bBattTraining && bTibberLaden)
) {
await Ladesteuerung();
}
});