Solar: Anlage-Ansicht neu, im Stil der Energiefluss-Uebersicht
Der alte Plan (pvplan.svg) ist ersetzt durch einen Katalog der Anlage (js/solar/anlageKatalog.js: Flaechen, Wechselrichter, echte Lage jeder Platte) und einen Renderer (js/solar/anlage.js): - Flaechen mit Leistung und Anteil als Balken - Lageplan: Farbe stufenlos nach Leistung im Vergleich zu den staerksten Platten der Flaeche, Warnzeichen nur bei genug Licht unter 70 % des Medians, "ohne Daten" wenn der Wechselrichter nichts meldet; Auftritt, Lichtwelle bei Sonne, pulsierende Warnung; hochkant gedreht auf schmalen Schirmen - Detail zu Platte, String oder Wechselrichter (Eingaenge als Balken, Auslastung, Temperatur), Verlauf je Platte ab Seitenaufruf - Wechselrichterliste mit Zustand ok / hochgerechnet / keine Daten Die Flaechen im Sonnenring der Uebersicht kommen jetzt aus demselben Katalog. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,6 +48,24 @@ const ENERGIEFLUSS_KATALOG = (function () {
|
||||
|
||||
const kw = w => (Math.abs(w) / 1000).toFixed(1).replace(".", ",");
|
||||
|
||||
/** Flächen des Sonnenrings aus anlageKatalog.js - fehlt der, feste Vorgabe. */
|
||||
function flaechenAusAnlage() {
|
||||
if (typeof ANLAGE_KATALOG === "undefined") {
|
||||
return [
|
||||
{ name: "Dach", von: 0, bis: 1, farbe: "#f7c000" },
|
||||
{ name: "Veranda", von: 2, bis: 13, farbe: "#f78d00" },
|
||||
{ name: "Carport", von: 14, bis: 33, farbe: "#f75a1e" },
|
||||
];
|
||||
}
|
||||
return ANLAGE_KATALOG.flaechen.map(f => {
|
||||
const eingaenge = [
|
||||
...ANLAGE_KATALOG.platten.filter(p => p.flaeche === f.id).map(p => p.eingang),
|
||||
...ANLAGE_KATALOG.strings.filter(s => s.flaeche === f.id).map(s => s.eingang),
|
||||
];
|
||||
return { name: f.name, von: Math.min(...eingaenge), bis: Math.max(...eingaenge), farbe: f.farbe };
|
||||
}).filter(f => isFinite(f.von));
|
||||
}
|
||||
|
||||
const wallboxZeichen = (modus, stecker, gesperrt) => {
|
||||
const z = [];
|
||||
if (modus === "Eco") z.push({ art: "eco", titel: "Eco-Modus" });
|
||||
@@ -65,14 +83,9 @@ const ENERGIEFLUSS_KATALOG = (function () {
|
||||
eltern: "wr", x: 180, y: 130, skala: 15000,
|
||||
klick: { ansicht: "anlage" },
|
||||
// Welche Einträge von solarManager/P_PVn zu welcher Fläche gehören.
|
||||
// Reihenfolge wie in solarManager.py.
|
||||
optionen: {
|
||||
flaechen: [
|
||||
{ name: "Dach", von: 0, bis: 1, farbe: "#f7c000" },
|
||||
{ name: "Veranda", von: 2, bis: 13, farbe: "#f78d00" },
|
||||
{ name: "Carport", von: 14, bis: 33, farbe: "#f75a1e" },
|
||||
],
|
||||
},
|
||||
// Vorgabe aus dem Anlagenkatalog, damit die Zuordnung nur einmal
|
||||
// gepflegt wird; in den Einstellungen überschreibbar.
|
||||
optionen: { flaechen: flaechenAusAnlage() },
|
||||
lesen(m, opt) {
|
||||
const pvn = m.json("solarManager/P_PVn") || [];
|
||||
const pv = m.zahl("solarManager/P_PV");
|
||||
|
||||
Reference in New Issue
Block a user