no message

This commit is contained in:
dh
2026-08-06 09:43:32 +02:00
parent 875a961afb
commit 69da32646a
3 changed files with 160 additions and 18 deletions
+3
View File
@@ -2,6 +2,9 @@
Das Modul steuert verschiedene Ladestationstypen.
Das Konfigurationsformular zeigt die Verbindungsdaten abhängig vom gewählten
Ladestationstyp an. Allgemeine Regel- und Zeitparameter bleiben immer sichtbar.
## Easee
Die Ladestationstypen 5 und 6 verwenden das oben als Schnittstelle ausgewählte
+27 -18
View File
@@ -3,7 +3,8 @@
{
"type": "Select",
"name": "Ladestation",
"caption": "Ladestation",
"caption": "Ladestationstyp",
"onChange": "IPS_RequestAction($id, \"UpdateStationForm\", $Ladestation);",
"options": [
{
"caption": "Go-E Wallbox (Alte Version)",
@@ -34,13 +35,13 @@
{
"type": "NumberSpinner",
"name": "IdleCounterMax",
"caption": "Zyklen zwischen zwei Leistungsänderungen (multipliziert mit Intervall)",
"suffix": ""
"caption": "Wartezyklen nach einer Leistungsänderung",
"suffix": "Zyklen"
},
{
"type": "NumberSpinner",
"name": "Interval",
"caption": "Intervall Neuberechnung der Werte",
"caption": "Berechnungsintervall",
"suffix": "Sekunden"
},
{
@@ -52,55 +53,63 @@
{
"type": "NumberSpinner",
"name": "Zeit_Zwischen_Zustandswechseln",
"caption": "(Veraltet, auf 0 lassen) Mindestlaufzeit des Verbrauchers bei Lastschaltung",
"suffix": ""
"caption": "Mindestzeit zwischen Leistungsänderungen",
"suffix": "Minuten"
},
{
"type": "NumberSpinner",
"name": "Ein_Zeit",
"caption": "Mindestlaufzeit Ladestation wenn Ein",
"suffix": ""
"caption": "Mindestlaufzeit nach dem Einschalten",
"suffix": "Minuten"
},
{
"type": "NumberSpinner",
"name": "Aus_Zeit",
"caption": "Mindestlaufzeit Ladestation wenn Aus",
"suffix": ""
"caption": "Mindeststillstandszeit nach dem Ausschalten",
"suffix": "Minuten"
},
{
"type": "ValidationTextBox",
"name": "IP_Adresse",
"caption": "IP-Adresse Ladestation"
"caption": "IP-Adresse",
"visible": false
},
{
"type": "ValidationTextBox",
"name": "ID",
"caption": "Geräte-ID Smart-Me / eCarUp / Easee"
"caption": "Geräte-ID",
"visible": false
},
{
"type": "ValidationTextBox",
"name": "Seriennummer",
"caption": "Seriennummer Smart-Me / eCarUp / Easee"
"caption": "Seriennummer",
"visible": false
},
{
"type": "ValidationTextBox",
"name": "Username",
"caption": "Benutzername Smart-Me / Benutzerkennung Solarladen"
"caption": "Benutzername",
"visible": false
},
{
"type": "PasswordTextBox",
"name": "Password",
"caption": "Passwort Smart-Me"
"caption": "Passwort",
"visible": false
},
{
"type": "SelectVariable",
"name": "Token_ECarUp",
"caption": "Variable API-Token für eCarUp",
"suffix": ""
"caption": "Variable mit eCarUp API-Token",
"suffix": "",
"visible": false
},
{
"type": "Label",
"caption": "Das Easee SignalR Gateway wird oben über Schnittstelle konfigurieren/ändern ausgewählt. Die Typen 5 und 6 verwenden diese Schnittstelle."
"name": "EaseeGatewayHint",
"caption": "Das Easee SignalR Gateway wird oben über Schnittstelle konfigurieren/ändern ausgewählt.",
"visible": false
}
]
}
+130
View File
@@ -152,6 +152,132 @@ class Ladestation_v2 extends IPSModule
return json_encode($data);
}
public function GetConfigurationForm()
{
$form = json_decode(file_get_contents(__DIR__ . "/form.json"), true);
$fieldConfiguration = $this->GetStationFormConfiguration(
$this->ReadPropertyInteger("Ladestation")
);
foreach ($form["elements"] as &$element) {
$name = (string)($element["name"] ?? "");
if (!isset($fieldConfiguration[$name])) {
continue;
}
foreach ($fieldConfiguration[$name] as $parameter => $value) {
$element[$parameter] = $value;
}
}
unset($element);
return json_encode($form);
}
private function GetStationFormConfiguration(int $stationType): array
{
$configuration = [
"IP_Adresse" => [
"visible" => false,
"caption" => "IP-Adresse",
],
"ID" => [
"visible" => false,
"caption" => "Geräte-ID",
],
"Seriennummer" => [
"visible" => false,
"caption" => "Seriennummer",
],
"Username" => [
"visible" => false,
"caption" => "Benutzername",
],
"Password" => [
"visible" => false,
"caption" => "Passwort",
],
"Token_ECarUp" => [
"visible" => false,
"caption" => "Variable mit eCarUp API-Token",
],
"EaseeGatewayHint" => [
"visible" => false,
],
];
switch ($stationType) {
case 1:
$configuration["IP_Adresse"] = [
"visible" => true,
"caption" => "IP-Adresse der Go-E Wallbox",
];
break;
case 2:
$configuration["IP_Adresse"] = [
"visible" => true,
"caption" => "IP-Adresse der Go-E Gemini / Gemini Flex",
];
break;
case 3:
$configuration["ID"] = [
"visible" => true,
"caption" => "Smart-Me Geräte-ID",
];
$configuration["Seriennummer"] = [
"visible" => true,
"caption" => "Smart-Me Seriennummer",
];
$configuration["Username"] = [
"visible" => true,
"caption" => "Smart-Me Benutzername",
];
$configuration["Password"] = [
"visible" => true,
"caption" => "Smart-Me Passwort",
];
break;
case 5:
$configuration["ID"] = [
"visible" => true,
"caption" => "eCarUp Stations-/Connector-ID",
];
$configuration["Seriennummer"] = [
"visible" => true,
"caption" => "Easee Seriennummer",
];
$configuration["Username"] = [
"visible" => true,
"caption" => "eCarUp Benutzerkennung für Solarladen",
];
$configuration["Token_ECarUp"]["visible"] = true;
$configuration["EaseeGatewayHint"]["visible"] = true;
break;
case 6:
$configuration["Seriennummer"] = [
"visible" => true,
"caption" => "Easee Seriennummer",
];
$configuration["EaseeGatewayHint"]["visible"] = true;
break;
}
return $configuration;
}
private function UpdateStationForm(int $stationType)
{
foreach ($this->GetStationFormConfiguration($stationType) as $field => $parameters) {
foreach ($parameters as $parameter => $value) {
$this->UpdateFormField($field, $parameter, $value);
}
}
}
public function ApplyChanges()
{
parent::ApplyChanges();
@@ -199,6 +325,10 @@ class Ladestation_v2 extends IPSModule
{
switch ($Ident) {
case "UpdateStationForm":
$this->UpdateStationForm((int)$Value);
break;
case "SetAktuelle_Leistung":
$this->SetValue("Power", (int)$Value);
break;