Hallo Ihr, da dieses DOIF möglichst funktionieren sollte, ich aber den Moment wo dieses Failsafe für die Solaranlage aktiv werden muss, ungern zum Testen provoziere .... Verständnisfrage:
RAW (deutlich reduziert)
XtenderSetPrevent_OVP_DOIF DOIF ([MQTT2_JK_BMS:max_cell_voltage] >= 3.56 or [Studer485_CAN:BATT_Voltage] >= 28)\
(set blabla)\
(set Studer485_XTM AUX1_Transfer_RAM kein_Transfer)\
DOELSEIF ([MQTT2_JK_BMS:max_cell_voltage] >= 3.5 and [Studer485_CAN:SoC] < 99)\
(set Studer485_CAN BATT_Charge_Current_Limit_Adc_RAM 10.0)\
(IF ([MQTT2_JK_BMS:max_cell_voltage] < 3.45) (set $SELF cmd_3))\
DOELSEIF ([MQTT2_JK_BMS:max_cell_voltage:avg10] < 3.37)\
(set Studer485_CAN BATT_Charge_Current_Limit_Adc_RAM 95.0)
attr XtenderSetPrevent_OVP_DOIF do always
attr XtenderSetPrevent_OVP_DOIF repeatsame 0:1:1
attr XtenderSetPrevent_OVP_DOIF wait 0,1:0,600:0
In der commandref macht mich das hier wuschig
ZitatDas Attribut repeatsame lässt sich mit do always oder do resetwait kombinieren. Wenn die maximale Anzahl für ein Kommando ausgelassen oder auf Null gesetzt wird, so gilt für dieses Kommando der Defaultwert "einmalige Wiederholung"; in Kombination mit do always bzw. do resetwait gilt für dieses Kommando "beliebige Wiederholung".
Anwendungsbeispiel: cmd_1 soll beliebig oft wiederholt werden, cmd_2 maximal zweimal
attr di_repeat repeatsame 0:2
attr di_repeat do always
Wenn ich mein Konstrukt richtig verstehe, passiert folgendes: durch
attr XtenderSetPrevent_OVP_DOIF do always
attr XtenderSetPrevent_OVP_DOIF repeatsame 0:1:1
- wird Zweig 1 so oft wie getriggert ausgeführt, egal, ob ein anderer Zweig zwischendrin aktiv war
- Zweig 2 und 3 wird jeweils genau max einmal ausgeführt (wie ohne do always) so lange nicht ein anderer Zweig aktiv war
?
Grüße!
H