From 46c45518a3e0c2aa229ce0cd7eb02f74f93101e6 Mon Sep 17 00:00:00 2001 From: Thebille Date: Thu, 6 Aug 2026 06:09:57 +0200 Subject: [PATCH] Initial commit: Haussteuerung V2/V3 Web-Interface --- .gitignore | 33 + PROJECT.md | 177 +++++ Script/tth_script.js | 107 +++ Script/tth_v3.js | 349 +++++++++ Script/tth_v3_api.js | 1034 ++++++++++++++++++++++++++ Script/tth_v4.js | 1320 ++++++++++++++++++++++++++++++++++ WebAppConfig.json | 1 + form.css | 245 +++++++ formV3.css | 762 ++++++++++++++++++++ formV4.css | 842 ++++++++++++++++++++++ heizung.gif | Bin 0 -> 3683 bytes heizungV2.htm | 304 ++++++++ heizung_state.html | 37 + home-icon-hi.png | Bin 0 -> 28104 bytes images/FX_149.gif | Bin 0 -> 340528 bytes images/aufgang.png | Bin 0 -> 2404 bytes images/blitz-warnzeichen.png | Bin 0 -> 22127 bytes images/blitz0.jpg | Bin 0 -> 2508 bytes images/blitz1.jpg | Bin 0 -> 2522 bytes images/heizt0.png | Bin 0 -> 4301 bytes images/heizt0_alt.png | Bin 0 -> 6178 bytes images/heizt1.png | Bin 0 -> 6383 bytes images/lampe0.jpg | Bin 0 -> 6601 bytes images/lampe1.jpg | Bin 0 -> 3382 bytes images/leuchtet0.png | Bin 0 -> 7015 bytes images/leuchtet1.png | Bin 0 -> 12112 bytes images/untergang.png | Bin 0 -> 2334 bytes images/urlaub0.jpg | Bin 0 -> 6250 bytes images/urlaub1.jpg | Bin 0 -> 5613 bytes images/wasser0.jpg | Bin 0 -> 2460 bytes images/wasser1.jpg | Bin 0 -> 5316 bytes indexMika_89.htm | 70 ++ indexNiko_17.htm | 70 ++ indexNoah_23.htm | 70 ++ indexV2.htm | 131 ++++ indexV3.htm | 173 +++++ indexV4.htm | 175 +++++ lampe.png | Bin 0 -> 84047 bytes lichtV2.htm | 305 ++++++++ licht_state.html | 15 + rolladen.htm | 337 +++++++++ steckdosenV2.htm | 307 ++++++++ steckdosen_state.html | 9 + stromzaehler.htm | 386 ++++++++++ stromzaehler_state.html | 12 + zeit_state.html | 14 + 46 files changed, 7285 insertions(+) create mode 100644 .gitignore create mode 100644 PROJECT.md create mode 100644 Script/tth_script.js create mode 100644 Script/tth_v3.js create mode 100644 Script/tth_v3_api.js create mode 100644 Script/tth_v4.js create mode 100644 WebAppConfig.json create mode 100644 form.css create mode 100644 formV3.css create mode 100644 formV4.css create mode 100644 heizung.gif create mode 100644 heizungV2.htm create mode 100644 heizung_state.html create mode 100644 home-icon-hi.png create mode 100644 images/FX_149.gif create mode 100644 images/aufgang.png create mode 100644 images/blitz-warnzeichen.png create mode 100644 images/blitz0.jpg create mode 100644 images/blitz1.jpg create mode 100644 images/heizt0.png create mode 100644 images/heizt0_alt.png create mode 100644 images/heizt1.png create mode 100644 images/lampe0.jpg create mode 100644 images/lampe1.jpg create mode 100644 images/leuchtet0.png create mode 100644 images/leuchtet1.png create mode 100644 images/untergang.png create mode 100644 images/urlaub0.jpg create mode 100644 images/urlaub1.jpg create mode 100644 images/wasser0.jpg create mode 100644 images/wasser1.jpg create mode 100644 indexMika_89.htm create mode 100644 indexNiko_17.htm create mode 100644 indexNoah_23.htm create mode 100644 indexV2.htm create mode 100644 indexV3.htm create mode 100644 indexV4.htm create mode 100644 lampe.png create mode 100644 lichtV2.htm create mode 100644 licht_state.html create mode 100644 rolladen.htm create mode 100644 steckdosenV2.htm create mode 100644 steckdosen_state.html create mode 100644 stromzaehler.htm create mode 100644 stromzaehler_state.html create mode 100644 zeit_state.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cef4e78 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +# Betriebssystem-Dateien +Thumbs.db +Thumbs.db:encryptable +Desktop.ini +.DS_Store +*.swp +*.swo + +# Editor/IDE +.vscode/ +.idea/ +*.sublime-project +*.sublime-workspace + +# Temporäre Dateien +*.tmp +*.temp +*.log + +# Node.js (falls zukünftig verwendet) +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Build-Ausgaben +dist/ +build/ + +# Sicherheitskopien +*.bak +*.backup +*~ diff --git a/PROJECT.md b/PROJECT.md new file mode 100644 index 0000000..85939f9 --- /dev/null +++ b/PROJECT.md @@ -0,0 +1,177 @@ +# Haussteuerung V2 - Projekt Dokumentation + +## Projektübersicht +Webbasierte Haussteuerung für SPS-Steuerung (AWP-Webserver) + +## Dateistruktur +``` +web/ +├── indexV2.htm # Hauptseite mit Iframes +├── form.css # Zentrales CSS +├── lichtV2.htm # Lichtsteuerung +├── heizungV2.htm # Heizungssteuerung +├── steckdosenV2.htm # Steckdosensteuerung +├── rolladen.htm # Rolladensteuerung +├── stromzaehler.htm # Stromzähler mit Chart +├── licht_state.html # Licht Status (wird von SPS befüllt) +├── heizung_state.html # Heizung Status +├── steckdosen_state.html # Steckdosen Status +├── stromzaehler_state.html # Stromzähler Status +├── WebAppConfig.json # AWP-Webserver Konfiguration +├── Script/ +│ └── tth_script.js # JavaScript Funktionen +└── images/ # Bilder und Icons +``` + +## AWP Variablen + +### Licht (lichtV2.htm) +- `"Lichtmerker Küche"` +- `"Lichtmerker Essen"` +- `"Lichtmerker Wohnen 1"` +- `"Lichtmerker Wohnen 2"` +- `"Lichtmerker HWR"` +- `"Lichtmerker Arbeiten"` +- `"Lichtmerker Kind 3"` +- `"Lichtmerker Dusche"` +- `"Lichtmerker Abstellraum"` +- `"Lichtmerker Eltern"` +- `"Lichtmerker Noah"` +- `"Lichtmerker Niko"` +- `"Lichtmerker Bad"` +- `"Kickertaste"` +- `"wled_DB".Helligkeit` +- `"wled_DB".Befehl` +- `"wled_DB".RGB_hex` + +### Heizung (heizungV2.htm) +- `"Temp Wohnen"`, `"Temp Arbeiten"`, `"Temp HWR"`, `"Temp Bad"`, `"Temp Eltern"`, `"Temp Noah"`, `"Temp Mika"`, `"Temp Niko"`, `"Temp Dusche"` +- `"Einstellungen".Heizung."Heizung Wohnen min/max"` +- `"Einstellungen".Heizung."Heizung Arbeiten min/max"` +- `"Einstellungen".Heizung."Heizung HWR min/max"` +- `"Einstellungen".Heizung."Heizung Bad min/max"` +- `"Einstellungen".Heizung."Heizung Eltern min/max"` +- `"Einstellungen".Heizung."Heizung Kind1 min/max"` +- `"Einstellungen".Heizung."Heizung Kind2 min/max"` +- `"Einstellungen".Heizung."Heizung Gäste min/max"` +- `"Einstellungen".Heizung."Heizung Dusche min/max"` + +### Steckdosen (steckdosenV2.htm) +- `"Steckdose Deele Garder"` +- `"Steckdose Wohnen"` +- `"Steckdose Essen"` +- `"Steckdose Arbeiten"` +- `"Steckdose Kind 1"` +- `"Steckdose Kind 2"` +- `"Steckdose Gäste"` +- `"Steckdose Eltern"` +- `"Arduino Settimio"."Funksteckdose 1 an/aus"` +- `"Arduino Settimio"."KDY 1 an/aus"` +- `"Arduino Settimio"."KDY 2 an/aus"` +- `"Arduino Settimio"."Funksteckdose 4 an/aus"` + +### Rolladen (rolladen.htm) +- `"Rolladenmerker Ess l/r/m auf/ab"` +- `"Rolladenmerker Woh l/r auf/ab"` +- `"Rolladenmerker Wohtü auf/ab"` +- `"Rolladenmerker Arbei auf/ab"` +- `"Rolladenmerker HWR auf/ab"` +- `"Rolladenmerker Küc l/r auf/ab"` +- `"Rolladenmerker Elter auf/ab"` +- `"Rolladenmerker Noah auf/ab"` +- `"Rolladenmerker Bad auf/ab"` +- `"Rolladenmerker Niko auf/ab"` +- `"Rolladenmerker Mika auf/ab"` +- `"Rolladenmerker Dusche au/ab"` +- `"Rolladen alle auf/ab"` +- `"Jalousie_DB".Urlaub` + +### Stromzähler (stromzaehler.htm) +- 12 Zählerwerte aus `stromzaehler_state.html` +- Berechnung: -1 bis -8 als Differenzwerte + +### Sonstige (indexV2.htm) +- `"Aufgang_Untergang".aktuelle_CPU_Zeit.*` +- `"Aufgang_Untergang".Aufgang.HOUR/MINUTE` +- `"Aufgang_Untergang".Untergang.HOUR/MINUTE` +- `"Aufgang_Untergang".Aufgang_offset` +- `"Aufgang_Untergang".Untergang_offset` +- `"Türöffner Handy"` +- `"Arduino Settimio".Garagentor 1` +- `"Arduino Settimio".Garagentor 2` + +## CSS (form.css) +- `.ui-card` - Card-Container mit Hintergrund +- `.ui-table` - Tabellen-Styling +- `.ui-btn` - Button-Styling (primary, on, off) +- `.ui-iconbtn` - Icon-Buttons +- `.auto-style6` - Versteckte Status-Elemente (color: transparent, font-size: 1px) + +## JavaScript +- `tth_script.js` - Icon-Funktionen (leuchtet_icon, heizt_icon, strom_icon, urlaub_icon) +- Iframe-Resize in indexV2.htm +- Stromzähler: Differenzberechnung für -1 bis -8 +- Stromzähler: Canvas-basierter Leistungs-Chart (letzte 5 Min.) + +## Wichtige Änderungen +- OutputArea in allen Seiten mit `clip:rect(0,0,0,0)` versteckt +- Header-Zeile "Raum | Taster" aus steckdosenV2.htm und rolladen.htm entfernt +- Erste Tabellenzeile nicht mehr hervorgehoben +- Stromzähler-Werte untereinander angeordnet +- Stromzähler: -1 bis -8 als Differenzwerte + +## Server +- AWP-Webserver auf SPS (192.168.0.90) +- Standard-Seite: indexV2.htm + +## V3 (Single-Page, neu) +Parallel zu V2, lässt V2 unangetastet. Erreichbar über `indexV3.htm`. + +### Dateien V3 +- `indexV3.htm` — Produktivseite mit SPS-Web-API-Anbindung. +- `indexV3_preview.htm` — reine Optik-Vorschau ohne SPS, mit Dummy-Daten. +- `formV3.css` — CSS für V3 (Grid, Karten, responsive Stromzähler-Bereich). +- `Script/tth_v3_api.js` — JavaScript für `indexV3.htm`. + +### Architektur +- Keine Iframes, keine AWP-Formulare. +- Kommunikation mit der S7-1500 über die integrierte Web-API (`/api/jsonrpc`). +- Lesen per `PlcProgram.Read` (Batch), schreiben per `PlcProgram.Write`. +- Anmeldung über `Api.Login` mit Token (aktuell Benutzer `111`). +- Status wird zyklisch gelesen und in `lastValues` gepuffert. +- Schreibaktionen erfolgen direkt beim Klick auf Buttons/Inputs. + +### Module in indexV3.htm +1. **Stromzähler** — Tacho, Werte (Bezug/Einspeisung/Wemos), Power-Chart, Daily-Chart. +2. **Licht** — 14 Räume + WLED (Helligkeit/Farbe). +3. **Heizung** — 9 Räume mit IST, SOLL min/max, heizt-Status. +4. **Rolladen** — alle Räume + Urlaub-Modus. +5. **Steckdosen** — 8 normale Steckdosen + 4 Funksteckdosen. +6. **Haus** — Haustür + Garagentor. +7. **Uhrzeit** — CPU-Uhr, Sonnenauf-/untergang. + +### Wichtige Variablen-Unterschiede +- **Licht:** Lesen aus `licht_state.html` (`"Licht Küche"` etc.), Schreiben auf `"Lichtmerker ..."` etc. (unterschiedliche Variablen!). +- **Steckdosen:** Lesen und Schreiben identisch. Normale Steckdosen sind Bool: `false` = an, `true` = aus. Funksteckdosen haben separate an/aus-Variablen. +- **Rolladen:** Separate auf/ab-Variablen, Schreibwert `true`. +- **Heizung:** SOLL-Werte werden als Float geschrieben. +- **WLED:** `"wled_DB".Helligkeit` (Int), `"wled_DB".RGB_hex` (String), `"wled_DB".Befehl` (Int). + +### Charts +- **Tacho (`v3_gauge`):** Canvas, 180°-Skala, -8000 bis +8000 W, grün=Einspeisung, rot=Bezug. +- **Power-Chart (`v3_power_chart`):** Letzte 5 Minuten Leistung, weiche Kurve, Legende "akt. Leistung: xx W". +- **Daily-Chart (`v3_daily_chart`):** Balken für die letzten 8 Tage, Wochentage als X-Achse, heute gelb hervorgehoben, blaue Linie für täglichen Bezug. + +### Responsive Verhalten +- Stromzähler-Bereich bricht auf kleinen Bildschirmen um. +- Canvas-Elemente skalieren mit `aspect-ratio: 2 / 1` und bleiben scharf (HiDPI über `fitCanvas`). + +### Bekannte Einschränkungen / TODO +- Login-Daten (`user: '111'`, `password: '1q2w3e$R'`) sind im Klartext in `tth_v3_api.js` hinterlegt. +- Heizungs-Validierung prüft nur `min < max` clientseitig. +- Keine Rückmeldung, ob ein Schreibvorgang in der SPS tatsächlich wirksam wurde (nur API-Antwort). + +### Preview +- `indexV3_preview.htm` enthält feste Dummy-Werte und kein Polling. +- Wird verwendet, um das Layout offline zu testen. +- Taster in der Preview haben keine Funktion. diff --git a/Script/tth_script.js b/Script/tth_script.js new file mode 100644 index 0000000..9582f97 --- /dev/null +++ b/Script/tth_script.js @@ -0,0 +1,107 @@ +// function to check value +function check() +{ + var x = document.getElementById("wert1"); + if (x.value >= 1 && x.value <= 10 ) + { + return true; + } + else + { + alert ("Enter Flowrate between 1 and 10"); + document.getElementById("wert1").value = ""; + return false; + } +} + +function check_heizung(raum) { + var ist_min = document.getElementById("ist_" + raum + "_min").innerText; + var soll_min = document.getElementById("soll_" + raum + "_min").value; + var ist_max = document.getElementById("ist_" + raum + "_max").innerText; + var soll_max = document.getElementById("soll_" + raum + "_max").value; + + console.log('ist min ' + ist_min); + console.log('soll min ' + soll_min); + console.log('ist max ' + ist_max); + console.log('soll max ' + soll_max); + + if (soll_min != null) { + if (soll_min >= ist_max) { + alert ("Temperatur muss kleiner sein als max"); + document.getElementById("soll_" + raum + "_min").value = ""; + } + return false; + } + else + { + return true; + } + + if (soll_max != null) { + if (soll_max <= ist_min) { + alert ("Temperatur muss kleiner sein als max"); + document.getElementById("soll_" + raum + "_max").value = ""; + } + return false; + } + else + { + return true; + } +} + +function heizt_icon(label, status) { + //console.log(label); + if (status == 1) { + document.getElementById(label).src = "images/heizt1.png"; + } + else { + document.getElementById(label).src = "images/heizt0.png"; + } + return(label, status); +} + +function leuchtet_icon(label, status) { + //console.log(label); + if (status == 1) { + document.getElementById(label).src = "images/lampe1.jpg"; + } + else { + document.getElementById(label).src = "images/lampe0.jpg"; + } + return(label, status); +} + +function strom_icon(label, status) { + //console.log(label); + if (status == 1) { + document.getElementById(label).src = "images/blitz0.jpg"; + } + else { + document.getElementById(label).src = "images/blitz1.jpg"; + } + return(label, status); +} + +function wasser_icon(label, status) { + //console.log(label); + if (status == 1) { + document.getElementById(label).src = "images/wasser0.jpg"; + } + else { + document.getElementById(label).src = "images/wasser1.jpg"; + } + return(label, status); +} + +function urlaub_icon(label, status) { + //console.log(label); + if (status == 1) { + document.getElementById(label).src = "images/urlaub1.jpg"; + } + else { + document.getElementById(label).src = "images/urlaub0.jpg"; + } + return(label, status); +} + diff --git a/Script/tth_v3.js b/Script/tth_v3.js new file mode 100644 index 0000000..558e040 --- /dev/null +++ b/Script/tth_v3.js @@ -0,0 +1,349 @@ +// ==================================================================== +// tth_v3.js – Logik fuer indexV3.htm (Single-Page-Haussteuerung) +// +// Liest Status aus den vorhandenen *_state.html Dateien (UNVERAENDERT) +// per AJAX, parst sie isoliert mit DOMParser und liest die Werte ueber +// textContent. Dadurch: +// - kein innerText/"hidden"-Problem (textContent ist render-unabhaengig) +// - keine ID-Kollisionen (jede State-Datei landet in eigenem Dokument) +// Zeichnet Tacho + Leistungsverlauf selbst auf Canvas -> kein Internet noetig. +// ==================================================================== + +(function () { + 'use strict'; + + // Im versteckten Schreib-Iframe (target="awp_sink") NICHTS tun. + // Verhindert doppeltes Polling, wenn ein Formular gepostet wird. + if (window.top !== window.self) { return; } + + // ---- kleine Helfer ------------------------------------------------- + + function txt(doc, id) { + var el = doc.getElementById(id); + return el ? (el.textContent || '').replace(/\s+/g, ' ').trim() : ''; + } + + function setText(id, value) { + var el = document.getElementById(id); + if (el) { el.textContent = value; } + } + + // Status-Punkt umschalten. kind: 'on' (gruen) oder 'active' (gelb) + function setDot(id, on, kind) { + var el = document.getElementById(id); + if (!el) { return; } + el.classList.remove('v3-status-dot--on', 'v3-status-dot--off', 'v3-status-dot--active'); + if (on) { + el.classList.add(kind === 'active' ? 'v3-status-dot--active' : 'v3-status-dot--on'); + } else { + el.classList.add('v3-status-dot--off'); + } + } + + function pad(n) { + n = parseInt(n, 10); + if (isNaN(n)) { return '--'; } + return n < 10 ? '0' + n : '' + n; + } + + // Generischer Poll-Loop: holt url, parst sie, ruft handler(doc), + // und plant sich selbst nach 'interval' ms neu (auch bei Fehler). + function poll(url, handler, interval) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url + '?_=' + Date.now(), true); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + try { + var doc = new DOMParser().parseFromString(xhr.responseText, 'text/html'); + handler(doc); + } catch (e) { /* defensiv: einzelner Fehler stoppt den Loop nicht */ } + } + setTimeout(function () { poll(url, handler, interval); }, interval); + } + }; + xhr.send(null); + } + + // ---- LICHT --------------------------------------------------------- + // leuchtetx1..14 == '1' -> an + function handleLicht(doc) { + for (var i = 1; i <= 14; i++) { + setDot('li_dot_' + i, txt(doc, 'leuchtetx' + i) === '1', 'on'); + } + } + + // ---- HEIZUNG ------------------------------------------------------- + function tempClass(v) { + var t = parseFloat(v); + if (isNaN(t)) { return 'v3-temp--normal'; } + if (t >= 24) { return 'v3-temp--hot'; } + if (t >= 22) { return 'v3-temp--warm'; } + return 'v3-temp--normal'; + } + + function handleHeizung(doc) { + for (var i = 1; i <= 9; i++) { + // aktuelle Temperatur (heiztx101..109) + var temp = txt(doc, 'heiztx' + (100 + i)); + var tEl = document.getElementById('he_temp_' + i); + if (tEl) { + tEl.textContent = (temp === '' ? '–' : temp + ' °C'); + tEl.className = 'v3-temp ' + tempClass(temp); + } + // heizt aktiv? (heiztx1..9) + setDot('he_dot_' + i, txt(doc, 'heiztx' + i) === '1', 'active'); + // aktuell eingestellte Grenzen (heiz_min/max 1..9) + var istMin = txt(doc, 'heiz_min' + i); + var istMax = txt(doc, 'heiz_max' + i); + setText('he_ist_' + i, (istMin || '–') + ' / ' + (istMax || '–')); + } + } + + // ---- STECKDOSEN ---------------------------------------------------- + // ACHTUNG: invertierte Logik wie in V2 -> stromx == '0' bedeutet AN. + function handleSteckdosen(doc) { + for (var i = 1; i <= 8; i++) { + setDot('sd_dot_' + i, txt(doc, 'stromx' + i) === '0', 'on'); + } + } + + // ---- STROMZAEHLER -------------------------------------------------- + var powerHistory = []; + + function addPowerSample(v) { + if (!isFinite(v)) { return; } + var now = Date.now(); + powerHistory.push({ t: now, v: v }); + var cutoff = now - 5 * 60 * 1000; // 5 Minuten + while (powerHistory.length && powerHistory[0].t < cutoff) { + powerHistory.shift(); + } + } + + // Halbkreis-Tacho auf Canvas, -8000..+8000 W, Farbzonen wie Original-Gauge. + function drawGauge(value) { + var canvas = document.getElementById('v3_gauge'); + if (!canvas) { return; } + var ctx = canvas.getContext('2d'); + var w = canvas.width, h = canvas.height; + ctx.clearRect(0, 0, w, h); + + var cx = w / 2, cy = h - 18; + var r = Math.min(w / 2, h) - 16, lw = 14; + var MIN = -8000, MAX = 8000; + + function ang(v) { + v = Math.max(MIN, Math.min(MAX, v)); + return Math.PI + (v - MIN) / (MAX - MIN) * Math.PI; // pi .. 2pi + } + function zone(from, to, color) { + ctx.beginPath(); + ctx.lineWidth = lw; + ctx.strokeStyle = color; + ctx.arc(cx, cy, r, ang(from), ang(to)); + ctx.stroke(); + } + + zone(MIN, 0, '#2e7d32'); // gruen: Einspeisung / neutral + zone(0, 1000, '#f9a825'); // gelb + zone(1000, 5000, '#444444'); // neutraler Bereich + zone(5000, MAX, '#c62828'); // rot: hoher Bezug + + // Skalenstriche alle 2000 W + ctx.strokeStyle = 'rgba(255,255,255,0.7)'; + ctx.lineWidth = 1; + for (var t = MIN; t <= MAX; t += 2000) { + var a = ang(t); + ctx.beginPath(); + ctx.moveTo(cx + Math.cos(a) * (r - lw / 2 - 2), cy + Math.sin(a) * (r - lw / 2 - 2)); + ctx.lineTo(cx + Math.cos(a) * (r + lw / 2 + 2), cy + Math.sin(a) * (r + lw / 2 + 2)); + ctx.stroke(); + } + + // Zeiger + var v = isFinite(value) ? value : 0; + var na = ang(v); + ctx.strokeStyle = '#63d4ff'; + ctx.lineWidth = 3; + ctx.beginPath(); + ctx.moveTo(cx, cy); + ctx.lineTo(cx + Math.cos(na) * (r - 4), cy + Math.sin(na) * (r - 4)); + ctx.stroke(); + ctx.fillStyle = '#63d4ff'; + ctx.beginPath(); + ctx.arc(cx, cy, 5, 0, Math.PI * 2); + ctx.fill(); + + // Digitalanzeige + Beschriftung + ctx.textAlign = 'center'; + ctx.fillStyle = '#00FF00'; + ctx.font = 'bold 20px Arial, sans-serif'; + ctx.fillText(Math.round(v) + ' W', cx, cy - 14); + ctx.fillStyle = 'rgba(234,240,255,0.6)'; + ctx.font = '10px Arial, sans-serif'; + ctx.fillText('-8000', cx - r, cy + 12); + ctx.fillText('+8000', cx + r, cy + 12); + ctx.fillText('Leistung', cx, 12); + } + + // Leistungsverlauf der letzten 5 Minuten auf Canvas. + function drawPowerChart() { + var canvas = document.getElementById('v3_power_chart'); + if (!canvas) { return; } + var ctx = canvas.getContext('2d'); + var w = canvas.width, h = canvas.height; + + ctx.clearRect(0, 0, w, h); + ctx.fillStyle = 'rgba(0,0,0,0.35)'; + ctx.fillRect(0, 0, w, h); + + if (!powerHistory.length) { + ctx.fillStyle = 'rgba(234,240,255,0.75)'; + ctx.font = '12px Segoe UI, Arial, sans-serif'; + ctx.fillText('Leistung (letzte 5 min) – warte auf Daten…', 12, 24); + return; + } + + var minV = powerHistory[0].v, maxV = powerHistory[0].v; + for (var i = 1; i < powerHistory.length; i++) { + var v = powerHistory[i].v; + if (v < minV) { minV = v; } + if (v > maxV) { maxV = v; } + } + if (minV === maxV) { minV -= 1; maxV += 1; } + + var padL = 38, padR = 10, padT = 18, padB = 22; + var plotW = w - padL - padR; + var plotH = h - padT - padB; + var t0 = powerHistory[0].t; + var t1 = powerHistory[powerHistory.length - 1].t; + if (t0 === t1) { t0 -= 1; t1 += 1; } + + // Gitter + ctx.strokeStyle = 'rgba(255,255,255,0.10)'; + ctx.lineWidth = 1; + for (var gy = 0; gy <= 4; gy++) { + var y = padT + (plotH * gy / 4); + ctx.beginPath(); + ctx.moveTo(padL, y); + ctx.lineTo(padL + plotW, y); + ctx.stroke(); + } + + // Beschriftung + ctx.fillStyle = 'rgba(234,240,255,0.75)'; + ctx.font = '12px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'left'; + ctx.fillText('Leistung – letzte 5 min', 12, 14); + ctx.fillStyle = 'rgba(234,240,255,0.65)'; + ctx.font = '11px Segoe UI, Arial, sans-serif'; + ctx.fillText(Math.round(maxV) + ' W', 6, padT + 10); + ctx.fillText(Math.round(minV) + ' W', 6, padT + plotH); + + // Linie + ctx.strokeStyle = 'rgba(99,212,255,0.95)'; + ctx.lineWidth = 2; + ctx.beginPath(); + for (var j = 0; j < powerHistory.length; j++) { + var p = powerHistory[j]; + var x = padL + ((p.t - t0) / (t1 - t0)) * plotW; + var yv = padT + (1 - ((p.v - minV) / (maxV - minV))) * plotH; + if (j === 0) { ctx.moveTo(x, yv); } else { ctx.lineTo(x, yv); } + } + ctx.stroke(); + + // letzter Punkt + var last = powerHistory[powerHistory.length - 1]; + var lx = padL + ((last.t - t0) / (t1 - t0)) * plotW; + var ly = padT + (1 - ((last.v - minV) / (maxV - minV))) * plotH; + ctx.fillStyle = 'rgba(124,255,178,0.95)'; + ctx.beginPath(); + ctx.arc(lx, ly, 3, 0, Math.PI * 2); + ctx.fill(); + } + + function num(s) { + var n = parseFloat(s); + return isNaN(n) ? null : n; + } + function diffText(a, b) { + if (a === null || b === null) { return '–'; } + return (a - b).toFixed(2) + ' kWh'; + } + + function handleStrom(doc) { + var e = []; + for (var i = 1; i <= 12; i++) { e[i] = num(txt(doc, 'stromx' + i)); } + + setText('sz_bezug', (e[1] === null ? '–' : e[1]) + ' kWh'); + setText('sz_einsp', (e[2] === null ? '–' : e[2]) + ' kWh'); + setText('sz_leist', (e[3] === null ? '–' : e[3]) + ' W'); + setText('sz_tag', (e[4] === null ? '–' : e[4]) + ' kWh'); + + // Differenzen aufeinanderfolgender Zaehlerstaende (-1 .. -8) + setText('sz_d1', diffText(e[1], e[5])); + setText('sz_d2', diffText(e[5], e[6])); + setText('sz_d3', diffText(e[6], e[7])); + setText('sz_d4', diffText(e[7], e[8])); + setText('sz_d5', diffText(e[8], e[9])); + setText('sz_d6', diffText(e[9], e[10])); + setText('sz_d7', diffText(e[10], e[11])); + setText('sz_d8', diffText(e[11], e[12])); + + var p = e[3]; + addPowerSample(p); + drawGauge(p === null ? 0 : p); + drawPowerChart(); + } + + // ---- UHR / SONNE / URLAUB ----------------------------------------- + function handleZeit(doc) { + setText('clock_time', pad(txt(doc, 'z_h')) + ':' + pad(txt(doc, 'z_mi')) + ':' + pad(txt(doc, 'z_s'))); + setText('clock_date', pad(txt(doc, 'z_d')) + '.' + pad(txt(doc, 'z_mo')) + '.' + (txt(doc, 'z_y') || '----')); + setText('sun_up', pad(txt(doc, 'z_auf_h')) + ':' + pad(txt(doc, 'z_auf_mi')) + ' Uhr (Offset ' + (txt(doc, 'z_auf_off') || '0') + ')'); + setText('sun_down', pad(txt(doc, 'z_unter_h')) + ':' + pad(txt(doc, 'z_unter_mi')) + ' Uhr (Offset ' + (txt(doc, 'z_unter_off') || '0') + ')'); + setDot('roll_urlaub_dot', txt(doc, 'z_urlaub') === '1', 'active'); + } + + // ---- Heizungs-Plausibilitaet (V2-Bug korrigiert) ------------------- + // Wird per onsubmit aufgerufen; verhindert SOLL-min >= SOLL-max. + // Min und Max liegen jetzt in GETRENNTEN Forms (eine Form schreibt nur + // ihren Wert). Plausibilitaet trotzdem ueber die ganze Zeile pruefen: + // neuer Wert vs. anderes SOLL-Feld bzw. aktuelle IST-Grenze. + window.checkHeizungV3 = function (form) { + var row = form.closest ? form.closest('.v3-heat-row') : null; + if (!row) { return true; } + var minEl = row.querySelector('input[data-soll="min"]'); + var maxEl = row.querySelector('input[data-soll="max"]'); + var sMin = minEl && minEl.value !== '' ? parseFloat(minEl.value) : null; + var sMax = maxEl && maxEl.value !== '' ? parseFloat(maxEl.value) : null; + // aktuelle Grenzen aus der IST-Anzeige ("min / max") + var istEl = row.querySelector('.v3-muted'); + var cur = istEl ? istEl.textContent.split('/') : []; + var effMin = sMin !== null ? sMin : parseFloat(cur[0]); + var effMax = sMax !== null ? sMax : parseFloat(cur[1]); + if (!isNaN(effMin) && !isNaN(effMax) && effMin >= effMax) { + alert('Min-Temperatur muss kleiner sein als Max.'); + return false; + } + return true; + }; + + // ---- Start --------------------------------------------------------- + function init() { + poll('licht_state.html', handleLicht, 800); + poll('heizung_state.html', handleHeizung, 1000); + poll('steckdosen_state.html', handleSteckdosen, 1000); + poll('stromzaehler_state.html', handleStrom, 800); + poll('zeit_state.html', handleZeit, 1000); + drawGauge(0); + drawPowerChart(); + } + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } +})(); diff --git a/Script/tth_v3_api.js b/Script/tth_v3_api.js new file mode 100644 index 0000000..4e73290 --- /dev/null +++ b/Script/tth_v3_api.js @@ -0,0 +1,1034 @@ +// ==================================================================== +// tth_v3_api.js – indexV3.htm OHNE AWP, ueber die S7-1500 Web-API. +// +// - Automatische Anmeldung (Api.Login) mit hinterlegtem Benutzer -> Token. +// - Status zyklisch per Batch "PlcProgram.Read" (ein POST je Zyklus). +// - Schreiben per "PlcProgram.Write" direkt beim Klick (keine Forms/AWP). +// - Tacho + Leistungschart wie gehabt selbst auf Canvas (kein Internet). +// +// ANMELDUNG: Hat der Benutzer "Jeder" (anonym) auf der CPU das Recht +// "Variablen lesen/schreiben", ist KEIN Login noetig -> user leer lassen. +// Fuer einen benannten Benutzer stattdessen user/password setzen. +// ==================================================================== + +(function () { + 'use strict'; + + // ====== KONFIG ====== + var CFG = { + url: '/api/jsonrpc', // relativer Pfad -> selbe CPU/Origin + user: '111', // '' = anonym ueber "Jeder" (kein Login) + password: '1q2w3e$R', + readInterval: 500 // ms zwischen Status-Abfragen + }; + + var ANON = !CFG.user; // true => keine Anmeldung, kein Token + var token = null; + var rid = 0; + var statusEl = null; + + // ---- Anzeige Verbindungsstatus ------------------------------------ + function setStatus(connected, text) { + if (!statusEl) { statusEl = document.getElementById('api_status'); } + if (!statusEl) { return; } + statusEl.textContent = text; + statusEl.style.color = connected ? 'var(--v3-accent-2)' : 'var(--v3-danger)'; + } + + // ---- Low-Level: ein POST (Einzel- oder Batch-Request) ------------- + function doCall(batch) { + var headers = { 'Content-Type': 'application/json' }; + if (token) { headers['X-Auth-Token'] = token; } + return fetch(CFG.url, { method: 'POST', headers: headers, body: JSON.stringify(batch) }) + .then(function (r) { + if (r.status === 401 || r.status === 403) { token = null; throw new Error('unauthorized'); } + return r.json(); + }) + .then(function (j) { return Array.isArray(j) ? j : [j]; }); + } + + function login() { + token = null; + return doCall([{ jsonrpc: '2.0', id: ++rid, method: 'Api.Login', + params: { user: CFG.user, password: CFG.password } }]) + .then(function (arr) { + var res = arr[0]; + if (res && res.result && res.result.token) { + token = res.result.token; + return token; + } + throw new Error('Login fehlgeschlagen'); + }); + } + + // Anonym: direkt aufrufen. Sonst: Token sicherstellen, bei Auth-Fehler 1x neu anmelden. + function withAuth(fn) { + if (ANON) { return fn(); } + return (token ? Promise.resolve() : login()) + .then(fn) + .catch(function (e) { + // einmaliger Wiederanmelde-Versuch + return login().then(fn); + }); + } + + // ---- Mehrere Variablen lesen (chunked Batch) ---------------------- + function readMany(vars) { + return withAuth(function () { + var idMap = {}; + var reqs = vars.map(function (v) { + var id = ++rid; idMap[id] = v; + return { jsonrpc: '2.0', id: id, method: 'PlcProgram.Read', params: { var: v, mode: 'simple' } }; + }); + var chunks = []; + for (var i = 0; i < reqs.length; i += 24) { chunks.push(reqs.slice(i, i + 24)); } + return Promise.all(chunks.map(doCall)).then(function (res) { + var flat = [].concat.apply([], res); + var out = {}; + flat.forEach(function (r) { + if (r && r.id != null) { out[idMap[r.id]] = (r.error ? null : r.result); } + }); + return out; + }); + }); + } + + // ---- Eine Variable schreiben -------------------------------------- + function write(varName, value) { + varName = String(varName).trim(); + return withAuth(function () { + return doCall([{ jsonrpc: '2.0', id: ++rid, method: 'PlcProgram.Write', + params: { var: varName, value: value, mode: 'simple' } }]); + }).then(function (arr) { + var r = arr[0]; + if (r && r.error) { + console.warn('Write-Fehler', varName, + 'code=' + r.error.code, 'message=' + r.error.message, + JSON.stringify(r.error)); + } + return r; + }).catch(function (e) { console.warn('Write-Ausnahme', varName, e); }); + } + + // S7-String aus raw-Bytes dekodieren: [maxLen, curLen, char0, char1, ...] + function decodeS7String(raw) { + if (!Array.isArray(raw) || raw.length < 2) { return ''; } + var len = raw[1]; + var s = ''; + for (var i = 0; i < len && (2 + i) < raw.length; i++) { s += String.fromCharCode(raw[2 + i]); } + return s; + } + + // Wemos-String separat im raw-Modus lesen (simple liefert null wegen Steuerzeichen) + function readWemos() { + return withAuth(function () { + return doCall([{ jsonrpc: '2.0', id: ++rid, method: 'PlcProgram.Read', + params: { var: METER.wemos, mode: 'raw' } }]); + }).then(function (arr) { + var r = arr[0]; + var txt = (r && r.result) ? decodeS7String(r.result) : ''; + txt = txt.replace(/[\r\n\t]+/g, ' ').trim(); // Steuerzeichen fuer die Anzeige bereinigen + setText('sz_wemos', txt === '' ? '–' : txt); + }).catch(function () {}); + } + + // ====== Variablen-Zuordnung (Symbolik wie in den AWP-State-Dateien) = + + // Licht: [Status-Punkt-ID, Lese-Variable, Schreib-Variable] + var LIGHTS = [ + ['li_dot_1', '"Licht Küche"', '"Lichtmerker Küche"'], + ['li_dot_2', '"Licht Essen"', '"Lichtmerker Essen"'], + ['li_dot_3', '"Licht Wohnen 1"', '"Lichtmerker Wohnen 1"'], + ['li_dot_4', '"Licht Wohnen 2"', '"Lichtmerker Wohnen 2"'], + ['li_dot_5', '"Licht Arbeiten"', '"Lichtmerker Arbeiten"'], + ['li_dot_6', '"Licht HWR"', '"Lichtmerker HWR"'], + ['li_dot_7', '"Licht Niko"', '"Lichtmerker Niko"'], + ['li_dot_8', '"Licht Dusche"', '"Lichtmerker Dusche"'], + ['li_dot_9', '"Licht Abstellraum"', '"Lichtmerker Abstellraum"'], + ['li_dot_10', '"Licht Eltern"', '"Lichtmerker Eltern"'], + ['li_dot_11', '"Licht Noah"', '"Lichtmerker Noah"'], + ['li_dot_12', '"Licht Bad 2"', '"Lichtmerker Bad"'], + ['li_dot_13', '"Licht Kind 3"', '"Lichtmerker Kind 3"'], + ['li_dot_14', '"Licht Deele"', '"Kickertaste"'] + ]; + + // Heizung: {i, temp, active(heizt), min, max} + var HEAT = [ + { i: 1, temp: '"Temp Wohnen"', act: '"Heizung Essen Küche Wohn"', min: '"Einstellungen".Heizung."Heizung Wohnen min"', max: '"Einstellungen".Heizung."Heizung Wohnen max"' }, + { i: 2, temp: '"Temp Arbeiten"', act: '"Heizung Arbeiten"', min: '"Einstellungen".Heizung."Heizung Arbeiten min"', max: '"Einstellungen".Heizung."Heizung Arbeiten max"' }, + { i: 3, temp: '"Temp HWR"', act: '"Heizung HWR"', min: '"Einstellungen".Heizung."Heizung HWR min"', max: '"Einstellungen".Heizung."Heizung HWR max"' }, + { i: 4, temp: '"Temp Bad"', act: '"Heizung Bad"', min: '"Einstellungen".Heizung."Heizung Bad min"', max: '"Einstellungen".Heizung."Heizung Bad max"' }, + { i: 5, temp: '"Temp Eltern"', act: '"Heizung Eltern"', min: '"Einstellungen".Heizung."Heizung Eltern min"', max: '"Einstellungen".Heizung."Heizung Eltern max"' }, + { i: 6, temp: '"Temp Noah"', act: '"Heizung Noah"', min: '"Einstellungen".Heizung."Heizung Kind1 min"', max: '"Einstellungen".Heizung."Heizung Kind1 max"' }, + { i: 7, temp: '"Temp Mika"', act: '"Heizung Mika"', min: '"Einstellungen".Heizung."Heizung Kind2 min"', max: '"Einstellungen".Heizung."Heizung Kind2 max"' }, + { i: 8, temp: '"Temp Niko"', act: '"Heizung Niko"', min: '"Einstellungen".Heizung."Heizung Gäste min"', max: '"Einstellungen".Heizung."Heizung Gäste max"' }, + { i: 9, temp: '"Temp Dusche"', act: '"Heizung Gäste Dusche"', min: '"Einstellungen".Heizung."Heizung Dusche min"', max: '"Einstellungen".Heizung."Heizung Dusche max"' } + ]; + + // Steckdosen: [Punkt-ID, Status-Variable] (Status 0 = AN) + var SOCKETS = [ + ['sd_dot_1', '"Steckdose Deele Garder"'], + ['sd_dot_2', '"Steckdose Wohnen"'], + ['sd_dot_3', '"Steckdose Essen"'], + ['sd_dot_4', '"Steckdose Arbeiten"'], + ['sd_dot_5', '"Steckdose Kind 1"'], + ['sd_dot_6', '"Steckdose Kind 2"'], + ['sd_dot_7', '"Steckdose Gäste"'], + ['sd_dot_8', '"Steckdose Eltern"'] + ]; + + // Poolpumpe: Laufzeit-Zähler (Sekunden pro Tag) + SOLL-Laufzeit (Sek/Tag) + var POOL = { + sek: '"Funksteckdosen_DB"."Poolpumpenzähler Sek/Tag"', + max: '"Funksteckdosen_DB"."Poolpumpe min Laufzeit/Tag"' + }; + + var METER = { + bezug: '"Stromzähler".Stromzähler."Zählerstand Bezug"', + einsp: '"Stromzähler".Stromzähler."Zählerstand Einspeisung"', + leist: '"Stromzähler".Stromzähler."aktuelle Leistung"', + tag: '"Stromzähler".Stromzähler.Aufzeichnung."täglicher Bezug"', + wemos: '"Buffer"."Wemos RC".Senden', + hist: [ + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[0]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[1]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[2]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[3]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[4]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[5]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[6]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[7]."Zählerstand Bezug"' + ] + }; + + var WATER = { + stand: '"Wasserzähler".Zählerstand[0].aktueller_Stand', + seit: '"Wasserzähler".Zählerstand[0].seit_letzter_Ablesung', + wtemp: '"Wasserzähler".Zählerstand[0].Wassertemperatur', + tag: '"Wasserzähler"."täglicher Bezug"', + hist: [ + '"Wasserzähler".Zählerstand[0].aktueller_Stand', + '"Wasserzähler".Zählerstand[1].aktueller_Stand', + '"Wasserzähler".Zählerstand[2].aktueller_Stand', + '"Wasserzähler".Zählerstand[3].aktueller_Stand', + '"Wasserzähler".Zählerstand[4].aktueller_Stand', + '"Wasserzähler".Zählerstand[5].aktueller_Stand', + '"Wasserzähler".Zählerstand[6].aktueller_Stand', + '"Wasserzähler".Zählerstand[7].aktueller_Stand' + ] + }; + + var ZEIT = { + y: '"Aufgang_Untergang".aktuelle_CPU_Zeit.YEAR', + mo: '"Aufgang_Untergang".aktuelle_CPU_Zeit.MONTH', + d: '"Aufgang_Untergang".aktuelle_CPU_Zeit.DAY', + h: '"Aufgang_Untergang".aktuelle_CPU_Zeit.HOUR', + mi: '"Aufgang_Untergang".aktuelle_CPU_Zeit.MINUTE', + s: '"Aufgang_Untergang".aktuelle_CPU_Zeit.SECOND', + aufH: '"Aufgang_Untergang".Aufgang.HOUR', + aufMi: '"Aufgang_Untergang".Aufgang.MINUTE', + untH: '"Aufgang_Untergang".Untergang.HOUR', + untMi: '"Aufgang_Untergang".Untergang.MINUTE', + urlaub: '"Jalousie_DB".Urlaub' + }; + + // Liste aller zu lesenden Variablen zusammenbauen + function allReadVars() { + var v = []; + LIGHTS.forEach(function (l) { v.push(l[1]); }); + HEAT.forEach(function (h) { v.push(h.temp, h.act); }); // min/max separat (selten) + SOCKETS.forEach(function (s) { v.push(s[1]); }); + v.push(POOL.sek, POOL.max); + v.push(METER.bezug, METER.einsp, METER.leist, METER.tag); + METER.hist.forEach(function (x) { v.push(x); }); + v.push(WATER.stand, WATER.seit, WATER.wtemp, WATER.tag); + WATER.hist.forEach(function (x) { v.push(x); }); + Object.keys(ZEIT).forEach(function (k) { v.push(ZEIT[k]); }); + return v; + } + + // Heizungs-Grenzen (aendern sich fast nie) – separat, nur selten gelesen. + function settingsVars() { + var v = []; + HEAT.forEach(function (h) { v.push(h.min, h.max); }); + return v; + } + + // ====== Hilfen ====================================================== + function on(v) { return v === true || v === 1 || v === '1'; } + function num(v) { var n = parseFloat(v); return isNaN(n) ? null : n; } + function pad(n) { n = parseInt(n, 10); if (isNaN(n)) { return '--'; } return n < 10 ? '0' + n : '' + n; } + + function setText(id, value) { var el = document.getElementById(id); if (el) { el.textContent = value; } } + function setDot(id, isOn, kind) { + var el = document.getElementById(id); + if (!el) { return; } + el.classList.remove('v3-status-dot--on', 'v3-status-dot--off', 'v3-status-dot--active'); + el.classList.add(isOn ? (kind === 'active' ? 'v3-status-dot--active' : 'v3-status-dot--on') : 'v3-status-dot--off'); + } + function tempClass(t) { + if (t === null) { return 'v3-temp--normal'; } + if (t >= 24) { return 'v3-temp--hot'; } + if (t >= 22) { return 'v3-temp--warm'; } + return 'v3-temp--normal'; + } + + // Sekunden -> "X h Y min" (unter 1 Stunde nur "Y min") + function formatStdMin(sek) { + if (sek === null || !isFinite(sek)) { return '–'; } + var min = Math.round(sek / 60); + var h = Math.floor(min / 60); + var restMin = min % 60; + return (h > 0) ? (h + ' h ' + restMin + ' min') : (restMin + ' min'); + } + + // ====== Rendern ===================================================== + var powerHistory = []; + var gaugeTarget = 0, gaugeShown = 0; + var prevTemps = {}, arrowState = {}; + function addPowerSample(v) { + if (v === null || !isFinite(v)) { return; } + var now = Date.now(); + powerHistory.push({ t: now, v: v }); + var cutoff = now - 5 * 60 * 1000; + while (powerHistory.length && powerHistory[0].t < cutoff) { powerHistory.shift(); } + } + + function render(m) { + // Licht + LIGHTS.forEach(function (l) { setDot(l[0], on(m[l[1]]), 'on'); }); + + // Heizung + HEAT.forEach(function (h) { + var t = num(m[h.temp]); + var tEl = document.getElementById('he_temp_' + h.i); + if (tEl) { + if (t === null) { + tEl.textContent = '–'; + } else { + var p = prevTemps[h.i]; + if (p != null) { + if (t > p + 0.1) { arrowState[h.i] = ''; } + else if (t < p - 0.1) { arrowState[h.i] = ''; } + } + prevTemps[h.i] = t; + tEl.innerHTML = t.toFixed(1) + ' °C' + (arrowState[h.i] || ''); + } + tEl.className = 'v3-temp ' + tempClass(t); + } + setDot('he_dot_' + h.i, on(m[h.act]), 'active'); + var mn = num(m[h.min]), mx = num(m[h.max]); + setText('he_ist_' + h.i, (mn === null ? '–' : mn) + ' / ' + (mx === null ? '–' : mx)); + }); + + // Steckdosen (Status false/0 = AN, true/1 = AUS). Unbekannt/Lesefehler -> Punkt AUS. + SOCKETS.forEach(function (s) { + var val = m[s[1]]; + var known = (val !== null && val !== undefined); + setDot(s[0], known && (val === false || val === 0), 'on'); + }); + + // Poolpumpe: Laufzeit heute (Sekunden -> Stunden + Minuten) + var poolSek = num(m[POOL.sek]); + + // Fortschrittsbalken: IST vs. SOLL (beide in Sekunden) + var poolMax = num(m[POOL.max]); + var bar = document.getElementById('sd_pool_bar'); + var barLabel = document.getElementById('sd_pool_bar_label'); + if (bar && barLabel) { + if (poolSek === null || poolMax === null || poolMax <= 0) { + bar.style.width = '0%'; + barLabel.textContent = '– / –'; + bar.classList.remove('v3-pool-bar-fill--done'); + } else { + var pct = Math.min(100, poolSek / poolMax * 100); + bar.style.width = pct.toFixed(1) + '%'; + barLabel.textContent = formatStdMin(poolSek) + ' / ' + formatStdMin(poolMax); + bar.classList.toggle('v3-pool-bar-fill--done', pct >= 100); + } + } + + // Stromzähler + var bez = num(m[METER.bezug]), ein = num(m[METER.einsp]), lei = num(m[METER.leist]), tag = num(m[METER.tag]); + setText('sz_bezug', (bez === null ? '–' : bez.toFixed(1)) + ' kWh'); + setText('sz_einsp', (ein === null ? '–' : ein.toFixed(1)) + ' kWh'); + setText('sz_leist', (lei === null ? '–' : Math.round(lei)) + ' W'); + setText('sz_tag', (tag === null ? '–' : tag.toFixed(1)) + ' kWh'); + // Wemos-String wird separat im raw-Modus gelesen (siehe readWemos) + var hist = METER.hist.map(function (x) { return num(m[x]); }); + var seq = [bez].concat(hist); // [Bezug, h0..h7] + for (var d = 1; d <= 8; d++) { + var a = seq[d - 1], b = seq[d]; + setText('sz_d' + d, (a === null || b === null) ? '–' : (a - b).toFixed(2) + ' kWh'); + } + addPowerSample(lei); + gaugeTarget = (lei === null ? 0 : lei); // Balken laeuft in der Animation weich nach + + // Wasserzähler (nur aktuelle Werte aus [0]) + var wStand = num(m[WATER.stand]), wSeit = num(m[WATER.seit]); + var wTemp = num(m[WATER.wtemp]); + setText('hdr_wtemp', (wTemp === null ? '–' : 'Wasser: ' + wTemp.toFixed(0) + ' °C')); + setText('hdr_wstand', (wStand === null ? '–' : 'Stand: ' + wStand.toFixed(0) + ' L')); + setText('hdr_wseit', (wSeit === null ? '–' : 'seit Ablesung: ' + wSeit.toFixed(0) + ' L')); + + // Strom-Header-Werte + setText('hdr_sbezug', (bez === null ? '–' : 'Bezug: ' + bez.toFixed(1) + ' kWh')); + setText('hdr_seinsp', (ein === null ? '–' : 'Einsp.: ' + ein.toFixed(1) + ' kWh')); + + // Uhr / Sonne / Urlaub + setText('clock_time', pad(m[ZEIT.h]) + ':' + pad(m[ZEIT.mi]) + ':' + pad(m[ZEIT.s])); + setText('clock_date', pad(m[ZEIT.d]) + '.' + pad(m[ZEIT.mo]) + '.' + (m[ZEIT.y] != null ? m[ZEIT.y] : '----')); + setText('sun_up', pad(m[ZEIT.aufH]) + ':' + pad(m[ZEIT.aufMi]) + ' Uhr'); + setText('sun_down', pad(m[ZEIT.untH]) + ':' + pad(m[ZEIT.untMi]) + ' Uhr'); + setDot('roll_urlaub_dot', on(m[ZEIT.urlaub]), 'active'); + } + + // Canvas an CSS-Größe anpassen (scharf auf allen Displays) + function fitCanvas(canvas) { + var rect = canvas.getBoundingClientRect(); + var dpr = window.devicePixelRatio || 1; + var targetW = Math.round(rect.width * dpr); + var targetH = Math.round(rect.height * dpr); + if (canvas.width !== targetW || canvas.height !== targetH) { + canvas.width = targetW; + canvas.height = targetH; + } + var ctx = canvas.getContext('2d'); + ctx.setTransform(dpr, 0, 0, dpr, 0, 0); + return { w: rect.width, h: rect.height, ctx: ctx }; + } + + // ====== Strom-Tacho: horizontaler Balken von Mitte nach links/rechts ==== + function drawGauge(value) { + var canvas = document.getElementById('v3_gauge'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + ctx.clearRect(0, 0, w, h); + + var MIN = -8000, MAX = 8000; + var v = Math.max(MIN, Math.min(MAX, isFinite(value) ? value : 0)); + var padT = 18, padB = 22, padL = 10, padR = 10; + var barY = h - padB - 10; + var barH = 14; + var cx = w / 2; + var halfW = (w - padL - padR) / 2; + + function xFor(vv) { + vv = Math.max(MIN, Math.min(MAX, vv)); + return cx + (vv / MAX) * halfW; + } + + // Hintergrundbalken (neutral) + ctx.fillStyle = 'rgba(255,255,255,0.08)'; + roundRect(ctx, padL, barY, w - padL - padR, barH, barH / 2); + ctx.fill(); + + // Aktiver Balken: von Mitte nach links (grün) oder rechts (rot) + var col = v < 0 ? '124,255,178' : '255,92,122'; + var xv = xFor(v); + ctx.save(); + ctx.fillStyle = 'rgba(' + col + ',0.95)'; + ctx.shadowColor = 'rgba(' + col + ',0.6)'; ctx.shadowBlur = 10; + if (v >= 0) { + roundRect(ctx, cx, barY, xv - cx, barH, barH / 2); + } else { + roundRect(ctx, xv, barY, cx - xv, barH, barH / 2); + } + ctx.fill(); + ctx.restore(); + + // Mittelstrich + ctx.strokeStyle = 'rgba(234,240,255,0.5)'; ctx.lineWidth = 1; + ctx.beginPath(); ctx.moveTo(cx, barY - 4); ctx.lineTo(cx, barY + barH + 4); ctx.stroke(); + + // Skalenstriche + ctx.fillStyle = 'rgba(234,240,255,0.55)'; ctx.font = '10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'center'; + for (var t = -8000; t <= 8000; t += 2000) { + if (t === 0) { continue; } + var x = xFor(t); + ctx.beginPath(); ctx.moveTo(x, barY + barH + 3); ctx.lineTo(x, barY + barH + 7); ctx.stroke(); + ctx.fillText((t / 1000) + 'k', x, barY + barH + 18); + } + + // Digitalwert + Beschriftung + ctx.textAlign = 'center'; + ctx.fillStyle = 'rgba(' + col + ',1)'; ctx.font = 'bold 22px Segoe UI, Arial, sans-serif'; + ctx.fillText(Math.round(v) + ' W', cx, padT); + ctx.fillStyle = 'rgba(234,240,255,0.85)'; ctx.font = '12px Segoe UI, Arial, sans-serif'; + ctx.fillText('Leistung', cx, padT + 16); + } + + // Weiche Kurve (Catmull-Rom -> Bezier) + function smoothCurve(ctx, pts) { + if (pts.length < 2) { return; } + ctx.moveTo(pts[0].x, pts[0].y); + for (var i = 0; i < pts.length - 1; i++) { + var p0 = pts[i > 0 ? i - 1 : 0]; + var p1 = pts[i]; + var p2 = pts[i + 1]; + var p3 = pts[i + 2 < pts.length ? i + 2 : i + 1]; + var c1x = p1.x + (p2.x - p0.x) / 6, c1y = p1.y + (p2.y - p0.y) / 6; + var c2x = p2.x - (p3.x - p1.x) / 6, c2y = p2.y - (p3.y - p1.y) / 6; + ctx.bezierCurveTo(c1x, c1y, c2x, c2y, p2.x, p2.y); + } + } + + function roundRect(ctx, x, y, w, h, r) { + ctx.beginPath(); + ctx.moveTo(x + r, y); + ctx.arcTo(x + w, y, x + w, y + h, r); + ctx.arcTo(x + w, y + h, x, y + h, r); + ctx.arcTo(x, y + h, x, y, r); + ctx.arcTo(x, y, x + w, y, r); + ctx.closePath(); + } + + function drawPowerChart() { + var canvas = document.getElementById('v3_power_chart'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + var now = Date.now(); + ctx.clearRect(0, 0, w, h); + ctx.fillStyle = 'rgba(8,12,20,0.55)'; + ctx.fillRect(0, 0, w, h); + + var padL = 44, padR = 12, padT = 22, padB = 18; + var plotW = w - padL - padR, plotH = h - padT - padB; + + ctx.textAlign = 'left'; + ctx.fillStyle = 'rgba(234,240,255,0.85)'; + ctx.font = '12px Segoe UI, Arial, sans-serif'; + ctx.fillText('Leistung – letzte 5 min', 12, 14); + + if (!powerHistory.length) { + ctx.fillStyle = 'rgba(234,240,255,0.5)'; + ctx.fillText('warte auf Daten…', 12, padT + plotH / 2); + return; + } + + var WINDOW = 5 * 60 * 1000; + var t1 = now, t0 = now - WINDOW; + + // Y-Bereich inklusive 0 + var minV = 0, maxV = 0; + for (var i = 0; i < powerHistory.length; i++) { + var v = powerHistory[i].v; + if (v < minV) { minV = v; } + if (v > maxV) { maxV = v; } + } + if (minV === maxV) { minV -= 100; maxV += 100; } + var pad = (maxV - minV) * 0.12; + minV -= pad; maxV += pad; + + function X(t) { return padL + ((t - t0) / (t1 - t0)) * plotW; } + function Y(v) { return padT + (1 - (v - minV) / (maxV - minV)) * plotH; } + + // Gitter + ctx.strokeStyle = 'rgba(255,255,255,0.07)'; + ctx.lineWidth = 1; + for (var gy = 0; gy <= 4; gy++) { + var yy = padT + plotH * gy / 4; + ctx.beginPath(); ctx.moveTo(padL, yy); ctx.lineTo(padL + plotW, yy); ctx.stroke(); + } + for (var mm = 1; mm <= 5; mm++) { + var xx = X(now - mm * 60000); + ctx.beginPath(); ctx.moveTo(xx, padT); ctx.lineTo(xx, padT + plotH); ctx.stroke(); + } + + // Punkte im Fenster + bis "jetzt" verlaengern + var pts = []; + for (var k = 0; k < powerHistory.length; k++) { + var p = powerHistory[k]; + if (p.t < t0) { continue; } + pts.push({ x: X(p.t), y: Y(p.v), v: p.v }); + } + if (!pts.length) { return; } + var lastReal = pts[pts.length - 1]; + pts.push({ x: X(now), y: lastReal.y, v: lastReal.v }); + + var zeroY = Y(0); + var zeroFrac = Math.max(0, Math.min(1, (zeroY - padT) / plotH)); + + // Flaeche bis Nulllinie mit Verlauf (oben rot=Bezug, unten gruen=Einspeisung) + ctx.beginPath(); + smoothCurve(ctx, pts); + ctx.lineTo(pts[pts.length - 1].x, zeroY); + ctx.lineTo(pts[0].x, zeroY); + ctx.closePath(); + var grad = ctx.createLinearGradient(0, padT, 0, padT + plotH); + grad.addColorStop(0, 'rgba(255,92,122,0.38)'); + grad.addColorStop(Math.max(0, zeroFrac - 0.001), 'rgba(255,92,122,0.08)'); + grad.addColorStop(Math.min(1, zeroFrac + 0.001), 'rgba(124,255,178,0.08)'); + grad.addColorStop(1, 'rgba(124,255,178,0.38)'); + ctx.fillStyle = grad; + ctx.fill(); + + // Nulllinie + if (minV < 0 && maxV > 0) { + ctx.save(); + ctx.setLineDash([4, 4]); + ctx.strokeStyle = 'rgba(234,240,255,0.30)'; + ctx.lineWidth = 1; + ctx.beginPath(); ctx.moveTo(padL, zeroY); ctx.lineTo(padL + plotW, zeroY); ctx.stroke(); + ctx.restore(); + } + + // Linie mit Glow + ctx.save(); + ctx.beginPath(); + smoothCurve(ctx, pts); + ctx.strokeStyle = 'rgba(99,212,255,0.95)'; + ctx.lineWidth = 2.4; + ctx.lineJoin = 'round'; + ctx.shadowColor = 'rgba(99,212,255,0.55)'; + ctx.shadowBlur = 8; + ctx.stroke(); + ctx.restore(); + + // Y-Beschriftung + ctx.fillStyle = 'rgba(234,240,255,0.55)'; + ctx.font = '10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'right'; + ctx.fillText(Math.round(maxV) + ' W', padL - 6, padT + 8); + ctx.fillText(Math.round(minV) + ' W', padL - 6, padT + plotH); + + // Live-Punkt (pulsierend), Farbe nach Vorzeichen + var lp = pts[pts.length - 1]; + var col = lp.v < 0 ? '124,255,178' : '255,92,122'; + var pulse = 0.5 + 0.5 * Math.sin(now / 320); + ctx.fillStyle = 'rgba(' + col + ',' + (0.16 + 0.14 * pulse) + ')'; + ctx.beginPath(); ctx.arc(lp.x, lp.y, 6 + 4 * pulse, 0, Math.PI * 2); ctx.fill(); + ctx.fillStyle = 'rgba(' + col + ',1)'; + ctx.beginPath(); ctx.arc(lp.x, lp.y, 3.2, 0, Math.PI * 2); ctx.fill(); + + // aktueller Wert als Pille oben rechts + var label = 'akt. Leistung: ' + Math.round(lp.v) + ' W'; + ctx.font = 'bold 11px Segoe UI, Arial, sans-serif'; + var tw = ctx.measureText(label).width; + var bw = tw + 14, bx = w - padR - bw, by = 4, bh = 17; + ctx.fillStyle = 'rgba(' + col + ',0.16)'; + roundRect(ctx, bx, by, bw, bh, 9); ctx.fill(); + ctx.fillStyle = 'rgba(' + col + ',1)'; + ctx.textAlign = 'left'; + ctx.fillText(label, bx + 7, by + 12); + } + + // ---- Tages-Chart: -1 .. -8 als Balken + täglicher Bezug als Linie ---- + function drawDailyChart() { + var canvas = document.getElementById('v3_daily_chart'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + ctx.clearRect(0, 0, w, h); + ctx.fillStyle = 'rgba(8,12,20,0.55)'; ctx.fillRect(0, 0, w, h); + + var padL = 44, padR = 12, padT = 22, padB = 28; + var plotW = w - padL - padR, plotH = h - padT - padB; + + // Werte -1 .. -8 direkt aus den gelesenen Zählerständen berechnen + var bez = num(lastValues[METER.bezug]); + var hist = METER.hist.map(function (x) { return num(lastValues[x]); }); + var seq = [bez].concat(hist); // [Bezug, h0..h7] + var dailyValues = []; + for (var d = 1; d <= 8; d++) { + var a = seq[d - 1], b = seq[d]; + dailyValues.push((a === null || b === null) ? 0 : (a - b)); + } + // Zeitachse von links (alt) nach rechts (heute) – passt zu dayLabels + dailyValues.reverse(); + // täglicher Bezug + var tagVal = num(lastValues[METER.tag]) || 0; + + // Y-Bereich + var maxV = Math.max(tagVal, Math.max.apply(null, dailyValues)); + var minV = 0; + if (maxV < 1) { maxV = 10; } + var pd = (maxV - minV) * 0.12; + maxV += pd; + + function Y(v) { return padT + (1 - (v - minV) / (maxV - minV)) * plotH; } + function X(i) { return padL + (i + 0.5) * (plotW / 8); } + + // Wochentage für die letzten 8 Tage (rechts = heute) basierend auf CPU-Uhrzeit + var wochentage = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']; + var dayLabels = []; + var cpuY = lastValues[ZEIT.y], cpuM = lastValues[ZEIT.mo], cpuD = lastValues[ZEIT.d]; + var heute = (cpuY != null && cpuM != null && cpuD != null) + ? new Date(cpuY, cpuM - 1, cpuD) + : new Date(); + for (var i = 0; i < 8; i++) { + var d = new Date(heute.getFullYear(), heute.getMonth(), heute.getDate() - (7 - i)); + dayLabels.push(wochentage[d.getDay()]); + } + + // Titel + ctx.textAlign = 'left'; ctx.fillStyle = 'rgba(234,240,255,0.85)'; + ctx.font = '12px Segoe UI, Arial, sans-serif'; + ctx.fillText('Tagesbezug – letzte 8 Tage', 12, 14); + + // Gitter horizontal + ctx.strokeStyle = 'rgba(255,255,255,0.07)'; ctx.lineWidth = 1; + for (var gy = 0; gy <= 4; gy++) { + var yy = padT + plotH * gy / 4; + ctx.beginPath(); ctx.moveTo(padL, yy); ctx.lineTo(padL + plotW, yy); ctx.stroke(); + } + + // Balken für -8 .. -1 + var barW = plotW / 8 * 0.55; + for (var i = 0; i < 8; i++) { + var x = X(i); + var y0 = Y(0); + var y1 = Y(dailyValues[i]); + var bh = y0 - y1; + var bx = x - barW / 2; + var isToday = (i === 7); // -1 = heute + var grad = ctx.createLinearGradient(0, y1, 0, y0); + if (isToday) { + grad.addColorStop(0, 'rgba(255,217,99,0.95)'); + grad.addColorStop(1, 'rgba(255,217,99,0.25)'); + } else { + grad.addColorStop(0, 'rgba(124,255,178,0.95)'); + grad.addColorStop(1, 'rgba(124,255,178,0.25)'); + } + ctx.fillStyle = grad; + roundRect(ctx, bx, y1, barW, bh, 4); + ctx.fill(); + // Wert über dem Balken + ctx.fillStyle = isToday ? 'rgba(255,217,99,0.95)' : 'rgba(234,240,255,0.85)'; + ctx.font = 'bold 10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'center'; + ctx.fillText(dailyValues[i].toFixed(2), x, y1 - 5); + // X-Beschriftung: Wochentag + ctx.fillStyle = isToday ? 'rgba(255,217,99,0.95)' : 'rgba(234,240,255,0.65)'; + ctx.font = 'bold 10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'center'; + ctx.fillText(dayLabels[i], x, h - 8); + } + + // Linie für täglichen Bezug + var tagY = Y(tagVal); + ctx.save(); + ctx.strokeStyle = 'rgba(99,212,255,0.95)'; ctx.lineWidth = 2.5; + ctx.shadowColor = 'rgba(99,212,255,0.55)'; ctx.shadowBlur = 8; + ctx.beginPath(); ctx.moveTo(padL, tagY); ctx.lineTo(padL + plotW, tagY); ctx.stroke(); + ctx.restore(); + + // Y-Beschriftung + ctx.fillStyle = 'rgba(234,240,255,0.55)'; ctx.font = '10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'right'; + ctx.fillText(maxV.toFixed(1) + ' kWh', padL - 6, padT + 8); + ctx.fillText(minV.toFixed(1) + ' kWh', padL - 6, padT + plotH); + + // Legende / täglicher Bezug als Pille + var label = 'täglicher Bezug: ' + tagVal.toFixed(2) + ' kWh'; + ctx.font = 'bold 11px Segoe UI, Arial, sans-serif'; + var tw = ctx.measureText(label).width, bw = tw + 14, bx = w - padR - bw, by = 4, bh = 17; + ctx.fillStyle = 'rgba(99,212,255,0.16)'; roundRect(ctx, bx, by, bw, bh, 9); ctx.fill(); + ctx.fillStyle = 'rgba(99,212,255,1)'; ctx.textAlign = 'left'; + ctx.fillText(label, bx + 7, by + 12); + } + + // ---- Wasser-Tageschart: -1 .. -8 als Balken + Durchschnittslinie ---- + function drawWaterChart() { + var canvas = document.getElementById('v3_water_chart'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + ctx.clearRect(0, 0, w, h); + ctx.fillStyle = 'rgba(8,12,20,0.55)'; ctx.fillRect(0, 0, w, h); + + var padL = 50, padR = 16, padT = 22, padB = 28; + var plotW = w - padL - padR, plotH = h - padT - padB; + + // Werte -1 .. -8 aus den historischen Zählerständen berechnen + var hist = WATER.hist.map(function (x) { return num(lastValues[x]); }); + var dailyValues = []; + for (var d = 1; d < hist.length; d++) { + var a = hist[d - 1], b = hist[d]; + dailyValues.push((a === null || b === null) ? 0 : (a - b)); + } + // Zeitachse von links (alt) nach rechts (heute) + dailyValues.reverse(); + + // Y-Bereich + var maxV = Math.max.apply(null, dailyValues); + var minV = 0; + // täglicher Bezug aus DB + var tagVal = num(lastValues[WATER.tag]) || 0; + if (tagVal > maxV) { maxV = tagVal; } + if (maxV < 1) { maxV = 100; } + var pd = (maxV - minV) * 0.12; + maxV += pd; + + function Y(v) { return padT + (1 - (v - minV) / (maxV - minV)) * plotH; } + function X(i) { return padL + (i + 0.5) * (plotW / dailyValues.length); } + + // Wochentage für die letzten Tage (rechts = heute) + var wochentage = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']; + var dayLabels = []; + var cpuY = lastValues[ZEIT.y], cpuM = lastValues[ZEIT.mo], cpuD = lastValues[ZEIT.d]; + var heute = (cpuY != null && cpuM != null && cpuD != null) + ? new Date(cpuY, cpuM - 1, cpuD) + : new Date(); + for (var i = 0; i < dailyValues.length; i++) { + var d = new Date(heute.getFullYear(), heute.getMonth(), heute.getDate() - (dailyValues.length - 1 - i)); + dayLabels.push(wochentage[d.getDay()]); + } + + // Titel + ctx.textAlign = 'left'; ctx.fillStyle = 'rgba(234,240,255,0.85)'; + ctx.font = '12px Segoe UI, Arial, sans-serif'; + ctx.fillText('Wasserverbrauch – letzte 7 Tage', 12, 14); + + // Gitter horizontal + ctx.strokeStyle = 'rgba(255,255,255,0.07)'; ctx.lineWidth = 1; + for (var gy = 0; gy <= 4; gy++) { + var yy = padT + plotH * gy / 4; + ctx.beginPath(); ctx.moveTo(padL, yy); ctx.lineTo(padL + plotW, yy); ctx.stroke(); + } + + // Balken + var barW = plotW / dailyValues.length * 0.55; + for (var i = 0; i < dailyValues.length; i++) { + var x = X(i); + var y0 = Y(0); + var y1 = Y(dailyValues[i]); + var bh = y0 - y1; + var bx = x - barW / 2; + var isToday = (i === dailyValues.length - 1); + var grad = ctx.createLinearGradient(0, y1, 0, y0); + if (isToday) { + grad.addColorStop(0, 'rgba(99,212,255,0.95)'); + grad.addColorStop(1, 'rgba(99,212,255,0.25)'); + } else { + grad.addColorStop(0, 'rgba(99,212,255,0.75)'); + grad.addColorStop(1, 'rgba(99,212,255,0.15)'); + } + ctx.fillStyle = grad; + roundRect(ctx, bx, y1, barW, bh, 4); + ctx.fill(); + // Wert über dem Balken + ctx.fillStyle = isToday ? 'rgba(99,212,255,0.95)' : 'rgba(234,240,255,0.85)'; + ctx.font = 'bold 10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'center'; + ctx.fillText(Math.round(dailyValues[i]), x, y1 - 5); + // X-Beschriftung: Wochentag + ctx.fillStyle = isToday ? 'rgba(99,212,255,0.95)' : 'rgba(234,240,255,0.65)'; + ctx.font = 'bold 10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'center'; + ctx.fillText(dayLabels[i], x, h - 8); + } + + // Linie für täglichen Bezug + var tagY = Y(tagVal); + ctx.save(); + ctx.strokeStyle = 'rgba(255,217,99,0.95)'; ctx.lineWidth = 2.5; + ctx.setLineDash([6, 4]); + ctx.shadowColor = 'rgba(255,217,99,0.55)'; ctx.shadowBlur = 8; + ctx.beginPath(); ctx.moveTo(padL, tagY); ctx.lineTo(padL + plotW, tagY); ctx.stroke(); + ctx.restore(); + + // Y-Beschriftung + ctx.fillStyle = 'rgba(234,240,255,0.55)'; ctx.font = '10px Segoe UI, Arial, sans-serif'; + ctx.textAlign = 'right'; + ctx.fillText(Math.round(maxV) + ' L', padL - 6, padT + 8); + ctx.fillText(Math.round(minV) + ' L', padL - 6, padT + plotH); + + // Legende / täglicher Bezug als Pille + var label = 'täglicher Bezug: ' + Math.round(tagVal) + ' L'; + ctx.font = 'bold 11px Segoe UI, Arial, sans-serif'; + var tw = ctx.measureText(label).width, bw = tw + 14, bx = w - padR - bw, by = 4, bh = 17; + ctx.fillStyle = 'rgba(255,217,99,0.16)'; roundRect(ctx, bx, by, bw, bh, 9); ctx.fill(); + ctx.fillStyle = 'rgba(255,217,99,1)'; ctx.textAlign = 'left'; + ctx.fillText(label, bx + 7, by + 12); + } + + // Durchgehende Animation (pulsierender Punkt, weiches Scrollen der Zeitachse) + function startChartAnimation() { + var last = 0; + function frame(ts) { + requestAnimationFrame(frame); + if (ts - last < 33) { return; } // ~30 fps (schont CPU) + last = ts; + gaugeShown += (gaugeTarget - gaugeShown) * 0.18; // weiches Nachlaufen + if (Math.abs(gaugeTarget - gaugeShown) < 0.5) { gaugeShown = gaugeTarget; } + drawGauge(gaugeShown); + drawPowerChart(); + drawDailyChart(); + drawWaterChart(); + } + requestAnimationFrame(frame); + } + + // ====== Schreiben per Klick (Event-Delegation) ===================== + function parseVal(s) { + if (s === 'true') { return true; } + if (s === 'false') { return false; } + if (/^-?\d+(\.\d+)?$/.test(s)) { return Number(s); } + return s; + } + + // kurzes visuelles Feedback am Button (gruen=ok, rot=Fehler) + function flash(btn, r) { + if (!btn) { return; } + var cls = (r && !r.error) ? 'v3-flash-ok' : 'v3-flash-err'; + btn.classList.remove('v3-flash-ok', 'v3-flash-err'); + void btn.offsetWidth; // Reflow -> Animation neu starten + btn.classList.add(cls); + setTimeout(function () { btn.classList.remove(cls); }, 600); + } + + function onClick(ev) { + var btn = ev.target.closest ? ev.target.closest('button') : null; + // Mehrfach-Schreibvorgang (kommagetrennte Variablen in data-vars) + var ml = ev.target.closest ? ev.target.closest('[data-vars]') : null; + if (ml && ml.hasAttribute('data-value')) { + var vars = ml.getAttribute('data-vars').split(',').map(function (s) { return s.trim(); }); + var val = parseVal(ml.getAttribute('data-value')); + var results = []; + Promise.all(vars.map(function (v) { + return write(v, val).then(function (r) { results.push(r); return r; }); + })).then(function () { + var allOk = results.every(function (r) { return r && !r.error; }); + flash(btn, allOk ? { error: false } : { error: true }); + }); + return; + } + // einfacher Einzel-Schreibvorgang + var el = ev.target.closest ? ev.target.closest('[data-var]') : null; + if (el && el.hasAttribute('data-value')) { + write(el.getAttribute('data-var'), parseVal(el.getAttribute('data-value'))).then(function (r) { flash(btn, r); }); + return; + } + // Poolpumpe: SOLL-Laufzeit (Eingabe in Minuten -> Sekunden schreiben) + // WICHTIG: vor [data-write-input] pruefen, da der Pool-Button auch + // data-write-input traegt und sonst vom Heizungs-Handler abgefangen wird. + var pm = ev.target.closest ? ev.target.closest('[data-pool-max]') : null; + if (pm) { + var pInput = document.getElementById(pm.getAttribute('data-write-input')); + if (!pInput || pInput.value === '') { return; } + var pMin = parseFloat(pInput.value); + if (isNaN(pMin) || pMin < 0) { alert('Bitte eine gültige Zahl eingeben.'); return; } + write(pm.getAttribute('data-var'), Math.round(pMin * 60)).then(function (r) { + flash(btn, r); + // SOLL-Wert neu lesen, damit der Balken sofort stimmt + readMany([POOL.max]).then(function (m) { merge(m); render(lastValues); }).catch(function () {}); + }); + return; + } + // Heizung: Zahl aus zugehoerigem Eingabefeld schreiben + var hn = ev.target.closest ? ev.target.closest('[data-write-input]') : null; + if (hn) { + var input = document.getElementById(hn.getAttribute('data-write-input')); + if (!input || input.value === '') { return; } + var n = parseFloat(input.value); + if (isNaN(n)) { alert('Bitte eine Zahl eingeben.'); return; } + if (!heatPlausible(hn, n)) { return; } + write(hn.getAttribute('data-var'), n).then(function (r) { flash(btn, r); setTimeout(refreshSettings, 300); }); + return; + } + // WLED: Helligkeit bzw. Farbe + Befehl + var wl = ev.target.closest ? ev.target.closest('[data-wled]') : null; + if (wl) { + var kind = wl.getAttribute('data-wled'); + if (kind === 'bright') { + var b = document.getElementById('wled_bright'); + write('"wled_DB".Helligkeit', parseInt(b.value, 10)).then(function () { return write('"wled_DB".Befehl', 4); }).then(function (r) { flash(btn, r); }); + } else if (kind === 'color') { + var c = document.getElementById('wled_color'); + write('"wled_DB".RGB_hex', c.value).then(function () { return write('"wled_DB".Befehl', 5); }).then(function (r) { flash(btn, r); }); + } + return; + } + } + + // Plausibilitaet min < max ueber die ganze Heizungszeile + function heatPlausible(btn, newVal) { + var row = btn.closest('.v3-heat-row'); + if (!row) { return true; } + var kind = btn.getAttribute('data-kind'); + var minEl = row.querySelector('input[data-kind="min"]'); + var maxEl = row.querySelector('input[data-kind="max"]'); + var ist = row.querySelector('.v3-muted'); + var cur = ist ? ist.textContent.split('/') : []; + var sMin = (kind === 'min') ? newVal : (minEl && minEl.value !== '' ? parseFloat(minEl.value) : parseFloat(cur[0])); + var sMax = (kind === 'max') ? newVal : (maxEl && maxEl.value !== '' ? parseFloat(maxEl.value) : parseFloat(cur[1])); + if (!isNaN(sMin) && !isNaN(sMax) && sMin >= sMax) { + alert('Min-Temperatur muss kleiner sein als Max.'); + return false; + } + return true; + } + + // ====== Start ======================================================= + // Last reduzieren: jeden Zyklus nur die schnelle Variable (Leistung) lesen, + // alles Uebrige nur jeden SLOW_EVERY-ten Zyklus. Heizungs-Grenzen nur beim + // Start bzw. nach einem Heizungs-Schreibvorgang. Werte werden gepuffert. + var FAST_VARS = [METER.leist]; + var ALL_VARS = null; + var SET_VARS = null; + var SLOW_EVERY = 4; + var lastValues = {}; + var tickCount = 0; + var diagnosed = false; + + function merge(m) { Object.keys(m).forEach(function (k) { lastValues[k] = m[k]; }); } + + // Einmalige Diagnose: welche Variablen liefern keinen Wert (Tippfehler/Rechte)? + function diagnose(m, liste) { + var bad = liste.filter(function (v) { return m[v] === null || m[v] === undefined; }); + if (bad.length === liste.length) { + console.warn('Web-API: KEINE der ' + liste.length + ' Variablen gelesen – Rechte/Web-API pruefen.'); + } else if (bad.length) { + console.warn('Web-API: ' + bad.length + ' Variable(n) ohne Wert (Tippfehler im Namen?):', bad); + } else { + console.info('Web-API: alle ' + liste.length + ' Variablen ok.'); + } + } + + // Heizungs-Grenzen separat lesen (selten / nach Schreibvorgang) + function refreshSettings() { + readMany(SET_VARS).then(function (m) { merge(m); render(lastValues); }).catch(function () {}); + } + + function tick() { + tickCount++; + var isFull = (tickCount % SLOW_EVERY === 1); + var vars = isFull ? ALL_VARS : FAST_VARS; + readMany(vars) + .then(function (m) { + merge(m); + render(lastValues); + setStatus(true, 'verbunden'); + if (isFull) { readWemos(); } + if (isFull && !diagnosed) { diagnosed = true; diagnose(m, ALL_VARS); } + }) + .catch(function (e) { setStatus(false, 'keine Verbindung'); }) + .then(function () { setTimeout(tick, CFG.readInterval); }); + } + + function init() { + ALL_VARS = allReadVars(); + SET_VARS = settingsVars(); + document.addEventListener('click', onClick); + drawGauge(0); + startChartAnimation(); + setStatus(false, 'verbinde…'); + if (ANON) { + refreshSettings(); + } else { + login().then(function () { setStatus(true, 'verbunden'); refreshSettings(); }) + .catch(function () { setStatus(false, 'Login fehlgeschlagen'); }); + } + tick(); + } + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', init); + } else { + init(); + } +})(); diff --git a/Script/tth_v4.js b/Script/tth_v4.js new file mode 100644 index 0000000..de184d5 --- /dev/null +++ b/Script/tth_v4.js @@ -0,0 +1,1320 @@ +// ==================================================================== +// tth_v4.js – indexV4.htm "HAUS-BRÜCKE" Kommandozentrale +// +// - Basiert auf der V3-Web-API-Logik (tth_v3_api.js) +// - Futuristisches HUD-Design, Boot-Sequence, Toasts, Touch-Tiles +// - Kommunikation mit der S7-1500 ueber /api/jsonrpc +// ==================================================================== + +(function () { + 'use strict'; + + // Preview-Modus: window.V4_PREVIEW = true in indexV4_preview.htm gesetzt + var PREVIEW = !!(window.V4_PREVIEW); + + // ====== KONFIG ====== + var CFG = { + url: '/api/jsonrpc', + user: '111', + password: '1q2w3e$R', + readInterval: 500 + }; + + var ANON = !CFG.user; + var token = null; + var rid = 0; + + // ====== Boot-Sequence ====== + var bootEls = { + sps: document.getElementById('boot_sps'), + energie: document.getElementById('boot_energie'), + kommando: document.getElementById('boot_kommando'), + status: document.getElementById('boot_status'), + bar: document.getElementById('boot_bar'), + done: document.getElementById('boot_done'), + wrap: document.getElementById('v4_boot') + }; + + function bootSet(el, text, ok) { + if (!el) { return; } + el.textContent = text; + el.classList.toggle('v4-boot-ok', !!ok); + } + + function runBoot() { + var steps = [ + { el: bootEls.sps, label: 'OK' }, + { el: bootEls.energie, label: 'OK' }, + { el: bootEls.kommando, label: 'OK' }, + { el: bootEls.status, label: 'OK' } + ]; + var i = 0; + function next() { + if (i < steps.length) { + var s = steps[i]; + bootSet(s.el, s.label, true); + bootEls.bar.style.width = ((i + 1) / steps.length * 100) + '%'; + i++; + setTimeout(next, 350); + } else { + bootEls.bar.style.width = '100%'; + bootEls.done.classList.add('v4-boot-done--show'); + setTimeout(function () { + bootEls.wrap.classList.add('v4-boot--hidden'); + setTimeout(function () { bootEls.wrap.style.display = 'none'; }, 600); + }, 600); + } + } + next(); + } + + // ====== Status ====== + var statusOrb = document.getElementById('api_status_orb'); + var statusText = document.getElementById('api_status'); + function setStatus(connected, text) { + if (statusText) { statusText.textContent = text; } + if (statusOrb) { statusOrb.classList.toggle('v4-status-orb--on', connected); } + } + + // ====== Toasts ====== + var toastWrap = document.getElementById('v4_toasts'); + function toast(msg, kind) { + if (!toastWrap) { return; } + var el = document.createElement('div'); + el.className = 'v4-toast' + (kind === 'ok' ? ' v4-toast--ok' : kind === 'err' ? ' v4-toast--err' : ''); + el.textContent = msg; + toastWrap.appendChild(el); + setTimeout(function () { + el.classList.add('v4-toast--out'); + setTimeout(function () { el.remove(); }, 300); + }, 2500); + } + + // ====== Preview: Dummy-Daten ====== + function makePreviewValues() { + var m = {}; + var now = new Date(); + // Uhr + m[ZEIT.y] = now.getFullYear(); + m[ZEIT.mo] = now.getMonth() + 1; + m[ZEIT.d] = now.getDate(); + m[ZEIT.h] = now.getHours(); + m[ZEIT.mi] = now.getMinutes(); + m[ZEIT.s] = now.getSeconds(); + m[ZEIT.aufH] = 6; m[ZEIT.aufMi] = 12; + m[ZEIT.untH] = 20; m[ZEIT.untMi] = 48; + m[ZEIT.urlaub] = false; + // Strom + m[METER.bezug] = 12543.2; + m[METER.einsp] = 8421.7; + m[METER.leist] = 300 + Math.sin(Date.now() / 2000) * 1500; + m[METER.tag] = 18.4; + var base = 12543.2; + for (var i = 0; i < 8; i++) { + base -= 15 + i * 2.3; + m[METER.hist[i]] = base; + } + // Wasser + m[WATER.stand] = 247300; + m[WATER.seit] = 120; + m[WATER.wtemp] = 18; + m[WATER.tag] = 160; + base = 247300; + for (var j = 0; j < 8; j++) { + base -= 130 + j * 20; + m[WATER.hist[j]] = base; + } + // Licht: jeder 2. an + LIGHTS.forEach(function (l, idx) { m[l[1]] = (idx % 3 === 0); }); + // Heizung + HEAT.forEach(function (h) { + m[h.temp] = 19 + (h.i % 4) * 0.8; + m[h.act] = (h.i % 3 === 0); + m[h.min] = 19; + m[h.max] = 23; + }); + // Steckdosen: false = AN + SOCKETS.forEach(function (s, idx) { m[s[1]] = (idx % 2 === 0) ? false : true; }); + // Pool + m[POOL.sek] = 4 * 3600 + 12 * 60; + m[POOL.max] = 5 * 3600; + m[METER.wemos] = ''; + return m; + } + + // ====== Robustheit: Backoff, Mutex, Token-Reset ====== + var pollBusy = false; + var backoffMs = CFG.readInterval; + var MAX_BACKOFF = 10000; + var wemosCounter = 0; + + function resetBackoff() { backoffMs = CFG.readInterval; } + function increaseBackoff() { backoffMs = Math.min(MAX_BACKOFF, backoffMs * 2); } + + // ====== Low-Level API ====== + function doCall(batch) { + var headers = { 'Content-Type': 'application/json' }; + if (token) { headers['X-Auth-Token'] = token; } + return fetch(CFG.url, { method: 'POST', headers: headers, body: JSON.stringify(batch) }) + .catch(function (e) { token = null; throw e; }) // Netzwerkfehler -> Token verwerfen + .then(function (r) { + if (r.status === 401 || r.status === 403) { token = null; throw new Error('unauthorized'); } + return r.json().catch(function () { throw new Error('leere Antwort'); }); + }) + .then(function (j) { return Array.isArray(j) ? j : [j]; }); + } + + function login() { + token = null; + return doCall([{ jsonrpc: '2.0', id: ++rid, method: 'Api.Login', + params: { user: CFG.user, password: CFG.password } }]) + .then(function (arr) { + var res = arr[0]; + if (res && res.result && res.result.token) { + token = res.result.token; + return token; + } + throw new Error('Login fehlgeschlagen'); + }); + } + + function withAuth(fn) { + if (ANON) { return fn(); } + return (token ? Promise.resolve() : login()) + .then(fn) + .catch(function () { return login().then(fn); }); + } + + function readMany(vars) { + if (PREVIEW) { + var pv = makePreviewValues(); + var out = {}; + vars.forEach(function (v) { out[v] = pv[v] != null ? pv[v] : null; }); + return Promise.resolve(out); + } + return withAuth(function () { + var idMap = {}; + var reqs = vars.map(function (v) { + var id = ++rid; idMap[id] = v; + return { jsonrpc: '2.0', id: id, method: 'PlcProgram.Read', params: { var: v, mode: 'simple' } }; + }); + var chunks = []; + for (var i = 0; i < reqs.length; i += 24) { chunks.push(reqs.slice(i, i + 24)); } + return Promise.all(chunks.map(doCall)).then(function (res) { + var flat = [].concat.apply([], res); + var out = {}; + flat.forEach(function (r) { + if (r && r.id != null) { out[idMap[r.id]] = (r.error ? null : r.result); } + }); + return out; + }); + }); + } + + function write(varName, value) { + varName = String(varName).trim(); + if (PREVIEW) { + // Schreibvorgang simulieren: Zielvariable im Dummy-Speicher togglen + var key = varName; + var cur = lastValues[key]; + if (typeof value === 'boolean' && typeof cur === 'boolean') { + lastValues[key] = value; + } + render(lastValues); + return Promise.resolve({ jsonrpc: '2.0', id: 0, result: true }); + } + return withAuth(function () { + return doCall([{ jsonrpc: '2.0', id: ++rid, method: 'PlcProgram.Write', + params: { var: varName, value: value, mode: 'simple' } }]); + }).then(function (arr) { + var r = arr[0]; + if (r && r.error) { + console.warn('Write-Fehler', varName, r.error); + } + return r; + }).catch(function (e) { console.warn('Write-Ausnahme', varName, e); }); + } + + function decodeS7String(raw) { + if (!Array.isArray(raw) || raw.length < 2) { return ''; } + var len = raw[1]; + var s = ''; + for (var i = 0; i < len && (2 + i) < raw.length; i++) { s += String.fromCharCode(raw[2 + i]); } + return s; + } + + function readWemos() { + if (PREVIEW) { + setText('sz_wemos', 'PREVIEW MODUS – keine SPS'); + return Promise.resolve(); + } + return withAuth(function () { + return doCall([{ jsonrpc: '2.0', id: ++rid, method: 'PlcProgram.Read', + params: { var: METER.wemos, mode: 'raw' } }]); + }).then(function (arr) { + var r = arr[0]; + var txt = (r && r.result) ? decodeS7String(r.result) : ''; + txt = txt.replace(/[\r\n\t]+/g, ' ').trim(); + setText('sz_wemos', txt === '' ? '–' : txt); + }).catch(function () {}); + } + + // ====== Variablen-Zuordnung ====== + var LIGHTS = [ + ['Küche', '"Licht Küche"', '"Lichtmerker Küche"'], + ['Esszimmer', '"Licht Essen"', '"Lichtmerker Essen"'], + ['Wohnen 1', '"Licht Wohnen 1"', '"Lichtmerker Wohnen 1"'], + ['Wohnen 2', '"Licht Wohnen 2"', '"Lichtmerker Wohnen 2"'], + ['Arbeiten', '"Licht Arbeiten"', '"Lichtmerker Arbeiten"'], + ['HWR', '"Licht HWR"', '"Lichtmerker HWR"'], + ['Niko', '"Licht Niko"', '"Lichtmerker Niko"'], + ['Dusche', '"Licht Dusche"', '"Lichtmerker Dusche"'], + ['Abstellraum', '"Licht Abstellraum"', '"Lichtmerker Abstellraum"'], + ['Eltern', '"Licht Eltern"', '"Lichtmerker Eltern"'], + ['Noah', '"Licht Noah"', '"Lichtmerker Noah"'], + ['Bad', '"Licht Bad 2"', '"Lichtmerker Bad"'], + ['Mika', '"Licht Kind 3"', '"Lichtmerker Kind 3"'], + ['Kicker', '"Licht Deele"', '"Kickertaste"'] + ]; + + var HEAT = [ + { i: 1, name: 'Wohnzimmer', temp: '"Temp Wohnen"', act: '"Heizung Essen Küche Wohn"', min: '"Einstellungen".Heizung."Heizung Wohnen min"', max: '"Einstellungen".Heizung."Heizung Wohnen max"' }, + { i: 2, name: 'Arbeiten', temp: '"Temp Arbeiten"', act: '"Heizung Arbeiten"', min: '"Einstellungen".Heizung."Heizung Arbeiten min"', max: '"Einstellungen".Heizung."Heizung Arbeiten max"' }, + { i: 3, name: 'HWR', temp: '"Temp HWR"', act: '"Heizung HWR"', min: '"Einstellungen".Heizung."Heizung HWR min"', max: '"Einstellungen".Heizung."Heizung HWR max"' }, + { i: 4, name: 'Bad oben', temp: '"Temp Bad"', act: '"Heizung Bad"', min: '"Einstellungen".Heizung."Heizung Bad min"', max: '"Einstellungen".Heizung."Heizung Bad max"' }, + { i: 5, name: 'Eltern', temp: '"Temp Eltern"', act: '"Heizung Eltern"', min: '"Einstellungen".Heizung."Heizung Eltern min"', max: '"Einstellungen".Heizung."Heizung Eltern max"' }, + { i: 6, name: 'Noah', temp: '"Temp Noah"', act: '"Heizung Noah"', min: '"Einstellungen".Heizung."Heizung Kind1 min"', max: '"Einstellungen".Heizung."Heizung Kind1 max"' }, + { i: 7, name: 'Mika', temp: '"Temp Mika"', act: '"Heizung Mika"', min: '"Einstellungen".Heizung."Heizung Kind2 min"', max: '"Einstellungen".Heizung."Heizung Kind2 max"' }, + { i: 8, name: 'Niko', temp: '"Temp Niko"', act: '"Heizung Niko"', min: '"Einstellungen".Heizung."Heizung Gäste min"', max: '"Einstellungen".Heizung."Heizung Gäste max"' }, + { i: 9, name: 'Dusche', temp: '"Temp Dusche"', act: '"Heizung Gäste Dusche"', min: '"Einstellungen".Heizung."Heizung Dusche min"', max: '"Einstellungen".Heizung."Heizung Dusche max"' } + ]; + + var SOCKETS = [ + ['Deele', '"Steckdose Deele Garder"'], + ['Wohnzimmer', '"Steckdose Wohnen"'], + ['Esszimmer', '"Steckdose Essen"'], + ['Arbeiten', '"Steckdose Arbeiten"'], + ['Noah', '"Steckdose Kind 1"'], + ['Mika', '"Steckdose Kind 2"'], + ['Niko', '"Steckdose Gäste"'], + ['Eltern', '"Steckdose Eltern"'] + ]; + + var ROLLADEN = [ + ['Küche', '"Rolladenmerker Küc l auf"', '"Rolladenmerker Küc l ab"', '"Rolladenmerker Küc r auf"', '"Rolladenmerker Küc r ab"'], + ['Esszimmer', '"Rolladenmerker Ess l auf"', '"Rolladenmerker Ess l ab"', '"Rolladenmerker Ess m auf"', '"Rolladenmerker Ess m ab"', '"Rolladenmerker Ess r auf"', '"Rolladenmerker Ess r ab"'], + ['Wohnzimmer', '"Rolladenmerker Woh l auf"', '"Rolladenmerker Woh l ab"', '"Rolladenmerker Woh r auf"', '"Rolladenmerker Woh r ab"', '"Rolladenmerker Wohtü auf"', '"Rolladenmerker Wohtü ab"'], + ['Arbeiten', '"Rolladenmerker Arbei auf"', '"Rolladenmerker Arbei ab"'], + ['HWR', '"Rolladenmerker HWR auf"', '"Rolladenmerker HWR ab"'], + ['Niko', '"Rolladenmerker Niko auf"', '"Rolladenmerker Niko ab"'], + ['Dusche', '"Rolladenmerker Dusche au"', '"Rolladenmerker Dusche ab"'], + ['Eltern', '"Rolladenmerker Elter auf"', '"Rolladenmerker Elter ab"'], + ['Noah', '"Rolladenmerker Noah auf"', '"Rolladenmerker Noah ab"'], + ['Bad', '"Rolladenmerker Bad auf"', '"Rolladenmerker Bad ab"'], + ['Mika', '"Rolladenmerker Mika auf"', '"Rolladenmerker Mika ab"'] + ]; + + var POOL = { + sek: '"Funksteckdosen_DB"."Poolpumpenzähler Sek/Tag"', + max: '"Funksteckdosen_DB"."Poolpumpe min Laufzeit/Tag"' + }; + + var METER = { + bezug: '"Stromzähler".Stromzähler."Zählerstand Bezug"', + einsp: '"Stromzähler".Stromzähler."Zählerstand Einspeisung"', + leist: '"Stromzähler".Stromzähler."aktuelle Leistung"', + tag: '"Stromzähler".Stromzähler.Aufzeichnung."täglicher Bezug"', + wemos: '"Buffer"."Wemos RC".Senden', + hist: [ + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[0]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[1]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[2]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[3]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[4]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[5]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[6]."Zählerstand Bezug"', + '"Stromzähler".Stromzähler.Aufzeichnung.Zählerstand[7]."Zählerstand Bezug"' + ] + }; + + var WATER = { + stand: '"Wasserzähler".Zählerstand[0].aktueller_Stand', + seit: '"Wasserzähler".Zählerstand[0].seit_letzter_Ablesung', + wtemp: '"Wasserzähler".Zählerstand[0].Wassertemperatur', + tag: '"Wasserzähler"."täglicher Bezug"', + hist: [ + '"Wasserzähler".Zählerstand[0].aktueller_Stand', + '"Wasserzähler".Zählerstand[1].aktueller_Stand', + '"Wasserzähler".Zählerstand[2].aktueller_Stand', + '"Wasserzähler".Zählerstand[3].aktueller_Stand', + '"Wasserzähler".Zählerstand[4].aktueller_Stand', + '"Wasserzähler".Zählerstand[5].aktueller_Stand', + '"Wasserzähler".Zählerstand[6].aktueller_Stand', + '"Wasserzähler".Zählerstand[7].aktueller_Stand' + ] + }; + + var ZEIT = { + y: '"Aufgang_Untergang".aktuelle_CPU_Zeit.YEAR', + mo: '"Aufgang_Untergang".aktuelle_CPU_Zeit.MONTH', + d: '"Aufgang_Untergang".aktuelle_CPU_Zeit.DAY', + h: '"Aufgang_Untergang".aktuelle_CPU_Zeit.HOUR', + mi: '"Aufgang_Untergang".aktuelle_CPU_Zeit.MINUTE', + s: '"Aufgang_Untergang".aktuelle_CPU_Zeit.SECOND', + aufH: '"Aufgang_Untergang".Aufgang.HOUR', + aufMi: '"Aufgang_Untergang".Aufgang.MINUTE', + untH: '"Aufgang_Untergang".Untergang.HOUR', + untMi: '"Aufgang_Untergang".Untergang.MINUTE', + urlaub: '"Jalousie_DB".Urlaub' + }; + + function allReadVars() { + var v = []; + LIGHTS.forEach(function (l) { v.push(l[1]); }); + HEAT.forEach(function (h) { v.push(h.temp, h.act); }); + SOCKETS.forEach(function (s) { v.push(s[1]); }); + v.push(POOL.sek, POOL.max); + v.push(METER.bezug, METER.einsp, METER.leist, METER.tag); + METER.hist.forEach(function (x) { v.push(x); }); + v.push(WATER.stand, WATER.seit, WATER.wtemp, WATER.tag); + WATER.hist.forEach(function (x) { v.push(x); }); + Object.keys(ZEIT).forEach(function (k) { v.push(ZEIT[k]); }); + return v; + } + + function settingsVars() { + var v = []; + HEAT.forEach(function (h) { v.push(h.min, h.max); }); + return v; + } + + // ====== Hilfen ====== + function on(v) { return v === true || v === 1 || v === '1'; } + function num(v) { var n = parseFloat(v); return isNaN(n) ? null : n; } + function pad(n) { n = parseInt(n, 10); if (isNaN(n)) { return '--'; } return n < 10 ? '0' + n : '' + n; } + function setText(id, value) { var el = document.getElementById(id); if (el) { el.textContent = value; } } + function tempClass(t) { + if (t === null) { return 'v4-heat-temp--normal'; } + if (t >= 24) { return 'v4-heat-temp--hot'; } + if (t >= 22) { return 'v4-heat-temp--warm'; } + return 'v4-heat-temp--normal'; + } + function formatStdMin(sek) { + if (sek === null || !isFinite(sek)) { return '–'; } + var min = Math.round(sek / 60); + var h = Math.floor(min / 60); + var restMin = min % 60; + return (h > 0) ? (h + ' h ' + restMin + ' min') : (restMin + ' min'); + } + + // ====== UI aufbauen ====== + function buildLightTiles() { + var wrap = document.getElementById('v4_light_tiles'); + if (!wrap) { return; } + LIGHTS.forEach(function (l, idx) { + var tile = document.createElement('div'); + tile.className = 'v4-tile'; + tile.id = 'li_tile_' + idx; + tile.innerHTML = '' + l[0] + ''; + tile.addEventListener('click', function (ev) { + // Ripple + var rect = tile.getBoundingClientRect(); + var r = document.createElement('span'); + r.className = 'v4-tile-ripple'; + var size = Math.max(rect.width, rect.height); + r.style.width = r.style.height = size + 'px'; + r.style.left = (ev.clientX - rect.left - size / 2) + 'px'; + r.style.top = (ev.clientY - rect.top - size / 2) + 'px'; + tile.appendChild(r); + setTimeout(function () { r.remove(); }, 500); + write(l[2], true).then(function (res) { + flash(tile, res); + toast(l[0] + ': geschaltet', res && !res.error ? 'ok' : 'err'); + }); + }); + wrap.appendChild(tile); + }); + } + + function buildRolladen() { + var wrap = document.getElementById('v4_rolladen'); + if (!wrap) { return; } + ROLLADEN.forEach(function (r) { + var row = document.createElement('div'); + row.className = 'v4-roll-row'; + var name = document.createElement('span'); + name.className = 'v4-roll-name'; + name.textContent = r[0]; + var btns = document.createElement('span'); + btns.className = 'v4-roll-btns'; + // auf/ab Paare + for (var i = 1; i < r.length; i += 2) { + var up = document.createElement('button'); + up.className = 'v4-btn v4-btn--on'; + up.type = 'button'; + up.textContent = '↑'; + up.title = 'hoch'; + up.setAttribute('data-var', r[i]); + up.setAttribute('data-value', 'true'); + var down = document.createElement('button'); + down.className = 'v4-btn v4-btn--off'; + down.type = 'button'; + down.textContent = '↓'; + down.title = 'runter'; + down.setAttribute('data-var', r[i + 1]); + down.setAttribute('data-value', 'true'); + btns.appendChild(up); + btns.appendChild(down); + } + row.appendChild(name); + row.appendChild(btns); + wrap.appendChild(row); + }); + } + + function buildSockets() { + var wrap = document.getElementById('v4_sockets'); + if (!wrap) { return; } + SOCKETS.forEach(function (s, idx) { + var row = document.createElement('div'); + row.className = 'v4-socket-row'; + var name = document.createElement('span'); + name.className = 'v4-socket-name'; + name.textContent = s[0]; + var orb = document.createElement('span'); + orb.className = 'v4-socket-orb'; + orb.id = 'sd_orb_' + idx; + orb.title = 'an/aus'; + orb.addEventListener('click', function () { + // Status false/0 = AN, true/1 = AUS -> umschalten + var cur = lastValues[s[1]]; + var isOn = (cur === false || cur === 0); + write(s[1], isOn ? true : false).then(function (res) { + flash(orb, res); + toast(s[0] + ': ' + (isOn ? 'AUS' : 'AN'), res && !res.error ? 'ok' : 'err'); + }); + }); + row.appendChild(name); + row.appendChild(orb); + wrap.appendChild(row); + }); + } + + function buildHeat() { + var wrap = document.getElementById('v4_heat'); + if (!wrap) { return; } + HEAT.forEach(function (h) { + var row = document.createElement('div'); + row.className = 'v4-heat-row'; + row.id = 'he_row_' + h.i; + row.innerHTML = + '' + h.name + '' + + '' + + '' + + '' + + '' + + ''; + wrap.appendChild(row); + }); + } + + // Plausibilitaet min < max ueber die ganze Heizungszeile + function heatPlausible(i, kind, newVal) { + var mn = num(lastValues[HEAT[i - 1].min]); + var mx = num(lastValues[HEAT[i - 1].max]); + if (kind === 'min') { mn = newVal; } else { mx = newVal; } + if (mn !== null && mx !== null && mn >= mx) { + toast('Min-Temperatur muss kleiner sein als Max.', 'err'); + return false; + } + return true; + } + + // ====== Rendern ====== + var powerHistory = []; + var gaugeTarget = 0, gaugeShown = 0; + var prevTemps = {}, arrowState = {}; + var lastValues = {}; + + function addPowerSample(v) { + if (v === null || !isFinite(v)) { return; } + var now = Date.now(); + powerHistory.push({ t: now, v: v }); + var cutoff = now - 5 * 60 * 1000; + while (powerHistory.length && powerHistory[0].t < cutoff) { powerHistory.shift(); } + } + + function render(m) { + // Licht-Tiles + LIGHTS.forEach(function (l, idx) { + var tile = document.getElementById('li_tile_' + idx); + if (tile) { tile.classList.toggle('v4-tile--on', on(m[l[1]])); } + }); + + // Heizung + HEAT.forEach(function (h) { + var t = num(m[h.temp]); + var tEl = document.getElementById('he_temp_' + h.i); + if (tEl) { + if (t === null) { + tEl.textContent = '–'; + } else { + var p = prevTemps[h.i]; + if (p != null) { + if (t > p + 0.1) { arrowState[h.i] = ' ▲'; } + else if (t < p - 0.1) { arrowState[h.i] = ' ▼'; } + } + prevTemps[h.i] = t; + tEl.textContent = t.toFixed(1) + '°' + (arrowState[h.i] || ''); + } + tEl.className = 'v4-heat-temp ' + tempClass(t); + } + var dot = document.getElementById('he_dot_' + h.i); + if (dot) { dot.classList.toggle('v4-heat-dot--on', on(m[h.act])); } + // SOLL-Stepper-Werte anzeigen + var minEl = document.getElementById('he_min_' + h.i); + var maxEl = document.getElementById('he_max_' + h.i); + var mnVal = num(m[h.min]), mxVal = num(m[h.max]); + if (minEl) { minEl.textContent = (mnVal === null ? '–' : mnVal.toFixed(1) + '°'); } + if (maxEl) { maxEl.textContent = (mxVal === null ? '–' : mxVal.toFixed(1) + '°'); } + // Temp-Bar: IST vs. SOLL-Band + var barWrap = document.getElementById('he_bar_' + h.i); + if (barWrap) { + barWrap.innerHTML = ''; + var mn = num(m[h.min]), mx = num(m[h.max]); + if (t !== null && mn !== null && mx !== null && mx > mn) { + var lo = 10, hi = 30; // Skala 10..30°C + var pct = Math.max(0, Math.min(100, (t - lo) / (hi - lo) * 100)); + var bar = document.createElement('div'); + bar.className = 'v4-heat-bar'; + bar.style.width = pct + '%'; + barWrap.appendChild(bar); + var band = document.createElement('div'); + band.className = 'v4-heat-band'; + var bLo = Math.max(0, Math.min(100, (mn - lo) / (hi - lo) * 100)); + var bHi = Math.max(0, Math.min(100, (mx - lo) / (hi - lo) * 100)); + band.style.left = bLo + '%'; + band.style.width = Math.max(2, bHi - bLo) + '%'; + barWrap.appendChild(band); + } + } + }); + + // Steckdosen (Status false/0 = AN) + SOCKETS.forEach(function (s, idx) { + var orb = document.getElementById('sd_orb_' + idx); + if (orb) { + var val = m[s[1]]; + var known = (val !== null && val !== undefined); + orb.classList.toggle('v4-socket-orb--on', known && (val === false || val === 0)); + } + }); + + // Poolpumpe + var poolSek = num(m[POOL.sek]); + var poolMax = num(m[POOL.max]); + // SOLL min im Eingabefeld anzeigen (Sekunden -> Minuten) + var poolInput = document.getElementById('sd_pool_max_input'); + if (poolInput && document.activeElement !== poolInput && poolMax !== null) { + poolInput.value = Math.round(poolMax / 60); + } + var bar = document.getElementById('sd_pool_bar'); + var barLabel = document.getElementById('sd_pool_bar_label'); + if (bar && barLabel) { + if (poolSek === null || poolMax === null || poolMax <= 0) { + bar.style.width = '0%'; + barLabel.textContent = '– / –'; + bar.classList.remove('v4-pool-bar-fill--done'); + } else { + var pct = Math.min(100, poolSek / poolMax * 100); + bar.style.width = pct.toFixed(1) + '%'; + barLabel.textContent = formatStdMin(poolSek) + ' / ' + formatStdMin(poolMax); + bar.classList.toggle('v4-pool-bar-fill--done', pct >= 100); + } + } + + // Stromzähler + var bez = num(m[METER.bezug]), ein = num(m[METER.einsp]), lei = num(m[METER.leist]), tag = num(m[METER.tag]); + setText('sz_bezug', (bez === null ? '–' : bez.toFixed(1)) + ' kWh'); + setText('sz_einsp', (ein === null ? '–' : ein.toFixed(1)) + ' kWh'); + setText('sz_leist', (lei === null ? '–' : Math.round(lei)) + ' W'); + setText('sz_tag', (tag === null ? '–' : tag.toFixed(1)) + ' kWh'); + addPowerSample(lei); + gaugeTarget = (lei === null ? 0 : lei); + + // Wasser + var wStand = num(m[WATER.stand]), wSeit = num(m[WATER.seit]); + var wTemp = num(m[WATER.wtemp]); + setText('hdr_wtemp', (wTemp === null ? '–' : wTemp.toFixed(0) + ' °C')); + setText('hdr_wstand', (wStand === null ? '–' : wStand.toFixed(0) + ' L')); + setText('hdr_wseit', (wSeit === null ? '–' : wSeit.toFixed(0) + ' L')); + + // Uhr / Sonne / Urlaub + setText('clock_time', pad(m[ZEIT.h]) + ':' + pad(m[ZEIT.mi]) + ':' + pad(m[ZEIT.s])); + setText('clock_date', pad(m[ZEIT.d]) + '.' + pad(m[ZEIT.mo]) + '.' + (m[ZEIT.y] != null ? m[ZEIT.y] : '----')); + setText('sun_up', pad(m[ZEIT.aufH]) + ':' + pad(m[ZEIT.aufMi])); + setText('sun_down', pad(m[ZEIT.untH]) + ':' + pad(m[ZEIT.untMi])); + var urlaub = on(m[ZEIT.urlaub]); + var udot = document.getElementById('roll_urlaub_dot'); + if (udot) { udot.classList.toggle('v4-urlaub-indicator--on', urlaub); } + setText('roll_urlaub_text', urlaub ? 'AN' : 'AUS'); + } + + // ====== Canvas ====== + function fitCanvas(canvas) { + var rect = canvas.getBoundingClientRect(); + var dpr = window.devicePixelRatio || 1; + var targetW = Math.round(rect.width * dpr); + var targetH = Math.round(rect.height * dpr); + if (canvas.width !== targetW || canvas.height !== targetH) { + canvas.width = targetW; + canvas.height = targetH; + } + var ctx = canvas.getContext('2d'); + ctx.setTransform(dpr, 0, 0, dpr, 0, 0); + return { w: rect.width, h: rect.height, ctx: ctx }; + } + + function roundRect(ctx, x, y, w, h, r) { + ctx.beginPath(); + ctx.moveTo(x + r, y); + ctx.arcTo(x + w, y, x + w, y + h, r); + ctx.arcTo(x + w, y + h, x, y + h, r); + ctx.arcTo(x, y + h, x, y, r); + ctx.arcTo(x, y, x + w, y, r); + ctx.closePath(); + } + + // HUD-Dial (Halbkreis-Tacho) + function drawGauge(value) { + var canvas = document.getElementById('v4_gauge'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + ctx.clearRect(0, 0, w, h); + + var MIN = -8000, MAX = 8000; + var v = Math.max(MIN, Math.min(MAX, isFinite(value) ? value : 0)); + var cx = w / 2; + var cy = h - 20; + var R = Math.min(w / 2 - 20, h - 30); + + // Bogen-Hintergrund + ctx.strokeStyle = 'rgba(0, 229, 255, 0.15)'; + ctx.lineWidth = 14; + ctx.beginPath(); + ctx.arc(cx, cy, R, Math.PI, 0); + ctx.stroke(); + + // Skala + ctx.strokeStyle = 'rgba(0, 229, 255, 0.4)'; + ctx.lineWidth = 1; + for (var t = -8000; t <= 8000; t += 1000) { + var ang = Math.PI + (t - MIN) / (MAX - MIN) * Math.PI; + var x1 = cx + Math.cos(ang) * (R - 8); + var y1 = cy + Math.sin(ang) * (R - 8); + var x2 = cx + Math.cos(ang) * (R + 8); + var y2 = cy + Math.sin(ang) * (R + 8); + ctx.beginPath(); ctx.moveTo(x1, y1); ctx.lineTo(x2, y2); ctx.stroke(); + } + + // Aktiver Bogen (grün links = Einspeisung, rot rechts = Bezug) + var frac = (v - MIN) / (MAX - MIN); + var col = v < 0 ? '0,255,156' : '255,59,92'; + ctx.save(); + ctx.strokeStyle = 'rgba(' + col + ',0.9)'; + ctx.lineWidth = 14; + ctx.shadowColor = 'rgba(' + col + ',0.6)'; + ctx.shadowBlur = 12; + ctx.beginPath(); + if (v >= 0) { + ctx.arc(cx, cy, R, Math.PI, Math.PI + frac * Math.PI); + } else { + ctx.arc(cx, cy, R, Math.PI + frac * Math.PI, 0); + } + ctx.stroke(); + ctx.restore(); + + // Nadel + var angN = Math.PI + frac * Math.PI; + var nx = cx + Math.cos(angN) * (R - 20); + var ny = cy + Math.sin(angN) * (R - 20); + ctx.save(); + ctx.strokeStyle = 'rgba(' + col + ',1)'; + ctx.lineWidth = 2; + ctx.shadowColor = 'rgba(' + col + ',0.8)'; + ctx.shadowBlur = 8; + ctx.beginPath(); ctx.moveTo(cx, cy); ctx.lineTo(nx, ny); ctx.stroke(); + ctx.restore(); + + // Digitalwert + ctx.textAlign = 'center'; + ctx.fillStyle = 'rgba(' + col + ',1)'; + ctx.font = 'bold 26px Consolas, monospace'; + ctx.shadowColor = 'rgba(' + col + ',0.6)'; + ctx.shadowBlur = 10; + ctx.fillText(Math.round(v) + ' W', cx, cy - R + 30); + ctx.shadowBlur = 0; + ctx.fillStyle = 'rgba(230,247,255,0.6)'; + ctx.font = '12px Consolas, monospace'; + ctx.fillText('LEISTUNG', cx, cy - R + 48); + } + + // Weiche Kurve + function smoothCurve(ctx, pts) { + if (pts.length < 2) { return; } + ctx.moveTo(pts[0].x, pts[0].y); + for (var i = 0; i < pts.length - 1; i++) { + var p0 = pts[i > 0 ? i - 1 : 0]; + var p1 = pts[i]; + var p2 = pts[i + 1]; + var p3 = pts[i + 2 < pts.length ? i + 2 : i + 1]; + var c1x = p1.x + (p2.x - p0.x) / 6, c1y = p1.y + (p2.y - p0.y) / 6; + var c2x = p2.x - (p3.x - p1.x) / 6, c2y = p2.y - (p3.y - p1.y) / 6; + ctx.bezierCurveTo(c1x, c1y, c2x, c2y, p2.x, p2.y); + } + } + + function drawPowerChart() { + var canvas = document.getElementById('v4_power_chart'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + var now = Date.now(); + ctx.clearRect(0, 0, w, h); + ctx.fillStyle = 'rgba(0, 10, 20, 0.6)'; + ctx.fillRect(0, 0, w, h); + + var padL = 44, padR = 12, padT = 22, padB = 18; + var plotW = w - padL - padR, plotH = h - padT - padB; + + ctx.textAlign = 'left'; + ctx.fillStyle = 'rgba(0, 229, 255, 0.9)'; + ctx.font = 'bold 12px Consolas, monospace'; + ctx.fillText('LEISTUNG – 5 MIN', 12, 14); + + if (!powerHistory.length) { + ctx.fillStyle = 'rgba(230,247,255,0.5)'; + ctx.font = '12px Consolas, monospace'; + ctx.fillText('warte auf Daten…', 12, padT + plotH / 2); + return; + } + + var WINDOW = 5 * 60 * 1000; + var t1 = now, t0 = now - WINDOW; + + var minV = 0, maxV = 0; + for (var i = 0; i < powerHistory.length; i++) { + var v = powerHistory[i].v; + if (v < minV) { minV = v; } + if (v > maxV) { maxV = v; } + } + if (minV === maxV) { minV -= 100; maxV += 100; } + var pad = (maxV - minV) * 0.12; + minV -= pad; maxV += pad; + + function X(t) { return padL + ((t - t0) / (t1 - t0)) * plotW; } + function Y(v) { return padT + (1 - (v - minV) / (maxV - minV)) * plotH; } + + // Gitter + ctx.strokeStyle = 'rgba(0, 229, 255, 0.08)'; + ctx.lineWidth = 1; + for (var gy = 0; gy <= 4; gy++) { + var yy = padT + plotH * gy / 4; + ctx.beginPath(); ctx.moveTo(padL, yy); ctx.lineTo(padL + plotW, yy); ctx.stroke(); + } + for (var mm = 1; mm <= 5; mm++) { + var xx = X(now - mm * 60000); + ctx.beginPath(); ctx.moveTo(xx, padT); ctx.lineTo(xx, padT + plotH); ctx.stroke(); + } + + var pts = []; + for (var k = 0; k < powerHistory.length; k++) { + var p = powerHistory[k]; + if (p.t < t0) { continue; } + pts.push({ x: X(p.t), y: Y(p.v), v: p.v }); + } + if (!pts.length) { return; } + var lastReal = pts[pts.length - 1]; + pts.push({ x: X(now), y: lastReal.y, v: lastReal.v }); + + var zeroY = Y(0); + var zeroFrac = Math.max(0, Math.min(1, (zeroY - padT) / plotH)); + + // Fläche + ctx.beginPath(); + smoothCurve(ctx, pts); + ctx.lineTo(pts[pts.length - 1].x, zeroY); + ctx.lineTo(pts[0].x, zeroY); + ctx.closePath(); + var grad = ctx.createLinearGradient(0, padT, 0, padT + plotH); + grad.addColorStop(0, 'rgba(255,59,92,0.35)'); + grad.addColorStop(Math.max(0, zeroFrac - 0.001), 'rgba(255,59,92,0.05)'); + grad.addColorStop(Math.min(1, zeroFrac + 0.001), 'rgba(0,255,156,0.05)'); + grad.addColorStop(1, 'rgba(0,255,156,0.35)'); + ctx.fillStyle = grad; + ctx.fill(); + + // Nulllinie + if (minV < 0 && maxV > 0) { + ctx.save(); + ctx.setLineDash([4, 4]); + ctx.strokeStyle = 'rgba(230,247,255,0.3)'; + ctx.lineWidth = 1; + ctx.beginPath(); ctx.moveTo(padL, zeroY); ctx.lineTo(padL + plotW, zeroY); ctx.stroke(); + ctx.restore(); + } + + // Linie + ctx.save(); + ctx.beginPath(); + smoothCurve(ctx, pts); + ctx.strokeStyle = 'rgba(0, 229, 255, 0.95)'; + ctx.lineWidth = 2.4; + ctx.lineJoin = 'round'; + ctx.shadowColor = 'rgba(0, 229, 255, 0.55)'; + ctx.shadowBlur = 8; + ctx.stroke(); + ctx.restore(); + + // Y-Beschriftung + ctx.fillStyle = 'rgba(230,247,255,0.55)'; + ctx.font = '10px Consolas, monospace'; + ctx.textAlign = 'right'; + ctx.fillText(Math.round(maxV) + ' W', padL - 6, padT + 8); + ctx.fillText(Math.round(minV) + ' W', padL - 6, padT + plotH); + + // Live-Punkt + var lp = pts[pts.length - 1]; + var col = lp.v < 0 ? '0,255,156' : '255,59,92'; + var pulse = 0.5 + 0.5 * Math.sin(now / 320); + ctx.fillStyle = 'rgba(' + col + ',' + (0.16 + 0.14 * pulse) + ')'; + ctx.beginPath(); ctx.arc(lp.x, lp.y, 6 + 4 * pulse, 0, Math.PI * 2); ctx.fill(); + ctx.fillStyle = 'rgba(' + col + ',1)'; + ctx.beginPath(); ctx.arc(lp.x, lp.y, 3.2, 0, Math.PI * 2); ctx.fill(); + + // Wert-Pille + var label = 'akt. Leistung: ' + Math.round(lp.v) + ' W'; + ctx.font = 'bold 11px Consolas, monospace'; + var tw = ctx.measureText(label).width; + var bw = tw + 14, bx = w - padR - bw, by = 4, bh = 17; + ctx.fillStyle = 'rgba(' + col + ',0.16)'; + roundRect(ctx, bx, by, bw, bh, 9); ctx.fill(); + ctx.fillStyle = 'rgba(' + col + ',1)'; + ctx.textAlign = 'left'; + ctx.fillText(label, bx + 7, by + 12); + } + + function drawDailyChart() { + var canvas = document.getElementById('v4_daily_chart'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + ctx.clearRect(0, 0, w, h); + ctx.fillStyle = 'rgba(0, 10, 20, 0.6)'; ctx.fillRect(0, 0, w, h); + + var padL = 44, padR = 12, padT = 22, padB = 28; + var plotW = w - padL - padR, plotH = h - padT - padB; + + var bez = num(lastValues[METER.bezug]); + var hist = METER.hist.map(function (x) { return num(lastValues[x]); }); + var seq = [bez].concat(hist); + var dailyValues = []; + for (var d = 1; d <= 8; d++) { + var a = seq[d - 1], b = seq[d]; + dailyValues.push((a === null || b === null) ? 0 : (a - b)); + } + dailyValues.reverse(); + var tagVal = num(lastValues[METER.tag]) || 0; + + var maxV = Math.max(tagVal, Math.max.apply(null, dailyValues)); + var minV = 0; + if (maxV < 1) { maxV = 10; } + var pd = (maxV - minV) * 0.12; + maxV += pd; + + function Y(v) { return padT + (1 - (v - minV) / (maxV - minV)) * plotH; } + function X(i) { return padL + (i + 0.5) * (plotW / 8); } + + var wochentage = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']; + var dayLabels = []; + var cpuY = lastValues[ZEIT.y], cpuM = lastValues[ZEIT.mo], cpuD = lastValues[ZEIT.d]; + var heute = (cpuY != null && cpuM != null && cpuD != null) + ? new Date(cpuY, cpuM - 1, cpuD) + : new Date(); + for (var i = 0; i < 8; i++) { + var dd = new Date(heute.getFullYear(), heute.getMonth(), heute.getDate() - (7 - i)); + dayLabels.push(wochentage[dd.getDay()]); + } + + ctx.textAlign = 'left'; ctx.fillStyle = 'rgba(0, 229, 255, 0.9)'; + ctx.font = 'bold 12px Consolas, monospace'; + ctx.fillText('TAGESBEZUG – 8 TAGE', 12, 14); + + ctx.strokeStyle = 'rgba(0, 229, 255, 0.08)'; ctx.lineWidth = 1; + for (var gy = 0; gy <= 4; gy++) { + var yy = padT + plotH * gy / 4; + ctx.beginPath(); ctx.moveTo(padL, yy); ctx.lineTo(padL + plotW, yy); ctx.stroke(); + } + + var barW = plotW / 8 * 0.55; + for (var i = 0; i < 8; i++) { + var x = X(i); + var y0 = Y(0); + var y1 = Y(dailyValues[i]); + var bh = y0 - y1; + var bx = x - barW / 2; + var isToday = (i === 7); + var grad = ctx.createLinearGradient(0, y1, 0, y0); + if (isToday) { + grad.addColorStop(0, 'rgba(255,179,0,0.95)'); + grad.addColorStop(1, 'rgba(255,179,0,0.25)'); + } else { + grad.addColorStop(0, 'rgba(0,255,156,0.95)'); + grad.addColorStop(1, 'rgba(0,255,156,0.25)'); + } + ctx.fillStyle = grad; + roundRect(ctx, bx, y1, barW, bh, 4); + ctx.fill(); + ctx.fillStyle = isToday ? 'rgba(255,179,0,0.95)' : 'rgba(230,247,255,0.85)'; + ctx.font = 'bold 10px Consolas, monospace'; + ctx.textAlign = 'center'; + ctx.fillText(dailyValues[i].toFixed(2), x, y1 - 5); + ctx.fillStyle = isToday ? 'rgba(255,179,0,0.95)' : 'rgba(230,247,255,0.65)'; + ctx.font = 'bold 10px Consolas, monospace'; + ctx.textAlign = 'center'; + ctx.fillText(dayLabels[i], x, h - 8); + } + + var tagY = Y(tagVal); + ctx.save(); + ctx.strokeStyle = 'rgba(0, 229, 255, 0.95)'; ctx.lineWidth = 2.5; + ctx.shadowColor = 'rgba(0, 229, 255, 0.55)'; ctx.shadowBlur = 8; + ctx.beginPath(); ctx.moveTo(padL, tagY); ctx.lineTo(padL + plotW, tagY); ctx.stroke(); + ctx.restore(); + + ctx.fillStyle = 'rgba(230,247,255,0.55)'; ctx.font = '10px Consolas, monospace'; + ctx.textAlign = 'right'; + ctx.fillText(maxV.toFixed(1) + ' kWh', padL - 6, padT + 8); + ctx.fillText(minV.toFixed(1) + ' kWh', padL - 6, padT + plotH); + + var label = 'täglicher Bezug: ' + tagVal.toFixed(2) + ' kWh'; + ctx.font = 'bold 11px Consolas, monospace'; + var tw = ctx.measureText(label).width, bw = tw + 14, bx = w - padR - bw, by = 4, bh = 17; + ctx.fillStyle = 'rgba(0,229,255,0.16)'; roundRect(ctx, bx, by, bw, bh, 9); ctx.fill(); + ctx.fillStyle = 'rgba(0,229,255,1)'; ctx.textAlign = 'left'; + ctx.fillText(label, bx + 7, by + 12); + } + + function drawWaterChart() { + var canvas = document.getElementById('v4_water_chart'); + if (!canvas) { return; } + var fit = fitCanvas(canvas); + var ctx = fit.ctx, w = fit.w, h = fit.h; + ctx.clearRect(0, 0, w, h); + ctx.fillStyle = 'rgba(0, 10, 20, 0.6)'; ctx.fillRect(0, 0, w, h); + + var padL = 50, padR = 16, padT = 22, padB = 28; + var plotW = w - padL - padR, plotH = h - padT - padB; + + var hist = WATER.hist.map(function (x) { return num(lastValues[x]); }); + var dailyValues = []; + for (var d = 1; d < hist.length; d++) { + var a = hist[d - 1], b = hist[d]; + dailyValues.push((a === null || b === null) ? 0 : (a - b)); + } + dailyValues.reverse(); + + var maxV = Math.max.apply(null, dailyValues); + var minV = 0; + var tagVal = num(lastValues[WATER.tag]) || 0; + if (tagVal > maxV) { maxV = tagVal; } + if (maxV < 1) { maxV = 100; } + var pd = (maxV - minV) * 0.12; + maxV += pd; + + function Y(v) { return padT + (1 - (v - minV) / (maxV - minV)) * plotH; } + function X(i) { return padL + (i + 0.5) * (plotW / dailyValues.length); } + + var wochentage = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']; + var dayLabels = []; + var cpuY = lastValues[ZEIT.y], cpuM = lastValues[ZEIT.mo], cpuD = lastValues[ZEIT.d]; + var heute = (cpuY != null && cpuM != null && cpuD != null) + ? new Date(cpuY, cpuM - 1, cpuD) + : new Date(); + for (var i = 0; i < dailyValues.length; i++) { + var dd = new Date(heute.getFullYear(), heute.getMonth(), heute.getDate() - (dailyValues.length - 1 - i)); + dayLabels.push(wochentage[dd.getDay()]); + } + + ctx.textAlign = 'left'; ctx.fillStyle = 'rgba(0, 229, 255, 0.9)'; + ctx.font = 'bold 12px Consolas, monospace'; + ctx.fillText('WASSER – 7 TAGE', 12, 14); + + ctx.strokeStyle = 'rgba(0, 229, 255, 0.08)'; ctx.lineWidth = 1; + for (var gy = 0; gy <= 4; gy++) { + var yy = padT + plotH * gy / 4; + ctx.beginPath(); ctx.moveTo(padL, yy); ctx.lineTo(padL + plotW, yy); ctx.stroke(); + } + + var barW = plotW / dailyValues.length * 0.55; + for (var i = 0; i < dailyValues.length; i++) { + var x = X(i); + var y0 = Y(0); + var y1 = Y(dailyValues[i]); + var bh = y0 - y1; + var bx = x - barW / 2; + var isToday = (i === dailyValues.length - 1); + var grad = ctx.createLinearGradient(0, y1, 0, y0); + if (isToday) { + grad.addColorStop(0, 'rgba(0,229,255,0.95)'); + grad.addColorStop(1, 'rgba(0,229,255,0.25)'); + } else { + grad.addColorStop(0, 'rgba(0,229,255,0.75)'); + grad.addColorStop(1, 'rgba(0,229,255,0.15)'); + } + ctx.fillStyle = grad; + roundRect(ctx, bx, y1, barW, bh, 4); + ctx.fill(); + ctx.fillStyle = isToday ? 'rgba(0,229,255,0.95)' : 'rgba(230,247,255,0.85)'; + ctx.font = 'bold 10px Consolas, monospace'; + ctx.textAlign = 'center'; + ctx.fillText(Math.round(dailyValues[i]), x, y1 - 5); + ctx.fillStyle = isToday ? 'rgba(0,229,255,0.95)' : 'rgba(230,247,255,0.65)'; + ctx.font = 'bold 10px Consolas, monospace'; + ctx.textAlign = 'center'; + ctx.fillText(dayLabels[i], x, h - 8); + } + + var tagY = Y(tagVal); + ctx.save(); + ctx.strokeStyle = 'rgba(255,179,0,0.95)'; ctx.lineWidth = 2.5; + ctx.setLineDash([6, 4]); + ctx.shadowColor = 'rgba(255,179,0,0.55)'; ctx.shadowBlur = 8; + ctx.beginPath(); ctx.moveTo(padL, tagY); ctx.lineTo(padL + plotW, tagY); ctx.stroke(); + ctx.restore(); + + ctx.fillStyle = 'rgba(230,247,255,0.55)'; ctx.font = '10px Consolas, monospace'; + ctx.textAlign = 'right'; + ctx.fillText(Math.round(maxV) + ' L', padL - 6, padT + 8); + ctx.fillText(Math.round(minV) + ' L', padL - 6, padT + plotH); + + var label = 'täglicher Bezug: ' + Math.round(tagVal) + ' L'; + ctx.font = 'bold 11px Consolas, monospace'; + var tw = ctx.measureText(label).width, bw = tw + 14, bx = w - padR - bw, by = 4, bh = 17; + ctx.fillStyle = 'rgba(255,179,0,0.16)'; roundRect(ctx, bx, by, bw, bh, 9); ctx.fill(); + ctx.fillStyle = 'rgba(255,179,0,1)'; ctx.textAlign = 'left'; + ctx.fillText(label, bx + 7, by + 12); + } + + // ====== Animation ====== + function startChartAnimation() { + var last = 0; + function frame(ts) { + requestAnimationFrame(frame); + if (ts - last < 33) { return; } + last = ts; + gaugeShown += (gaugeTarget - gaugeShown) * 0.18; + if (Math.abs(gaugeTarget - gaugeShown) < 0.5) { gaugeShown = gaugeTarget; } + drawGauge(gaugeShown); + drawPowerChart(); + drawDailyChart(); + drawWaterChart(); + } + requestAnimationFrame(frame); + } + + // ====== Schreiben per Klick (Event-Delegation) ====== + function parseVal(s) { + if (s === 'true') { return true; } + if (s === 'false') { return false; } + if (/^-?\d+(\.\d+)?$/.test(s)) { return Number(s); } + return s; + } + + function flash(el, r) { + if (!el) { return; } + var cls = (r && !r.error) ? 'v4-flash-ok' : 'v4-flash-err'; + el.classList.remove('v4-flash-ok', 'v4-flash-err'); + void el.offsetWidth; + el.classList.add(cls); + setTimeout(function () { el.classList.remove(cls); }, 600); + } + + function onClick(ev) { + var btn = ev.target.closest ? ev.target.closest('button') : null; + // Mehrfach-Schreibvorgang + var ml = ev.target.closest ? ev.target.closest('[data-vars]') : null; + if (ml && ml.hasAttribute('data-value')) { + var vars = ml.getAttribute('data-vars').split(',').map(function (s) { return s.trim(); }); + var val = parseVal(ml.getAttribute('data-value')); + var results = []; + Promise.all(vars.map(function (v) { + return write(v, val).then(function (r) { results.push(r); return r; }); + })).then(function () { + var allOk = results.every(function (r) { return r && !r.error; }); + flash(btn, allOk ? { error: false } : { error: true }); + toast('Schnellbefehl ausgeführt', allOk ? 'ok' : 'err'); + }); + return; + } + // Einzel-Schreibvorgang + var el = ev.target.closest ? ev.target.closest('[data-var]') : null; + if (el && el.hasAttribute('data-value')) { + write(el.getAttribute('data-var'), parseVal(el.getAttribute('data-value'))).then(function (r) { flash(btn, r); }); + return; + } + // Heizung: Stepper (+/-) – Wert um 0.5°C aendern und schreiben + var hs = ev.target.closest ? ev.target.closest('[data-heat-step]') : null; + if (hs) { + var hI = parseInt(hs.getAttribute('data-heat-i'), 10); + var hStep = hs.getAttribute('data-heat-step'); + var hDir = parseInt(hs.getAttribute('data-heat-dir'), 10); + var hObj = HEAT[hI - 1]; + if (!hObj) { return; } + var cur = num(lastValues[hObj[hStep]]); + if (cur === null) { cur = 20; } + var newVal = Math.round((cur + hDir * 0.5) * 10) / 10; + if (!heatPlausible(hI, hStep, newVal)) { return; } + write(hObj[hStep], newVal).then(function (r) { + flash(btn, r); + toast(hObj.name + ' ' + hStep + ': ' + newVal.toFixed(1) + '°C', r && !r.error ? 'ok' : 'err'); + setTimeout(refreshSettings, 300); + }); + return; + } + // Poolpumpe + var pm = ev.target.closest ? ev.target.closest('[data-pool-max]') : null; + if (pm) { + var pInput = document.getElementById(pm.getAttribute('data-write-input')); + if (!pInput || pInput.value === '') { return; } + var pMin = parseFloat(pInput.value); + if (isNaN(pMin) || pMin < 0) { toast('Bitte eine gültige Zahl eingeben.', 'err'); return; } + write(pm.getAttribute('data-var'), Math.round(pMin * 60)).then(function (r) { + flash(btn, r); + toast('Poolpumpe SOLL gesetzt', r && !r.error ? 'ok' : 'err'); + readMany([POOL.max]).then(function (m) { merge(m); render(lastValues); }).catch(function () {}); + }); + return; + } + // WLED + var wl = ev.target.closest ? ev.target.closest('[data-wled]') : null; + if (wl) { + var kind = wl.getAttribute('data-wled'); + if (kind === 'bright') { + var b = document.getElementById('wled_bright'); + write('"wled_DB".Helligkeit', parseInt(b.value, 10)).then(function () { return write('"wled_DB".Befehl', 4); }).then(function (r) { flash(btn, r); toast('WLED Helligkeit', r && !r.error ? 'ok' : 'err'); }); + } else if (kind === 'color') { + var c = document.getElementById('wled_color'); + write('"wled_DB".RGB_hex', c.value).then(function () { return write('"wled_DB".Befehl', 5); }).then(function (r) { flash(btn, r); toast('WLED Farbe', r && !r.error ? 'ok' : 'err'); }); + } + return; + } + } + + // ====== Polling ====== + var FAST_VARS = [METER.leist]; + var ALL_VARS = null; + var SET_VARS = null; + var SLOW_EVERY = 4; + var tickCount = 0; + + function merge(m) { Object.keys(m).forEach(function (k) { lastValues[k] = m[k]; }); } + + function refreshSettings() { + readMany(SET_VARS).then(function (m) { merge(m); render(lastValues); }).catch(function () {}); + } + + function tick() { + if (pollBusy) { return; } // Mutex: kein überlappender Request + pollBusy = true; + tickCount++; + var isFull = (tickCount % SLOW_EVERY === 1); + var vars = isFull ? ALL_VARS : FAST_VARS; + readMany(vars).then(function (m) { + resetBackoff(); + merge(m); + render(lastValues); + setStatus(true, 'ONLINE'); + // readWemos nur jeden 10. vollen Zyklus, um Request-Last zu reduzieren + if (isFull) { + wemosCounter++; + if (wemosCounter >= 10) { + wemosCounter = 0; + readWemos(); + } + } + pollBusy = false; + }).catch(function () { + increaseBackoff(); // exponentieller Backoff bei Fehler + setStatus(false, 'RECONNECT IN ' + Math.round(backoffMs / 1000) + 's'); + pollBusy = false; + }); + } + + // Polling mit dynamischem Intervall (Backoff) + function scheduleNext() { + setTimeout(function () { + tick(); + scheduleNext(); + }, backoffMs); + } + + // ====== Scanline-Toggle ====== + var scanEl = document.getElementById('v4_scanlines'); + var scanBtn = document.getElementById('scan_toggle'); + if (scanBtn && scanEl) { + scanBtn.addEventListener('click', function () { + var on = scanEl.classList.toggle('v4-scanlines--on'); + try { localStorage.setItem('v4_scanlines', on ? '1' : '0'); } catch (e) {} + }); + try { + if (localStorage.getItem('v4_scanlines') === '1') { + scanEl.classList.add('v4-scanlines--on'); + } + } catch (e) {} + } + + // ====== Start ====== + document.addEventListener('click', onClick); + buildLightTiles(); + buildRolladen(); + buildSockets(); + buildHeat(); + + ALL_VARS = allReadVars(); + SET_VARS = settingsVars(); + + if (PREVIEW) { + // Sofort Dummy-Daten laden, kein Login/Polling + var pv = makePreviewValues(); + Object.keys(pv).forEach(function (k) { lastValues[k] = pv[k]; }); + render(lastValues); + setStatus(true, 'PREVIEW'); + setText('sz_wemos', 'PREVIEW MODUS – keine SPS'); + // Dummy-Leistung zyklisch variieren + setInterval(function () { + lastValues[METER.leist] = 300 + Math.sin(Date.now() / 2000) * 1500; + render(lastValues); + }, 500); + runBoot(); + startChartAnimation(); + return; + } + + runBoot(); + startChartAnimation(); + + // Erstes volles Lesen, dann zyklisch + readMany(ALL_VARS).then(function (m) { + merge(m); + render(lastValues); + setStatus(true, 'ONLINE'); + readWemos(); + // Heizungs-SOLL min/max einmalig beim Start lesen (werden sonst nie angezeigt) + refreshSettings(); + }).catch(function () { + setStatus(false, 'OFFLINE'); + }); + scheduleNext(); // dynamisches Polling mit Backoff statt setInterval +})(); diff --git a/WebAppConfig.json b/WebAppConfig.json new file mode 100644 index 0000000..30719f3 --- /dev/null +++ b/WebAppConfig.json @@ -0,0 +1 @@ +{"directoriesToIgnoreForUpload":[],"resourcesToIgnoreForUpload":["indexV2.htm","indexV3_preview.htm","zeit_state.html","licht_state.html","heizung_state.html","steckdosen_state.html","stromzaehler_state.html","form.css","Script/tth_script.js"],"fileExtensionsToIgnoreForUpload":[],"name":"web","state":1,"type":1,"redirect_mode":0,"default_page":"indexV3.htm","not_found_page":"indexV3.htm","not_authorized_page":"indexV3.htm","protectedResources":[],"pathToWebAppDirectory":"C:\\Users\\Tobias Thebille\\OneDrive\\SPS\\Haus\\HausV2\\web"} \ No newline at end of file diff --git a/form.css b/form.css new file mode 100644 index 0000000..0d3045d --- /dev/null +++ b/form.css @@ -0,0 +1,245 @@ + /* CSS layout */ +body { + margin: 0; + padding: 0; +} + +#masthead { +} + +#top_nav { +} + +#container { + min-width: 600px; +} + +#left_col { + width: 200px; + float: left; +} + +#page_content { + margin-left: 10px; +} + +#footer { + clear: both; +} + + + + + +.onoffswitch { + position: relative; width: 90px; + -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none; +} +.onoffswitch-checkbox { + display: none; +} +.onoffswitch-label { + display: block; overflow: hidden; cursor: pointer; + border: 2px solid #999999; border-radius: 20px; +} +.onoffswitch-inner { + display: block; width: 200%; margin-left: -100%; + transition: margin 0.3s ease-in 0s; +} +.onoffswitch-inner:before, .onoffswitch-inner:after { + display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px; + font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold; + box-sizing: border-box; +} +.onoffswitch-inner:before { + content: "ON"; + padding-left: 10px; + background-color: #34A7C1; color: #FFFFFF; +} +.onoffswitch-inner:after { + content: "OFF"; + padding-right: 10px; + background-color: #EEEEEE; color: #999999; + text-align: right; +} +.onoffswitch-switch { + display: block; width: 18px; margin: 6px; + background: #FFFFFF; + position: absolute; top: 0; bottom: 0; + right: 56px; + border: 2px solid #999999; border-radius: 20px; + transition: all 0.3s ease-in 0s; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0px; +} + +/* ---- Modern UI additions (non-breaking) ---- */ +:root{ + --ui-bg: #070A10; + --ui-surface: rgba(255,255,255,0.06); + --ui-surface-2: rgba(255,255,255,0.10); + --ui-border: rgba(255,255,255,0.14); + --ui-text: #EAF0FF; + --ui-muted: rgba(234,240,255,0.70); + --ui-accent: #63D4FF; + --ui-accent-2: #7CFFB2; + --ui-danger: #FF5C7A; + --ui-shadow: 0 10px 30px rgba(0,0,0,0.45); + --ui-radius: 14px; + --ui-radius-sm: 10px; + --ui-gap: 12px; +} + +html, body{ + font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; +} + +/* Keep inline body colors working, but improve readability */ +body{ + line-height: 1.35; +} + +h3{ + margin: 14px 0 10px 0; + letter-spacing: 0.2px; +} + +/* Card wrapper (optional) */ +.ui-card{ + background: var(--ui-surface); + border: 1px solid var(--ui-border); + border-radius: var(--ui-radius); + box-shadow: var(--ui-shadow); + padding: 14px; + backdrop-filter: blur(8px); + /* keep modules compact & left-aligned like original */ + display: inline-block; + max-width: calc(100vw - 24px); +} + +/* Tables */ +table{ + border-collapse: separate; + border-spacing: 0; +} + +table.ui-table, table[border]{ + background: var(--ui-surface); + border: 1px solid var(--ui-border); + border-radius: var(--ui-radius); + overflow: hidden; +} + +table.ui-table td, table[border] td{ + border: 1px solid rgba(255,255,255,0.08); + padding: 10px 12px; + vertical-align: middle; +} + + +/* Links */ +a{ + color: var(--ui-accent); + text-decoration: none; +} +a:hover{ + text-decoration: underline; +} + +/* Buttons & inputs */ +button.ui-btn, +input.ui-btn, +input[type="submit"]{ + appearance: none; + border: 1px solid var(--ui-border); + background: rgba(255,255,255,0.08); + color: var(--ui-text); + border-radius: var(--ui-radius-sm); + padding: 10px 12px; + font-weight: 650; + letter-spacing: 0.2px; + cursor: pointer; + transition: transform 120ms ease, background 120ms ease, border-color 120ms ease; +} + +button.ui-btn:hover, +input.ui-btn:hover, +input[type="submit"]:hover{ + background: rgba(255,255,255,0.12); + border-color: rgba(255,255,255,0.22); + transform: translateY(-1px); +} + +button.ui-btn:active, +input.ui-btn:active, +input[type="submit"]:active{ + transform: translateY(0px); +} + +.ui-btn--primary{ + border-color: rgba(99,212,255,0.35); + background: rgba(99,212,255,0.12); +} +.ui-btn--on{ + border-color: rgba(124,255,178,0.35); + background: rgba(124,255,178,0.12); +} +.ui-btn--off{ + border-color: rgba(255,92,122,0.35); + background: rgba(255,92,122,0.10); +} + +/* Icon buttons (lamp etc.) */ +.ui-iconbtn{ + border: 1px solid var(--ui-border); + background: rgba(255,255,255,0.06); + border-radius: 999px; + padding: 8px; + cursor: pointer; +} +.ui-iconbtn:hover{ + background: rgba(255,255,255,0.10); +} +.ui-icon{ + display: block; +} + +/* Text inputs */ +input[type="text"], input[type="number"]{ + background: rgba(0,0,0,0.25); + color: var(--ui-text); + border: 1px solid var(--ui-border); + border-radius: 10px; + padding: 8px 10px; +} + +/* Range + color */ +input[type="range"]{ + width: 220px; + accent-color: var(--ui-accent); +} +input[type="color"]{ + width: 48px; + height: 36px; + padding: 0; + border: 1px solid var(--ui-border); + border-radius: 10px; + background: transparent; +} + +/* Iframes (index pages) */ +iframe{ + border: 0; + display: block; + background: transparent; +} + +/* Tiny status text coming from *_state.html */ +.auto-style6{ + color: transparent; + font-size: 1px; +} diff --git a/formV3.css b/formV3.css new file mode 100644 index 0000000..b51c96a --- /dev/null +++ b/formV3.css @@ -0,0 +1,762 @@ +:root { + --v3-bg: #070A10; + --v3-surface: rgba(255,255,255,0.06); + --v3-surface-2: rgba(255,255,255,0.10); + --v3-border: rgba(255,255,255,0.14); + --v3-border-hover: rgba(255,255,255,0.22); + --v3-text: #EAF0FF; + --v3-text-secondary: rgba(234,240,255,0.70); + --v3-accent: #63D4FF; + --v3-accent-2: #7CFFB2; + --v3-danger: #FF5C7A; + --v3-warn: #FFD963; + --v3-shadow: 0 10px 30px rgba(0,0,0,0.45); + --v3-radius: 14px; + --v3-radius-sm: 10px; + --v3-gap: 12px; +} + +* { + box-sizing: border-box; +} + +html, body { + margin: 0; + padding: 0; + font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif; + background: var(--v3-bg); + color: var(--v3-text); + line-height: 1.4; + min-height: 100vh; +} + +.v3-page { + max-width: 1400px; + margin: 0 auto; + padding: 16px; + display: flex; + flex-direction: column; + gap: 16px; +} + +/* ---- CARD ---- */ +.v3-card { + background: var(--v3-surface); + border: 1px solid var(--v3-border); + border-radius: var(--v3-radius); + box-shadow: var(--v3-shadow); + padding: 16px; + backdrop-filter: blur(8px); + transition: border-color 0.25s ease, box-shadow 0.25s ease; +} + +.v3-card:hover { + border-color: var(--v3-border-hover); +} + +.v3-card-title { + display: flex; + align-items: center; + gap: 8px; + font-size: 1.1rem; + font-weight: 700; + margin-bottom: 14px; + color: var(--v3-text); + letter-spacing: 0.3px; +} + +.v3-card-title span:first-child { + font-size: 1.3rem; +} + +.v3-section-title { + font-size: 0.9rem; + font-weight: 600; + color: var(--v3-text-secondary); + margin-bottom: 8px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +/* ---- BUTTONS ---- */ +.v3-btn { + appearance: none; + border: 1px solid var(--v3-border); + background: var(--v3-surface-2); + color: var(--v3-text); + border-radius: var(--v3-radius-sm); + padding: 10px 16px; + font-weight: 600; + font-size: 0.9rem; + letter-spacing: 0.2px; + cursor: pointer; + transition: transform 0.12s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; + display: inline-flex; + align-items: center; + gap: 6px; +} + +.v3-btn:hover { + background: rgba(255,255,255,0.14); + border-color: var(--v3-border-hover); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(0,0,0,0.3); +} + +.v3-btn:active { + transform: translateY(0); +} + +.v3-btn--sm { + padding: 6px 12px; + font-size: 0.8rem; +} + +.v3-btn--primary { + border-color: rgba(99,212,255,0.35); + background: rgba(99,212,255,0.12); + color: var(--v3-accent); +} + +.v3-btn--primary:hover { + background: rgba(99,212,255,0.22); + border-color: rgba(99,212,255,0.55); +} + +.v3-btn--on { + border-color: rgba(124,255,178,0.35); + background: rgba(124,255,178,0.12); + color: var(--v3-accent-2); +} + +.v3-btn--on:hover { + background: rgba(124,255,178,0.22); + border-color: rgba(124,255,178,0.55); +} + +.v3-btn--off { + border-color: rgba(255,92,122,0.35); + background: rgba(255,92,122,0.10); + color: var(--v3-danger); +} + +.v3-btn--off:hover { + background: rgba(255,92,122,0.20); + border-color: rgba(255,92,122,0.55); +} + +/* ---- STATUS DOT ---- */ +.v3-status-dot { + display: inline-block; + width: 10px; + height: 10px; + border-radius: 50%; + background: rgba(255,255,255,0.2); + transition: background 0.3s ease, box-shadow 0.3s ease; + flex-shrink: 0; +} + +.v3-status-dot--on { + background: var(--v3-accent-2); + box-shadow: 0 0 8px rgba(124,255,178,0.6); +} + +.v3-status-dot--off { + background: rgba(255,255,255,0.2); +} + +.v3-status-dot--active { + background: var(--v3-warn); + box-shadow: 0 0 8px rgba(255,217,99,0.6); +} + +.v3-status { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 0.8rem; + color: var(--v3-text-secondary); +} + +.v3-title-values { + display: inline-flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; + justify-content: flex-end; +} + +.v3-title-value { + font-size: 0.8rem; + font-weight: 600; + color: var(--v3-text); + background: var(--v3-surface-2); + border: 1px solid var(--v3-border); + border-radius: var(--v3-radius-sm); + padding: 4px 8px; + white-space: nowrap; +} + +#hdr_wtemp, +#hdr_wstand, +#hdr_wseit, +#hdr_sbezug, +#hdr_seinsp { + font-size: 0.8rem; +} + +/* ---- ROOM ROW (Licht) ---- */ +.v3-room-row { + background: var(--v3-surface); + border: 1px solid var(--v3-border); + border-radius: var(--v3-radius-sm); + padding: 12px 14px; + display: flex; + align-items: center; + justify-content: space-between; + transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease; +} + +.v3-room-row:hover { + border-color: var(--v3-border-hover); +} + +.v3-room-name { + font-weight: 600; + font-size: 0.9rem; +} + +.v3-room-controls { + display: flex; + align-items: center; + gap: 10px; +} + +/* ---- INFO ITEMS ---- */ +.v3-info-item { + display: flex; + flex-direction: column; + gap: 2px; +} + +.v3-info-label { + font-size: 0.7rem; + color: var(--v3-text-secondary); + text-transform: uppercase; + letter-spacing: 0.4px; +} + +.v3-info-value { + font-size: 1rem; + font-weight: 700; + color: var(--v3-text); +} + +/* ---- TEMP ---- */ +.v3-temp { + font-size: 1.4rem; + font-weight: 700; +} + +.v3-temp--normal { + color: var(--v3-text); +} + +.v3-temp--hot { + color: var(--v3-danger); +} + +.v3-temp--warm { + color: var(--v3-warn); +} + +/* ---- INPUTS ---- */ +.v3-input { + background: rgba(0,0,0,0.25); + color: var(--v3-text); + border: 1px solid var(--v3-border); + border-radius: var(--v3-radius-sm); + padding: 6px 10px; + font-size: 0.9rem; + width: 60px; + text-align: center; + transition: border-color 0.2s ease; +} + +.v3-input:focus { + outline: none; + border-color: var(--v3-accent); +} + +/* ---- SLIDER ---- */ +.v3-slider { + width: 180px; + accent-color: var(--v3-accent); +} + +/* ---- COLOR ---- */ +.v3-color { + width: 48px; + height: 36px; + padding: 0; + border: 1px solid var(--v3-border); + border-radius: var(--v3-radius-sm); + background: transparent; + cursor: pointer; +} + +/* ---- WLED ---- */ +.v3-wled { + display: flex; + flex-direction: column; + gap: 12px; +} + +.v3-wled-row { + display: flex; + align-items: center; + gap: 12px; + flex-wrap: wrap; +} + +.v3-wled-label { + font-size: 0.85rem; + color: var(--v3-text-secondary); + min-width: 80px; +} + +.v3-wled-val { + font-size: 0.85rem; + color: var(--v3-text); + font-weight: 600; + min-width: 50px; +} + +/* ---- GAUGE ---- */ +.v3-gauge-container { + display: flex; + justify-content: center; + align-items: center; +} + +#v3_gauge { + border-radius: var(--v3-radius); +} + +/* ---- CHART ---- */ +.v3-chart-container { + background: rgba(0,0,0,0.2); + border-radius: var(--v3-radius-sm); + padding: 8px; + overflow: hidden; +} + +#v3_power_chart { + width: 100%; + height: 200px; + display: block; +} + +/* ---- CLOCK ---- */ +.v3-clock { + text-align: center; + padding: 12px; +} + +.v3-clock-time { + font-size: 1.8rem; + font-weight: 700; + color: var(--v3-accent); + font-variant-numeric: tabular-nums; +} + +.v3-clock-date { + font-size: 0.9rem; + color: var(--v3-text-secondary); + margin-bottom: 8px; +} + +.v3-sun-row { + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + margin-top: 6px; +} + +.v3-sun-row img { + vertical-align: middle; +} + +.v3-sun-text { + font-size: 0.9rem; + color: var(--v3-text-secondary); +} + +/* ---- IFRAME ---- */ +iframe { + border: 0; + display: block; + background: transparent; + width: 100%; +} + +/* ---- RESPONSIVE ---- */ +@media (max-width: 768px) { + .v3-page { + padding: 8px; + } + + .v3-card { + padding: 12px; + } + + .v3-btn { + padding: 8px 12px; + font-size: 0.8rem; + } + + .v3-wled-row { + flex-direction: column; + align-items: flex-start; + } +} + +/* ---- ANIMATIONS ---- */ +@keyframes pulse-glow { + 0%, 100% { box-shadow: 0 0 6px rgba(124,255,178,0.4); } + 50% { box-shadow: 0 0 14px rgba(124,255,178,0.7); } +} + +.v3-status-dot--on { + animation: pulse-glow 2s ease-in-out infinite; +} + +/* ---- SCROLLBAR ---- */ +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + background: var(--v3-bg); +} + +::-webkit-scrollbar-thumb { + background: var(--v3-border); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--v3-border-hover); +} + +/* ==================================================================== + indexV3 – Grid-Layout & Modul-Bausteine + ==================================================================== */ + +.v3-header { + display: flex; + align-items: baseline; + justify-content: space-between; + flex-wrap: wrap; + gap: 8px; +} + +.v3-header h1 { + font-size: 1.5rem; + font-weight: 700; + margin: 0; + letter-spacing: 0.3px; +} + +.v3-header .v3-sub { + font-size: 0.85rem; + color: var(--v3-text-secondary); +} + +/* Karten strikt untereinander (eine Spalte). Reihenfolge per order unten. */ +.v3-grid { + display: grid; + grid-template-columns: 1fr; + gap: 16px; + align-items: start; +} + +/* Gewuenschte Reihenfolge von oben nach unten: + Stromzaehler, Licht, Rolladen, Steckdosen, Heizung, Haus, Uhr. + Quell-Reihenfolge im HTML ist: + 1 Stromzaehler, 2 Licht, 3 Heizung, 4 Rolladen, 5 Steckdosen, 6 Haus, 7 Uhr. */ +.v3-grid > section:nth-child(1) { order: 1; } /* Stromzaehler */ +.v3-grid > section:nth-child(2) { order: 2; } /* Licht */ +.v3-grid > section:nth-child(3) { order: 5; } /* Heizung -> nach unten */ +.v3-grid > section:nth-child(4) { order: 3; } /* Rolladen */ +.v3-grid > section:nth-child(5) { order: 4; } /* Steckdosen */ +.v3-grid > section:nth-child(6) { order: 6; } /* Haus */ +.v3-grid > section:nth-child(7) { order: 7; } /* Uhr */ + +/* Karten, die mehr Platz brauchen (Heizung, Stromzähler) */ +.v3-card--wide { + grid-column: 1 / -1; +} + +.v3-rows { + display: flex; + flex-direction: column; + gap: 8px; +} + +.v3-muted { + color: var(--v3-text-secondary); + font-size: 0.8rem; + font-variant-numeric: tabular-nums; +} + +/* Verstecktes Schreib-Iframe (AWP-POST-Ziel) */ +.v3-sink { + position: fixed; + left: -9999px; + width: 0; + height: 0; + border: 0; +} + +/* Knopf-Paare (auf/ab, an/aus) */ +.v3-btn-group { + display: flex; + gap: 6px; + flex-wrap: wrap; +} + +.v3-btn-group form { + margin: 0; +} + +/* ---- Heizungs-Zeile ---- */ +.v3-heat-row { + display: grid; + grid-template-columns: 1.3fr 0.9fr auto 0.9fr auto auto; + gap: 10px; + align-items: center; + background: var(--v3-surface); + border: 1px solid var(--v3-border); + border-radius: var(--v3-radius-sm); + padding: 10px 12px; + margin: 0; + transition: border-color 0.25s ease; +} + +.v3-heat-row:hover { + border-color: var(--v3-border-hover); +} + +.v3-heat-head { + display: grid; + grid-template-columns: 1.3fr 0.9fr auto 0.9fr auto auto; + gap: 10px; + padding: 0 12px 4px; + font-size: 0.65rem; + text-transform: uppercase; + letter-spacing: 0.4px; + color: var(--v3-text-secondary); +} + +/* Getrennte Schreib-Form je SOLL-Wert (min bzw. max) */ +.v3-heat-set { + display: flex; + align-items: center; + gap: 4px; + margin: 0; +} + +.v3-heat-set .v3-input { + width: 54px; +} + +/* ---- Zähler (Strom + Wasser) ---- */ +.v3-strom-layout { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-template-rows: auto auto; + gap: 16px; + justify-items: center; + align-items: start; +} + +.v3-strom-layout > .v3-gauge-container { + grid-column: 1; + grid-row: 1; +} + +.v3-strom-values { + grid-column: 1; + grid-row: 2; + display: flex; + flex-direction: row; + gap: 16px; + justify-content: center; + align-items: flex-start; + min-width: 140px; +} + +.v3-strom-layout > .v3-chart-container:nth-child(3) { + grid-column: 2; + grid-row: 1 / 3; + align-self: center; +} + +.v3-strom-layout > .v3-chart-container:nth-child(4) { + grid-column: 3; + grid-row: 1 / 3; + align-self: center; +} + +.v3-strom-values .v3-info-value { + font-size: 0.95rem; +} + +/* Wasserzähler */ +.v3-water-layout { + display: grid; + grid-template-columns: 1fr; + grid-template-rows: auto; + gap: 16px; + justify-items: start; + align-items: start; +} + +.v3-water-layout > .v3-chart-container { + grid-column: 1; + grid-row: 1; + align-self: center; + justify-self: start; + width: fit-content; +} + +@media (max-width: 1100px) { + .v3-strom-layout, + .v3-water-layout { + grid-template-columns: 1fr; + grid-template-rows: auto; + } + + .v3-strom-layout > .v3-gauge-container, + .v3-strom-layout > .v3-strom-values, + .v3-strom-layout > .v3-chart-container:nth-child(3), + .v3-strom-layout > .v3-chart-container:nth-child(4), + .v3-water-layout > .v3-chart-container { + grid-column: 1; + grid-row: auto; + align-self: center; + } +} + +#v3_gauge, +#v3_power_chart, +#v3_daily_chart, +#v3_water_chart { + background: rgba(0, 0, 0, 0.25); + border-radius: var(--v3-radius-sm); + border: 1px solid var(--v3-border); + display: block; + width: 100%; + max-width: 360px; + height: auto; + aspect-ratio: 2 / 1; +} + +#v3_gauge { + border-radius: var(--v3-radius); + max-width: 360px; + aspect-ratio: 3 / 1; +} + +@media (max-width: 768px) { + .v3-heat-row, + .v3-heat-head { + grid-template-columns: 1fr auto auto; + grid-auto-rows: auto; + } + .v3-heat-head { display: none; } +} + +/* Sanfte Uebergaenge + Schalt-Feedback (V3) */ +.v3-temp { transition: color 0.3s ease; } + +@keyframes v3-flash-ok-anim { + from { box-shadow: 0 0 0 2px rgba(124, 255, 178, 0.85); } + to { box-shadow: 0 0 0 2px rgba(124, 255, 178, 0); } +} +@keyframes v3-flash-err-anim { + from { box-shadow: 0 0 0 2px rgba(255, 92, 122, 0.9); } + to { box-shadow: 0 0 0 2px rgba(255, 92, 122, 0); } +} +.v3-flash-ok { animation: v3-flash-ok-anim 0.6s ease-out; } +.v3-flash-err { animation: v3-flash-err-anim 0.6s ease-out; } + +/* ---- Poolpumpe Fortschrittsbalken (IST vs. SOLL Laufzeit) ---- */ +.v3-pool-row { + display: flex; + align-items: center; + gap: 10px; +} + +.v3-pool-bar { + position: relative; + flex: 1; + min-width: 0; + height: 18px; + background: rgba(255,255,255,0.08); + border: 1px solid var(--v3-border); + border-radius: 999px; + overflow: hidden; +} + +.v3-pool-bar-fill { + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 0%; + background: linear-gradient(90deg, rgba(99,212,255,0.55), rgba(99,212,255,0.95)); + border-radius: 999px; + transition: width 0.6s ease; +} + +.v3-pool-bar-fill--done { + background: linear-gradient(90deg, rgba(124,255,178,0.55), rgba(124,255,178,0.95)); + box-shadow: 0 0 10px rgba(124,255,178,0.5); +} + +.v3-pool-bar-label { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.72rem; + font-weight: 600; + color: var(--v3-text); + text-shadow: 0 1px 3px rgba(0,0,0,0.8); + white-space: nowrap; + pointer-events: none; +} + +.v3-pool-set { + display: flex; + align-items: center; + gap: 8px; + flex-shrink: 0; +} + +.v3-pool-set-label { + font-size: 0.75rem; + color: var(--v3-text-secondary); + white-space: nowrap; +} + +.v3-pool-set .v3-input { + width: 80px; +} diff --git a/formV4.css b/formV4.css new file mode 100644 index 0000000..8d3dd4d --- /dev/null +++ b/formV4.css @@ -0,0 +1,842 @@ +:root { + --v4-bg: #02040A; + --v4-surface: rgba(0, 20, 40, 0.35); + --v4-surface-2: rgba(0, 30, 60, 0.5); + --v4-border: rgba(0, 229, 255, 0.25); + --v4-border-hover: rgba(0, 229, 255, 0.55); + --v4-text: #E6F7FF; + --v4-text-secondary: rgba(230, 247, 255, 0.6); + --v4-cyan: #00E5FF; + --v4-green: #00FF9C; + --v4-amber: #FFB300; + --v4-red: #FF3B5C; + --v4-mono: 'Consolas', 'JetBrains Mono', 'Courier New', monospace; + --v4-sans: 'Segoe UI', system-ui, -apple-system, Arial, sans-serif; + --v4-radius: 10px; + --v4-glow-cyan: 0 0 12px rgba(0, 229, 255, 0.35); + --v4-glow-green: 0 0 12px rgba(0, 255, 156, 0.35); + --v4-glow-amber: 0 0 12px rgba(255, 179, 0, 0.35); + --v4-glow-red: 0 0 12px rgba(255, 59, 92, 0.35); +} + +* { box-sizing: border-box; } + +html, body { + margin: 0; + padding: 0; + font-family: var(--v4-sans); + background: var(--v4-bg); + color: var(--v4-text); + min-height: 100vh; +} + +/* ===== Sternenfeld ===== */ +body::before { + content: ''; + position: fixed; + inset: 0; + background-image: + radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,0.4) 50%, transparent 50%), + radial-gradient(1px 1px at 70% 15%, rgba(255,255,255,0.3) 50%, transparent 50%), + radial-gradient(1.5px 1.5px at 40% 70%, rgba(255,255,255,0.25) 50%, transparent 50%), + radial-gradient(1px 1px at 85% 60%, rgba(255,255,255,0.35) 50%, transparent 50%), + radial-gradient(1px 1px at 10% 80%, rgba(255,255,255,0.3) 50%, transparent 50%), + radial-gradient(1.5px 1.5px at 55% 40%, rgba(255,255,255,0.2) 50%, transparent 50%), + radial-gradient(1px 1px at 90% 90%, rgba(255,255,255,0.3) 50%, transparent 50%), + radial-gradient(1px 1px at 30% 10%, rgba(255,255,255,0.4) 50%, transparent 50%); + pointer-events: none; + z-index: 0; +} + +/* ===== Scanlines ===== */ +.v4-scanlines { + position: fixed; + inset: 0; + pointer-events: none; + z-index: 9999; + background: repeating-linear-gradient( + 0deg, + rgba(0, 0, 0, 0.12) 0px, + rgba(0, 0, 0, 0.12) 1px, + transparent 1px, + transparent 3px + ); + opacity: 0; + transition: opacity 0.3s ease; +} +.v4-scanlines.v4-scanlines--on { opacity: 1; } + +/* ===== Boot-Sequence ===== */ +.v4-boot { + position: fixed; + inset: 0; + background: var(--v4-bg); + display: flex; + align-items: center; + justify-content: center; + z-index: 10000; + transition: opacity 0.6s ease; +} +.v4-boot.v4-boot--hidden { opacity: 0; pointer-events: none; } +.v4-boot-inner { + width: 420px; + max-width: 90vw; + border: 1px solid var(--v4-border); + border-radius: var(--v4-radius); + padding: 24px; + background: var(--v4-surface); + box-shadow: var(--v4-glow-cyan); +} +.v4-boot-logo { + text-align: center; + font-family: var(--v4-mono); + font-size: 1.1rem; + color: var(--v4-cyan); + text-shadow: var(--v4-glow-cyan); + margin-bottom: 20px; + letter-spacing: 2px; +} +.v4-boot-line { + display: flex; + justify-content: space-between; + font-family: var(--v4-mono); + font-size: 0.85rem; + color: var(--v4-text-secondary); + padding: 4px 0; +} +.v4-boot-status { color: var(--v4-amber); } +.v4-boot-status.v4-boot-ok { color: var(--v4-green); } +.v4-boot-bar { + height: 6px; + background: rgba(255,255,255,0.08); + border-radius: 3px; + margin-top: 16px; + overflow: hidden; +} +.v4-boot-bar-fill { + height: 100%; + width: 0%; + background: linear-gradient(90deg, var(--v4-cyan), var(--v4-green)); + box-shadow: var(--v4-glow-cyan); + transition: width 0.3s ease; +} +.v4-boot-done { + text-align: center; + font-family: var(--v4-mono); + font-size: 1rem; + color: var(--v4-green); + text-shadow: var(--v4-glow-green); + margin-top: 16px; + letter-spacing: 3px; + opacity: 0; + transition: opacity 0.4s ease; +} +.v4-boot-done.v4-boot-done--show { opacity: 1; } + +/* ===== Seite ===== */ +.v4-page { + position: relative; + z-index: 1; + max-width: 1500px; + margin: 0 auto; + padding: 12px; + display: flex; + flex-direction: column; + gap: 12px; +} + +/* ===== Header ===== */ +.v4-header { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: 10px; + padding: 10px 16px; + background: var(--v4-surface); + border: 1px solid var(--v4-border); + border-radius: var(--v4-radius); + box-shadow: var(--v4-glow-cyan); +} +.v4-header-logo { + font-family: var(--v4-mono); + font-size: 1.2rem; + font-weight: 700; + color: var(--v4-cyan); + text-shadow: var(--v4-glow-cyan); + letter-spacing: 2px; +} +.v4-header-clock { display: flex; align-items: baseline; gap: 10px; } +.v4-clock-time { + font-family: var(--v4-mono); + font-size: 1.6rem; + font-weight: 700; + color: var(--v4-cyan); + text-shadow: var(--v4-glow-cyan); + font-variant-numeric: tabular-nums; +} +.v4-clock-date { font-size: 0.85rem; color: var(--v4-text-secondary); } +.v4-header-sun { display: flex; gap: 12px; } +.v4-sun-item { + font-family: var(--v4-mono); + font-size: 0.9rem; + color: var(--v4-amber); + text-shadow: var(--v4-glow-amber); +} +.v4-header-status { display: flex; align-items: center; gap: 8px; } +.v4-status-orb { + width: 12px; + height: 12px; + border-radius: 50%; + background: var(--v4-red); + box-shadow: var(--v4-glow-red); + transition: background 0.3s ease, box-shadow 0.3s ease; +} +.v4-status-orb.v4-status-orb--on { + background: var(--v4-green); + box-shadow: var(--v4-glow-green); + animation: v4-pulse 2s ease-in-out infinite; +} +.v4-status-text { font-size: 0.8rem; color: var(--v4-text-secondary); } + +/* ===== Grid ===== */ +.v4-grid { + display: grid; + grid-template-columns: 1fr 1.2fr 1fr; + gap: 12px; + align-items: start; +} + +/* ===== Zone ===== */ +.v4-zone { + background: var(--v4-surface); + border: 1px solid var(--v4-border); + border-radius: var(--v4-radius); + padding: 14px; + position: relative; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.4); +} +/* Eck-Clips (Cockpit-Look) */ +.v4-zone::before, +.v4-zone::after { + content: ''; + position: absolute; + width: 14px; + height: 14px; + border: 2px solid var(--v4-cyan); + opacity: 0.6; +} +.v4-zone::before { top: -1px; left: -1px; border-right: none; border-bottom: none; } +.v4-zone::after { bottom: -1px; right: -1px; border-left: none; border-top: none; } + +.v4-zone-title { + display: flex; + align-items: center; + gap: 8px; + font-family: var(--v4-mono); + font-size: 0.95rem; + font-weight: 700; + color: var(--v4-cyan); + text-shadow: var(--v4-glow-cyan); + letter-spacing: 2px; + margin-bottom: 12px; + padding-bottom: 8px; + border-bottom: 1px solid var(--v4-border); +} +.v4-zone-icon { font-size: 1.1rem; } + +.v4-sub-title { + font-family: var(--v4-mono); + font-size: 0.75rem; + font-weight: 700; + color: var(--v4-text-secondary); + letter-spacing: 2px; + margin: 14px 0 8px; + text-transform: uppercase; +} + +/* ===== Buttons ===== */ +.v4-btn { + appearance: none; + border: 1px solid var(--v4-border); + background: var(--v4-surface-2); + color: var(--v4-text); + border-radius: 6px; + padding: 8px 14px; + font-weight: 600; + font-size: 0.85rem; + cursor: pointer; + transition: transform 0.12s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; + display: inline-flex; + align-items: center; + gap: 6px; +} +.v4-btn:hover { + background: rgba(0, 229, 255, 0.12); + border-color: var(--v4-border-hover); + transform: translateY(-1px); + box-shadow: var(--v4-glow-cyan); +} +.v4-btn:active { transform: translateY(0); } +.v4-btn--primary { + border-color: rgba(0, 229, 255, 0.4); + background: rgba(0, 229, 255, 0.1); + color: var(--v4-cyan); +} +.v4-btn--on { + border-color: rgba(0, 255, 156, 0.4); + background: rgba(0, 255, 156, 0.1); + color: var(--v4-green); +} +.v4-btn--off { + border-color: rgba(255, 59, 92, 0.4); + background: rgba(255, 59, 92, 0.1); + color: var(--v4-red); +} +.v4-btn--big { padding: 12px 18px; font-size: 0.95rem; } +.v4-btn--icon { padding: 6px 10px; font-size: 1rem; } + +/* ===== Flash-Feedback ===== */ +@keyframes v4-flash-ok-anim { + from { box-shadow: 0 0 0 2px rgba(0, 255, 156, 0.9); } + to { box-shadow: 0 0 0 2px rgba(0, 255, 156, 0); } +} +@keyframes v4-flash-err-anim { + from { box-shadow: 0 0 0 2px rgba(255, 59, 92, 0.9); } + to { box-shadow: 0 0 0 2px rgba(255, 59, 92, 0); } +} +.v4-flash-ok { animation: v4-flash-ok-anim 0.6s ease-out; } +.v4-flash-err { animation: v4-flash-err-anim 0.6s ease-out; } + +/* ===== Energie-Zone ===== */ +.v4-gauge-wrap { + display: flex; + justify-content: center; + margin-bottom: 10px; +} +#v4_gauge { + width: 100%; + max-width: 360px; + height: auto; + aspect-ratio: 3 / 2; + display: block; +} +.v4-energy-stats { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 8px; + margin-bottom: 12px; +} +.v4-stat { + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 8px; + text-align: center; +} +.v4-stat-label { + display: block; + font-size: 0.65rem; + color: var(--v4-text-secondary); + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 4px; +} +.v4-stat-value { + font-family: var(--v4-mono); + font-size: 0.95rem; + font-weight: 700; + color: var(--v4-text); +} +.v4-chart-wrap { + background: rgba(0, 0, 0, 0.3); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 6px; + margin-bottom: 10px; + overflow: hidden; +} +#v4_power_chart, +#v4_daily_chart, +#v4_water_chart { + width: 100%; + height: auto; + aspect-ratio: 2 / 1; + display: block; +} +.v4-water { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 8px; + margin-bottom: 10px; +} +.v4-water-item { + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 8px; + text-align: center; +} +.v4-water-label { + display: block; + font-size: 0.65rem; + color: var(--v4-text-secondary); + text-transform: uppercase; + letter-spacing: 1px; + margin-bottom: 4px; +} +.v4-water-value { + font-family: var(--v4-mono); + font-size: 0.9rem; + font-weight: 700; + color: var(--v4-cyan); +} +.v4-wemos { + font-family: var(--v4-mono); + font-size: 0.8rem; + color: var(--v4-text-secondary); + text-align: center; + padding: 6px; + border: 1px dashed var(--v4-border); + border-radius: 6px; +} + +/* ===== Kommando-Zone: Licht-Tiles ===== */ +.v4-tiles { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 8px; +} +.v4-tile { + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 8px; + padding: 12px 6px; + text-align: center; + cursor: pointer; + transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease; + position: relative; + overflow: hidden; +} +.v4-tile:hover { border-color: var(--v4-border-hover); } +.v4-tile:active { transform: scale(0.96); } +.v4-tile-name { + display: block; + font-size: 0.75rem; + font-weight: 600; + color: var(--v4-text-secondary); + margin-bottom: 6px; +} +.v4-tile-orb { + display: block; + width: 14px; + height: 14px; + margin: 0 auto; + border-radius: 50%; + background: rgba(255, 255, 255, 0.15); + transition: background 0.3s ease, box-shadow 0.3s ease; +} +.v4-tile--on { + background: rgba(0, 255, 156, 0.12); + border-color: rgba(0, 255, 156, 0.5); + box-shadow: var(--v4-glow-green); +} +.v4-tile--on .v4-tile-name { color: var(--v4-green); } +.v4-tile--on .v4-tile-orb { + background: var(--v4-green); + box-shadow: var(--v4-glow-green); + animation: v4-pulse 2s ease-in-out infinite; +} +/* Ripple */ +.v4-tile-ripple { + position: absolute; + border-radius: 50%; + background: rgba(0, 229, 255, 0.3); + transform: scale(0); + animation: v4-ripple 0.5s ease-out; + pointer-events: none; +} +@keyframes v4-ripple { + to { transform: scale(3); opacity: 0; } +} + +/* ===== WLED ===== */ +.v4-wled { display: flex; flex-direction: column; gap: 10px; } +.v4-wled-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } +.v4-wled-label { font-size: 0.8rem; color: var(--v4-text-secondary); min-width: 80px; } +.v4-slider { flex: 1; min-width: 120px; accent-color: var(--v4-cyan); } +.v4-color { width: 48px; height: 36px; padding: 0; border: 1px solid var(--v4-border); border-radius: 6px; background: transparent; cursor: pointer; } + +/* ===== Rolladen ===== */ +.v4-rolladen { display: flex; flex-direction: column; gap: 6px; } +.v4-roll-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 6px 10px; +} +.v4-roll-name { font-size: 0.8rem; font-weight: 600; } +.v4-roll-btns { display: flex; gap: 4px; } +.v4-roll-btns .v4-btn { padding: 4px 8px; font-size: 0.75rem; } + +/* ===== Steckdosen ===== */ +.v4-sockets { display: flex; flex-direction: column; gap: 6px; } +.v4-socket-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 6px 10px; +} +.v4-socket-name { font-size: 0.8rem; font-weight: 600; } +.v4-socket-orb { + width: 16px; + height: 16px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.15); + cursor: pointer; + transition: background 0.3s ease, box-shadow 0.3s ease; +} +.v4-socket-orb.v4-socket-orb--on { + background: var(--v4-green); + box-shadow: var(--v4-glow-green); + animation: v4-pulse 2s ease-in-out infinite; +} + +/* ===== Haus ===== */ +.v4-house { display: flex; flex-direction: column; gap: 8px; } + +/* ===== Funksteckdosen ===== */ +.v4-funk { display: flex; flex-direction: column; gap: 6px; } +.v4-funk-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 6px 10px; +} +.v4-funk-state { + background: rgba(0, 0, 0, 0.25); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 8px; + margin-bottom: 10px; +} +.v4-funk-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 6px; +} +.v4-funk-item { + display: flex; + align-items: center; + justify-content: space-between; + gap: 6px; + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 5px 8px; +} +.v4-funk-name { font-size: 0.75rem; font-weight: 600; color: var(--v4-text-secondary); } +.v4-funk-val { + font-family: var(--v4-mono); + font-size: 0.8rem; + font-weight: 700; + color: var(--v4-text); +} +.v4-funk-val.v4-funk-val--on { color: var(--v4-green); text-shadow: var(--v4-glow-green); } +.v4-funk-val.v4-funk-val--off { color: var(--v4-red); text-shadow: var(--v4-glow-red); } +.v4-btn-group { display: flex; gap: 4px; flex-wrap: wrap; } +.v4-funk-row .v4-btn { padding: 4px 8px; font-size: 0.75rem; } + +/* ===== Status-Zone: Heizung ===== */ +.v4-heat { display: flex; flex-direction: column; gap: 6px; } +.v4-heat-row { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto auto; + gap: 6px 12px; + align-items: center; + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 8px 10px; + transition: border-color 0.2s ease; +} +.v4-heat-row:hover { border-color: var(--v4-border-hover); } +.v4-heat-name { font-size: 0.8rem; font-weight: 600; grid-column: 1; grid-row: 1; } +.v4-heat-tempwrap { + grid-column: 2; + grid-row: 1; + justify-self: end; + display: flex; + align-items: center; + gap: 6px; +} +.v4-heat-temp { + font-family: var(--v4-mono); + font-size: 1.1rem; + font-weight: 700; + text-align: right; +} +.v4-heat-temp--normal { color: var(--v4-text); } +.v4-heat-temp--warm { color: var(--v4-amber); } +.v4-heat-temp--hot { color: var(--v4-red); } +.v4-heat-dot { + width: 10px; + height: 10px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.15); +} +.v4-heat-dot--on { + background: var(--v4-amber); + box-shadow: var(--v4-glow-amber); + animation: v4-pulse 1.5s ease-in-out infinite; +} +.v4-heat-bar-wrap { + grid-column: 1 / 3; + grid-row: 2; + height: 8px; + background: rgba(255, 255, 255, 0.08); + border-radius: 4px; + position: relative; + overflow: hidden; +} +.v4-heat-set { + display: flex; + align-items: center; + gap: 4px; +} +.v4-heat-set--min { grid-column: 1; grid-row: 3; } +.v4-heat-set--max { grid-column: 2; grid-row: 3; } +.v4-heat-input { width: 46px; padding: 4px 6px; font-size: 0.8rem; } +.v4-btn--sm { padding: 4px 8px; font-size: 0.75rem; } + +/* ===== Stepper (Drehschalter) ===== */ +.v4-stepper { + display: inline-flex; + align-items: center; + gap: 2px; + background: rgba(0, 0, 0, 0.3); + border: 1px solid var(--v4-border); + border-radius: 999px; + padding: 2px; +} +.v4-stepper-btn { + appearance: none; + border: none; + background: var(--v4-surface-2); + color: var(--v4-cyan); + width: 26px; + height: 26px; + border-radius: 50%; + font-size: 1.1rem; + font-weight: 700; + line-height: 1; + cursor: pointer; + transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease; + display: inline-flex; + align-items: center; + justify-content: center; +} +.v4-stepper-btn:hover { + background: rgba(0, 229, 255, 0.2); + box-shadow: var(--v4-glow-cyan); +} +.v4-stepper-btn:active { transform: scale(0.9); } +.v4-stepper-val { + font-family: var(--v4-mono); + font-size: 0.85rem; + font-weight: 700; + color: var(--v4-text); + min-width: 48px; + text-align: center; + padding: 0 4px; +} +.v4-heat-bar { + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 0%; + background: linear-gradient(90deg, var(--v4-cyan), var(--v4-amber), var(--v4-red)); + border-radius: 4px; + transition: width 0.5s ease; +} +.v4-heat-band { + position: absolute; + top: 0; + bottom: 0; + background: rgba(255, 255, 255, 0.15); + border-left: 1px solid rgba(255, 255, 255, 0.3); + border-right: 1px solid rgba(255, 255, 255, 0.3); +} + +/* ===== Pool ===== */ +.v4-pool { display: flex; flex-direction: column; gap: 8px; } +.v4-pool-bar { + position: relative; + height: 20px; + background: rgba(255, 255, 255, 0.08); + border: 1px solid var(--v4-border); + border-radius: 999px; + overflow: hidden; +} +.v4-pool-bar-fill { + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 0%; + background: linear-gradient(90deg, rgba(0, 229, 255, 0.5), var(--v4-cyan)); + border-radius: 999px; + box-shadow: var(--v4-glow-cyan); + transition: width 0.6s ease; +} +.v4-pool-bar-fill--done { + background: linear-gradient(90deg, rgba(0, 255, 156, 0.5), var(--v4-green)); + box-shadow: var(--v4-glow-green); +} +.v4-pool-bar-label { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + font-family: var(--v4-mono); + font-size: 0.75rem; + font-weight: 600; + color: var(--v4-text); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); + pointer-events: none; +} +.v4-pool-set { display: flex; align-items: center; gap: 8px; } +.v4-pool-set-label { font-size: 0.75rem; color: var(--v4-text-secondary); } +.v4-input { + background: rgba(0, 0, 0, 0.3); + color: var(--v4-text); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 6px 10px; + font-size: 0.9rem; + width: 80px; + text-align: center; +} +.v4-input:focus { outline: none; border-color: var(--v4-cyan); } + +/* ===== Urlaub ===== */ +.v4-urlaub { + display: flex; + align-items: center; + gap: 10px; + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-radius: 6px; + padding: 10px; +} +.v4-urlaub-indicator { + width: 16px; + height: 16px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.15); + transition: background 0.3s ease, box-shadow 0.3s ease; +} +.v4-urlaub-indicator.v4-urlaub-indicator--on { + background: var(--v4-amber); + box-shadow: var(--v4-glow-amber); + animation: v4-pulse 1.5s ease-in-out infinite; +} +.v4-urlaub-text { + font-family: var(--v4-mono); + font-size: 0.9rem; + font-weight: 700; + color: var(--v4-text-secondary); + flex: 1; +} + +/* ===== Footer ===== */ +.v4-footer { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; + padding: 10px 16px; + background: var(--v4-surface); + border: 1px solid var(--v4-border); + border-radius: var(--v4-radius); + box-shadow: var(--v4-glow-cyan); +} +.v4-footer-label { + font-family: var(--v4-mono); + font-size: 0.8rem; + color: var(--v4-cyan); + text-shadow: var(--v4-glow-cyan); + letter-spacing: 1px; +} + +/* ===== Toasts ===== */ +.v4-toasts { + position: fixed; + bottom: 20px; + right: 20px; + display: flex; + flex-direction: column; + gap: 8px; + z-index: 10001; +} +.v4-toast { + background: var(--v4-surface-2); + border: 1px solid var(--v4-border); + border-left: 3px solid var(--v4-cyan); + border-radius: 6px; + padding: 10px 14px; + font-size: 0.85rem; + color: var(--v4-text); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); + animation: v4-toast-in 0.3s ease; + max-width: 300px; +} +.v4-toast--ok { border-left-color: var(--v4-green); } +.v4-toast--err { border-left-color: var(--v4-red); } +@keyframes v4-toast-in { + from { transform: translateX(30px); opacity: 0; } + to { transform: translateX(0); opacity: 1; } +} +.v4-toast.v4-toast--out { animation: v4-toast-out 0.3s ease forwards; } +@keyframes v4-toast-out { + to { transform: translateX(30px); opacity: 0; } +} + +/* ===== Animationen ===== */ +@keyframes v4-pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.6; } +} + +/* ===== Responsive ===== */ +@media (max-width: 1100px) { + .v4-grid { grid-template-columns: 1fr; } +} +@media (max-width: 768px) { + .v4-page { padding: 8px; } + .v4-header { flex-direction: column; align-items: flex-start; } + .v4-energy-stats { grid-template-columns: repeat(2, 1fr); } + .v4-tiles { grid-template-columns: repeat(2, 1fr); } + .v4-water { grid-template-columns: 1fr; } +} + +/* ===== Scrollbar ===== */ +::-webkit-scrollbar { width: 8px; } +::-webkit-scrollbar-track { background: var(--v4-bg); } +::-webkit-scrollbar-thumb { background: var(--v4-border); border-radius: 4px; } +::-webkit-scrollbar-thumb:hover { background: var(--v4-border-hover); } \ No newline at end of file diff --git a/heizung.gif b/heizung.gif new file mode 100644 index 0000000000000000000000000000000000000000..5f7996b857d4413cbb8cff0ecc9bafcce98576f9 GIT binary patch literal 3683 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 Bwj2Ne literal 0 HcmV?d00001 diff --git a/heizungV2.htm b/heizungV2.htm new file mode 100644 index 0000000..2122c8a --- /dev/null +++ b/heizungV2.htm @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +TTh + + + + + + + + + + +
+
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Raumaktuell °CheiztIST °C minIST °C maxSOLL °C minSOLL °C max
Wohnzimmer:="Temp Wohnen":°C + :="Einstellungen".Heizung."Heizung Wohnen min"::="Einstellungen".Heizung."Heizung Wohnen max": + + +
Arbeitszimmer:="Temp Arbeiten":°C + :="Einstellungen".Heizung."Heizung Arbeiten min"::="Einstellungen".Heizung."Heizung Arbeiten max": + + +
HWR:="Temp HWR":°C + :="Einstellungen".Heizung."Heizung HWR min"::="Einstellungen".Heizung."Heizung HWR max": + + +
Bad oben:="Temp Bad":°C + :="Einstellungen".Heizung."Heizung Bad min"::="Einstellungen".Heizung."Heizung Bad max": + + +
Eltern:="Temp Eltern":°C + :="Einstellungen".Heizung."Heizung Eltern min"::="Einstellungen".Heizung."Heizung Eltern max": + + +
Noah:="Temp Noah":°C + :="Einstellungen".Heizung."Heizung Kind1 min"::="Einstellungen".Heizung."Heizung Kind1 max": + + +
Mika:="Temp Mika":°C + :="Einstellungen".Heizung."Heizung Kind2 min"::="Einstellungen".Heizung."Heizung Kind2 max": + + +
Niko:="Temp Niko":°C + :="Einstellungen".Heizung."Heizung Gäste min"::="Einstellungen".Heizung."Heizung Gäste max": + + +
Dusche Gäste:="Temp Dusche":°C + :="Einstellungen".Heizung."Heizung Dusche min"::="Einstellungen".Heizung."Heizung Dusche max": + + +
+
+
+
+ + + + + + +
+ + + + diff --git a/heizung_state.html b/heizung_state.html new file mode 100644 index 0000000..96bf12b --- /dev/null +++ b/heizung_state.html @@ -0,0 +1,37 @@ +

