Zeit Differenz
Verfasst: 30. Nov 2023 20:28
Guten Abend zusammen.
Ich wollte mir eine Rule für einen Countdown für Kalendereinträge anlegen. Und da meine Echo Countdown rules zu gut funktionieren wollte ich sie einfach ummünzen. Jetzt habe ich aber das Problem dass eine Rule die Zeitdifferenz berechnet, das macht sie aber nur zwischen zwei Uhrzeiten, bei einem Kalender liege meinst aber Tage zwischen der aktuellen Zeit und dem Kalendereintrag.
Vielleicht kann mir ja jemand helfen.
Vielen Dank im Voraus
Ich wollte mir eine Rule für einen Countdown für Kalendereinträge anlegen. Und da meine Echo Countdown rules zu gut funktionieren wollte ich sie einfach ummünzen. Jetzt habe ich aber das Problem dass eine Rule die Zeitdifferenz berechnet, das macht sie aber nur zwischen zwei Uhrzeiten, bei einem Kalender liege meinst aber Tage zwischen der aktuellen Zeit und dem Kalendereintrag.
Vielleicht kann mir ja jemand helfen.
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: EchoKuche_NachsterTimer
previousState: UNDEF
type: core.ItemStateChangeTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/javascript;version=ECMAScript-5.1
script: >-
var zdt = Java.type('java.time.ZonedDateTime');
var duration = Java.type('java.time.Duration');
var localTime = Java.type('java.time.LocalTime');
var chronunit = Java.type('java.time.temporal.ChronoUnit');
var alarm = itemRegistry.getItem("EchoKuche_NachsterTimer").state;
var countdown = itemRegistry.getItem("EchoKuche_Countdown");
var coutndownMaxSekunden = itemRegistry.getItem("EchoKuche_NachsterTimerMaxSekunden");
var coutndownSekunden = itemRegistry.getItem("EchoKuche_NachsterTimerSekunden");
var jetzt = zdt.now().toLocalTime();
var alarmTime = alarm.getZonedDateTime().toLocalTime();
var diff = duration.between(jetzt, alarmTime);
var startime = localTime.of(0, 0,0).plus(diff).truncatedTo(chronunit.SECONDS);
events.postUpdate(countdown, startime.toString()); events.postUpdate(coutndownMaxSekunden, diff.getSeconds()); events.postUpdate(coutndownSekunden, diff.getSeconds());
type: script.ScriptAction
- inputs: {}
id: "3"
configuration:
enable: true
ruleUIDs:
- 81f01c329e
type: core.RuleEnablementAction