NEWS
GLÜCKWUNSCH zur ersten 1.0.0
-
Hallo Bluefox,
habe gesehen du hast den iCal Adapter jetzt auf die Stufe 1.0.0 gehoben - Glückwunsch
Rainer
-
dem gebe ich auch einen Like! Glückwunsch!
-
Daumen hoch und Like!
-
Glückwunsch auch von mir…
auch wenn genau das der einzige Adapter ist der bei mir nicht im Originalzustand läuft.
Aber vielleicht muss ich ja jetzt nicht mehr so häufig mergen
Daumen hoch
-
Glückwunsch auch von mir…
auch wenn genau das der einzige Adapter ist der bei mir nicht im Originalzustand läuft.
Aber vielleicht muss ich ja jetzt nicht mehr so häufig mergen
Daumen hoch `
Was hast du denn da geändert? -
Von mir auch ein großes LIKE IT
Gesendet von meinem iPhone mit Tapatalk
-
@BF
Ich brauchte für meine Heizungssteuerung 2 Datenpunkte für Urlaub. Einmal Urlaub heute und zum Anderen Urlaub morgen.
Über das Event Urlaub hatte ich aber nur den Datenpunkt Urlaub wenn wirklich Heute Urlaub ist.
Wenn aber morgen Urlaub ist, muss die Heizung heute länger laufen….
-
@BF
Ich brauchte für meine Heizungssteuerung 2 Datenpunkte für Urlaub. Einmal Urlaub heute und zum Anderen Urlaub morgen.
Über das Event Urlaub hatte ich aber nur den Datenpunkt Urlaub wenn wirklich Heute Urlaub ist.
Wenn aber morgen Urlaub ist, muss die Heizung heute länger laufen…. `
Verstehe nur Bahnhof… Sorry. :? -
ich kann auch nur raten.
Ical Kalendereinträge:
heute Urlaub
morgen Urlaub
-> ical liefert nur den Event für den aktuellen Tag (heute)?
Das Steuerungsscript benötigt aber auch heute schon die Info, dass es morgen auch einen Event Urlaub gibt.
Wenn am nächsten tag ebenfalls Urlaub ist, soll sich das Script anderes verhalten (länger/kürzer heizen).
-
Damit Ihr nicht mehr raten müsst…
ruhr70 lag schon richtig.
Im iCal Adapter habe ich ein Event "Urlaub" definiert. Immer wenn jetzt im "google Kalender" für den heutigen Tag ein Eintrag mit "Urlaub" vorhanden ist, wird das Event "Urlaub" auf "True" gesetzt. Mit diesem Wert kann jetzt weitergearbeitet werden.
Mir reichte es aber nicht zu wissen das "Heute" Urlaub ist, ich möchte auch wissen ob "Morgen" Urlaub im Kalender steht.
Darum habe ich den Adapter etwas modifiziert. Jetzt liefert er mir immer einen 2. Datenpunkt (UrlaubMorgen)
Hier die Änderungen (2 Stellen jeweils auskommentiert mit //XGWSTRE und die Funktion)
function checkiCal(url, calName, cb) { // Call library function ical.fromURL(url, {}, function (err, data) { if (err) { adapter.log.warn('Error reading from URL "' + url + '": ' + ((err && err.code == "ENOTFOUND") ? 'address not found!' : err.toString())); } /*if (!data) { data = ical.parseFile(__dirname + '/demo.isc'); }*/ if (data) { adapter.log.info("processing URL: " + calName + " " + url); // XGWSTRE adapter.setState('events.Urlaub', {val: false, ack: true}); adapter.setState('events.UrlaubMorgen', {val: false, ack: true}); // XGWSTRE var realnow = new Date(); var today = new Date(); today.setHours(0,0,0,0); var endpreview = new Date(); endpreview.setDate(endpreview.getDate() + parseInt(adapter.config.daysPreview, 10));
und dann etwas weiter unten wird eine Funktion aufgerufen (UrlaubHeuteMorgen(reason, ev.start))…
// Full day if (fullday) { //Terminstart >= today && < previewzeit oder endzeitpunkt > today && < previewzeit ---> anzeigen if ((ev.start < endpreview && ev.start >= today) || (ev.end > today && ev.end <= endpreview)) { // check only full day events // XGWSTRE START UrlaubHeuteMorgen(reason, ev.start); // XGWSTRE ENDE
Und der Vollständigkeit halber noch die Funktion
function UrlaubHeuteMorgen(pBetreff, pDate) { var lToday = new Date(); lToday.setHours(0,0,0,0); var ltomorrow = new Date(); ltomorrow.setHours(0,0,0,0); ltomorrow.setDate(ltomorrow.getDate() + 1); if (pBetreff == "Urlaub") { var ldate1 = lToday.getDate(); var ldate2 = pDate.getDate(); var ldate3 = ltomorrow.getDate(); adapter.log.info("adapter ical pDate / lToday" + ' ' + ldate2 + ' ' + ldate1); if (ldate2 == ldate1) { adapter.setState('events.Urlaub', {val: true, ack: true}); adapter.log.info("adapter ical Urlaub Heute = TRUE"+ ' ' + pDate); } if (ldate2 == ldate3) { adapter.setState('events.UrlaubMorgen', {val: true, ack: true}); adapter.log.info("adapter ical Urlaub Morgen = TRUE"+ ' ' + pDate); } } }
Ich hoffe, damit hat das Raten ein Ende und vielleicht kann es ja jemand brauchen. Ich habe es allerdings noch nicht in die aktuelle Version eingearbeitet.
Oder @Bluefox Du hast ganz viel Lust und übernimmst es in den Standard