Skip to content

Dynamische Liste

Listet Datenpunkte automatisch anhand von Filtern (Rolle, ID-Muster, Raum, Funktion, Typ, Adapter) auf und synchronisiert sie periodisch. Jeder gefundene Eintrag wird je nach Wert als Schalter, Regler, Wert oder Sensor-Badge dargestellt.

Datenpunkt

Kein Haupt-Datenpunkt — die Einträge (entries[]) werden über die Filter ermittelt und beim Sync ergänzt. Booleans werden als Schalter, Zahlen mit Level-/Dimmer-Rolle als Regler, value.*/level-Rollen immer als Wert dargestellt.

Die Darstellung lässt sich erzwingen (displayType) — listenweit im Dialog → Tab Darstellung und pro Eintrag im Detail-Editor (siehe Darstellung der Datenpunkte) — inklusive switch für einen Schalter mit eigenen Schreibwerten, Status-Datenpunkt und Icon-/Bild-Stil, slider für einen Regler mit dem vollen Optionssatz des Schieberegler-Widgets (Skala, Schrittweite, Farbe, Balken-Optik, Fortschrittsanzeige) und value für den reinen Wert — beide unabhängig von Rolle und Datenpunkt-Name, time für Zeit-Datenpunkte (Uhrzeit / Datum / beides / eigenes Muster, siehe Statische Liste), datepicker für einen Datumswähler, select für ein Auswahlfeld und input für ein Eingabefeld in der Zeile.

Pro Eintrag (Dialog Datenpunkte verwalten → Abschnitt Datenpunkt) lässt sich der Wert außerdem nur für die Anzeige umrechnen und/oder als Uhrzeit/Datum formatieren, siehe Wert-Umrechnung / Zeit. Ohne eigene Einstellung gilt die globale Umrechnung der Liste.

Layouts

Default

Volle Zeilen mit Label, optionalem Raum/ID und Wert rechts — für Standardlisten.

Card

Kacheln im Raster (Breite via cardMinWidth) mit großem zentriertem Wert.

Compact

Zweispaltiges, dichtes Gitter — für viele Einträge auf wenig Platz.

Minimal

Inline-Pills mit Label und Wert — für kompakte Status-Anzeigen.

Count

Nur die Anzahl der (gefilterten) Einträge groß zentriert mit Icon und Titel.

Einstellungen

Im Editor unter Widget bearbeiten. Die Datenpunkte selbst liegen dahinter im eigenen Dialog Datenpunkte verwalten; im Panel bleiben nur die Optionen der Liste als Ganzes, in aufklappbaren Abschnitten.

Datenpunkte verwalten

Links alle Einträge, rechts die vollständige Konfiguration des ausgewählten. Der Dialog ist verschiebbar, größenveränderbar und merkt sich seine Größe.

Tab
Suchen & FilterDatenpunkt-Suche, Ausschlüsse, Trefferliste, Übernehmen — dazu Sync-Intervall und „Nur relevante DPs"
IconIcon vor dem Namen für alle Zeilen (siehe unten)
DarstellungDarstellung aller Zeilen samt typabhängiger Felder (siehe unten)
EinträgeGefundene Datenpunkte; rechts der Detail-Editor (Bezeichnung, Einheit, Darstellung, Farben)
BedingungenRegeln für alle Zeilen (siehe unten)
Zweite ZeileVorlage für zusätzliche Datenpunkte in allen Zeilen (siehe unten)
Klick auf ZeileDetail-Popup beim Klick auf eine Zeile (siehe unten)
NamenNamensmuster und Namens-Filter — Platzhalter wie bei der statischen Liste, inklusive [[{{parent}}.DeviceName]] für Namen aus einem eigenen Datenpunkt

Der Detail-Editor rechts ist in Abschnitte gegliedert: Datenpunkt · Beschriftung (Icon, Bezeichnung, Einheit, Nachkommastellen, Tausendertrennung) · Darstellung (mit dem gewählten Typ als Kennzeichen, darin alle typabhängigen Felder) · Zweite Zeile · Bedingungen · Farbschwellen · Verhalten (letzte Änderung, Klick auf Zeile).

Nachkommastellen, Tausendertrennung und Farbschwellen gelten pro Zeile und schlagen die Vorgabe der Liste aus dem Optionen-Panel — wie in der statischen Liste.

Icon vor dem Namen

