Kachelwerte koennen das Vorzeichen umdrehen
Ein Zaehler zaehlt in der Richtung, in der er eingebaut ist - einer der beiden Shelly-Zaehler meldet deshalb mit umgekehrtem Vorzeichen, und auf der Kachel stand der Verbrauch als Minusleistung. Neu gibt es dafuer den Schalter "negativ" an jedem Kachelwert. Er sitzt in der Anzeige und nicht am Zaehler: Automatiken und Statistik lesen dieselbe Nachricht und rechnen mit dem Vorzeichen, das dort steht - wer es an der Quelle drehte, verschoebe die Rechnung an einer Stelle, an der niemand danach sucht. Gedreht wird vor dem Formatieren, also auch vor der Skalierung zwischen W und kW und vor den Nachkommastellen. Aus -0 wird wieder 0. Was keine Zahl ist, bleibt unangetastet und die Kachel zeigt weiter ihren Strich. In der eingeklappten Kurzfassung steht das Minus vor dem Namen, damit man ohne Aufklappen sieht, welcher Wert gedreht ist. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -122,6 +122,12 @@ const homeSVG = {
|
||||
* 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.
|
||||
*
|
||||
* "negativ" dreht das Vorzeichen. Ein Zaehler zaehlt in der Richtung, in
|
||||
* der er eingebaut ist - einer der beiden meldet den Bezug deshalb mit
|
||||
* Minus. Das gehoert an die Anzeige und nicht an den Zaehler: die
|
||||
* Automatiken und die Statistik lesen dieselbe Nachricht und rechnen mit
|
||||
* dem Vorzeichen, das dort steht.
|
||||
*/
|
||||
kachelWert: function (mqttData, wert) {
|
||||
const roh = wert.wechselrichter
|
||||
@@ -138,6 +144,13 @@ const homeSVG = {
|
||||
return null; // noch keine vollstaendige Nachricht
|
||||
}
|
||||
}
|
||||
if (wert.negativ) {
|
||||
const zahl = Number(text);
|
||||
if (text === "" || isNaN(zahl)) return null;
|
||||
// "+ 0" macht aus -0 wieder 0: "-0 W" hat noch niemanden erfreut.
|
||||
text = String(-zahl + 0);
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
Reference in New Issue
Block a user