diff --git a/Bat_EV_SDL _V2/form.json b/Bat_EV_SDL _V2/form.json index 05f435f..9a50854 100644 --- a/Bat_EV_SDL _V2/form.json +++ b/Bat_EV_SDL _V2/form.json @@ -2,7 +2,7 @@ "elements": [ { "type": "Label", - "caption": "Aufgepasst: Bei Goodwe nur Ladenvariabel auswählen und entladen Dummy Variabel.\nGoodwe braucht nur eine Leistungssoll Variabel\nGoodwe: Laden=11, Entladen=12,\nSolaredge: Laden=3, Entladen=4\nDefault: Laden=1, Entladen=2" + "caption": "Aufgepasst: Bei Goodwe nur Ladenvariabel auswählen und entladen Dummy Variabel.\nGoodwe braucht nur eine Leistungssoll Variabel. Entlade NICHT auf gleiche Variabel setzen wie Laden\nGoodwe: Laden=11, Entladen=12,\nSolaredge: Laden=3, Entladen=4\nDefault: Laden=1, Entladen=2" }, { "type":"List", @@ -75,6 +75,16 @@ "type": "SelectVariable" } } + , + { + "caption": "Aktuelle Batterieleistung", + "name": "register_bat_power", + "width": "260px", + "add": 0, + "edit": { + "type": "SelectVariable" + } + } ] }, diff --git a/Bat_EV_SDL _V2/module.php b/Bat_EV_SDL _V2/module.php index a33b9f5..e62109f 100644 --- a/Bat_EV_SDL _V2/module.php +++ b/Bat_EV_SDL _V2/module.php @@ -23,9 +23,11 @@ class Bat_EV_SDL_V2 extends IPSModule $this->RegisterVariableFloat("SDL_Pos", "SDL Energie verfügbar (%)", "", 10); $this->RegisterVariableFloat("SoC_EV", "EV Energie verfügbar (%)", "", 11); - // Leistungsgrenzen + // Variablen $this->RegisterVariableFloat("Nennleistung_Soll_EV", "Nennleistung Soll EV", "", 2); $this->RegisterVariableFloat("Nennleistung_Soll_SDL", "Nennleistung Soll SDL", "", 3); + $this->RegisterVariableFloat("Aktuelle_Leistung_EV", "Aktuelle Leistung EV", "", 4); + $this->RegisterVariableFloat("Aktuelle_Leistung_SDL", "Aktuelle Leistung SDL", "", 5); $this->RegisterVariableFloat("P_SDL_laden", "P SDL laden max (W)", "", 21); $this->RegisterVariableFloat("P_SDL_entladen", "P SDL entladen max (W)", "", 22); $this->RegisterVariableFloat("P_EV_laden", "P EV laden max (W)", "", 31); @@ -143,7 +145,7 @@ class Bat_EV_SDL_V2 extends IPSModule $SDL_SOC = 100 / ($capKWh - $upKWh + $underKWh) * $underKWh; $EV_SOC = 100 / $EV_kWh * ($real_kWh - $underKWh); - IPS_LogMessage("Bat_EV_SDL", $real_kWh); + $sdlDisKW = $sdlShareKW_entladen; $evDisKW = $evShareKW_entladen; @@ -334,17 +336,6 @@ class Bat_EV_SDL_V2 extends IPSModule $socVarId = (int)($b["soc"] ?? 0); $typ = (string)($b["typ"] ?? ("Bat " . ($idx + 1))); - /* - $sdlShareKW = ($sumBatPowerkW > 0.0) ? ($sdlTotalkW / $sumBatPowerkW * $pBatkW) : 0.0; - $evShareKW = $pBatkW - $sdlShareKW; - - $underKWh = $sdlShareKW * $hours; - $underKWh = max(0.0, min($underKWh, $capKWh / 2.0)); - - $upKWh = $capKWh - $underKWh; - $SDL_kWh = 2.0 * $underKWh; - $EV_kWh = max(0.0, $capKWh - $SDL_kWh); - */ // Mit laden und entladen unterschiedlich //---------------------------------------------------- @@ -444,6 +435,7 @@ class Bat_EV_SDL_V2 extends IPSModule { $pEvW = (float) GetValue($this->GetIDForIdent("Nennleistung_Soll_EV")); $pSdlW = (float) GetValue($this->GetIDForIdent("Nennleistung_Soll_SDL")); + //Diverenz zwischen EV und SDl berechnen