Die Datenpunkte kommen aus einem Filter und ändern sich beim Sync, deshalb wird das Icon einmal für die ganze Liste gesetzt: Dialog → Tab Icon (Lucide / Iconify-ID, Größe in px, Standard 13, dazu die Farbe).

Quelle
entryIcon · entryIconSize · entryIconColorDialog → Tab Icon: gilt für alle Zeilen
entries[].icon · entries[].iconSizeDetail-Editor → Abschnitt Beschriftung: nur diese Zeile — die Farbe gibt es nur listenweit. Die Größe gilt auch für das listenweite Icon, das die Zeile blass im Auswahl-Button zeigt
entries[].switchIconSizeGröße des Schalter-Icons, unabhängig vom Icon vor dem Namen
icon · iconSize · iconColor einer Bedingungsolange die Regel greift — gewinnt gegen beide

Der Tab zeigt eine Vorschau der ersten Zeilen und wie viele Datenpunkte ein eigenes Icon haben; Eigene Icons entfernen setzt sie zurück, damit die Vorgabe überall gilt.

Darstellung der Datenpunkte

Wie beim Icon: die Datenpunkte kommen aus einem Filter und ändern sich beim Sync, deshalb wird die Darstellung einmal für die ganze Liste gesetzt — Dialog → Tab Darstellung, mit denselben Feldern wie im Detail-Editor (Typ plus alle typabhängigen Einstellungen).

Quelle
entryDisplayDialog → Tab Darstellung: gilt für alle Zeilen ohne eigene Darstellung
entries[].displayTypeDetail-Editor → Abschnitt Darstellung: nur diese Zeile

Die Vorgabe wird pro Zeile ganz oder gar nicht übernommen: Eine Zeile mit eigener Darstellung ist vollständig selbst konfiguriert (eigener Schalter-Stil, eigene Werte-Zuordnung …) und ignoriert die Vorgabe. Zeilen ohne eigene Darstellung übernehmen Typ und dessen Einstellungen; ihr Detail-Editor zeigt statt Auto die Schaltfläche Wie Liste (…).

Auto (keine Vorgabe) entfernt die listenweite Darstellung wieder — jede Zeile wird dann wie zuvor automatisch aus Wert und Rolle abgeleitet. Der Tab zeigt eine Vorschau der ersten Zeilen mit ihrer Darstellung; Eigene Darstellungen entfernen setzt die Ausnahmen zurück.

Zeilenspezifische Datenpunkte

Befehls- und Status-Datenpunkte einer Darstellung (Rollladen up/stop/down, Status-DP eines Schalters) zeigen auf einen festen Datenpunkt und gelten dann für jede Zeile. Sie gehören pro Eintrag gesetzt; der Tab weist darauf hin, sobald einer eingetragen ist.

Zweite Zeile (zusätzliche Datenpunkte)

Zusätzliche Datenpunkte unter dem Wert einer Zeile — Batterie, Signalstärke, Sollwert. Nur Anzeige, kein Schreiben. Felder, Plätze (links/mitte/rechts) und Formatierung wie bei der statischen Liste. Layouts default · card · compact, nicht minimal.

Zwei Quellen, pro Eintrag gesetzte Datenpunkte gewinnen:

Quelle
subDpTemplateDialog → Tab Zweite Zeile: gilt für alle Einträge
entries[].subDpsDetail-Editor → Abschnitt Zweite Zeile: ersetzt die Vorlage für diese Zeile

In der Vorlage darf die Datenpunkt-ID Platzhalter enthalten, aufgelöst gegen den Datenpunkt der jeweiligen Zeile:

Platzhalter
{{parent}}ID ohne letztes Segment, z. B. {{parent}}.BATTERY
{{parent2}}, {{parent3}}, …je eine Ebene höher, z. B. {{parent2}}.0.OPERATING_VOLTAGE
{{dp}}vollständige ID der Zeile
{{name}}letztes Segment der ID

Ein Platz mit leerer ID und source: lastChange zeigt, wann sich der Datenpunkt dieser Zeile zuletzt geändert hat — siehe Zeitstempel statt Wert.

{{parent2}} ist der Weg zu einem anderen Kanal desselben Geräts: bei HomeMatic liegt der Messwert in ….000A….1.ACTUAL_TEMPERATURE, Batterie und UNREACH dagegen im Wartungskanal ….000A….0.*. Oberhalb von adapter.instanz gibt es keine Ebene mehr.

