Solar: neue Energiefluss-Uebersicht, anpassbar je Haus

Das feste realtime.svg ist ersetzt durch einen Katalog
(js/solar/energieflussKatalog.js: jeder Kreis einmal, samt Werten aus MQTT)
und einen Renderer (js/solar/energiefluss.js): Ringe mit Segmenten,
Fluesse als Boegen mit laufenden Punkten, Fuellstandswelle fuer Batterie
und Auto, animierte Symbole, Plaketten, Hochkant-Ansicht auf schmalen
Schirmen. Hierarchie und Lage wie bisher: Quellen -> Wechselrichter ->
Verbrauch -> OG/EG/UG -> Wallboxen, Heizstab.

Einstellungen -> Uebersicht: Kreise ein/aus (Kinder ruecken eine Ebene
hoeher), Namen, Lage per Ziehen in der Vorschau, PV-Flaechen. Gespeichert
werden nur Abweichungen in homeMesh.energiefluss.

Der PV-Lageplan hinter der Sonne liegt unveraendert als assets/img/pvplan.svg
und ist ueber den Umschalter Uebersicht/Anlage erreichbar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 16:42:52 +02:00
co-authored by Claude Opus 5
parent 5ed3a0796e
commit a59277e33e
14 changed files with 1812 additions and 1148 deletions
+33
View File
@@ -0,0 +1,33 @@
-- ---------------------------------------------------------------------------
-- Energiefluss-Uebersicht (Seite Solar, Karte "Realtime") - Datenbank `homeMesh`
-- ---------------------------------------------------------------------------
-- Welche Kreise es ueberhaupt gibt, woher ihre Werte kommen, wie sie heissen
-- und wo sie stehen, beschreibt der Katalog in js/solar/energieflussKatalog.js.
-- Hier steht nur, was ein Haus davon abweichend einstellt - unter
-- Einstellungen -> Uebersicht:
--
-- aktiv 0 blendet den Kreis samt seinen Fluessen aus. Haengen andere
-- daran (Wallbox OG am Obergeschoss), rutschen sie eine Ebene
-- hoeher (an den Verbrauch).
-- name eigene Beschriftung statt der aus dem Katalog.
-- x, y eigene Lage in der Queransicht. Die Hochkant-Ansicht auf
-- schmalen Schirmen spiegelt sie selbst.
-- optionen JSON fuer Einstellungen, die nur ein Kreis kennt - etwa die
-- Aufteilung der PV-Leistung auf Flaechen.
--
-- Fehlt eine Zeile, gilt der Katalog. Ein neuer Kreis im Katalog erscheint
-- damit ohne Zutun, und eine leere Tabelle ist die Uebersicht dieses Hauses,
-- wie sie ausgeliefert wird.
-- ---------------------------------------------------------------------------
SET NAMES utf8mb4;
CREATE TABLE IF NOT EXISTS `energiefluss` (
`id` varchar(20) NOT NULL COMMENT 'Kennung aus dem Katalog, z.B. og, wallboxEG',
`aktiv` tinyint(1) NOT NULL DEFAULT 1,
`name` varchar(40) DEFAULT NULL COMMENT 'NULL = Name aus dem Katalog',
`x` smallint(6) DEFAULT NULL COMMENT 'Mitte in der Queransicht; NULL = Katalog',
`y` smallint(6) DEFAULT NULL,
`optionen` text DEFAULT NULL COMMENT 'JSON, je Kreis verschieden; NULL = Katalog',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;