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:
+24
-12
@@ -316,22 +316,29 @@ function kachelQuelle(wert) {
|
||||
* und aus drei Kuerzeln wuerden drei Zeilen.
|
||||
*/
|
||||
function kachelWertKurz(wert, kachel) {
|
||||
if (wert.wechselrichter) {
|
||||
const n = wert.wechselrichter.length;
|
||||
return "Wechselrichter (" + n + ")";
|
||||
}
|
||||
const treffer = katalogTreffer(wert);
|
||||
const einheit = wert.format === "leistung" ? "W/kW" : (wert.einheit || "");
|
||||
if (treffer) {
|
||||
const treffer = wert.wechselrichter ? null : katalogTreffer(wert);
|
||||
let text;
|
||||
|
||||
if (wert.wechselrichter) {
|
||||
text = "Wechselrichter (" + wert.wechselrichter.length + ")";
|
||||
} else if (treffer) {
|
||||
// Das Geraet steht nur dabei, wenn es ein fremdes ist - im eigenen Raum
|
||||
// waere es auf jeder Zeile dasselbe Wort.
|
||||
const fremd = !kachel || treffer.geraet.raum !== kachel.name;
|
||||
return (fremd ? treffer.geraet.label + " · " : "") + treffer.wert.name
|
||||
text = (fremd ? treffer.geraet.label + " · " : "") + treffer.wert.name
|
||||
+ (einheit ? " " + einheit : "");
|
||||
} else {
|
||||
const topic = wert.topic || "";
|
||||
const teile = topic.split("/");
|
||||
text = teile[teile.length - 1] || topic;
|
||||
if (wert.pfad) text += " · " + wert.pfad;
|
||||
if (einheit) text += " " + einheit;
|
||||
}
|
||||
const topic = wert.topic || "";
|
||||
const teile = topic.split("/");
|
||||
let text = teile[teile.length - 1] || topic;
|
||||
if (wert.pfad) text += " · " + wert.pfad;
|
||||
return einheit ? text + " " + einheit : text;
|
||||
|
||||
// Das Minus steht vorne, wie es auf der Kachel auch stuende - und zwar bei
|
||||
// jeder Herkunft, deshalb erst hier und nicht in den drei Zweigen.
|
||||
return wert.negativ ? "−" + text : text;
|
||||
}
|
||||
|
||||
/** Eine Kachel im Modell finden. */
|
||||
@@ -575,6 +582,10 @@ function kachelWertZeile(wert, i, kachel) {
|
||||
+ '<label title="Leistung: skaliert selbst zwischen W und kW">'
|
||||
+ '<input type="checkbox" class="form-check-input" data-feld="format"'
|
||||
+ (wert.format === "leistung" ? " checked" : "") + "> kW</label>"
|
||||
+ '<label title="Vorzeichen umdrehen - für Zähler, die verkehrt herum'
|
||||
+ ' eingebaut sind">'
|
||||
+ '<input type="checkbox" class="form-check-input" data-feld="negativ"'
|
||||
+ (wert.negativ ? " checked" : "") + "> negativ</label>"
|
||||
+ '<label title="Die Zahl steht gross auf der Kachel">'
|
||||
+ '<input type="checkbox" class="form-check-input" data-feld="gross"'
|
||||
+ (wert.gross ? " checked" : "") + "> groß</label>"
|
||||
@@ -638,6 +649,7 @@ function kachelWertLesen(feldZeile) {
|
||||
}
|
||||
const icon = (hol("icon") || "").trim();
|
||||
if (icon) wert.icon = icon;
|
||||
if (hol("negativ")) wert.negativ = true;
|
||||
if (hol("gross")) wert.gross = true;
|
||||
return wert;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user