Müll rausbingen iCalendar Binding
Verfasst: 12. Mär 2021 20:28
Hallo ihr Lieben,
da bin ich mal wieder mit einem neuen Problem wo ich Hilfe bräuchte.
Hätte gerne eine Benachrichtig wenn für morgen ein Kalender Eintrag existiert.
muell.rules
Es geht nur um "Kalender morgen"
Erhalte nur folgende Fehlermeldung
Komischerweise funktioniert es bei "Kalender heute"
da bin ich mal wieder mit einem neuen Problem wo ich Hilfe bräuchte.
Hätte gerne eine Benachrichtig wenn für morgen ein Kalender Eintrag existiert.
muell.rules
Code: Alles auswählen
import org.openhab.model.script.actions.Timer
import org.joda.datetime.DateTime
import org.joda.time.format.DateTimeFormat
import org.joda.time.format.DateTimeFormatter
import org.openhab.library.types.DateTimeType
val String Dateiname = "Kalender.rules"
rule "Kalender heute"
when
Time cron "30 36 19 * * ?"
then
Thread::sleep(3000) //Wait for 3 seconds to let Kalender_AktuellesEvent_Start update
if (CalDav_Date.state.toString == "UNDEF" ) { return } //Stopp if there is no current event
var kalender_heute = CalDav_Date.getStateAs(DateTimeType).zonedDateTime.withZoneSameInstant((new DateTimeType).zonedDateTime.getZone).format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'"))
if (kalender_heute.toString == now.toString("yyyy-MM-dd'T'")) {
logInfo("Rule triggered", CalDav_Date.state + CalDav_Termin.state)
sendNotification("XXX", "Heute: " + CalDav_Termin.state)
}
end
rule "Kalender morgen"
when
Time cron "0 24 20 * * ?"
then
Thread::sleep(3000) //Wait for 3 seconds to let Kalender_AktuellesEvent_Start update
if (CalDav_Termin1.state.toString == "UNDEF" ) { return } //Stopp if there is no current event
var kalender_morgen = CalDav_Date1.getStateAs(DateTimeType).zonedDateTime.withZoneSameInstant((new DateTimeType).zonedDateTime.getZone).format(DateTimeFormatter.plusDays(1).ofPattern("yyyy-MM-dd'T'"))
if
(kalender_morgen.toString == now.toString("yyyy-MM-dd'T'")) {
logInfo("Rule triggered", CalDav_Date1.state + CalDav_Termin1.state)
sendNotification("XXX", "Morgen: " + CalDav_Termin1.state)
}
end
rule "Kalender heute2"
when
Time cron "0 39 19 * * ?"
then
Thread::sleep(3000) //Wait for 3 seconds to let Kalender_AktuellesEvent_Start update
if (CalDav_Termin1.state.toString == "UNDEF" ) { return } //Stopp if there is no current event
var kalender_morgen = CalDav_Date1.getStateAs(DateTimeType).zonedDateTime.withZoneSameInstant((new DateTimeType).zonedDateTime.getZone).format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'"))
if (kalender_morgen.toString == now.toString("yyyy-MM-dd'T'")) {
logInfo("Rule triggered", CalDav_Date1.stae + CalDav_Termin1.state)
sendNotification("XXX", "Morgen: " + CalDav_Termin1.state)
}
end
Erhalte nur folgende Fehlermeldung
Code: Alles auswählen
[ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule 'Kalender morgen': The name 'DateTimeFormatter' cannot be resolved to an item or type;