Tipp gesucht: Manuelles Laden E-Auto mit Vorwahl der zu ladenden kWh

Begonnen von isy, 01 April 2023, 19:00:34

Vorheriges Thema - Nächstes Thema

isy

Moin zusammen,

ich habe mit dazu folgende Lösung eingerichtet. Funktioniert alles soweit, allerdings nur über DOIF wait Timer, nicht über die Abfrage SOll-Ladung zu IST-Ladung.

1. Schritt, dummy zur manuellen Bedienung.
defmod WB_MaxKw dummy
attr WB_MaxKw devStateIcon devStateIcon Aus:wallbox@red 4km:wallbox@green 12km:wallbox@green 20km:wallbox@green
attr WB_MaxKw room Garagen
attr WB_MaxKw webCmd Aus:4km:12km:20km

2. Schritt, DOIF welches aktuell (weil ich die Abfrage SOLL zu IST nicht hinbekommen habe) 4 Zweige hat (analog dummy) und im 1. Zweig immer die Ladung startet, den zugehörigen wait abwartet und dann im 1.2 Zweig die Ladung beendet usw. Das Gleiche dann für alle drei Stufen 4, 12 und 20km. Zum Test hier das wait nur mit kurzen Zeiten.
defmod WB_MaxKw_DOIF_1 DOIF ([WB_MaxKw:"^Aus$"]) \
  (set ga_myGoE_RFID initialize, set WB_PV_Regelung initialize, set ga_myGoE amp_current 6, set ga_myGoE stop_at_num_kWh 0, set ga_myGoE off ) \
  () \
##\
DOELSEIF ([WB_MaxKw:"^4km$"]) \
  (set WB_PV_Regelung disable, set ga_myGoE_RFID disable, set ga_myGoE amp_current 16, set ga_myGoE on) \
  (set  ga_myGoE amp_current 6, set ga_myGoE off, set WB_MaxKw Aus) \
##\
DOELSEIF ([WB_MaxKw:"^12km$"]) \
  (set WB_PV_Regelung disable, set ga_myGoE_RFID disable, set ga_myGoE amp_current 16, set ga_myGoE on) \
  (set  ga_myGoE amp_current 6, set ga_myGoE off, set WB_MaxKw Aus) \
##\
DOELSEIF ([WB_MaxKw:"^20km$"])\
  (set WB_PV_Regelung disable, set ga_myGoE_RFID disable, set ga_myGoE amp_current 16, set ga_myGoE on) \
  (set  ga_myGoE amp_current 6, set ga_myGoE off, set WB_MaxKw Aus) \
##\
DOELSE\
  ()
attr WB_MaxKw_DOIF_1 wait 0,0:0,10:0,20:0,30

Das Problem mit der Steuerung über den SOLL / IST Vergleich liegt darin, dass der jeweilige DOIF Zweig nur 1* durchlaufen wird, ich aber das Beenden der Ladung, je nach erwarteter km Zahl, berechnen muss.

Die Box kennt das Reading "stop_at_num_kWh" welches mit set z.B. auf 1 zu setzen ist. Der IST Wert wird im Reading "kWh_charged_last" bereitgestellt.

Die Abfrage muss dann im Prinzip so lauten: Wenn kWh_charged_last = stop_at_num_kWh dann Ladung beenden

Kann ich diese Abfrage im gleichen DOIF unterbringen?
Ich hatte dann versucht, ein eigenes DOIF dazu anzulegen. Funktioniert nicht, denn es wird bei jedem automatischen Ladevorgang die Bedingung erfüllt. stop_at_num_kWh ist auf 0 und kWh_charged_last ist beim Ladestart auch 0. Ladung beendet.

Wie könnte man die Aufgabenstellung geschickter abbilden?

VG Helmut



Ein Weg wird erst zu einem Weg, wenn man ihn geht