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;