Leistungen auf den Kacheln skalieren mit: unter 1 kW in W, darueber in kW

Nicht nachgebaut, sondern powerToString() aus common.js benutzt. Sie macht
genau das schon, und die Solarseite formatiert dieselben Zahlen damit - eine
eigene Regel hier haette bedeutet, dass dieselbe Wallbox an zwei Stellen
verschieden gerundet dasteht. common.js wird im Fuss vor den seitenweisen
Skripten geladen, steht homeMQTT.js also zur Verfuegung.

Ersetzt wird nur das Trennzeichen: auf der Kachel steht ein schmales
Leerzeichen zwischen Zahl und Einheit, im Rest der Anwendung ein
gewoehnliches.

Betroffen sind Garage, Carport OG und Carport EG. Der Regen im Garten bleibt
bei Einheit und Nachkommastelle - Millimeter skalieren nicht.

Nebenbei: mein Einschub von wechselrichterWert() hatte den Kommentarblock
von kachelWert() von seiner Funktion getrennt, er stand seitdem ueber der
falschen. Zurueckgesetzt und um die beiden neuen Schluessel ergaenzt.

Geprueft mit dem echten Code im Browser: 0 -> "0 W", 999 -> "999 W",
1234 -> "1.23 kW", 12340 -> "12.3 kW"; die Summe der vier Carport-Hoymiles
ergibt 1.23 kW und laesst einen fuenften Wechselrichter richtigerweise
draussen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-05 00:04:27 +02:00
co-authored by Claude Opus 5
parent 3073c5afdb
commit 7c646c5aee
2 changed files with 31 additions and 13 deletions
+24 -8
View File
@@ -64,14 +64,6 @@ const homeSVG = {
}, mqttData);
},
/**
* Einen Kachelwert lesen und hinschreiben.
*
* "pfad" ist gesetzt, wenn das Geraet mehrere Werte in einer einzigen
* JSON-Nachricht schickt - die beiden Shelly-Zaehler tun das. "stellen"
* schneidet Nachkommastellen ab; ohne Angabe bleibt der Text so, wie das
* Geraet ihn meldet.
*/
/**
* Die Leistung benannter Wechselrichter, aufsummiert.
*
@@ -120,6 +112,17 @@ const homeSVG = {
/** Merkt sich gemeldete Namen, damit die Konsole nicht zulaeuft. */
gemeldet: {},
/**
* Einen Kachelwert lesen und hinschreiben.
*
* Woher der Wert kommt, sagt entweder "topic" oder "wechselrichter".
* "pfad" ist gesetzt, wenn das Geraet mehrere Werte in einer einzigen
* JSON-Nachricht schickt - die beiden Shelly-Zaehler tun das.
*
* Wie er dasteht, sagt entweder "format" oder das Paar aus "einheit" und
* "stellen": "stellen" schneidet Nachkommastellen ab, ohne Angabe bleibt
* der Text so, wie das Geraet ihn meldet.
*/
kachelWert: function (mqttData, wert) {
const roh = wert.wechselrichter
? homeSVG.wechselrichterWert(mqttData, wert)
@@ -135,6 +138,19 @@ const homeSVG = {
return null; // noch keine vollstaendige Nachricht
}
}
// Leistungen skalieren mit: unter tausend Watt in W, darueber in kW.
// powerToString() aus common.js macht genau das und wird auf der
// Solarseite fuer dieselben Zahlen benutzt - eine eigene Regel hier
// haette bedeutet, dass dieselbe Wallbox an zwei Stellen verschieden
// gerundet dasteht.
if (wert.format === "leistung") {
const zahl = Number(text);
if (text === "" || isNaN(zahl)) return null;
// Ersetzt wird nur das Trennzeichen: auf der Kachel steht ein
// schmales Leerzeichen, im Rest der Anwendung ein gewoehnliches.
return powerToString(zahl).replace(" ", "");
}
if (typeof wert.stellen === "number" && text !== "" && !isNaN(Number(text))) {
text = Number(text).toFixed(wert.stellen);
}