diff --git a/Ladestation/README.md b/Ladestation/README.md index f7b1520..9fea178 100644 --- a/Ladestation/README.md +++ b/Ladestation/README.md @@ -58,6 +58,10 @@ Ladestrom fließt. Beim Abstecken werden die erkannten Phasen zurückgesetzt. Typ 4 bleibt unverändert. +Beim Update bestehender Instanzen wird die frühere Eigenschaft `Token_Easee` +automatisch entfernt und durch die Gateway-Zuordnung ersetzt. Die vorhandene +Modul- und Instanzidentität bleibt erhalten. + ## Einrichtung 1. Eine Instanz `Easee SignalR Gateway` anlegen. diff --git a/Ladestation/module.php b/Ladestation/module.php index 3f17484..062a8cf 100644 --- a/Ladestation/module.php +++ b/Ladestation/module.php @@ -23,6 +23,9 @@ class Ladestation extends IPSModule $this->RegisterPropertyInteger("Zeit_Zwischen_Zustandswechseln", 1); $this->RegisterPropertyInteger("Ein_Zeit", 0); // Recheninterval $this->RegisterPropertyInteger("Aus_Zeit", 0); // Recheninterval + // Nur für die fehlerfreie Übernahme bestehender Ladestation-Instanzen. + // Die Easee-Zugangsdaten werden nicht mehr aus dieser Property gelesen. + $this->RegisterPropertyInteger("Token_Easee", 0); $this->RegisterPropertyInteger("Token_ECarUp", 0); // Recheninterval $this->RegisterPropertyInteger("EaseeGatewayID", 0); @@ -128,14 +131,24 @@ class Ladestation extends IPSModule $data["configuration"] = []; } - if (array_key_exists("EaseeGatewayID", $data["configuration"])) { - return ""; + $changed = false; + + // Nur das frühere Ladestation-Modul besaß diese Easee-Eigenschaft. + // Sie muss vor dem Aufbau der neuen V2-kompatiblen Instanz entfernt + // werden, weil die Zugangsdaten jetzt ausschließlich im Gateway liegen. + if (array_key_exists("Token_Easee", $data["configuration"])) { + unset($data["configuration"]["Token_Easee"]); + $changed = true; } - // In Migrate keine Instanzfunktionen aufrufen: Die Instanzschnittstelle - // wird zu diesem Zeitpunkt erst aufgebaut. - $data["configuration"]["EaseeGatewayID"] = 0; - return json_encode($data); + if (!array_key_exists("EaseeGatewayID", $data["configuration"])) { + // In Migrate keine Instanzfunktionen aufrufen: Die + // Instanzschnittstelle wird zu diesem Zeitpunkt erst aufgebaut. + $data["configuration"]["EaseeGatewayID"] = 0; + $changed = true; + } + + return $changed ? json_encode($data) : ""; } public function GetConfigurationForm()