NEWS
Vorlagen/Ideen MüllPlan VIEW / Widget ?
-
@moppel2810 was genau möchtest du?
-
Den Abfallkalender zum laufen bringen so das er meine Abfuhrtermine anzeigt und auch die Tage runterzählt und warnt.
so wie ihr das umgesetzt habt nur ich bekomm es einfach nicht hin, das Widget hab ich eingefügt und das skript auch erstellt. -
@moppel2810 Deine Termine sind im Google Kalender hinterlegt?
Im Adapter deine Kalender incl Einträge eingetragen?
-
@crunchip
Ja das hab ich soweit alles gemacht. Wie gehts weiter? -
@crunchip
die Kalender URL wie sieht die genau aus? Ich hab einen Googlekalender angelegt den ich Abfallkalender genannt habe wo nur die Abfuhrtermine drin stehen. -
@crunchip
so sieht das skript aus bei mir. Scheint ja zu laufen, oder? -
@moppel2810 bin grad nicht am Rechner, halbe std ca meld ich mich nochmal
-
@moppel2810 sollte so aussehen
https://calendar.google.com/calendar/ical/xxxxxxxxxxxxxxxxxxxxxxx%40group.calendar.google.com/public/basic.ics
-
@moppel2810 ich verwende ein anderes skript
-
@crunchip
Hab ich so in der instanz stehen. Hab den Googlekalender also nur den Abfall öffentlich gemacht. Wie kann ich denn kontrollieren ob alles läuft? -
@crunchip
Welches Skript benutzt du? -
@moppel2810 https://forum.iobroker.net/post/267545 siehe weiter oben
-
@crunchip
Ich blick nicht durch -
-
@moppel2810 passt doch schon.....fast
-
@moppel2810 wo hängt es denn nun....hast du alles so eingestellt wie hier https://forum.iobroker.net/post/302463
-
@crunchip
Ja. In der vis stehen keine Tage da wie lange es noch dauert bis die Tonne dran ist. -
@moppel2810 bei Müllwarnung "Rest" stimmt was nicht bei dir
für die Tage in Vis-muell...stimmt deine Abfrage auch nicht.
Die Bezeichnungen für die einzelnen Tonnen müssen übereinstimmen, also nicht verändern, ausser du passt es im skript/Kalender an.
Wenn alles richtig eingerichtet ist, dauert es einen Tag, bis die richtigen Werte/Anzeige drinnen stehen.
wichtig ist im Adapter auf 90 Tage zu stellen.
Den ical cronjob auf 0.02Uhr, damit er sich nach Mitternacht die neuen Werte holt.
Im Müllwarnungsskript schedule auf 0.01Uhr
Abfalltermine schedule auf 0.10Uhr
dann sollte es laufen -
@moppel2810 logisch...hast ja ein -1 drin stehen
ausserdem passt dein Restmüll nicht...da hast irgendwo was falsch eingetragen -
// 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 = { "Restmuell": 'Vis.muell.restmuell', "Papiertonne": 'Vis.muell.papiertonne', "Biotonne": 'Vis.muell.biotonne', "GelberSack": 'Vis.muell.gelbersack' }; //States anlegen Object.keys(EINTRAEGE).forEach(key => { createState(EINTRAEGE[key], -1); if (debug) log("State "+EINTRAEGE[key] +" angelegt"); }); createState("Vis.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 = "Vis.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() );