Ferien und Feiertage via ICAL

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Ferien und Feiertage via ICAL

Beitrag von Cyrelian »

Hi Knut,

ich habe das mal bei mir nachgebaut und siehe da....bei Euch sind Ferien :).

Ich hab noch ein bischen was im Code angepasst. Probier mal bitte. Ich hab allerdings mein Transform file genommen. Aber das ist das gleiche was Seppy gepostet hat.

Item:

Code: Alles auswählen

String GlobalSpecialDayICAL
   {http="<[http://www.schulferien.org/media/ical/deutschland/feiertage_schleswig-holstein_%1$tY.ics:7200000:JS(ical_holiday.js)]"}
String GlobalHolidayICAL
   {http="<[http://www.schulferien.org/media/ical/deutschland/ferien_schleswig-holstein_%1$tY.ics:7200000:JS(ical_holiday.js)]"}
Switch GlobalHoliday
   (gSystem)
String GlobalHolidayName
Rule:

Code: Alles auswählen

rule "Event_Holiday"
when
   Item GlobalHolidayICAL changed or
   Item GlobalSpecialDayICAL changed
then
   //Prüfen ob ein Feiertag ist
   if (GlobalSpecialDayICAL.state != "false" && GlobalSpecialDayICAL.state != "Uninitialized"){
      GlobalHoliday.postUpdate(ON)
      GlobalHolidayName.postUpdate(GlobalSpecialDayICAL.state)
      logInfo("HomeBox.SystemRules:Event_Holiday", "GlobalSpecialDayICAL changed: Updated Holiday Status: " + GlobalHoliday.state + " (" + GlobalHolidayName.state + ")")
   }
   // Prüfen ob Ferien sind
   else if (GlobalHolidayICAL.state != "false" && GlobalHolidayICAL.state != "Uninitialized"){
      GlobalHoliday.postUpdate(ON)
      GlobalHolidayName.postUpdate(GlobalHolidayICAL.state)
      logInfo("HomeBox.SystemRules:Event_Holiday", "GlobalHolidayICAL changed: Updated Holiday Status: " + GlobalHoliday.state + " (" + GlobalHolidayName.state + ")")
   } else {
      GlobalHoliday.postUpdate(OFF)
      GlobalHolidayName.postUpdate("false")
      logInfo("HomeBox.SystemRules:Event_Holiday", "Updated Holiday Status: " + GlobalHoliday.state + " (false)")
   }
end
^

Sitemap:

Code: Alles auswählen

Text item=GlobalHolidayName label="Ferien/Feiertag [%s]" icon="calendar" visibility=[GlobalHoliday==ON]

Kannst Du bitte das Debug logging für HTTP einschalten, vielleicht sehen wir da ja was.

CU
Cyrelian

favorit626
Beiträge: 35
Registriert: 15. Mai 2016 22:38

Re: Ferien und Feiertage via ICAL

Beitrag von favorit626 »

Hallo Cyrelian,
danke , das hat ja schon mal super geklappt.
Aber was hast Du denn da jetzt geändert ? Vielleicht kann ich das ja auch verstehen. :?:
Und würde der Müllkalender denn jetzt auch funktionieren? der nächste Termin wäre normalerweise der 02. Aug. na mal sehen.

Herzlichen Dank für die Hilfe.

Knut

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Ferien und Feiertage via ICAL

Beitrag von seppy »

Hi Zusammen,

sorry ich war ein paar Tage dank meines Internetanbieters offline :oops:

Funktioniert die Regel denn jetzt?

Grüße,

Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

favorit626
Beiträge: 35
Registriert: 15. Mai 2016 22:38

Re: Ferien und Feiertage via ICAL

Beitrag von favorit626 »

Hallo Seppy,
ja funktioniert, die Sommerferien zeigt er jedenfalls erstmal an. Ob der Müllkalender nächste Woche dann auch läuft sehen wir dann.

Gruß
Knut

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Ferien und Feiertage via ICAL

Beitrag von Cyrelian »

Hi Knut,

also ich habe den Code wie folgt angepasst:

In Items:

Code: Alles auswählen

String GlobalHolidayICAL
   {http="<[http://www.schulferien.org/media/ical/deutschland/ferien_schleswig-holstein_%1$tY.ics:7200000:JS(ical_holiday.js)]"}
In Rules:

Code: Alles auswählen

