Skip to content

Statusübersicht ​

Zeigt von selbst, was Aufmerksamkeit braucht: offene Fenster und Türen, schwache Batterien, nicht erreichbare Geräte, Rauch-/Wasseralarme, eingeschaltete Lichter. Die Geräte werden über Rollen und Gewerke gefunden, eine Liste muss niemand pflegen.

Layouts ​

Layout
defaultnach Kategorie gruppiert
compacteine Liste, sortiert
twolineZweizeilig: Punkt in der Farbe der Schwere, Name fett, darunter Messwert und Hinweise, große Knöpfe rechts; Überschrift nur bei mehreren Kategorien
cardKacheln
minimalPillen
countnur der Zähler
historyZuletzt gewechselt – geschlossene Hinweise aus dem Adapter-Verlauf, siehe unten

Knöpfe (Zeilen-Aktionen, „Gewechselt“, „Später“) gibt es in default, compact und twoline.

Layout „Zweizeilig“

Batterien erkennen ​

Quellezählt als Batterie
Rolle value.battery (Zahl)immer, Prozent gegen batteryThreshold
LOWBAT/LOW_BAT (Rolle indicator.lowbat oder Name)außer HomeMatic immer
HomeMatic-LOWBATnur wenn das Gerät OPERATING_VOLTAGE hat oder sein Modell in der Batterie-Bibliothek steht (klassische Geräte wie HM-Sec-SCo, HM-Sec-RHS, HM-Sec-SD-2) oder ihm ein Batterietyp zugewiesen ist
HomeMatic, Modell unbekannt, ohne Spannungnein – Netz-Aktoren tragen ebenfalls ein LOWBAT

LOWBAT in Kanal 0 und 1 desselben Geräts ergibt eine Zeile (Kanal 0).

FallAbhilfe
Tote Doubletten: dieselben HmIP-Seriennummern (000…) zusätzlich unter einer alten hm-rpc-Instanz, Werte eingefrorenexcludeIdPatterns (Teilstring oder /regex/, z. B. /^hm-rpc.2.000/) – sonst werden sie mitüberwacht

Merkliste ​

Batteriegeräte (vor allem HomeMatic) setzen LOWBAT bei Kälte oder Last kurz auf true und danach wieder auf false. Mit der Merkliste (eigener Abschnitt unter den Kategorien) bleibt ein solcher Hinweis stehen, bis er geschlossen wird – für Batterien, nicht erreichbare Geräte und ausgelöste Rauch-/Wassermelder.

OptionVorgabe
latchBatteryausschwache Batterien merken
latchUnreachausAusfälle merken
latchAlarmausausgelöste Rauch-/Wassermelder merken
latchSnoozeDays2„Später“ stellt um so viele Tage zurück
latchRecheckDays7Nachkontrolle nach dem Schließen
latchAutoCloseausBatterie: schließt bei deutlichem Spannungs-/Prozentsprung
latchConfirman„Gewechselt“/„Quittieren“ erst nach zweitem Tippen
latchIgnoreausKnopf „Ignorieren“ (mit Rückfrage) – für Fehlalarme, wirkt auch ohne Merkliste
latchActionColors–Farbe je Knopf { ack, snooze, ignore } (Text + Rahmen), CSS-Farbe oder Token
showIgnoredausignorierte Datenpunkte gedämpft zeigen, mit „Aufnehmen“
Anzeige in der ZeileBedeutung
seit 05.10.erste Meldung
3× gemeldetso oft von „ok“ auf „Problem“ gewechselt
meldet zurzeit nichts, bleibt gemerktDatenpunkt ist wieder ok – Zeile gedämpft
zurückgestellt bis 07.10.„Später“ getippt – gedämpft, zählt nicht im Zähler
trotz Wechsel am 01.10.in der Nachkontrolle erneut gemeldet
Regel
NachkontrolleNur eine Meldung mindestens 10 min nach dem Schließen öffnet wieder – ein alter, stehengebliebener Wert nicht.
Automatisch schließen (Spannung)OPERATING_VOLTAGE mindestens 0,3 V und 25 % über dem tiefsten Wert des Eintrags
Automatisch schließen (Prozent)mindestens 40 % und 30 Punkte über dem tiefsten Wert
Automatisch schließen (nur LOWBAT)nie – klassische HomeMatic-Geräte ohne Spannung schließt „Gewechselt“; LOWBAT flattert bei Kälte

Die Liste führt der Adapter: alle Browser sehen dieselbe, „Gewechselt“ schließt überall gleichzeitig, und gemerkt wird auch ohne offenen Browser.

Ignorieren
WofürMeldungen, die nie von selbst verschwinden – z. B. eine leere Wallbox, deren vehicleSoc dauerhaft 0 % meldet
Wirkungwird nie mehr gemerkt, kein Event mehr, in keiner Statusübersicht sichtbar
Beim Ignorierenvorhandener Eintrag verschwindet sofort; Event closed mit reason: "ignored"; kein Verlaufseintrag
Zurücknehmen„Aufnehmen“ (mit showIgnored) oder unignore:<id> – der aktuelle Wert zählt sofort wieder

