Akkugroessen der beiden Autos stimmen und stehen in der Konfiguration
Der Schieberegler "Zusaetzlich benoetigte Ladung" rechnet Prozent in Wattstunden um. Dafuer standen bisher drei verschiedene Zahlen im Code: 140 Wh/% beim Schreiben der EG-Wallbox, 90 Wh/% beim go-e und feste 14000 Wh beim Zurueckrechnen im Browser - fuer beide Autos dieselbe. Eine Einstellung von 50 % am go-e schrieb 4500 Wh und las sich beim naechsten Oeffnen als 32 % zurueck. Jetzt kommt die Zahl aus einer Quelle: restricted/config.php nennt Auto und nutzbare Akkukapazitaet je Wallbox, carForm.php gibt die Wattstunden je Prozent als data-Attribut an den Schieberegler weiter, und das JavaScript rechnet damit zurueck statt mit einer festen Konstanten. EG: Skoda Enyaq RS, Modelljahr 2026, 84 kWh brutto / 79 kWh nutzbar OG: Jeep Compass 4xe, 11,4 kWh Das Lademodal zeigt Auto und Kapazitaet jetzt unter dem Regler an - damit sichtbar ist, worauf sich die Prozente beziehen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/**
|
||||
* Einstellungen, die sich ohne Codeaenderung aendern duerfen.
|
||||
*
|
||||
* Hier stehen Zahlen, die an der Wirklichkeit haengen und nicht an der
|
||||
* Programmlogik - was fuer ein Auto in welcher Garage steht zum Beispiel.
|
||||
* Wechselt eines, wird hier eine Zeile geaendert und sonst nichts.
|
||||
*
|
||||
* Zugangsdaten gehoeren nicht hierher, die stehen in mysql.php und sind
|
||||
* nicht im Git.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Welches Auto an welcher Wallbox haengt.
|
||||
*
|
||||
* Die Schluessel sind dieselben wie in wallboxen.php: "eg" ist die
|
||||
* Wattpilot in der Garage, "og" der go-e Charger.
|
||||
*
|
||||
* `akkuKWh` ist die **nutzbare** Kapazitaet, nicht die brutto verbaute. Der
|
||||
* Ladestand in Prozent bezieht sich darauf, und der Schieberegler im
|
||||
* Lademodal ("Zusaetzlich benoetigte Ladung") rechnet damit Prozent in
|
||||
* Wattstunden um. Steht hier die falsche Zahl, laedt die Wallbox zu viel
|
||||
* oder zu wenig nach - und die Anzeige beim naechsten Oeffnen zeigt einen
|
||||
* anderen Wert an, als eingestellt wurde.
|
||||
*/
|
||||
function fahrzeuge()
|
||||
{
|
||||
return [
|
||||
"eg" => [
|
||||
"name" => "Škoda Enyaq RS",
|
||||
// Modelljahr 2026: 84 kWh brutto, 79 kWh nutzbar.
|
||||
"akkuKWh" => 79.0,
|
||||
],
|
||||
"og" => [
|
||||
"name" => "Jeep Compass 4xe",
|
||||
// Plug-in-Hybrid. Stellantis nennt 11,4 kWh fuer den Akku, ohne
|
||||
// zwischen brutto und nutzbar zu unterscheiden.
|
||||
"akkuKWh" => 11.4,
|
||||
],
|
||||
];
|
||||
}
|
||||
@@ -26,6 +26,7 @@
|
||||
*/
|
||||
|
||||
require_once(__DIR__ . "/../ajax/phpMQTT.php");
|
||||
require_once(__DIR__ . "/config.php");
|
||||
|
||||
// Der Broker laeuft auf demselben Rechner wie der Webserver. Steht hier und
|
||||
// nicht in commands.php, damit diese Datei nicht die halbe Raumsteuerung
|
||||
@@ -48,9 +49,6 @@ function wallboxen()
|
||||
"praefix" => "wattpilot/properties/",
|
||||
// Die Bruecke haengt "/set" an den Eigenschaftsnamen an.
|
||||
"namen" => [],
|
||||
// Wattstunden je Prozent des Schiebereglers - Akku des Autos,
|
||||
// das hier haengt.
|
||||
"whProProzent" => 140,
|
||||
// Zeichenketten gehen roh hinaus; die Bruecke gibt sie
|
||||
// unveraendert an die Wallbox weiter.
|
||||
"textInJson" => false,
|
||||
@@ -66,7 +64,6 @@ function wallboxen()
|
||||
// Zielzeit und Zielenergie heissen hier anders. Die Wattpilot
|
||||
// kennt "ate"/"att" gar nicht, der go-e umgekehrt "fte"/"ftt".
|
||||
"namen" => ["fte" => "ate", "ftt" => "att"],
|
||||
"whProProzent" => 90,
|
||||
// Der go-e liest jeden Wert als JSON. Zeichenketten muessen
|
||||
// deshalb in Anfuehrungszeichen stehen, sonst antwortet er mit
|
||||
// "tried to set api key with invalid json".
|
||||
@@ -76,6 +73,23 @@ function wallboxen()
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Wieviel Wattstunden ein Prozent des Schiebereglers bedeutet.
|
||||
*
|
||||
* Der Wert steht nicht in der Tabelle oben, weil er nichts mit der Wallbox
|
||||
* zu tun hat, sondern mit dem Auto davor: er kommt aus der nutzbaren
|
||||
* Akkukapazitaet in restricted/config.php. Wechselt das Auto, wird dort eine
|
||||
* Zeile geaendert.
|
||||
*/
|
||||
function wallboxWhProProzent(string $box): int
|
||||
{
|
||||
$autos = fahrzeuge();
|
||||
if (!isset($autos[$box])) {
|
||||
throw new InvalidArgumentException("Kein Auto fuer Wallbox: " . $box);
|
||||
}
|
||||
return (int) round($autos[$box]["akkuKWh"] * 1000 / 100);
|
||||
}
|
||||
|
||||
/**
|
||||
* Einen Wert so schreiben, wie die jeweilige Wallbox ihn erwartet.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user