From a1cdf89f7a60107ec40541a9908014f8d1daa685 Mon Sep 17 00:00:00 2001 From: "belevo\\daniel" Date: Wed, 17 Jul 2024 14:29:58 +0200 Subject: [PATCH] =?UTF-8?q?umschalten=201-phasiges=20Laden=20f=C3=BCr=20go?= =?UTF-8?q?-e=20v1=20hinzugef=C3=BChgt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Belevo_Server_Kommunikation/README.md | 67 +++++++++++++++++++++ Belevo_Server_Kommunikation/locale.json | 7 +++ Belevo_Server_Kommunikation/module.json | 12 ++++ Belevo_Server_Kommunikation/module.php | 19 ++++++ Ladestation_Universal/module.php | 78 ++++++++++++++++++++++++- library.json | 2 +- 6 files changed, 182 insertions(+), 3 deletions(-) create mode 100644 Belevo_Server_Kommunikation/README.md create mode 100644 Belevo_Server_Kommunikation/locale.json create mode 100644 Belevo_Server_Kommunikation/module.json create mode 100644 Belevo_Server_Kommunikation/module.php diff --git a/Belevo_Server_Kommunikation/README.md b/Belevo_Server_Kommunikation/README.md new file mode 100644 index 0000000..b059e3a --- /dev/null +++ b/Belevo_Server_Kommunikation/README.md @@ -0,0 +1,67 @@ +# Manager_1 +Beschreibung des Moduls. + +### Inhaltsverzeichnis + +1. [Funktionsumfang](#1-funktionsumfang) +2. [Voraussetzungen](#2-voraussetzungen) +3. [Software-Installation](#3-software-installation) +4. [Einrichten der Instanzen in IP-Symcon](#4-einrichten-der-instanzen-in-ip-symcon) +5. [Statusvariablen und Profile](#5-statusvariablen-und-profile) +6. [WebFront](#6-webfront) +7. [PHP-Befehlsreferenz](#7-php-befehlsreferenz) + +### 1. Funktionsumfang + +* + +### 2. Voraussetzungen + +- IP-Symcon ab Version 7.1 + +### 3. Software-Installation + +* Über den Module Store das 'Manager_1'-Modul installieren. +* Alternativ über das Module Control folgende URL hinzufügen + +### 4. Einrichten der Instanzen in IP-Symcon + + Unter 'Instanz hinzufügen' kann das 'Manager_1'-Modul mithilfe des Schnellfilters gefunden werden. + - Weitere Informationen zum Hinzufügen von Instanzen in der [Dokumentation der Instanzen](https://www.symcon.de/service/dokumentation/konzepte/instanzen/#Instanz_hinzufügen) + +__Konfigurationsseite__: + +Name | Beschreibung +-------- | ------------------ + | + | + +### 5. Statusvariablen und Profile + +Die Statusvariablen/Kategorien werden automatisch angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen. + +#### Statusvariablen + +Name | Typ | Beschreibung +------ | ------- | ------------ + | | + | | + +#### Profile + +Name | Typ +------ | ------- + | + | + +### 6. WebFront + +Die Funktionalität, die das Modul im WebFront bietet. + +### 7. PHP-Befehlsreferenz + +`boolean GEF_BeispielFunktion(integer $InstanzID);` +Erklärung der Funktion. + +Beispiel: +`GEF_BeispielFunktion(12345);` \ No newline at end of file diff --git a/Belevo_Server_Kommunikation/locale.json b/Belevo_Server_Kommunikation/locale.json new file mode 100644 index 0000000..4aefba5 --- /dev/null +++ b/Belevo_Server_Kommunikation/locale.json @@ -0,0 +1,7 @@ +{ + "translations": { + "de": { + + } + } +} \ No newline at end of file diff --git a/Belevo_Server_Kommunikation/module.json b/Belevo_Server_Kommunikation/module.json new file mode 100644 index 0000000..d736773 --- /dev/null +++ b/Belevo_Server_Kommunikation/module.json @@ -0,0 +1,12 @@ +{ + "id": "{21F800F4-A506-62C9-CF26-9CA652629C22}", + "name": "Belevo_Server_Kommunikation", + "type": 3, + "vendor": "Belevo AG", + "aliases": [], + "parentRequirements": [], + "childRequirements": [], + "implemented": [], + "prefix": "GEF", + "url": "" +} \ No newline at end of file diff --git a/Belevo_Server_Kommunikation/module.php b/Belevo_Server_Kommunikation/module.php new file mode 100644 index 0000000..5d22763 --- /dev/null +++ b/Belevo_Server_Kommunikation/module.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/Ladestation_Universal/module.php b/Ladestation_Universal/module.php index 8484564..0aa6aad 100644 --- a/Ladestation_Universal/module.php +++ b/Ladestation_Universal/module.php @@ -28,6 +28,7 @@ public function Create() { $this->RegisterVariableBoolean("Ladebereit", "Ladebereit", "~Switch", 11); $this->RegisterVariableBoolean("Solarladen", "Solarladen", "~Switch", 11); $this->RegisterVariableInteger("Fahrzeugstatus", "Fahrzeugstatus", "", 0); + $this->RegisterVariableInteger("Lademodus", "Lademodus", "", 0); @@ -146,6 +147,14 @@ public function GetCurrentData(bool $Peak) { // Speichere den Wert von "car" in der Variable $status SetValue($this->GetIDForIdent("Fahrzeugstatus"), $data['car']); + + if($data['nrg'][6]!=0 && $data['car']===2){ + SetValue($this->GetIDForIdent("Lademodus"), 1); + + }elseif($data['nrg'][6]===0 && $data['car']===2){ + SetValue($this->GetIDForIdent("Lademodus"), 0); + + } } } @@ -190,7 +199,7 @@ public function sendPowerToStation($value) { // Base URL $baseUrl = "http://" . $this->ReadPropertyString("IP_Adresse") . "/mqtt?payload="; IPS_LogMessage("Ladestation", "Aufgerufene ip" . $baseUrl); - $value = $this->convertPowerToCurrent($value); + $value = $this->convertPowerToCurrent($value, GetValue($this->GetIDForIdent("Lademodus"));); // Initialize a cURL session $ch = curl_init(); @@ -242,7 +251,9 @@ public function sendPowerToStation($value) { } } -public function convertPowerToCurrent($value) { +public function convertPowerToCurrent($value, $Lademodus) { + + if($Lademodus===1){ if ($value == 0) { return 0; } elseif ($value == 4150) { @@ -301,6 +312,69 @@ public function convertPowerToCurrent($value) { return 32; } return 0; + + }elseif($Lademodus===0){ + if ($value == 0) { + return 0; + } elseif ($value == 1450) { + return 6; + } elseif ($value == 1690) { + return 7; + } elseif ($value == 1930) { + return 8; + } elseif ($value == 2170) { + return 9; + } elseif ($value == 2410) { + return 10; + } elseif ($value == 2650) { + return 11; + } elseif ($value == 2890) { + return 12; + } elseif ($value == 3130) { + return 13; + } elseif ($value == 3370) { + return 14; + } elseif ($value == 3610) { + return 15; + } elseif ($value == 3850) { + return 16; + } elseif ($value == 4090) { + return 17; + } elseif ($value == 4330) { + return 18; + } elseif ($value == 4570) { + return 19; + } elseif ($value == 4810) { + return 20; + } elseif ($value == 5050) { + return 21; + } elseif ($value == 5290) { + return 22; + } elseif ($value == 5530) { + return 23; + } elseif ($value == 5770) { + return 24; + } elseif ($value == 6010) { + return 25; + } elseif ($value == 6250) { + return 26; + } elseif ($value == 6490) { + return 27; + } elseif ($value == 6730) { + return 28; + } elseif ($value == 6970) { + return 29; + } elseif ($value == 7210) { + return 30; + } elseif ($value == 7450) { + return 31; + } elseif ($value == 7690) { + return 32; + } + return 0; + + + } } public function getRangeLimits($min, $max) { diff --git a/library.json b/library.json index 098ebf8..3f7a1a8 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "7.1" }, - "version": "0.1", + "version": "0.2", "build": 0, "date": 0 } \ No newline at end of file