NEWS
Müllabfuhr Skript funktioniert nicht mit allen Terminen
-
@M-A-X im Forum(leider grad nicht den link zur Hand) hatte ich die Tage was gelesen, das es Probleme mit Serien-Termine im ical gibt, bei manueller Änderung, vllt hängt es damit zusammen.
-
@crunchip mist. Das scheint (seit kurzem) mein Problem zu sein. Ich finde den Post aber auch nicht
Edit: meinst du den Beitrag?
Seit ical 1.7.5 funktioniert Kalender nicht mehr -
@crunchip Danke für den Tipp.
Und an alle mit dem selben Problem:Im anderen Beitrag (Link im Post hierdrüber) wird darauf hingewiesen, dass man beim Ical Adapter (soweit ich es verstehe) "TEST" durch 'TEST' ersetzen muss. Dies brachte auch bei mir den Erfolg.
Mein Skript ist jetzt folgendes und funktioniert soweit:createState('javascript.0.vis.muellkalender.html', 0, { name: 'Termine als String' }); createState('javascript.0.vis.muellkalender.gelbe_tonne', 0, { name: 'Abfuhrtermin Gelb' }); createState('javascript.0.vis.muellkalender.schwarze_tonne', 0, { name: 'Abfuhrtermin schwarz' }); createState('javascript.0.vis.muellkalender.papier_tonne', 0, { name: 'Abfuhrtermin Papier' }); createState('javascript.0.vis.muellkalender.bio_tonne', 0, { name: 'Abfuhrtermin Bio' }); on({ id: "ical.0.data.table", change: "ne" }, function (obj) { updateMuellTermine(); }); function updateMuellTermine() { console.log('Start update'); var terminPapier = ''; var terminGelb = ''; var terminBio = ''; var terminRest = ''; var termine = getState('ical.0.data.table').val; for (var i in termine) { // Bio // Restmüll // Papier // Gelbe var termin = termine[i]; // suchen nach dem nächsten Termin der "Restmüll" enthält. console.log('###'); // console.log(termin.event); // Debugging für Inhalt im Event Text // console.log(termin.date); // Debugging Inhalt Date if (termin.event.includes('Rest') && terminRest == '') { terminRest = convertToEngDate(termin.date); console.log('Rest: '+ terminRest); } if (termin.event.includes('Bio') && terminBio == '') { terminBio = convertToEngDate(termin.date); console.log(termin.date); console.log('Bio: '+terminBio); } if (termin.event.includes('Altpapier') && terminPapier == '') { terminPapier = convertToEngDate(termin.date); console.log('Papier: '+ terminPapier); } if (termin.event.includes('Gelbe') && terminGelb == '') { terminGelb = convertToEngDate(termin.date); console.log('Gelb: '+ terminGelb); } } var visstring = '<div class="muell schwarz"><span>Grau</span><h1>'+ dateDiff(terminRest) + '</h1><i>'+convertToGermanDate(terminRest)+'</i></div>'+ '<div class="muell papier"><span>Papier</span><h1>'+ dateDiff(terminPapier) + '</h1><i>'+convertToGermanDate(terminPapier)+'</i></div>'+ '<div class="muell gelb"><span>Gelb</span><h1>'+ dateDiff(terminGelb) + '</h1><i>'+convertToGermanDate(terminGelb)+'</i></div>' //+ //'<div class="muell bio"><span>Bio</span><h1>'+ dateDiff(terminBio) + '</h1><i>'+convertToGermanDate(terminBio)+'</i></div>' ; // einzelne States setzen setState('javascript.0.vis.muellkalender.html', visstring); setState('javascript.0.vis.muellkalender.gelbe_tonne', terminGelb); setState('javascript.0.vis.muellkalender.bio_tonne', terminBio); setState('javascript.0.vis.muellkalender.schwarze_tonne', terminRest); setState('javascript.0.vis.muellkalender.papier_tonne', terminPapier); } // Datum aus dem Kalender zu einem englischen Date formatieren function convertToEngDate(str) { str = str.replace("→", ""); var tempdate = str.trim().split(" "); var date = tempdate[0].split("."); return date[2]+"-"+date[1]+"-"+date[0]; } // Deutsches Datum ausgeben. function convertToGermanDate(str) { var date = str.split("-"); return date[2]+"."+date[1]+"."; } // Differenz in Tagen zwischen heute und dem Abfuhrtag berechnen function dateDiff(datestring) { var today = new Date(); var date = new Date(datestring); date.setHours(0,0,0,0); today.setHours(0,0,0,0); var seconds = (date.getTime() / 1000) - (today.getTime() / 1000) ; var days = seconds / 86400 | 0; return days; } updateMuellTermine();
-
@M-A-X nein, meinte einen anderen, aber passt ja, wenn es nun wieder funktioniert
-
@crunchip in dem anderen Thread ging es um manuell geänderte Serien.
Das klappt mit ical nicht -
@Homoran ja genau das/den Thread meinte ich.
ich bezog mich ja auf die Aussage@M-A-X sagte in Müllabfuhr Skript funktioniert nicht mit allen Terminen:
Die Termine von Restmüll (und Biotonne) kommen von einem 2 wöchentlichen manuellen Termin. Diese Termine haben zum Jahreswechsel aufgehört zu funktionieren. Ich bekomme einen leeren Wert bei den Objekten angezeigt.
Was mich wundert, ist, dass die 2 wöchentlichen Termine sich ja nie geändert haben. Ich habe diese Termine vor über einem Jahr erstellt. Selbst ein Löschen dieses Termins mit anschließendem neuen Anlegen bringt nichts -
@Homoran hmm. Aber genau das hab ich doch gemacht? Manuell einen Serientermin im Google Kalender angelegt. Und das scheint (jetzt) zu klappen. Zumindest zeigt er mir den richtigen Termin an.
-
@M-A-X geht darum, einen bereits hinterlegten Serientermin "nachträglich" zu ändern, geht nicht, wenn ich mich recht erinnere, hatte das aber auch nur überflogen
-
@M-A-X sagte in Müllabfuhr Skript funktioniert nicht mit allen Terminen:
Manuell einen Serientermin im Google Kalender angelegt
das klappt ja auch.
Wie soll der denn sonst angelegt werden.Aber du kannst bei google auch einzelne Termine in der Serie löschen!
Das bekommt dann ical nicht mit -
Hey,
es hat leider immer noch nicht richtig funktioniert.
Nachdem ich versucht habe, das skript selber zu verstehen (ich habe es ja aus dem Netz kopiert), habe ich den "Fehler" gefunden. Weiß allerdings nicht, warum das nicht so klappt.
Folgender Absatz im Skript wandelt scheinbar das Datum aus ical in ein Datum a la
"JAHR-MONAT-TAG" um. hierbei hat mein skript Probleme, wenn ich in Google einen Termin als "ganztägig" hinterlege.// Datum aus dem Kalender zu einem englischen Date formatieren function convertToEngDate(str) { str = str.replace('→', ''); var tempdate = str.trim().split(' '); var date = tempdate[0].split('.'); return date[2]+'-'+date[1]+'-'+date[0]; } // Deutsches Datum ausgeben. function convertToGermanDate(str) { var date = str.split('-'); return date[2]+'.'+date[1]+'.'; }
Ich habe im Googlekalender den Termin Restmüll jetzt einfach statt ganztags auf 8:00 Uhr morgens gelegt und es klappt. Vorher hat mir dieser Teil des Skripts statt "JAHR-MONAT-TAG" folgendes ausgegeben "undefined-undefined-→"
hierbei steht das letzte für einen Pfeil nach rechts (Unicode), der aber eigentlich durch Zeile 3 verschwinden sollte?
Jemand eine Idee, wie ich den Absatz oben ändern kann, damit es auch mit ganztägigen Terminen klappt :)?