Grundriss aus der Datenbank: Etagen und Raeume in homeMesh

Etagen, Raeume, Kachelpositionen und Kachelwerte standen als Tabelle in
restricted/rooms.php, die Werte zusaetzlich ueberschreibbar in
solarLog.kachelWerte. Fuer ein anderes Haus haette man den Quelltext
umschreiben muessen.

Jetzt liegen sie in homeMesh.floors und homeMesh.rooms
(homeMesh_grundriss.sql). rooms.php liest sie und gibt sie in der
bisherigen Form weiter; Startseite, Menue, Editor und Einstellungen sind
unveraendert - vorher und nachher als HTML verglichen, gleich bis auf
Livewerte und die zwei neuen Felder nr und thermostat in homeRooms.

- Vorgabe einer Kachel ist jetzt allein das Thermostat (rooms.thermostat):
  Soll, Ist, Feuchte - sonst nichts. Was bisher im Code als Vorgabe stand,
  gilt damit als selbst gesetzt.
- Grundrissbild je Etage (floors.bild) statt assets/img/<code>.png.
- Standard-Etage (floors.standard) statt "OG" an vier Stellen.
- meshDb() in eigener Datei, sonst Ring zwischen rooms.php und
  automations.php.
- solarLog_kacheln.sql entfaellt; die Tabelle kachelWerte liest niemand mehr.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 10:29:58 +02:00
co-authored by Claude Opus 5
parent 483f08888e
commit 3636a134d6
12 changed files with 278 additions and 336 deletions
+2 -14
View File
@@ -14,21 +14,9 @@
* ausgewertet wird any(all(gruppe)).
*/
require_once(__DIR__ . "/mysql.php");
require_once(__DIR__ . "/meshdb.php");
require_once(__DIR__ . "/rooms.php");
/** Verbindung zur Geraete- und Automatik-Datenbank. */
function meshDb()
{
static $db = null;
if ($db === null) {
$db = new mysqli($GLOBALS["mysql_server"], $GLOBALS["mysql_MeshUser"],
$GLOBALS["mysql_MeshPass"], $GLOBALS["mysql_MeshDB"]);
$db->set_charset("utf8mb4");
}
return $db;
}
/**
* Operatoren, die zu einem Datentyp passen. Immer ASCII - die huebschen
* Zeichen macht erst die Anzeige daraus. Frueher schickte der Editor sein
@@ -796,7 +784,7 @@ function emptyAutomation($floor)
"name" => "",
// Aufgerufen wird der Editor immer aus einem Etagenreiter. Fehlt die
// Angabe trotzdem, gilt dieselbe Etage wie auf der Startseite.
"floor" => in_array($floor, $GLOBALS["floors"], true) ? $floor : "OG",
"floor" => in_array($floor, $GLOBALS["floors"], true) ? $floor : standardEtage(),
"enabled" => true,
"window_from" => "00:00",
"window_to" => "23:59",