Ohne Platzhalter gilt derselbe Datenpunkt für jede Zeile (Außentemperatur, Strompreis). Ein Beispiel-Eintrag im Tab liefert die Auswahl der Geschwister-Datenpunkte und die Vorschau der aufgelösten IDs. Über Beliebiger DP gewählte Datenpunkte desselben Geräts werden automatisch zum Muster — ein Klick auf die Batterie im Wartungskanal speichert {{parent2}}.0.OPERATING_VOLTAGE. Datenpunkte eines anderen Geräts bleiben absolut.

Zusätzlich pro Datenpunkt der zweiten Zeile:

Feld
Werte-Zuordnung (states)Tabelle Wert → Text, optional mit Icon und Farbe — z. B. trueONLINE. Ersetzt den Werttext; die Einheit entfällt dann
Bedingungen (conditions)dieselben Regeln wie je Zeile, nur für diesen einen Wert

Die Werte-Zuordnung ist dieselbe Tabelle wie beim Darstellungstyp Zustände und wirkt an beiden Stellen gleich.

OptionStandard
subDpTemplateVorlage für alle Einträge
subDpTemplateHideMissingtrueZeilen ohne den aufgelösten Datenpunkt bleiben leer statt zu zeigen

Bedingungen je Zeile

Regeln, die auf einen Wert reagieren und Farbe, Icon oder Text einer Zeile ändern. Zwei Orte, gleiche Regeln:

OrtGilt für
Dialog Datenpunkte verwalten → Tab Bedingungen (rowConditions)alle Zeilen
Detail-Editor → Abschnitt Bedingungen (entries[].conditions)nur diese Zeile

Die listenweiten Regeln laufen zuerst, die des Eintrags danach — pro Eigenschaft gewinnt die letzte. Ausblenden ist absorbierend.

Feld
targetrow (Standard) · name · value · icon — worauf die Regel wirkt
clauses / logicwie bei den Widget-Bedingungen, inkl. Vergleich gegen einen zweiten Datenpunkt
color · bg · iconColorTextfarbe · Zeilenhintergrund (nur row) · Icon-Farbe
iconanderes Icon, solange die Regel greift
iconSizeIcon-Größe in px, solange die Regel greift; leer lässt die eingestellte Größe
fontSizeTextgröße in px, solange die Regel greift; leer lässt die eingestellte Größe
textersetzt den angezeigten Text; die Einheit entfällt dabei
bold · italicSchriftschnitt
effectpulse · blink — lässt das Element pulsieren bzw. blinken
hideElement ausblenden

Eine Regel auf row gibt Textgröße, Textfarbe, Fett/Kursiv sowie Icon, Icon-Farbe und Icon-Größe an Name, Wert und Icon weiter; Hintergrund und Ausblenden bleiben bei der Zeile. Eine Regel auf einen einzelnen Teil gewinnt gegen sie.

Auf value wirken Textgröße, Textfarbe und Schriftschnitt in jeder Darstellung: auch auf die Schalter-Beschriftung, die Zustands- und Kontakt-Pille, die Rollen-Anzeige eines Sensors, den Wert von Schieberegler und Stepper sowie die Datums- und Text-Felder. Ohne Werttext — Umschalter ohne Beschriftung, Rollladen-Tasten, Wert-Tasten, Taster — gibt es nichts zu formatieren.

Datenpunkt einer Bedingung

Schreibweisebedeutet
{dp} (leer)Wert der Zeile selbst
hm-rpc.0.Gerät.UNREACHgenau dieser Datenpunkt, in jeder Zeile derselbe
{{parent}}.UNREACHNachbar-Datenpunkt der jeweiligen Zeile
{{dp}} · {{name}}vollständige ID bzw. letztes Segment der Zeile

Die doppelten Klammern sind dieselben Platzhalter wie in der zweiten Zeile. Zeilen, deren Datenpunkt einen Platzhalter nicht beantworten kann (kein Elternstrang), überspringen die Regel — statt gegen den wörtlichen Text zu vergleichen.

Beispiel

{{parent}}.UNREACH ist wahr → target: icon, Icon CloudOff, Icon-Farbe rot. Eine Regel, jede Zeile prüft ihr eigenes Gerät.

Datenpunkt-Suche

Dialog Datenpunkte verwalten → Tab Suchen & Filter. Mehrere Werte je Feld kommagetrennt; ID-Muster akzeptiert Text (Teilstring) oder /regex/.