if (GlobalSpecialDayICAL.state != "false" && GlobalSpecialDayICAL.state != "Uninitialized"){
      GlobalHoliday.postUpdate(ON)
      GlobalHolidayName.postUpdate(GlobalSpecialDayICAL.state)
und

Code: Alles auswählen

else if (GlobalHolidayICAL.state != "false" && GlobalHolidayICAL.state != "Uninitialized"){
      GlobalHoliday.postUpdate(ON)
      GlobalHolidayName.postUpdate(GlobalHolidayICAL.state)
und

Code: Alles auswählen

else {
      GlobalHoliday.postUpdate(OFF)
      GlobalHolidayName.postUpdate("false")
Also nichts weltbewegendes. Der Hauptunterschied ist, dass ich IMMER folgende Schreibweise verwende:

Code: Alles auswählen

 GlobalHoliday.postUpdate(ON)
anstelle von

Code: Alles auswählen

postUpdate(GlobalHoliday,ON)
.
Ich habe damit einfach bessere Erfahrungen gemacht.


@Seppy, freut mich das dein Internet wieder läuft..hat ja lange genug gedauert :?

CYA
Cyrelian

Penrose
Beiträge: 1
Registriert: 23. Okt 2016 22:37

Re: Ferien und Feiertage via ICAL

Beitrag von Penrose »

Guten Abend,

ich finde das cool und habe Items, Rule und Transformation deployt, aber es will nicht so recht funktionieren. Aus einem mir nicht nachvollziehbaren Grund liefert die Transformation immer false zurück, obwohl ich aktuell den Berlin-Kalender anspreche, wo heute noch Herbstferien sind. Kann man den Javascript-Teil irgendwie debuggen?

Danke!

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: Ferien und Feiertage via ICAL

Beitrag von seppy »

Hi,
zum debuggen habe ich das Script als HTML deklariert und dann im Browser aufgerufen. So kannst Du dir Ausgaben einbauen.

Grüße Seppy


Gesendet von iPhone mit Tapatalk
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

jensen79
Beiträge: 4
Registriert: 9. Dez 2016 08:15

Re: Ferien und Feiertage via ICAL

Beitrag von jensen79 »

Hallo Leute,

ich versuche das gerade mit dem aktuellen Snapshot von OH2 zum Laufen zu bekommen. Hat da schon jemand Erfahrungen mit? Er scheint einfach "nichts" zu machen. Ich habe woanders gelesen dass es evtl. Probleme mit dem 1.9er HTTP-Binding unter OH2 geben soll.

Wie sehen da eure Erfahrungen aus?

Gruß, Jens

jensen79
Beiträge: 4
Registriert: 9. Dez 2016 08:15

Re: Ferien und Feiertage via ICAL

Beitrag von jensen79 »

sorry... funktioniert doch ohne Probleme. Wenn weder Ferien noch Feiertag ist tut sich natürlich nicht viel ;)

Gute Arbeit :)

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Ferien und Feiertage via ICAL

Beitrag von Cyrelian »

Hi,

jup, da hast Du recht..wenn keine Ferien oder Feiertage sind sieht man ...nichts :D
Wenn Du prüfen willst, ob es tatsächlich läuft, kann Du im Script folgende Zeile wieder einkommentieren

Code: Alles auswählen

//var dateCheck = calenDate("20151003");
und stellt es z.B. auf den 26.12.2016.
Wie hast Du es unter OH2 zu laufen gebracht? bei mir gehts irgendwie nicht (binding-exec - 2.0.0.SNAPSHOT).

Das kommt bei mir nämlich als STATE an: :o

Code: Alles auswählen

    "state": "BEGIN:VCALENDAR\nVERSION:2.0\nMETHOD:PUBLISH\nPRODID:-//schulferien.org//iCal Generator//DE\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Neujahr\nDTSTART;VALUE=DATE:20160101\nDTEND;VALUE=DATE:20160102\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4cd7a1@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:2. Weihnachtsfeiertag\nDTSTART;VALUE=DATE:20161226\nDTEND;VALUE=DATE:20161227\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d88a8@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Karfreitag\nDTSTART;VALUE=DATE:20160325\nDTEND;VALUE=DATE:20160326\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d1e62@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Ostermontag\nDTSTART;VALUE=DATE:20160328\nDTEND;VALUE=DATE:20160329\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d3683@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Tag der Arbeit\nDTSTART;VALUE=DATE:20160501\nDTEND;VALUE=DATE:20160502\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d4412@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Christi Himmelfahrt\nDTSTART;VALUE=DATE:20160505\nDTEND;VALUE=DATE:20160506\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d5a56@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Pfingstmontag\nDTSTART;VALUE=DATE:20160516\nDTEND;VALUE=DATE:20160517\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d7004@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Fronleichnam\nDTSTART;VALUE=DATE:20160526\nDTEND;VALUE=DATE:20160527\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d7c8d@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Tag der Deutschen Einheit\nDTSTART;VALUE=DATE:20161003\nDTEND;VALUE=DATE:20161004\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4cdc4e@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:Allerheiligen\nDTSTART;VALUE=DATE:20161101\nDTEND;VALUE=DATE:20161102\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d0c69@schulferien.org\nEND:VEVENT\nBEGIN:VEVENT\nCREATED:20161209T032002Z\nLAST-MODIFIED:20161209T032002Z\nDTSTAMP:20161209T032002Z\nSUMMARY:1. Weihnachtsfeiertag\nDTSTART;VALUE=DATE:20161225\nDTEND;VALUE=DATE:20161226\nURL:http://www.schulferien.org\nDESCRIPTION:Alle Termine auf www.schulferien.org\nTRANSP:TRANSPARENT\nUID:FT_2016_feiertag584a14d4d810b@schulferien.org\nEND:VEVENT\nEND:VCALENDAR",
CU
Cyrelian

Antworten