:="Heizung Essen Küche Wohn": +

:="Heizung Arbeiten": +

:="Heizung HWR": +

:="Heizung Bad": +

:="Heizung Eltern": +

:="Heizung Noah": +

:="Heizung Mika": +

:="Heizung Niko": +

:="Heizung Gäste Dusche": +

:="Temp Wohnen": +

:="Temp Arbeiten": +

:="Temp HWR": +

:="Temp Bad": +

:="Temp Eltern": +

:="Temp Noah": +

:="Temp Mika": +

:="Temp Niko": +

:="Temp Dusche": +

:="Einstellungen".Heizung."Heizung Wohnen min": +

:="Einstellungen".Heizung."Heizung Wohnen max": +

:="Einstellungen".Heizung."Heizung Arbeiten min": +

:="Einstellungen".Heizung."Heizung Arbeiten max": +

:="Einstellungen".Heizung."Heizung HWR min": +

:="Einstellungen".Heizung."Heizung HWR max": +

:="Einstellungen".Heizung."Heizung Bad min": +

:="Einstellungen".Heizung."Heizung Bad max": +

:="Einstellungen".Heizung."Heizung Eltern min": +

:="Einstellungen".Heizung."Heizung Eltern max": +

:="Einstellungen".Heizung."Heizung Kind1 min": +

