Lovelace: Abschnitte je Client sichtbar machen (nicht systemweit!)

Moin zusammen,

TL;DR
Ich bastle gerade an einem neuen Dashboard-Konzept und habe eine Idee im Kopf, für die ich folgendes bräuchte:

  1. Ein- und Ausblenden von n Abschnitten auf einer Ansicht in einem Dashboard
  2. Sichtbarkeit soll clientseitig und benutzerunabhängig steuerbar sein
  3. Ansteuerung der Ansicht via URL (z. B. per URL/Dashboard/Ansicht/Hash)
  4. Einfaches Anlegen neuer Ansichten, Abschnitte und Benutzer (möglichst wenig Copy & Paste)
  5. Keine Redundanz in der Pflege (ein Abschnitt soll mehrfach referenziert werden können)

Leider bekomme ich das weder nativ realisiert, noch finde ich eine passende Lösung in HACS. Vielleicht hat ja jemand eine Idee, wie ich sowas umsetzen könnte.


Etwas ausführlicher:

Ich möchte einen sogenannten “Room Assistant” in Form eines Dashboards erstellen. Dabei soll jede Ansicht eines Dashboards einen einzelnen Raum abbilden. Diese Raum-Ansichten beinhalten dann thematisch gruppierte Informationen und Steuerungen.

Eine Ansicht bzw. ein Raum besteht z. B. immer aus:

  • einem Header-Bereich mit allgemeinen Infos (immer sichtbar)
  • einer Menüleiste (immer sichtbar)
  • mehreren Themenabschnitten (immer nur ein Thema ist gleichzeitig sichtbar), z. B.:
    • Raumklima
    • Rolläden
    • Fenster
    • Licht
    • Bewegung
    • Automationen
    • ggf. auch spezielle Themen wie z. B. “3D-Drucker”

Die Menüleiste enthält Schaltflächen für diese Themen. Wenn ich z. B. auf “Raumklima” klicke, sollen nur die Abschnitte eingeblendet werden, die diesem Thema zugeordnet sind – etwa Temperatur- und Feuchtigkeitssensoren, Heizkörpersteuerungen, aber auch bestimmte Automationen. Diese Automationen sollen aber nicht redundant gepflegt werden müssen, da sie ggf. auch im Thema “Automationen” auftauchen.

Das Ganze lässt sich theoretisch mit einem input_select und der visibility -Funktion in Lovelace umsetzen – soweit nichts Neues.
Aber jetzt kommt das Problem:

Das Problem:

Die Sichtbarkeitssteuerung über einen globalen Helfer wirkt systemweit – d. h. wenn ich im Wohnzimmer auf „Raumklima“ wechsle, sieht meine Frau im Nähzimmer plötzlich auch „Raumklima“. Wechselt sie dann auf „Licht“, springt auch meine Ansicht um. Das ist natürlich nicht gewollt.

Die Idee, für jeden Benutzer einen eigenen Helfer anzulegen, wäre ein Workaround – aber bei 4 Benutzern × ca. 20 Räumen entsteht ein Pflegeaufwand, den ich eigentlich vermeiden möchte.
Ich müsste dann in jedem Abschnitt alle Benutzer-Helfer berücksichtigen.

Weitere Überlegung:

Ein zusätzliches Problem: Wenn man zwischen Räumen wechselt, bleibt das zuletzt gewählte Thema aktiv – z. B. „Licht“ im Wohnzimmer → Wechsel ins Bad → auch dort ist „Licht“ aktiv. Das kann sinnvoll sein („Feature“), wird aber dann problematisch, wenn ein Raum das Thema gar nicht hat (z. B. „Fenster“ gibt es nicht im Lagerraum oder „3D-Drucker“ gibt es nur im Büro).

Vielleicht ließe sich hier eine Art „Zurücksetzen des Helfers beim Raumwechsel“ umsetzen. Da würde man sicherlich was finden. Oder es gibt immer ein Fallback auf den Ansichten.

URL-Thematik:

Eine weitere Anforderung ist, dass ich einen Raum mit einem bestimmten Thema direkt über eine URL aufrufen möchte. Ich stelle mir z. B. vor, dass ich eine Notification aufs Handy bekomme, dass der 3D-Drucker A fertig ist. In dieser Notification soll dann ein Link enthalten sein, der mich direkt zum entsprechenden Raum und Thema führt – ähnlich wie es bei Popups in Bubble Cards funktioniert. Die oben genannte Lösung bietet das so leider nicht.

Die Nutzung von Popups über Bubble Cards ist für mich auch keine Option, da das weder meiner Vorstellung von UX noch von UI entspricht.

Brainstorming:

Ich hatte überlegt, selbst etwas zu schreiben, sodass ich Abschnitten per JavaScript IDs zuweisen und dann via CSS-Klassen (display: none ) ein- und ausblenden kann. Das wäre aber keine fertige oder wartbare Lösung.

ChatGPT hat einige Ansätze genannt, darunter browser_mod und custom:fold-entity-row , aber das war nicht zielführend – es sei denn, ich habe etwas übersehen. Es gab auch noch state-switch , was eigentlich ganz interessant war, allerdings nicht auf Abschnitte anwendbar ist sondern nur auf Cards und schon seit zwei Jahren nicht mehr weiterentwickelt wurde da vermutlich dieses Plugin durch die Sichtbarkeit Funktion von Lovelace abgelöst wurde – also leider auch nicht passend.


Ich hoffe, man versteht einigermaßen, was ich erreichen will.
Würde mich freuen, wenn jemand eine clevere Lösung kennt – oder sagt: „Geht (noch) nicht, aber hier ist ein Workaround“.