umschalten 1-phasiges Laden für go-e v1 hinzugefühgt.

This commit is contained in:
2024-07-17 14:29:58 +02:00
parent d96ffd2fb9
commit a1cdf89f7a
6 changed files with 182 additions and 3 deletions

View File

@@ -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) {