Raeume ueber ihre feste Nummer: actors.room_id, Raum-Modal, Thermostat-Zweig
Geraete hingen ueber den Text "Etage/Raum" an ihrem Raum, das Raum-Modal zerlegte "EG_Bad" am Unterstrich, und das Thermostat-Topic wurde aus Etage und Name zusammengesetzt. Ein umbenannter Raum haette still alle Geraete, seinen Temperaturregler und sein Heizsymbol verloren. - actors.room (Text) -> actors.room_id, Fremdschluessel auf rooms, beim Loeschen eines Raums SET NULL. Alle 59 Zuordnungen uebernommen. - automations.floor: ENUM(UG,EG,OG,AG) -> Verweis auf floors. Eine neue Etage kann damit auch Automatiken tragen. - room.php nimmt ?room=<Nummer>; Solltemperatur geht an rooms.thermostat + /changeSetTemp. - homeMQTT.js: Heizsymbol, Regler und Ist-Werte ueber mqttZweig(thermostat) statt mqttData.Raumtemp[Etage][Name]. - Raumvorschlaege in den Einstellungen: Messwerte unter dem Thermostat- Zweig eines Raums statt fest Raumtemp/<Etage>/<Name>. - Schluessel in raumListe(), Katalog und Maske ist die Raumnummer als Text. Geprueft gegen den Stand davor: Startseite gleich bis auf das Klickziel, jede der 25 Kacheln oeffnet ihren eigenen Raum; Geraeteliste, Vorschlaege, Editor-Katalog und die eigenen Geraete je Kachel gleich. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+10
-6
@@ -156,6 +156,9 @@ function kachelListe()
|
||||
"floor" => $room["floor"],
|
||||
"floorLabel" => floorLabel($room["floor"]),
|
||||
"room" => $room["id"],
|
||||
// Die feste Raumnummer, als Text wie in raumListe(): die Maske
|
||||
// stellt damit die Geraete des eigenen Raums nach oben.
|
||||
"nr" => strval($room["nr"]),
|
||||
"name" => $room["mqtt"],
|
||||
"eigen" => isset($room["werte"]),
|
||||
"werte" => $room["werte"] ?? kachelVorgabe($room),
|
||||
@@ -219,18 +222,19 @@ function kachelKatalog()
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* Etage und Raum auch als Kuerzel, nicht nur ausgeschrieben: die
|
||||
* Etage und Raum auch als Schluessel, nicht nur ausgeschrieben: die
|
||||
* Maske stellt die Geraete des eigenen Raums nach oben und muss dafuer
|
||||
* genau vergleichen koennen. actors.room steht als "EG/Technik" da -
|
||||
* dieselben Kuerzel, die auch rooms.php benutzt.
|
||||
* genau vergleichen koennen. Der Raum ist die feste Raumnummer
|
||||
* (actors.room_id), dieselbe wie "nr" in kachelListe(); die Etage das
|
||||
* Kuerzel, das deviceCatalog() schon als floorLabel fuehrt.
|
||||
*/
|
||||
$wo = explode("/", (string)($g["room"] ?? ""), 2);
|
||||
$hatRaum = ($g["room"] ?? null) !== null && $g["room"] !== "";
|
||||
$geraete[] = [
|
||||
"label" => $g["label"],
|
||||
"floor" => $g["floorLabel"],
|
||||
"floorKey" => $wo[0] ?? "",
|
||||
"floorKey" => $hatRaum ? $g["floorLabel"] : "",
|
||||
"raum" => $g["roomName"],
|
||||
"raumKey" => $wo[1] ?? "",
|
||||
"raumKey" => $hatRaum ? strval($g["room"]) : "",
|
||||
"werte" => $werte,
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user