Neben Raum und Funktion steht jede selbst angelegte enum-Kategorie zur Auswahl (z. B. enum.floors für Stockwerke). Enthält ein Eintrag Räume statt Datenpunkte, werden diese mit aufgelöst — ein Stockwerk findet also die Datenpunkte seiner Räume. Hängen die Mitglieder direkt an der Kategorie (enum.etage ohne Ebene darunter), ist die Kategorie selbst der Auswahleintrag. Gibt es außer enum.rooms und enum.functions nichts, bleibt das Feld leer und sagt das auch.

OptionStandard
filterRolesRollen (exakt, ODER-Verknüpfung)
filterIdPatternID-Muster (Text oder /regex/)
filterRoomsRäume
filterFuncsFunktionen
filterEnumseigene Kategorien: volle enum-IDs (enum.floors.og), ODER innerhalb einer Kategorie, UND über Kategorien
filterTypesTypen (boolean, number, …)
filterAdaptersAdapter-Instanzen (hm-rpc.0, …)
excludeIdPatternsauszuschließende ID-Muster
excludeIdseinzeln ausgeschlossene IDs
filterRelevanttruenur Widget-relevante Rollen/Typen übernehmen
syncIntervalMin5Sync-Intervall in Minuten

Klick auf Zeile

Dialog Datenpunkte verwalten → Tab Klick auf Zeile. Ein Klick auf eine Listenzeile öffnet ein Detail-Popup zu genau diesem Datenpunkt. Klicks auf Schalter, Regler oder Buttons in der Zeile schalten weiterhin direkt.

OptionStandard
rowClickActionAusauto · { "kind": "none" } (aus) · vollständige Klick-Aktion
rowPopupTitleZeilennameTitel des Popups
rowPopupWidth / rowPopupHeightautopx
rowPopupAutoCloseSecView/GlobalSekunden, 0 = aus

Standard ohne eigene Einstellung: Aus — Zeilen reagieren nicht auf Klicks. Eigene Aktion startet mit Popup: Alle Datenpunkte des Geräts, Umfang Gleicher Strang (Elternobjekt), Nur relevante Datenpunkte an — entspricht { "kind": "popup-dps", "scope": "parent", "relevantOnly": true }. Automatisch (Popup nach Rolle) muss aktiv gewählt werden.

Automatik nach Rolle des Datenpunkts:

RollePopup
level.dimmer · level.* · *dimmer* · *brightness*Dimmer
switch · switch.* · sensor.* · indicator.* · buttonSchalter
level.blind · *shutter* · *cover* · *awning*Rollladen
level.temperature · heating*Thermostat
media.* (außer media.volume)Schalter
sonstStandard: Datenpunkt (Wert, Steuerung, ID, letzte Änderung)

Zugewiesene Widget-Typ-Standards gelten auch hier — wer dem Typ switch eine eigene View zuweist, bekommt sie auch in der Liste.

Pro Datenpunkt lässt sich das im Detail-Editor überschreiben (entries[].clickAction):

Modus
Wie ListeÜbernimmt die Listen-Einstellung — der Normalfall
AutomatischErzwingt die Ableitung aus der Rolle, auch wenn die Liste auf Aus oder eine eigene Aktion steht
AusDiese Zeile reagiert nicht auf Klicks
Eigene AktionVollständige Klick-Aktion nur für diese Zeile — eine Zeile öffnet ein Widget-Popup, die nächste springt in einen anderen Tab. Popup-Titel und -Größe kommen weiterhin aus der Listen-Einstellung

Navigations-Aktionen (Sprung: Tab · Externe URL · Widget) springen direkt, statt ein Popup zu öffnen.

Badges-Layout

Ein Badge ist die ganze Zeile. Bei Automatisch schalten schaltbare Badges weiterhin, das Popup übernimmt nur Badges ohne eigenen Schalter (Sensoren, schreibgeschützte und numerische Werte). Eine ausdrücklich gesetzte Aktion gewinnt dagegen auch bei schaltbaren Badges.

Anzeige

OptionStandard
showTitletrueTitel anzeigen
showIcontrueIcon anzeigen
iconListLucide-Icon
iconSize20px
titleAlignleftleft · center · right
showCounttrueAnzahl hinter dem Titel
maxRows0Höchstzahl angezeigter Zeilen; 0 = alle. Macht die Höhe planbar, weil die Zeilen sonst erst zur Laufzeit entstehen
showMoretrueAbgeschnittene Zeilen als „+N weitere“ ausweisen
entryIconIcon vor dem Namen — gilt für alle Zeilen
entryIconSize13px
entryIconColor--text-secondaryFarbe des Zeilen-Icons (im Layout minimal sonst die Badge-Farbe)
entryDisplayDarstellung aller Zeilen ohne eigene — Typ plus dessen Einstellungen
showIdfalseDatenpunkt-ID unter dem Label
showRoomfalseRäume unter dem Label
showEntryLastChangefalseZeitstempel der letzten Änderung je Eintrag
decimalsglobalNachkommastellen numerischer Werte
cardMinWidth90min. Kachelbreite in px (nur card)
showDividerstrueTrennlinien zwischen Einträgen
wrapTextfalselange Labels/Werte umbrechen statt abschneiden
labelMinPercent50min. Breite des Labels in % (nur bei wrapText)

