Skip to content

Countdown

Zählt eine eingestellte Dauer als hh:mm:ss herunter. Start, Pause, Stopp, ±-Tasten und Vorgaben-Chips am Widget; ein Tipp auf die Ziffern öffnet den Dauer-Dialog. Der Countdown läuft im Adapter – Tab zu oder Tablet aus ändert nichts – und schreibt am Ende (und optional beim Start) einen Datenpunkt. Wahlweise zeigt das Widget nur die Restzeit eines fremden Datenpunkts, z. B. aus dem mytime-Adapter.

Datenpunkt

FeldPflichtTyp
datapointnur bei Quelle „Fremder Datenpunkt“numberRestzeit in ms / s oder Endzeitpunkt (Epoch), siehe dpKind

Bei der Quelle „Eigener Countdown“ bleibt das Feld leer. Der Adapter legt pro Widget einen Kanal aura.0.countdowns.<key> an:

StateTypRichtungInhalt
configJSONWidget → AdapterDauer, Ziel-DP, Werte
cmdstringWidget / Skript → Adapterstart · pause · resume · toggle · stop · end · +60 · -60 · =300 (Sekunden oder h:m:s)
statestringAdapter → alleidle · running · paused · ended
endTsnumberAdapter → WidgetEndzeitpunkt in Epoch-ms, 0 wenn nicht laufend
remainingMsnumberAdapter → alleRestzeit bei Pause; laufend nur mit „sekündlich veröffentlichen“
durationMsnumberAdapter → alleaktuell eingestellte Dauer (ändert sich mit ±, Chips, =N)

Der Pfad steht im Widget-Edit-Panel unter Adapter-States – mit fertigen Beispielen für den eigenen Schlüssel. Skripte schreiben cmd mit ack=false; der Adapter quittiert.

js
// JavaScript-Adapter
setState('aura.0.countdowns.<key>.cmd', 'start');  // starten (läuft er schon: neu starten)
setState('aura.0.countdowns.<key>.cmd', 'pause');  // anhalten – resume setzt fort
setState('aura.0.countdowns.<key>.cmd', 'stop');   // abbrechen – der Endwert wird geschrieben
setState('aura.0.countdowns.<key>.cmd', '+300');   // 5 Minuten dazu (-300 zieht ab)
setState('aura.0.countdowns.<key>.cmd', '=1800');  // Dauer auf 30 Minuten setzen
setState('aura.0.countdowns.<key>.cmd', 'toggle'); // ein Taster: Start ↔ Pause

on({ id: 'aura.0.countdowns.<key>.state', change: 'ne' }, (obj) => {
    // obj.state.val: idle | running | paused | ended
});

Blockly: Baustein „Steuere Datenpunkt“ auf …cmd mit einem Text-Wert wie start oder +300.

Layouts

Default

Titel und Zustand, große Ziffern, Fortschrittsbalken, Tastenzeile, Vorgaben-Chips.

Compact

Eine Zeile: Icon, Titel, Ziffern, Start/Pause und Stopp – für Listen.

Custom

Komponenten icon, digits, progress, controls, step, presets und Felder remaining, state, duration, target frei in einer Zellenmatrix – siehe Custom-Layout.

Zustände

ZustandZiffernBalkenTasten
Bereiteingestellte DauervollStart, ±
LäuftRestzeit, sekündlichRestanteilPause, Stopp, ±
Pausierteingefrorene Restzeit, gelbRestanteilWeiter, Stopp, ±
Abgelaufen00:00 oder „Text nach Ablauf“, grünleerStart
Wartet auf den Adaptereingestellte Dauer, gedämpftgesperrt

Dauer-Dialog

Tipp auf die Ziffern. Stunden, Minuten, Sekunden oder eine Vorgabe; Übernehmen setzt die Dauer (=N) – laufend, pausiert oder bereit.

Einstellungen

Alle Optionen werden im Editor unter Widget bearbeiten gesetzt.

Quelle

OptionWerteStandard
sourceaura · datapointauraeigener Countdown im Adapter oder Anzeige eines fremden Datenpunkts
dpKindremaining-ms · remaining-s · end-tsremaining-msnur datapoint: was der Datenpunkt enthält; end-ts = Epoch ms oder s (mytime …Countdowns.<n>.end)

Bei datapoint sind Tasten, Chips und Balken ausgeblendet; die Restzeit tickt zwischen zwei Werten lokal weiter.

Dauer

OptionTypStandard
durationSecnumberStartwert in Sekunden; ±, Chips und =N ändern die laufende Einstellung, nicht die Option
stepSecnumber60Schritt der ±-Tasten
presetsnumber[]Vorgaben in Sekunden, als Chips; im Panel als 5m, 15m, 1h oder 90, 1:30 eingeben

Ziel-Aktion

OptionTypStandard
targetDpstringDatenpunkt, den der Adapter schreibt
valueOnEndstringfalseWert am Ende; wird als boolean · number · string geparst; Feld leeren = nichts schreiben
valueOnStartstringtrueWert beim Start – die Vorgabe ergibt „für N Minuten einschalten“; Feld leeren = beim Start nichts schreiben (reine Endaktion)
stopWritesEndbooleanan, solange valueOnStart nicht leerStopp schreibt ebenfalls valueOnEnd (Abbruch schaltet zurück)
publishRemainingbooleanfalseremainingMs jede Sekunde schreiben – für Skripte; füllt History-Adapter

Nach einem Adapter-Neustart läuft ein Countdown aus dem gespeicherten endTs weiter; war er in der Zwischenzeit abgelaufen, wird valueOnEnd nachgeholt.

Anzeige

OptionWerte / TypStandard
formatauto · hms · ms · hmautoauto = mm:ss unter einer Stunde, sonst hh:mm:ss; ms = Minuten gesamt; hm rundet Sekunden auf
showDaysbooleanfalseab 24 h 2d 03:04:05 statt 51:04:05
digitSizenumber (px)0 = autoZiffern passen sich sonst der Kachelbreite an
showProgressbooleantrueFortschrittsbalken
showControlsbooleantrueStart/Pause und Stopp
showStepbooleantrue±-Tasten
showPresetsbooleantrueVorgaben-Chips
endedTextstringText statt 00:00 nach Ablauf, z. B. „Fertig“
showTitle · showIcon · icon · iconSize · titleAlignwie bei allen Widgets

Die Ziffern runden auf: 59,4 s stehen als 01:00, 00:00 erscheint genau zum Ende.

CSS-Klassen

Selektortrifft
.aura-countdownWurzel; data-state = idle · running · paused · ended · unknown
.aura-countdown-digitsZiffern
.aura-countdown-progressFortschrittsbalken
.aura-countdown-stateZustandstext in der Kopfzeile
.aura-countdown-controls · .aura-countdown-primary · .aura-countdown-stop · .aura-countdown-stepTastenzeile, Start/Pause, Stopp, ±
.aura-countdown-presetsVorgaben-Chips
.aura-countdown-modalDauer-Dialog