no message

This commit is contained in:
dh
2026-08-25 11:59:30 +02:00
parent c46bcd0488
commit 4491e244fb
2 changed files with 52 additions and 42 deletions
+20 -15
View File
@@ -278,7 +278,7 @@ class Ladestation extends IPSModule
// zurückgesetzt. // zurückgesetzt.
if ( if (
$stationType === 3 && $stationType === 3 &&
$this->GetBuffer("SmartMeFullDetectionVersion") !== "2" $this->GetBuffer("SmartMeFullDetectionVersion") !== "3"
) { ) {
$this->SetValue("Car_is_full", false); $this->SetValue("Car_is_full", false);
$this->SetValue("Pending_Counter", 0); $this->SetValue("Pending_Counter", 0);
@@ -287,7 +287,7 @@ class Ladestation extends IPSModule
(float)$this->ReadPropertyInteger("Max_Current_abs") (float)$this->ReadPropertyInteger("Max_Current_abs")
); );
$this->SetBuffer("SmartMeChargingEnabled", "0"); $this->SetBuffer("SmartMeChargingEnabled", "0");
$this->SetBuffer("SmartMeFullDetectionVersion", "2"); $this->SetBuffer("SmartMeFullDetectionVersion", "3");
} }
$usesEaseeGateway = $this->UsesEaseeGateway($stationType); $usesEaseeGateway = $this->UsesEaseeGateway($stationType);
@@ -1043,11 +1043,10 @@ class Ladestation extends IPSModule
abs((float)$chargingPowerWatts) >= 100; abs((float)$chargingPowerWatts) >= 100;
$carIsFull = $carDetected && $wasFull && !$carIsCharging; $carIsFull = $carDetected && $wasFull && !$carIsCharging;
// Ein aus einer früheren Regelungsunterbrechung gelernter Wert unter // Pico liefert die verfügbare Stations-/Gruppenobergrenze direkt über
// dem Mindestladestrom darf die Station nicht dauerhaft blockieren. // die API. Ein zuvor über den Soll-/Istvergleich gelernter Fahrzeugwert
// Ein korrekt bestätigtes Ladeende wird dagegen bis zum Abstecken oder // darf deshalb den möglichen Ladestrom nicht dauerhaft begrenzen.
// bis zur erneuten Leistungsaufnahme gehalten. if (!$carIsFull) {
if (!$carIsFull && (float)$this->GetValue("Max_Current") < 6) {
$this->SetValue("Max_Current", $maxCurrent); $this->SetValue("Max_Current", $maxCurrent);
} }
@@ -1597,22 +1596,28 @@ class Ladestation extends IPSModule
if ($counter >= $requiredCycles) { if ($counter >= $requiredCycles) {
$this->SetValue("Pending_Counter", 0); $this->SetValue("Pending_Counter", 0);
if ($requestedMismatch) { if ($requestedMismatch) {
$this->Calc_Max_Current($this->GetValue("Is_1_ph")); if ($stationType === 3) {
// Smart-Me liefert keinen eindeutigen Status "Auto // Smart-Me liefert keinen eindeutigen Status "Auto
// voll". Erst wenn während einer echten Freigabe über // voll". Der berechnete Fahrzeugwert dient hier nur
// 90 Sekunden praktisch kein Strom angenommen wird, // zur Ladeende-Erkennung und wird nicht als neue
// bestätigt der gelernte Wert unter 6 A das Ladeende. // dauerhafte Stationsobergrenze gespeichert.
$learnedMaxCurrent = 2.5 + (
$actualPower /
($this->GetValue("Is_1_ph") ? 230 : 1.71 * 400)
);
if ( if (
$stationType === 3 &&
$this->GetBuffer("SmartMeChargingEnabled") === "1" && $this->GetBuffer("SmartMeChargingEnabled") === "1" &&
(float)$this->GetValue("Max_Current") > 0 && $learnedMaxCurrent > 0 &&
(float)$this->GetValue("Max_Current") < 6 $learnedMaxCurrent < 6
) { ) {
$this->SetValue("Car_is_full", true); $this->SetValue("Car_is_full", true);
$this->ResetTimer(); $this->ResetTimer();
$this->ResetNullTimer(); $this->ResetNullTimer();
} }
} else {
$this->Calc_Max_Current($this->GetValue("Is_1_ph"));
}
} }
} }
} else { } else {
+20 -15
View File
@@ -288,7 +288,7 @@ class Ladestation_v2 extends IPSModule
// zurückgesetzt. // zurückgesetzt.
if ( if (
$stationType === 3 && $stationType === 3 &&
$this->GetBuffer("SmartMeFullDetectionVersion") !== "2" $this->GetBuffer("SmartMeFullDetectionVersion") !== "3"
) { ) {
$this->SetValue("Car_is_full", false); $this->SetValue("Car_is_full", false);
$this->SetValue("Pending_Counter", 0); $this->SetValue("Pending_Counter", 0);
@@ -297,7 +297,7 @@ class Ladestation_v2 extends IPSModule
(float)$this->ReadPropertyInteger("Max_Current_abs") (float)$this->ReadPropertyInteger("Max_Current_abs")
); );
$this->SetBuffer("SmartMeChargingEnabled", "0"); $this->SetBuffer("SmartMeChargingEnabled", "0");
$this->SetBuffer("SmartMeFullDetectionVersion", "2"); $this->SetBuffer("SmartMeFullDetectionVersion", "3");
} }
$usesEaseeGateway = $this->UsesEaseeGateway($stationType); $usesEaseeGateway = $this->UsesEaseeGateway($stationType);
@@ -1063,11 +1063,10 @@ class Ladestation_v2 extends IPSModule
abs((float)$chargingPowerWatts) >= 100; abs((float)$chargingPowerWatts) >= 100;
$carIsFull = $carDetected && $wasFull && !$carIsCharging; $carIsFull = $carDetected && $wasFull && !$carIsCharging;
// Ein aus einer früheren Regelungsunterbrechung gelernter Wert unter // Pico liefert die verfügbare Stations-/Gruppenobergrenze direkt über
// dem Mindestladestrom darf die Station nicht dauerhaft blockieren. // die API. Ein zuvor über den Soll-/Istvergleich gelernter Fahrzeugwert
// Ein korrekt bestätigtes Ladeende wird dagegen bis zum Abstecken oder // darf deshalb den möglichen Ladestrom nicht dauerhaft begrenzen.
// bis zur erneuten Leistungsaufnahme gehalten. if (!$carIsFull) {
if (!$carIsFull && (float)$this->GetValue("Max_Current") < 6) {
$this->SetValue("Max_Current", $maxCurrent); $this->SetValue("Max_Current", $maxCurrent);
} }
@@ -1610,22 +1609,28 @@ class Ladestation_v2 extends IPSModule
if ($counter >= $requiredCycles) { if ($counter >= $requiredCycles) {
$this->SetValue("Pending_Counter", 0); $this->SetValue("Pending_Counter", 0);
if ($requestedMismatch) { if ($requestedMismatch) {
$this->Calc_Max_Current($this->GetValue("Is_1_ph")); if ($stationType === 3) {
// Smart-Me liefert keinen eindeutigen Status "Auto // Smart-Me liefert keinen eindeutigen Status "Auto
// voll". Erst wenn während einer echten Freigabe über // voll". Der berechnete Fahrzeugwert dient hier nur
// 90 Sekunden praktisch kein Strom angenommen wird, // zur Ladeende-Erkennung und wird nicht als neue
// bestätigt der gelernte Wert unter 6 A das Ladeende. // dauerhafte Stationsobergrenze gespeichert.
$learnedMaxCurrent = 2.5 + (
$actualPower /
($this->GetValue("Is_1_ph") ? 230 : 1.71 * 400)
);
if ( if (
$stationType === 3 &&
$this->GetBuffer("SmartMeChargingEnabled") === "1" && $this->GetBuffer("SmartMeChargingEnabled") === "1" &&
(float)$this->GetValue("Max_Current") > 0 && $learnedMaxCurrent > 0 &&
(float)$this->GetValue("Max_Current") < 6 $learnedMaxCurrent < 6
) { ) {
$this->SetValue("Car_is_full", true); $this->SetValue("Car_is_full", true);
$this->ResetTimer(); $this->ResetTimer();
$this->ResetNullTimer(); $this->ResetNullTimer();
} }
} else {
$this->Calc_Max_Current($this->GetValue("Is_1_ph"));
}
} }
} }
} else { } else {