@cptmozz
Ich habe ein Problem festgestellt bei dem Versuch, das Skript mit
CONTINUE_WHEN_INVERTER_IN_STANDBY: false
laufen zu lassen. (Mir gefällt die Option besser, weil, warum Anpassungen der Grundlast schicken, wenn der Inverter eh nichts liefert.)
Es ist dabei in einen Zustand gelaufen, bei dem das Skript nicht mehr aufgewacht ist, nachdem der Inverter wieder aufgewacht ist.
Es sieht so aus, dass das Skript dann in dem Zustand "Waiting for acknowledgment" hängen geblieben ist.
Ich kann mir gut vorstellen, dass nichts mehr passiert, wenn irgendwie einmal die Differenz zwischen requestedInverterOut.ts und acknowledgedInverterOut.ts „passend“ steht. Dann wird stur immer weiter auf ein Acknowledge gewartet, das im INVERTER_IN_STANDBY Zustand bestimmt nicht mehr kommt.
(Für diese Überlegungen spricht auch, dass das Skript aufgewacht ist, als ich in der Ecoflow App den Grundbedarf Regler manuell verschoben habe - dadurch wurde wohl der Acknowledge gesendet auf den das Skript gewartet hat.)
Mein Lösungsansatz
Ich habe den
!device.CONTINUE_WHEN_INVERTER_IN_STANDBY
Block nach oben verschoben innerhalb von
function isOutputAdjustmentRequired
direkt nach den
if (smartMeterWattState.ts === 0)
Überlegung dazu
Im STANDBY Zustand soll die Funktion sofort verlassen werden, es soll auf keinerlei „outdates“ oder acknowledges gewartet werden; es sollen keinerlei adjustments oder retries versucht werden.
Dann läuft er auch nicht in den Block mit "Waiting for acknowledgment“, solange STANDBY besteht.
Erst wenn der STANDBY vorbei ist, wird wieder mit Acknowledgements gerechnet.
Also, einfach den „!device.CONTINUE_WHEN_INVERTER_IN_STANDBY“ Block nach oben verschoben in der "function isOutputAdjustmentRequired".
Das funktioniert bei mir in der Praxis bisher stabil, sodass das Skript auch mit der Option „CONTINUE_WHEN_INVERTER_IN_STANDBY: false“ funktioniert und mit Erwachen der Anlage auch selber wieder die Steuerung übernimmt.