:="Einstellungen".Heizung."Heizung Kind1 max": +

:="Einstellungen".Heizung."Heizung Kind2 min": +

:="Einstellungen".Heizung."Heizung Kind2 max": +

:="Einstellungen".Heizung."Heizung Gäste min": +

:="Einstellungen".Heizung."Heizung Gäste max": +

:="Einstellungen".Heizung."Heizung Dusche min": +

:="Einstellungen".Heizung."Heizung Dusche max": +

\ No newline at end of file diff --git a/home-icon-hi.png b/home-icon-hi.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6088fd5c0810ec6c8ea43b14032e57ecd35f2e GIT binary patch literal 28104 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 j?f?Jp|Dy%VPOP;?b( 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

eZefro=dev{D#&U!IJ`8pC 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 literal 0 HcmV?d00001 diff --git a/images/blitz0.jpg b/images/blitz0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bba8941f70fb5b512468268a127e5048b9ed42d9 GIT binary patch literal 2508 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%0AA$<} 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�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 HF(3dt!e{sX literal 0 HcmV?d00001 diff --git a/images/aufgang.png b/images/aufgang.png new file mode 100644 index 0000000000000000000000000000000000000000..9906224bb5d658e8b51c5d97c8dad1ae895e4bee GIT binary patch literal 2404 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 W`z}(~(a=c%000025~J=FRw+xL(7 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