Werte & Farben

OptionStandard
trueText / falseTextglobale AN/AUS-Texte (Eintrag überschreibt)
activeColor--accent-greenTextfarbe bei AN
inactiveColor--text-secondaryTextfarbe bei AUS
activeBg / inactiveBgHintergrund des Eintrags je Zustand
valueTransform / valueFactor / valueOffsetglobale Wert-Umrechnung (Eintrag überschreibt)
valueTimeFormat / valueTimePatternglobale Zeit-Formatierung (Eintrag überschreibt)
colorThresholdsFarbskala aus [Schwelle, Farbe], z. B. [[17,"#ef4444"],[100,"#22c55e"]] — der Wert nimmt die Farbe der ersten Schwelle, unter der er liegt, oberhalb der letzten bleibt deren Farbe. Reihenfolge beliebig

Anzeige-Filter

Frontend-Filter als Chip im Header (nicht zu verwechseln mit der Datenpunkt-Suche oben); backendValueFilter steuert nur die Editor-Vorschau. Neben den drei eingebauten Modi bietet das Menü die eigenen Filter und ein Freitextfeld.

OptionStandard
valueFilterallall · active · inactive · ID eines eigenen Filters
filterActiveLabelNur aktiveChip-Text
filterInactiveLabelNur inaktiveChip-Text
hideBuiltinFiltersfalseNur aktive/Nur inaktive aus dem Menü nehmen
hideFilterSearchfalseFreitextfeld im Menü ausblenden
filterSearchPlaceholderSuchen …Platzhalter des Freitextfelds
hideFilterButtonfalseFilter-Chip ausblenden
backendValueFilterallVorschau-Filter im Editor

Freitext trifft Name, Datenpunkt-ID, Wert und alle Werte der zweiten Zeile.

Eigene Filter

Panel Filter & SortierungEigene Filter. Aufbau und Optionen (filterPresets[], rules[]) wie bei der statischen Liste — inklusive source: name und enthält nicht, mit denen sich Zeilen anhand ihres Namens ausschließen lassen. Regeln mit source: sub prüfen die Datenpunkte der zweiten Zeile — auch die per Vorlage aufgelösten, subKey trifft dann die Bezeichnung oder die DP-Endung ({{parent}}.BATTERYBATTERY).

Sortierung

Panel Filter & SortierungSortierung. Kriterien-Kette und Optionen (sortRules[]) wie bei der statischen Liste — inklusive empty für Zeilen ohne Wert. Der Dialog zeigt live die entstehende Reihenfolge.

mode: lastChange / lastUpdate sortieren nach dem Zeitstempel statt nach dem Wert — bei source: sub nach dem der zweiten Zeile. asc = älteste zuerst, desc = neueste zuerst.

Ein Kriterium mit source: sub liest die Datenpunkte der zweiten Zeile — auch die per Vorlage aufgelösten. subKey trifft dann die Bezeichnung oder die DP-Endung ({{parent}}.BATTERYBATTERY), leer = erster weiterer DP der Zeile.

Die älteren Optionen sortBy / sortOrder / sortBy2 / sortOrder2 wirken unverändert weiter; die erste Änderung im Dialog ersetzt sie durch sortRules[].

Summe

OptionStandard
showSumfalseSumme der sichtbaren numerischen Werte
sumLabelΣPrefix der Summenzeile
sumAlignleftleft · center · right
sumFontSize10px

Sammelschalter

OptionStandard
groupSwitchfalseSammelschalter im Header
groupActionTypeswitchswitch · dimmer · shutter · momentary
groupSwitchStyleslideslide · checkbox (nur switch)
groupDimmerOnValue100Schreibwert bei „alle an" (Dimmer)
groupExcludeIdsausgenommene Einträge

Zähler veröffentlichen

OptionStandard
publishCountfalsegefilterte Anzahl nach aura.0.lists.<id>.count schreiben