Ferien und Feiertage via ICAL
-
- Beiträge: 16
- Registriert: 13. Apr 2018 22:43
Re: Ferien und Feiertage via ICAL
Hallo,
danke. Ich bräuchte nur noch einen deutlichen Hinweis darauf, welches Binding ic loggen soll. Ich kann Auszüge auf der event.log oder der openhab.log angeben, aber ich weiß nicht, welchen Aspekt des loggings ich einstellen muss?!
Mfg Michael
danke. Ich bräuchte nur noch einen deutlichen Hinweis darauf, welches Binding ic loggen soll. Ich kann Auszüge auf der event.log oder der openhab.log angeben, aber ich weiß nicht, welchen Aspekt des loggings ich einstellen muss?!
Mfg Michael
-
- Beiträge: 16
- Registriert: 13. Apr 2018 22:43
Re: Ferien und Feiertage via ICAL
Hallo noch einmal,
bitte gebt mir doch noch einen deutlichen Tipp, welche Logs ich hier einstellen soll. Interesse besteht weiterhin.
Danke im Voraus.
Mfg Michael
bitte gebt mir doch noch einen deutlichen Tipp, welche Logs ich hier einstellen soll. Interesse besteht weiterhin.
Danke im Voraus.
Mfg Michael
-
- Beiträge: 162
- Registriert: 28. Dez 2017 11:37
Re: Ferien und Feiertage via ICAL
Gegenfrage, was zeigt denn deine sitemap in der basic ui an?
PS: Ich wuerde die Datei nicht immer vom orginal server runterladen, sondern local ablegen und einlesen (z.B. lokaler nginx)
PS: Ich wuerde die Datei nicht immer vom orginal server runterladen, sondern local ablegen und einlesen (z.B. lokaler nginx)
-
- Beiträge: 16
- Registriert: 13. Apr 2018 22:43
Re: Ferien und Feiertage via ICAL
Hallo,
danke für die Anregungen.
Ich habe nun in meine sitemap folgendes eingefügt:
Zu sehen bekomme ich beim Aufrufen der entsprechenden Sitemap in der BasicUI ein ansonsten leeres Feld mit der Beschriftung "Ferien".
Ich nehme an, dass sollte nicht so aussehen?
Mfg Michael
danke für die Anregungen.
Ich habe nun in meine sitemap folgendes eingefügt:
Code: Alles auswählen
Frame label="Ferien" {
Text item=GlobalHolidayName label="Ferien/Feiertag [%s]" icon="calendar" visibility=[GlobalHoliday==ON]
}
Ich nehme an, dass sollte nicht so aussehen?
Mfg Michael
-
- Beiträge: 162
- Registriert: 28. Dez 2017 11:37
Re: Ferien und Feiertage via ICAL
tja, da wird wohl nur seppy weiterhelfen können. Ich habe das Script nicht im Einsatz. Logs wäre sicherlich auch hilfreich. Vielleicht crashed das Script bei dir und setzt deshalb die Variable nicht.
-
- Beiträge: 16
- Registriert: 13. Apr 2018 22:43
Re: Ferien und Feiertage via ICAL
Hallo,
Logs will ich gerne liefern, weiß nur nicht genau, welche Logs, welche Einstellungen für die Logs, etc.
Ich bin beim eingesetzten OS (Linux) genug bewandert, Auszüge relevanter Dateien zu geben. Ich habe aber schon selbst nach Einträgen gesucht (in /var/log/openhab2/openhab.log und /var/log/openhab2/events.log), aber keine gefunden. Daher suche ich um Hilfe. Ich kenne die openhab-Konsole rudimentär, weiß aber nicht, für welchen Bereich ich das Debuglevel hochsetzen muss.
Ich bin durchaus willig, im Moment aber wirklich unterinformiert.
Mfg Michael
Logs will ich gerne liefern, weiß nur nicht genau, welche Logs, welche Einstellungen für die Logs, etc.
Ich bin beim eingesetzten OS (Linux) genug bewandert, Auszüge relevanter Dateien zu geben. Ich habe aber schon selbst nach Einträgen gesucht (in /var/log/openhab2/openhab.log und /var/log/openhab2/events.log), aber keine gefunden. Daher suche ich um Hilfe. Ich kenne die openhab-Konsole rudimentär, weiß aber nicht, für welchen Bereich ich das Debuglevel hochsetzen muss.
Ich bin durchaus willig, im Moment aber wirklich unterinformiert.
Mfg Michael
- seppy
- Beiträge: 738
- Registriert: 24. Sep 2015 20:25
- Wohnort: Bonn
Re: Ferien und Feiertage via ICAL
Hi,
hast Du geprüft ob die Regel überhaupt getriggert wird? Dann sollte im openhab.log der folgende Auszug zu finden sein:
Wenn Du keinen entsprechenden Logeintrag findest läuft Dein HTTP Binding nicht sauber.
Grüße,
Seppy
hast Du geprüft ob die Regel überhaupt getriggert wird? Dann sollte im openhab.log der folgende Auszug zu finden sein:
Code: Alles auswählen
HomeBox.SystemRules:Event_Holiday GlobalSpecialDayICAL changed: Updated Holiday Status: NEUERSTATUS (" + GlobalHolidayName.state + ")")
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
- 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
-
- Beiträge: 16
- Registriert: 13. Apr 2018 22:43
Re: Ferien und Feiertage via ICAL
Hallo,
danke seppy.
ergibt keine Ausgabe, genau wie
.
Ok, dann also das http-binding. Was könnte ich da machen?
Mfg Michael
PS: Ups, war nicht installiert. Ich dachte, ich hätte. Entschuldigt die Unruhe.
Jetzt habe ich auch Ausgaben:
Mal sehen, was nu ist.
Danke einstweilen.
Mfg Michael
PPS: Nun zeigt das Item in der sitemap:
Hier noch einmal die Definition in meiner sitemap:
Vermutlich noch nicht ganz korrekt, gell?
Mfg Michael
PPPS: Nun habe ich mal die Zeile mit dem 3. Oktober auskommentiert und in der Definition die Zeit (?) auf 72 herunter gesetzt.
Nun zeigt sich regelmäßig im Log:
Die Meldung wird regelmäßig wiederholt.
Kann damit jemand etwas anfangen?
Danke im Voraus.
Mfg Michael
danke seppy.
Code: Alles auswählen
cat /var/log/openhab2/openhab.log | grep Holiday
Code: Alles auswählen
cat /var/log/openhab2/events.log | grep Holiday
Ok, dann also das http-binding. Was könnte ich da machen?
Mfg Michael
PS: Ups, war nicht installiert. Ich dachte, ich hätte. Entschuldigt die Unruhe.
Jetzt habe ich auch Ausgaben:
Code: Alles auswählen
root@nuc:~# cat /var/log/openhab2/events.log | grep oliday
2018-04-25 17:28:21.904 [vent.ItemStateChangedEvent] - GlobalHolidayICAL changed from NULL to BEGIN:VCALENDAR
2018-04-25 17:28:22.030 [vent.ItemStateChangedEvent] - GlobalHoliday changed from NULL to ON
2018-04-25 17:28:22.034 [vent.ItemStateChangedEvent] - GlobalHolidayName changed from NULL to BEGIN:VCALENDAR
Code: Alles auswählen
root@nuc:~# cat /var/log/openhab2/openhab.log | grep oliday
2018-04-25 17:28:22.038 [INFO ] [pt.HomeBox.SystemRules:Event_Holiday] - GlobalSpecialDayICAL changed: Updated Holiday Status: ON (BEGIN:VCALENDAR
2018-04-25 17:28:22.045 [INFO ] [pt.HomeBox.SystemRules:Event_Holiday] - GlobalSpecialDayICAL changed: Updated Holiday Status: ON (BEGIN:VCALENDAR
Danke einstweilen.
Mfg Michael
PPS: Nun zeigt das Item in der sitemap:
Code: Alles auswählen
BEGIN:VCALENDAR VERSION:2.0 METHOD:PUBLISH PRODID:-//sc...
Code: Alles auswählen
Frame label="Informationen" visibility=[GlobalHoliday==ON] {
Text item=GlobalHolidayName label="Ferien/Feiertag [%s]" icon="calendar" visibility=[GlobalHoliday==ON]
Mfg Michael
PPPS: Nun habe ich mal die Zeile mit dem 3. Oktober auskommentiert und in der Definition die Zeit (?) auf 72 herunter gesetzt.
Nun zeigt sich regelmäßig im Log:
Code: Alles auswählen
root@nuc:/etc/openhab2# tail -f /var/log/openhab2/openhab.log
2018-04-25 18:38:18.799 [WARN ] [.core.transform.TransformationHelper] - Cannot get service reference for transformation service of type JS
2018-04-25 18:38:18.799 [WARN ] [ab.binding.http.internal.HttpBinding] - Couldn't transform response because transformationService of type 'JS' is unavailable
Kann damit jemand etwas anfangen?
Danke im Voraus.
Mfg Michael
- seppy
- Beiträge: 738
- Registriert: 24. Sep 2015 20:25
- Wohnort: Bonn
Re: Ferien und Feiertage via ICAL
Hi,
ich der letzten Fehlermeldung steht Dein Problem beschrieben
Du hast den JS Transform Service nicht installiert/aktiviert.
Grüße,
Seppy
ich der letzten Fehlermeldung steht Dein Problem beschrieben
Code: Alles auswählen
Cannot get service reference for transformation service of type JS
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
- 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
-
- Beiträge: 16
- Registriert: 13. Apr 2018 22:43
Re: Ferien und Feiertage via ICAL
Hallo,
danke für die Rükmeldung.
Ich habe es nun installiert.
Die holiday.js sieht zu Testzwecken so aus:
Ich meint, damit das aktuelle Datum auf den 25.12.2015 gesetzt zu haben: gemeinhin sowohl ein Ferien- als auch ein Feiertag ist.
Das Log spricht:
Zwische den beiden Uhrzeiten lag ein restart.
Danke für die Tipps und die (frei-)Zeit, die du in meine Problemchen investierst.
Mfg Michael
danke für die Rükmeldung.
Ich habe es nun installiert.
Die holiday.js sieht zu Testzwecken so aus:
Code: Alles auswählen
/**
* Javascript Transformator, der prüft ob das heutige Datum auf einen ICAL Eintrag fällt.
* Wenn ja wird die Kalenderbezeichnung des Tages zurückgegeben, wenn nicht ein false
*/
var holiday = false;
/**
* ijp - iCalendar javascript parser
* https://code.google.com/p/ijp/
*/
(function(i) {
var Ical = function Ical(){
this.version = '';
this.prodid = '';
this.events = [];
this.todos = [];
this.journals = [];
this.freebusys = [];
}
var xprops = 'x-[^:;]+';
var ianaprops = '[\\w]+[^:;]+'
var icalParser = {
icals : [],
propsList : {
'event':'(dtstamp|uid|dtstart|class|created|description|geo|last-mod|location|organizer|priority|seq|status|summary|transp|url|recurid|rrule|dtend|duration|attach|attendee|categories|comment|contact|exdate|rstatus|related|resources|rdate|'+xprops+'|'+ianaprops+')',
'freebusy':'(dtstamp|uid|contact|dtstart|dtend|organizer|url|attendee|comment|freebusy|rstatus|'+xprops+'|'+ianaprops+')',
'journal':'(dtstamp|uid|class|created|dtstart|last-mod|organizer|recurid|seq|status|summary|url|rrule|attach|attendee|categories|comment|contact|description|exdate|related|rdate|rstatus|'+xprops+'|'+ianaprops+')',
'todo':'(dtstamp|uid|class|completed|created|description|dtstart|geo|last-mod|location|organizer|percent|priority|recurid|seq|status|summary|url|rrule|due|duration|attach|attendee|categories|comment|contact|exdate|rstatus|related|resources|rdate|'+xprops+'|'+ianaprops+')'
},
parseIcal : function(icsString){
var cals = icsString.match(/BEGIN:VCALENDAR\r?\n(.*\r?\n)+?END:VCALENDAR/ig);
for(var index in cals){
var ical = new Ical();
ical.version = this.getValue('VERSION',cals[index]);
ical.prodid = this.getValue('PRODID',cals[index]);
cals[index] = cals[index].replace(/\r\n /g,'');
cals[index] = cals[index].replace(/BEGIN:VCALENDAR\r?\n/ig,'');
var reg = /BEGIN:(V.*?)\r?\n(.*\r?\n)+?END:\1/gi;
matches = cals[index].match(reg);
if(matches){
for(i=0;i<matches.length;i++){
this.parseVComponent(matches[i],ical);
}
}
this.icals[this.icals.length] = ical;
}
},
parseVComponent : function(vComponent,ical){
var nameComponent = vComponent.match(/BEGIN:V([^\s]+)/i)[1].toLowerCase();
vComponent = vComponent.replace(/\r?\n[\s]+/igm,''); //unfolding
vComponent = vComponent.replace(/(^begin|^end):.*/igm,'');
var props = vComponent.match(new RegExp(this.propsList[nameComponent]+'[:;].*','gim'));
if(props){
var component=[];
for(var index in props){
var nom = props[index].replace(/[:;].*$/,'');
var propKey = /*'prop_'+*/nom.toLowerCase();
if(component[propKey]===undefined) component[propKey] = [];
component[propKey][component[propKey].length] = this.getValue(nom,props[index]);
component['raw'] = vComponent;
}
if(ical[nameComponent+'s'] !== undefined)
ical[nameComponent+'s'][ical[nameComponent+'s'].length] = component;
}
},
getValue: function(propName,line){
var prop={};
line = line.replace(/^\s+/g,'').replace(/\s+$/gi,'');
reg = new RegExp('('+propName+')((?:;[^=]*=[^;:\n]*)*):([^\n\r]*)','gi');
var matches = reg.exec(line);
if(matches){
var valeur = RegExp.$3;
var tab_params=[];
if(RegExp.$2.length>0){
var params = RegExp.$2.substr(1).split(';');
var pair;
for(k=0;k<params.length;k++){
pair = params[k].split('=');
if(!pair[1]) pair[1] = pair[0];
tab_params[pair[0]] = pair[1];
}
}
prop = { value:valeur,name:propName };
if(Object.keys(tab_params).length>0)
prop.params = tab_params;
}
return prop;
},
}
/**
* Funktion um ical Datumsstring (YYYYMMDD) in Date Objekt zu wandeln
*/
function calenDate(icalStr) {
var strYear = icalStr.substr(0,4);
var strMonth = parseInt(icalStr.substr(4,2),10)-1;
var strDay = icalStr.substr(6,2);
var strHour = 0;
var strMin = 0;
var strSec = 0;
var oDate = new Date(strYear,strMonth, strDay, strHour, strMin, strSec)
return oDate;
}
icalParser.parseIcal(input);
var event = icalParser.icals[0].events[0];
icalParser.icals[0].events.forEach(function (currentValue, index, originalArray) {
/**
* Prüfen ob das aktuelle Datum zwischen zwei Daten liegt, bzw. auf einen Tag fällt
*/
var dateFrom = calenDate(currentValue.dtstart[0].value);
var dateTo = calenDate(currentValue.dtend[0].value);
var dateCheck = new Date();
var dateCheck = calenDate("20151225");
if (dateCheck >= dateFrom && dateCheck < dateTo){
holiday = currentValue.summary[0].value;
}
});
return holiday;
})(input);
Das Log spricht:
Code: Alles auswählen
2018-04-26 16:58:53.493 [vent.ItemStateChangedEvent] - GlobalHolidayName changed from NULL to false
2018-04-26 17:09:11.125 [vent.ItemStateChangedEvent] - GlobalHolidayICAL changed from NULL to false
Danke für die Tipps und die (frei-)Zeit, die du in meine Problemchen investierst.
Mfg Michael