DavGre hat geschrieben: ↑28. Sep 2021 11:59
Kann mir jemand auf die Sprünge helfen?
Ich kann Dir zumindest kurz schreiben, wie ich die gelöst habe. Wobei ich nur die Tage auswerte wann was abgeholt wird und dies wird dann angezeigt.
Um dies auf Deine beiden Müllarten zu beschränken, musst Du dies evtl. etwas anpassen
Abfallkalender heute
Code: Alles auswählen
rule "Abfallkalender heute"
when
Item ABFALL_ICAL_heute changed
then
//Prüfen ob heute Abfall abgeholt wird
if (ABFALL_ICAL_heute.state != "false" && ABFALL_ICAL_heute.state != "Uninitialized"){
postUpdate(ABFALL_AKTIV_heute,ON)
postUpdate(ABFALL_NAME_heute,ABFALL_ICAL_heute.state)
} else {
postUpdate(ABFALL_AKTIV_heute,OFF)
postUpdate(ABFALL_NAME_heute,"false")
}
end
Abfallkalender morgen
Code: Alles auswählen
rule "Abfallkalender morgen"
when
Item ABFALL_ICAL_morgen changed
then
//Prüfen ob morgen Abfall abgeholt wird
if (ABFALL_ICAL_morgen.state != "false" && ABFALL_ICAL_morgen.state != "Uninitialized"){
postUpdate(ABFALL_AKTIV_morgen,ON)
postUpdate(ABFALL_NAME_morgen,ABFALL_ICAL_morgen.state)
} else {
postUpdate(ABFALL_AKTIV_morgen,OFF)
postUpdate(ABFALL_NAME_morgen,"false")
}
end
Dann lasse ich mich noch entsprechend erinnern, einmal am Vorabend und Morgens noch einmal
Code: Alles auswählen
rule "Abfallerinnerung heute"
when
Time cron "0 45 06 ? * * *"
then
val actions = getActions("pushover", "pushover:pushover-account:account")
if (ABFALL_AKTIV_heute.state == ON){
ABFALL_NAME_heute.state)
actions.sendMessageToDevice("iPhone", "An den " + ABFALL_NAME_heute.state + " denken.", "Notification")
}
end
rule "Abfallerinnerung morgen"
when
Time cron "0 30 18 ? * * *"
then
val actions = getActions("pushover", "pushover:pushover-account:account")
if (ABFALL_AKTIV_morgen.state == ON){
ABFALL_NAME_morgen.state)
actions.sendMessageToDevice("iPhone", "Morgen den " + ABFALL_NAME_morgen.state + " rausstellen.", "Notification")
}
end
Meine Items
Code: Alles auswählen
//Abfallkalender
// Nächste Abholung
String ABF1_NAME "Nächste Abholung [%s]" (gWasteCollection) ["Point"] {channel="http:url:abfallkalender:cABF1_NAME"}
DateTime ABF1_DATE "Termin: [%1$ta, %1$td.%1$tm.%1$ty]" (gWasteCollection) ["Point", "Timestamp"] {channel="http:url:abfallkalender:cABF1_DATE"}
//Abfall heute
String ABFALL_ICAL_heute {channel="http:url:abfallkalender:cABFALL_ICAL_heute"}
Switch ABFALL_AKTIV_heute
String ABFALL_NAME_heute
//Abfall morgen
String ABFALL_ICAL_morgen {channel="http:url:abfallkalender:cABFALL_ICAL_morgen"}
Switch ABFALL_AKTIV_morgen
String ABFALL_NAME_morgen
Das Thing, den ics link bekommst Du in der Regel auf der Umwelt Webmedia oder einer Seite Deiner Stadt.
Code: Alles auswählen
/* HTTP Binding */
Bridge http:url:abfallkalender "Abfallkalender" @ "Internet" [
baseURL="https://www.umwelt-webmedia.de/caldownload/f8d00c76fegegegeerherhrhrh59.ics",
refresh=360,
ignoreSSLErrors=false,
commandMethod="GET",
timeout=3000,
bufferSize=2048
] {
Channels:
Type string : cABF1_NAME "Nächste Abholung" [ stateTransformation="JS:abfall_naechste_abholung_name.js", mode="READONLY"]
Type datetime : cABF1_DATE "Datum nächste Abholung" [ stateTransformation="JS:abfall_naechste_abholung_datum.js", mode="READONLY"]
Type string : cABFALL_ICAL_heute "Abholung heute" [ stateTransformation="JS:abfall_heute.js", mode="READONLY"]
Type string : cABFALL_ICAL_morgen "Abholung morgen" [ stateTransformation="JS:abfall_morgen.js", mode="READONLY"]
}
Und die notwendigen Transform Files =>
transform.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3