Hallo Forum,
Einer unserer SMA geht des nachts in StandBy und liefert dann keine, bzw. ungültige Werte für ActivePower (InvalidValueException) per Modbus.
Der unschöne Effekt: Ein verknüpfter Controller, z.B. SellToGridLimit, verweigert dann seinen Dienst und produziert das rote Ausrufezeichen im UI.
Grundsätzlich ist das Verhalten ja auch richtig. Aber eben unschön. Ich habe versucht das in meiner Umsetzung für SMA abzufangen: Ich setze den channel auf 0 wenn ungültige Werte kommen.
catch (InvalidValueException e) {
this.log.error("ActivePower channel not (yet) available. Inverter in standby? Set value = 0 ");
this._setActivePower(0);
}
Das Setzen des 0-Werte im Channel funktioniert auch. Zumindest sehe ich die Meldung im Log. Aber der Controller gibt immer noch ein
[ms.edge.core.cycle.CycleWorker] [_cycle] Error in Controller [ctrlPvInverterSellToGridLimit0]: Value for Channel [pvInverter1/ActivePower] is invalid.
Gruß,
klinki