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:
+24
-8
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user