From 8d626abc6d4c6d28d32a1867df426d18f43d7248 Mon Sep 17 00:00:00 2001 From: "m0@nas" Date: Tue, 15 Sep 2026 11:11:10 +0200 Subject: [PATCH] Einstellungen -> Grundriss: Etagen, Raeume und Kacheln am Plan pflegen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neuer Reiter mit Plan-Editor: Etagen anlegen, umbenennen, sortieren, loeschen und als Standard markieren; Grundrissbild hochladen; Raeume mit Name, Kuerzel und Thermostat-Zweig anlegen und bearbeiten; Kacheln im Plan ziehen oder einen Raum ohne Kachel mit "Platzieren" und einem Klick setzen. Loest tools/kachelpositionen.php ab - Raster, Geisterkachel und die Umrechnung Mitte -> linke obere Ecke sind von dort uebernommen. - restricted/grundriss.php: alle Pruefungen und Schreibzugriffe. Eine Etage mit Raeumen oder Automatiken laesst sich nicht loeschen, die Ablehnung nennt die Namen. Raeume loeschen laesst ihre Geraete ohne Raum. - Grundrissbilder nach tiles/grundriss/ (beschreibbar, nicht im Git), nur PNG/JPEG/WebP, am Inhalt geprueft; SVG bewusst nicht. Prüfsumme im Dateinamen, alte hochgeladene Bilder werden weggeraeumt. - ajax/settings.php: ?action=grundriss und sieben POST-Aktionen, jede antwortet mit dem ganzen neuen Stand. - "Werte" springt in den Reiter Home-Kacheln und oeffnet die Kachel; Home-Kacheln und Geraete laden nach einer Grundriss-Aenderung nach. - Startseite ohne Etage mit platziertem Raum: Hinweis auf die Einstellungen statt einer leeren Zeichenflaeche. - README: Grundriss als Inhalt statt Code, neue Dateien und Endpunkte, Reihenfolge der Schema-Dateien fuer ein neues Haus. Backend mit einer Probe-Etage durchgespielt (auch Fehlerfaelle, Upload, Aufraeumen); Oberflaeche auf einer Probeseite mit echten Daten und Zeiger-Ereignissen geprueft: Ziehen, Antippen, Platzieren, neuer Raum. Co-Authored-By: Claude Opus 5 --- README.md | 107 +++++--- ajax/settings.php | 64 ++++- css/solar.css | 133 +++++++++ index.php | 2 +- js/solar/grundriss.js | 534 +++++++++++++++++++++++++++++++++++++ js/solar/settings.js | 44 +++ restricted/grundriss.php | 447 +++++++++++++++++++++++++++++++ restricted/home.php | 18 ++ restricted/rooms.php | 8 +- restricted/settings.php | 41 ++- tools/kachelpositionen.php | 214 --------------- tools/lageplan.php | 8 +- 12 files changed, 1365 insertions(+), 255 deletions(-) create mode 100644 js/solar/grundriss.js create mode 100644 restricted/grundriss.php delete mode 100644 tools/kachelpositionen.php diff --git a/README.md b/README.md index d250785..91508d4 100644 --- a/README.md +++ b/README.md @@ -49,9 +49,11 @@ smart/ │ ├── header.php footer.php Rahmen jeder Seite, Menü, Skript-Einbindung │ ├── home.php solar.php heat.php history.php │ ├── skoda.php weather.php settings.php logs.php ← die acht Seitenvorlagen -│ ├── rooms.php Räume, Etagen, Kachelwerte, Symbole +│ ├── rooms.php Etagen und Räume lesen (homeMesh), Kachelvorgabe, Symbole +│ ├── grundriss.php Etagen, Räume, Kachelpositionen, Bilder ändern (Reiter Grundriss) +│ ├── meshdb.php meshDb(): Verbindung zu homeMesh │ ├── costs.php Preistabellen + solarDb() -│ ├── automations.php Automatiken, Gerätekatalog + meshDb() +│ ├── automations.php Automatiken, Gerätekatalog │ ├── kacheln.php Anzeigewerte der Home-Kacheln (Modell zur Maske) │ ├── roomControls.php Bedienelemente des Raum-Modals │ ├── commands.php ein Kommando tatsächlich abschicken @@ -68,8 +70,8 @@ smart/ ├── js/solar/ der eigene JavaScript-Code ├── js/ Fremdbibliotheken, alle lokal (kein CDN) ├── css/solar.css das eigene Stylesheet (Theme + alle Bauteile) -├── assets/img/ Grundriss-Renderings OG/EG/UG/AG, Icons -├── tiles/ Kartenkacheln-Zwischenspeicher (nicht im Git) +├── assets/img/ mitgelieferte Grundriss-Renderings dieses Hauses, Icons +├── tiles/ beschreibbar, nicht im Git: Kartenkacheln, grundriss/ (hochgeladene Grundrisse) └── *.sql Schema-Dateien zum Nachziehen von Hand ``` @@ -185,7 +187,7 @@ genau die Topics, die auf den Kacheln stehen (`tileTopics()` in `rooms.php`). | `history` | `history.php` | `jahresstatistik.js`, `historyMQTT.js` | `energyHistory` (6 ×), `getStats` | — | | `skoda` | `skoda.php` | `skodaMQTT.js` | `skoda.php?was=…`, `skodaCmd.php`, `tile.php` | `solarManager/#` | | `weather` | `weather.php` | `weatherMQTT.js` | nichts — das Meteogramm ist ein fremdes Dokument im `