excludeIdPatterns, excludeIds und filterAdapters wertet der Adapter aus der gespeicherten Konfiguration selbst aus – eine Änderung wirkt sofort, auch ohne offenen Browser.

Adapter-States ​

StateRichtungInhalt
aura.0.status.<cat>.listAdapter → alleJSON-Liste der Einträge
aura.0.status.<cat>.cmdWidget / Skript → AdapterBefehle, siehe unten
aura.0.status.<cat>.eventAdapter → Skriptnew · reopened · closed (JSON)
aura.0.status.<cat>.historyAdapter → allegeschlossene Einträge, neueste zuerst (JSON)
aura.0.status.<cat>.ignoredAdapter → alleignorierte Datenpunkte {id, name, ignoredAt} (JSON)
aura.0.status.<cat>.cmdResultAdapter → SkriptErgebnis des letzten Befehls {ts, cmd, ok, done, errors, notes}
aura.0.status.<cat>.sourcesAdapterwelche Widgets was beobachten
aura.0.status.registerWidget → AdapterAnmeldung der Widgets

<cat> = battery, unreach oder alarm.

Feld eines Eintrags
id, name, roomDatenpunkt, Gerätename, Raum
since, lasterste / letzte Meldung (ms)
countwie oft gemeldet
activemeldet gerade
snoozedUntilzurückgestellt bis (ms)
ackedAt, closedBygeschlossen am, durch ack / auto
reopenedAfterwieder geöffnet nach Schließen am (ms)
Befehl
ack:<id>schließen („Gewechselt“)
snooze:<id> / snooze:<id>@3zurückstellen (Vorgabe 2 Tage)
unsnooze:<id>Zurückstellen aufheben
add:<id> / add:<id>@2026-09-20Eintrag anlegen, optional mit „seit“
remove:<id>Eintrag löschen, ohne Nachkontrolle
reopen:<id>@<closedAt>Wechsel zurücknehmen: Verlaufseintrag weg, Eintrag wieder offen, Event reopened mit reason: "manual"
ignore:<id>nie mehr merken, Eintrag sofort weg
unignore:<id>Ignorieren aufheben
import:<JSON-Array>alten Verlauf übernehmen: {datenpunkt, ts, seit, name, art} oder das eigene Format; Doppelte werden übersprungen
{"cmd":"add","id":"…","since":…,"count":3}JSON, auch als Array

<id> ist der Datenpunkt, die Geräte-Id oder nur die Seriennummer (ack:0020da499b8f41). Mehrere Ids kommagetrennt: remove:<id1>,<id2>.

Befehle laufen nacheinander. Jeder wird mit ack=true bestätigt; vorher steht sein Ergebnis in cmdResult (ok: false + errors bei unbekannter Id oder Tippfehler).

js
// Benachrichtigung bei neuem oder wieder geöffnetem Eintrag
on({ id: 'aura.0.status.battery.event', change: 'any' }, (obj) => {
    const e = JSON.parse(obj.state.val);
    if (e.type === 'new') sendTo('telegram.0', `Batterie schwach: ${e.name}`);
    if (e.type === 'reopened') sendTo('telegram.0', `Batterie wieder schwach: ${e.name}`);
    // closed: reason ack / auto = gewechselt; remove / ignored = keine Wechsel-Meldung
    if (e.type === 'closed' && (e.reason === 'ack' || e.reason === 'auto'))
        sendTo('telegram.0', `Batterie gewechselt: ${e.name}`);
});

// Bestehenden Verlauf übernehmen (0_userdata.0.Batterien.Verlauf holt der Adapter
// beim Start selbst, solange sein eigener Verlauf leer ist)
setState('aura.0.status.battery.cmd', `import:${getState('0_userdata.0.Batterien.Verlauf').val}`);

// Bestehende Merkliste übernehmen (Schlüssel = Seriennummer)
const alt = JSON.parse(getState('0_userdata.0.Batterien.Merkliste').val || '{}');
setState('aura.0.status.battery.cmd', JSON.stringify(
    Object.entries(alt).map(([serial, v]) => ({ cmd: 'add', id: serial, since: v.since })),
));

Inhalt veröffentlichen ​

Die angezeigten Hinweise als Datenpunkte, z. B. für einen Tagesbericht. Der Adapter wertet die Werte selbst aus, auch ohne geöffneten Browser. Welche Datenpunkte dazugehören, meldet das Widget beim ersten Öffnen nach dem Speichern.

OptionStandard
publishCountfalseHinweise nach aura.0.lists.<id>.* schreiben
DatenpunktInhalt
aura.0.lists.<id>.countAnzahl der Zeilen
aura.0.lists.<id>.itemsZeilen als JSON-Array
aura.0.lists.<id>.textZeilen als Text „Raum: Name (Wert)“, eine pro Zeile
aura.0.lists.<id>.tsletzte inhaltliche Änderung (ms)
Feld in items
id, name, roomDatenpunkt, angezeigter Name, Raum
categorywindow · battery · unreach · alarm · light
severity, textcrit · warn · ok, Statustext („Geöffnet“, „12 %“)
val, lcRohwert, letzte Änderung (ms)
latched, sincegemerkter Hinweis, gemeldet seit (ms)
js
// javascript-Adapter: jeden Abend um 22 Uhr
schedule('0 22 * * *', () => {
    const n = getState('aura.0.lists.<id>.count').val;
    if (!n) return;
    const text = getState('aura.0.lists.<id>.text').val;
    sendTo('email.0', { subject: `${n} Hinweise`, text });
    sendTo('telegram.0', { text: `${n} Hinweise\n${text}` });
});

