Anzeige fuer den Pi ist jetzt die Solar-Seite im Anzeige-Modus

Statt einer eigenen Vorlage mit nachgebauter Verdrahtung: ?action=anzeige
ist der Eintrag solar mit "anzeige" => true. header.php laesst Kopfleiste
und Menue weg und setzt die schmale Leiste (neu: Diagramme), footer.php
den Fuss; die Realtime-Karte fuellt einen Bildschirm, Diagramme folgen
darunter. Damit gehen am Display auch die Bedienfenster (Heizstab,
Wallboxen, Bewaesserung) und die Diagramme - alles aus solarMQTT.js.

anzeige.js bleibt fuer Leerlauf, Verbindungspunkt, Uhr und Neuladen;
restricted/anzeige.php, "eigen" in index.php und klickFilter entfallen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 20:22:35 +02:00
co-authored by Claude Opus 5
parent b8b2e66fd0
commit 2e66bdeff5
9 changed files with 159 additions and 193 deletions
+35 -21
View File
@@ -3869,22 +3869,19 @@ svg.anl-plan.anl-hoch { max-height: none; }
}
/* ==========================================================================
Vollbildanzeige (restricted/anzeige.php, js/solar/anzeige.js), z.B. am
Raspberry Pi mit 800 x 480: schmale Leiste links, Ansicht auf voller Höhe.
Anzeige-Modus (index.php?action=anzeige, js/solar/anzeige.js): die
Solar-Seite auf einem festen Display, z.B. Raspberry Pi mit 800 x 480.
Leiste links; die Realtime-Karte füllt genau einen Bildschirm, die
Diagramme folgen darunter und rasten beim Wischen karteweise ein.
========================================================================== */
body.anzeige {
margin: 0; height: 100vh; overflow: hidden;
display: grid; grid-template-columns: 3.2rem minmax(0, 1fr);
background: var(--ton-grund, #191d20); color: var(--ton-schrift, #e8ede9);
font-family: "Poppins", system-ui, sans-serif; font-size: 14px;
-webkit-tap-highlight-color: transparent; user-select: none;
}
html:has(body.anzeige) { scroll-snap-type: y proximity; scrollbar-width: none; }
html:has(body.anzeige)::-webkit-scrollbar { display: none; }
body.anzeige { -webkit-tap-highlight-color: transparent; }
body.anzeige-ohne-maus,
body.anzeige-ohne-maus * { cursor: none !important; }
/* Die Seite lädt AdminLTE nicht - dessen Grundregeln fehlen hier. */
body.anzeige [hidden] { display: none !important; }
body.anzeige *, body.anzeige *::before, body.anzeige *::after { box-sizing: border-box; }
.anzeige .anzeige-leiste {
position: fixed; left: 0; top: 0; bottom: 0; width: 3.2rem; z-index: 1030;
display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: .5rem 0;
background: var(--ton-flaeche, #23282c); border-right: 1px solid var(--ton-linie, rgba(138, 148, 158, .2));
}
@@ -3898,14 +3895,26 @@ body.anzeige *, body.anzeige *::before, body.anzeige *::after { box-sizing: bord
.anzeige .anzeige-punkt.warn { background: #e8a33a; }
.anzeige .anzeige-punkt.gut { background: #6cbe58; }
.anzeige .anzeige-uhr { font-size: .72rem; font-weight: 600; color: var(--ton-schrift-2, #9aa6ad); font-variant-numeric: tabular-nums; }
.anzeige .anzeige-inhalt { min-width: 0; height: 100vh; }
.anzeige .anzeige-flaeche { box-sizing: border-box; height: 100vh; padding: .35rem; overflow-y: auto; scrollbar-width: none; }
.anzeige .anzeige-flaeche::-webkit-scrollbar { display: none; }
.anzeige .anzeige-flaeche[hidden] { display: none; }
.anzeige #anzeige-fluss { overflow: hidden; padding: .2rem; }
.anzeige #anzeige-fluss svg.enf { width: 100%; height: 100%; max-height: none; }
/* Anlage und Speicher: die Umbrüche der Solar-Seite richten sich nach der
Fensterbreite und würden am 800er-Display zu früh greifen. */
.anzeige .app-wrapper { display: block; }
.anzeige .app-main { margin-left: 3.2rem; }
.anzeige .app-content-header { display: none; }
.anzeige .app-content { padding: 0 .35rem; }
.anzeige .app-content .container-fluid { padding: 0; }
.anzeige .app-content .row { --bs-gutter-x: 0; }
.anzeige .app-content .card { scroll-snap-align: start; }
/* Realtime-Karte: ein ganzer Bildschirm, ohne Kopf - die Leiste ersetzt ihn. */
.anzeige .card#energieflussKarte { height: 100vh; margin-bottom: .5rem !important; border: 0; border-radius: 0; background: transparent; }
.anzeige .card#energieflussKarte .card-header { display: none !important; }
.anzeige .card#energieflussKarte .card-body { height: 100%; padding: .2rem 0 !important; }
.anzeige #energiefluss { height: 100%; overflow: hidden; }
.anzeige #energiefluss svg.enf { width: 100%; height: 100%; max-height: none; }
.anzeige #anlage,
.anzeige #speicher { height: 100%; overflow-y: auto; scrollbar-width: none; }
/* Die Umbrüche von Anlage und Speicher richten sich nach der Fensterbreite
und würden am 800er-Display zu früh greifen. */
.anzeige .anl svg.anl-plan { max-height: calc(100vh - 7.5rem); }
.anzeige .spk .spk-kennzahlen { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; }
.anzeige .spk .spk-kachel { padding: .4rem .55rem .45rem; }
@@ -3921,6 +3930,12 @@ body.anzeige *, body.anzeige *::before, body.anzeige *::after { box-sizing: bord
.anzeige .spk .spk-werte small { font-size: .62rem; }
.anzeige .spk .spk-gross b { font-size: 1.4rem; }
/* Bedienfenster: passen auf 480 px Höhe und lassen sich mit dem Finger bedienen. */
.anzeige .modal-dialog { margin: .4rem auto; }
.anzeige .modal-body { max-height: calc(100vh - 9rem); overflow-y: auto; }
.anzeige .modal .form-range { height: 2rem; }
.anzeige .modal .btn { min-height: 2.4rem; }
/* Ruhig (Vorgabe am Pi): alles Zierwerk aus, nur die Flüsse laufen - in
groben Stufen, damit ein Raspberry Pi 3 nicht dauernd neu zeichnet. */
.anzeige-ruhig *,
@@ -3932,7 +3947,6 @@ body.anzeige *, body.anzeige *::before, body.anzeige *::after { box-sizing: bord
.anzeige-ruhig .enf .enf-rueck .enf-strom { animation-direction: reverse !important; }
.anzeige-ruhig .enf .enf-still .enf-strom,
.anzeige-ruhig .enf.enf-pause .enf-strom { animation: none !important; }
.anzeige-ruhig .enf .enf-strahlen,
.anzeige-ruhig .enf .enf-koerper { transition: none; }
/* --- Karte: Umschalter Übersicht / Anlage -------------------------------- */