NEWS
Ical - keine Erkennung vom Kalender [gelöst]
-
Hallöchen,
ich habe im Synology ein Kalender erstellt und diesen danach exportiert als ics-Datei für ICal.
Nun habe ich folgendes Skript laufen:// Skript basiered auf JoJ123's Müllskript und Pix' Regenskript // v 0.2, tempestas 21.12.2018 // Voraussetzung: ical 1.7 // Anleitung: /* 1) im ical Adapter die Ereignisse definieren, die gesucht werden sollen (z.B. Restabfall) 2) const PFAD auf euren ical Adapter anpassen (0, oder 1, zwei...) 3) im Bereich EINTRAEGE vor den Doppelpunkten die Ereignisse analog des ical Ereginis eintragen. ACHTUNG: ES DÜRFEN HIER KEINE FREIZEICHEN GENUTZT WERDEN; ICAL MACHT AUS "Gelber Sack" ALS EREIGNIS DATENPUNKT "GelberSack" daher muss hier dann "GelberSack" eingetragen werden hinter den Doppelpunkten wird der Pfad angegeben, in dem die Datenpunkte für die Tage bis zum jeweiligen Müll gespeichert werden. Davor wird dann noch die Javascript Instanz gesetzt, in der ihr das Skript startet. Gesamtpfad dann also z.B. "javascript.0.muell.restmuell" Hinweis: das Skript kann für alle Arten von Events genutzt werden, daher hier auf dne Begriff "Muell" verzichtet. */ debug = true; const PFAD = "ical.0.events."; const EINTRAEGE = { "Hausmüll": 'javascript.0.muell.restmuell', "Altpapier": 'javascript.0.muell.papier', //"Bioabfall": 'javascript.0.muell.bioabfall', "GelberSack": 'javascript.0.muell.gelbersack' }; //States anlegen Object.keys(EINTRAEGE).forEach(key => { createState(EINTRAEGE[key], -1); if (debug) log("State "+EINTRAEGE[key] +" angelegt"); }); createState("muell.next"); // state, in den der kleinste Wert geschrieben wird, falls man z.B. auf einer Hauptübersicht immer nur den Wert bis zum nächsten Event (egal welches) sehen möchte) var idNext = "muell.next"; function check() { var i; var min = 90; // maximale Vorschau der Tage im ical ist 90, von dort aus suchen wir den kleinsten Wert Object.keys(EINTRAEGE).forEach(eintrag => { // erst prüfen, ob event heute vorliegt if ( getState(PFAD + 0 +".today." + eintrag).val === true) { // Pfad weicht von den anderen Tagen ab! setState(EINTRAEGE[eintrag], 0); min = 0; if(debug) log(eintrag + " wird heute abgeholt"); } // falls nicht, weiter schauen, wann es kommt else { for (i=1 ; i<90;i++) { // heute (0) wird separat geprüft, da dort ein andere Pfad zum Tragen kommt; max 90 Tage Vorschau if ( getState(PFAD + i +"." + eintrag).val === true) { setState(EINTRAEGE[eintrag], i); if (i < min) min = i; //if(debug) log(eintrag + " in "+i +" Tagen"); break; // beim ersten gefundenen Eitnrag wird unterbrochen, da ja der nächste Termin gesucht wird } } } }); // kleinsten Wert in next - State schreiben if(debug) log("Der nächste Müll ist in "+min +" Tagen"); setState(idNext, min); } // Bei Start setTimeout(check, 5000); // 5 Sekunde warten, um beim erstmaligen Start Fehler zu vermeiden, die aus nicht existierenden States resultieren schedule('10 0 * * *', () => check() );
Es werden auch 7 Tage unter iCal geprüft aber leider erkennt er keine Einträge im Kalender.
Hat jemand bereits Erfahrung mit ICal und Synology? -
wird dir hier etwas angezeigt !?
-
@Idefix01 steht den in dem Objekt das du abfragst 'true' drin und das Skript findet das nicht richtig oder zeigt der iCal kein 'true' im Objekt an? Wenn zweiteres der Fall ist, zeigt mal bitte deine iCal Einstellungen.
-
Hier meine Ical.0 Obhjekte (sorry wollte nicht funktionieren mit Bild einfügen)
https://www.dropbox.com/s/2twrr0r8b09kltn/ical.jpg?dl=0Nein er schreibt gar kein true, bleibt alles auf false
-
@Idefix01 steht etwas im Log?
Zeig mal deine iCal Einstellungen.
Tipp: Du kannst Bilder auch direkt in deinem Forenbeitrag einfügen.
-
Log sagt nur das in 90 Tagen angeblich nächste Abholung ist, stimmt aber nicht habe Müll
und Gelber Sack als Test für morgen drin
-
@Idefix01 ical sagt im Log auch, das der Kalender erfolgreich gelesen wurde?
Welche Version hast du installiert?
-
Version 1.7.2
-
@Idefix01 hast du die von Github installiert?
Versuch mal die 1.7.0 aus dem latest bzw. stable Repo, die funktioniert bei mir.
-
Ok, werde ich morgen mal versuchen
-
Hier mein Logfile, geht leider trotzdem noch nicht.
Wobei ich das Gefühl habe das er den Calender nicht richtig liest.
javascript.0 2020-04-06 14:40:58.744 info (17110) script.js.Allgemein.abfall_tage: Der nächste Müll ist in 10 Tagen javascript.0 2020-04-06 14:40:58.744 warn (17110) at Timer.processTimers (timers.js:223:10) javascript.0 2020-04-06 14:40:58.743 warn (17110) at listOnTimeout (timers.js:263:5) javascript.0 2020-04-06 14:40:58.743 warn (17110) at tryOnTimeout (timers.js:300:5) javascript.0 2020-04-06 14:40:58.743 warn (17110) at ontimeout (timers.js:438:13) javascript.0 2020-04-06 14:40:58.743 warn (17110) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2016:34) javascript.0 2020-04-06 14:40:58.743 warn (17110) at Object.check (script.js.Allgemein.abfall_tage:57:28) javascript.0 2020-04-06 14:40:58.743 warn (17110) at Array.forEach (<anonymous>:null:null) javascript.0 2020-04-06 14:40:58.743 warn (17110) at Object.keys.forEach.eintrag (script.js.Allgemein.abfall_tage:72:22) javascript.0 2020-04-06 14:40:58.742 warn (17110) getState "ical.0.events.9.GelberSack" not found (3) javascript.0 2020-04-06 14:40:58.742 warn (17110) at Timer.processTimers (timers.js:223:10) javascript.0 2020-04-06 14:40:58.742 warn (17110) at listOnTimeout (timers.js:263:5) javascript.0 2020-04-06 14:40:58.742 warn (17110) at tryOnTimeout (timers.js:300:5) javascript.0 2020-04-06 14:40:58.742 warn (17110) at ontimeout (timers.js:438:13) javascript.0 2020-04-06 14:40:58.742 warn (17110) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2016:34) javascript.0 2020-04-06 14:40:58.742 warn (17110) at Object.check (script.js.Allgemein.abfall_tage:57:28) javascript.0 2020-04-06 14:40:58.742 warn (17110) at Array.forEach (<anonymous>:null:null) javascript.0 2020-04-06 14:40:58.741 warn (17110) at Object.keys.forEach.eintrag (script.js.Allgemein.abfall_tage:72:22) javascript.0 2020-04-06 14:40:58.741 warn (17110) getState "ical.0.events.8.GelberSack" not found (3) javascript.0 2020-04-06 14:40:58.741 warn (17110) at Timer.processTimers (timers.js:223:10) javascript.0 2020-04-06 14:40:58.741 warn (17110) at listOnTimeout (timers.js:263:5) javascript.0 2020-04-06 14:40:58.741 warn (17110) at tryOnTimeout (timers.js:300:5) javascript.0 2020-04-06 14:40:58.741 warn (17110) at ontimeout (timers.js:438:13) javascript.0 2020-04-06 14:40:58.741 warn (17110) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2016:34) javascript.0 2020-04-06 14:40:58.740 warn (17110) at Object.check (script.js.Allgemein.abfall_tage:57:28) javascript.0 2020-04-06 14:40:58.740 warn (17110) at Array.forEach (<anonymous>:null:null) javascript.0 2020-04-06 14:40:58.740 warn (17110) at Object.keys.forEach.eintrag (script.js.Allgemein.abfall_tage:72:22) javascript.0 2020-04-06 14:40:58.740 warn (17110) getState "ical.0.events.9.Altpapier" not found (3) javascript.0 2020-04-06 14:40:58.740 warn (17110) at Timer.processTimers (timers.js:223:10) javascript.0 2020-04-06 14:40:58.740 warn (17110) at listOnTimeout (timers.js:263:5) javascript.0 2020-04-06 14:40:58.740 warn (17110) at tryOnTimeout (timers.js:300:5) javascript.0 2020-04-06 14:40:58.739 warn (17110) at ontimeout (timers.js:438:13) javascript.0 2020-04-06 14:40:58.739 warn (17110) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2016:34) javascript.0 2020-04-06 14:40:58.739 warn (17110) at Object.check (script.js.Allgemein.abfall_tage:57:28) javascript.0 2020-04-06 14:40:58.739 warn (17110) at Array.forEach (<anonymous>:null:null) javascript.0 2020-04-06 14:40:58.739 warn (17110) at Object.keys.forEach.eintrag (script.js.Allgemein.abfall_tage:72:22) javascript.0 2020-04-06 14:40:58.739 warn (17110) getState "ical.0.events.8.Altpapier" not found (3) javascript.0 2020-04-06 14:40:58.738 warn (17110) at Timer.processTimers (timers.js:223:10) javascript.0 2020-04-06 14:40:58.738 warn (17110) at listOnTimeout (timers.js:263:5) javascript.0 2020-04-06 14:40:58.738 warn (17110) at tryOnTimeout (timers.js:300:5) javascript.0 2020-04-06 14:40:58.738 warn (17110) at ontimeout (timers.js:438:13) javascript.0 2020-04-06 14:40:58.738 warn (17110) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2016:34) javascript.0 2020-04-06 14:40:58.738 warn (17110) at Object.check (script.js.Allgemein.abfall_tage:57:28) javascript.0 2020-04-06 14:40:58.738 warn (17110) at Array.forEach (<anonymous>:null:null) javascript.0 2020-04-06 14:40:58.738 warn (17110) at Object.keys.forEach.eintrag (script.js.Allgemein.abfall_tage:72:22) javascript.0 2020-04-06 14:40:58.737 warn (17110) getState "ical.0.events.9.Hausmüll" not found (3) javascript.0 2020-04-06 14:40:58.737 warn (17110) at Timer.processTimers (timers.js:223:10) javascript.0 2020-04-06 14:40:58.737 warn (17110) at listOnTimeout (timers.js:263:5) javascript.0 2020-04-06 14:40:58.737 warn (17110) at tryOnTimeout (timers.js:300:5) javascript.0 2020-04-06 14:40:58.737 warn (17110) at ontimeout (timers.js:438:13) javascript.0 2020-04-06 14:40:58.737 warn (17110) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2016:34) javascript.0 2020-04-06 14:40:58.736 warn (17110) at Object.check (script.js.Allgemein.abfall_tage:57:28) javascript.0 2020-04-06 14:40:58.736 warn (17110) at Array.forEach (<anonymous>:null:null) javascript.0 2020-04-06 14:40:58.736 warn (17110) at Object.keys.forEach.eintrag (script.js.Allgemein.abfall_tage:72:22) javascript.0 2020-04-06 14:40:58.735 warn (17110) getState "ical.0.events.8.Hausmüll" not found (3) evohome.0 2020-04-06 14:40:58.501 info (28070) ...reading Mein Zuhause.Wohnzimmer.zone evohome.0 2020-04-06 14:40:58.501 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.zone evohome.0 2020-04-06 14:40:58.501 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.schedule evohome.0 2020-04-06 14:40:58.500 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.faults evohome.0 2020-04-06 14:40:58.500 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.setpointMode evohome.0 2020-04-06 14:40:58.500 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.setpoint evohome.0 2020-04-06 14:40:58.500 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.force_setpoint evohome.0 2020-04-06 14:40:58.500 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.isAvailable evohome.0 2020-04-06 14:40:58.500 info (28070) Checking state evohome.0.Mein Zuhause.Wohnzimmer.temperature evohome.0 2020-04-06 14:40:58.499 info (28070) Checking state evohome.0.Mein Zuhause.status evohome.0 2020-04-06 14:40:58.499 info (28070) Checking state evohome.0.Mein Zuhause.cmd evohome.0 2020-04-06 14:40:58.499 info (28070) Checking state evohome.0.error evohome.0 2020-04-06 14:40:58.499 info (28070) Checking state evohome.0.errmsg evohome.0 2020-04-06 14:40:58.350 error (28070) StatusCodeError: 429 - {"error":"attempt_limit_exceeded"} at new StatusCodeError (/opt/iobroker/node_modules/request-promise-core/lib/errors.js:32:15) at Request.plumbing.callback (/op evohome.0 2020-04-06 14:40:58.349 info (28070) Checking states for statuses evohome.0 2020-04-06 14:40:57.715 info (28070) (Re)Connect due to Worker Error:TypeError: Converting circular structure to JSON javascript.0 2020-04-06 14:40:53.737 info (17110) script.js.Allgemein.abfall_tage: registered 0 subscriptions and 1 schedule javascript.0 2020-04-06 14:40:53.735 info (17110) script.js.Allgemein.abfall_tage: State javascript.0.muell.gelbersack angelegt javascript.0 2020-04-06 14:40:53.734 info (17110) script.js.Allgemein.abfall_tage: State javascript.0.muell.papier angelegt javascript.0 2020-04-06 14:40:53.734 info (17110) script.js.Allgemein.abfall_tage: State javascript.0.muell.restmuell angelegt javascript.0 2020-04-06 14:40:53.730 info (17110) Start javascript script.js.Allgemein.abfall_tage
Mod-Edit: Code in code-tags gepackt!
-
@Idefix01 Bist du sicher, dass der Titel deines Threads korrekt ist?
Ich denke der iCal Adapter läuft wunderbar, lediglich das Skript scheint ein Problem zu haben -
@Homoran
Das kann ich sogenau nicht sagen, vermute eher er erkennt die Eintragungen im Kalender nicht oder liesst den Kalender nicht richtig -
Bitte deine URL im Kalender ( Screenshot ) unkenntlich machen !!!!
-
@Glasfaser sagte in Ical funktioniert nicht - keine Erkennung vom Kalender:
wird dir hier etwas angezeigt !?
Hast du jetzt dort etwas drin ?
-
@Glasfaser URL hat sich eh schon wieder geändert
Nein unter html steht leider nichts drin, vermute mal er kommt mit der ics Datei vom Synology Server Kalender nicht klar
-
@Idefix01 Dein Host heisst irgendwas mit Buanet - nutzst du Docker?
-
@Idefix01 sagte in Ical funktioniert nicht - keine Erkennung vom Kalender:
@Glasfaser URL hat sich eh schon wieder geändert
Du hast eine Feste IP durch Synology Connect .... aber das mußt du ja wissen !!!
Ist ja nur nett gemeint
-
@Glasfaser
Ja ich nutze Docker, und ja die Synology hat eine feste IP -
@Glasfaser
Wie machst du das mit dem ical?
Muss ich dann den ical auch über den Docker nutzen?