Zuletzt gewechselt ​

Layout history: eine zweite Statusübersicht neben der Merkliste, die zeigt, was geschlossen wurde. Die Daten führt der Adapter (aura.0.status.<cat>.history), sie überstehen einen Neustart und sind auf allen Geräten gleich.

Layout „Zuletzt gewechselt“

Zeile
Namewie in den anderen Layouts (namePattern, nameFilters)
vor 3 TagenZeitpunkt des Wechsels – genau im Tooltip
per Knopf / automatisch„Gewechselt“ getippt bzw. Spannungs-/Prozentsprung erkannt
3 Wochen schwachZeit von der ersten Meldung bis zum Wechsel
hielt 14 MonateZeit seit dem vorigen Wechsel desselben Geräts – nur ab dem zweiten
1,1 V → 1,5 VSpannung/Prozent vor und nach dem Wechsel, wenn bekannt
↺„Wieder öffnen“ – nach zweitem Tippen zurück in die Merkliste
OptionVorgabe
maxRows–höchstens so viele Zeilen, Rest als „+N weitere“; macht die Höhe planbar
maxAgeDays–nur Wechsel der letzten N Tage
showReasonanper Knopf / automatisch
showDurationanwie lange schwach
showLifetimeanwie lange die Batterie davor hielt
showRoomanRaum
catBattery, catUnreach, catAlarmanwelche Verläufe
excludeIds, excludeIdPatterns, filterRooms, filterFuncs, filterAdapters–wie in den anderen Layouts

Die Merkliste-Optionen (latch…), Zeilen-Aktionen und die Bewertung der Live-Werte wirken in diesem Layout nicht. Die Verlaufs-Instanz meldet nichts beim Adapter an – das tut die Live-Instanz.

Adapter-Einstellung (Instanz)Vorgabe
Gespeicherte Wechsel50je Kategorie
Wechsel aufbewahren (Tage)7300 = unbegrenzt

Der jeweils letzte Wechsel eines Geräts bleibt immer erhalten, damit der nächste „hielt …“ zeigen kann.

Feld eines Verlaufseintrags
id, name, roomDatenpunkt, Gerätename, Raum
sinceschwach seit (ms)
closedAtgewechselt am (ms)
reasonack (Knopf) · auto (Sprung erkannt)
levelBefore, levelAfter, unitSpannung/Prozent vor und nach
countwie oft gemeldet
prevClosedAtvoriger Wechsel desselben Geräts (ms)
importedaus einem alten Verlauf übernommen

Liste und Verlauf: Ein geschlossener Eintrag bleibt für die Nachkontrolle (latchRecheckDays) mit ackedAt/closedBy in list – nur dort kann eine neue Meldung ihn wieder öffnen („trotz Wechsel am …“). Der Wechsel selbst steht ab dem Schließen in history und bleibt dort, wenn der Listeneintrag nach der Nachkontrolle verschwindet.

Zeilen-Aktionen ​

Eigene Knöpfe am Zeilenende, die einen Wert in einen Datenpunkt schreiben (rowActions).

Feld
labelBeschriftung
targetDpZiel-Datenpunkt
valueWert, Platzhalter erlaubt
categoriesnur bei diesen Kategorien (leer = alle): alarm · window · unreach · battery · light
confirm, confirmLabelerst nach zweitem Tippen (Text des scharfen Knopfs, Vorgabe „Wirklich?“)
valuewird geschrieben als
true / falseBoolean
42, -1, 3.5Zahl
alles andereText (nach Einsetzen der Platzhalter)

Ein Knopf erscheint, wenn alles drei zutrifft:

Bedingung
Zeile wird gezeigtStandard: nur Auffälliges (Licht an, Fenster offen …); mit „Alle gefundenen Geräte“ an jeder Zeile
Kategorie passtcategories leer = jede Zeile
Layoutdefault, compact oder twoline
VorlageKnopfZiel / WertKategorie
Licht ausAus{id} / false – der Datenpunkt der Zeile selbstLichter
Fenster: ErinnernErinnerneigener Datenpunkt / {name} ({room}) ist offenFenster & Türen
Batterie: an Skript meldenGewechselteigener Datenpunkt / gewechselt:{serial}, mit RückfrageBatterien
PlatzhalterBeispiel
{id}hm-rpc.1.0020DA499B8F41.0.LOW_BAT
{device}hm-rpc.1.0020DA499B8F41
{serial}0020DA499B8F41
{name}angezeigter Name
{room}Raum

„seit …“ ​

sinceCategories (Vorgabe ["window"]) schaltet die Dauer auch für battery und unreach ein.