`/* Kalenderevent in der Zukunft suchen sucht im iCal Adapter nach events, die noch kommen viewtopic.php?f=21&t=3761&sid=4319378b32a0ce096bbbbfc0ebd859ce#p34975 20.09.2016 erstellt von pix 13.11.2016 angepasst für Sven */ // User Anpassungen var aSuchstringLiteral = ['Wertstofftonne', 'Altpapier', 'Hausmuell']; // Suchbegriff var aSuchstring = ['Wertstofftonne', 'Altpapier', 'Hausmuell']; var stichtag = 1; // 0 heute; 1 morgen; 2 übermorgen; 3 In 3 Tagen var idTabelle = 'ical.1.data.table'; // Instanz eintragen var logging = false; // debug Log ein/ausschalten // Ende User Anpassungen for (var j = 0; j < aSuchstring.length; j++) { createState('Muellwarnung.' + aSuchstring[j], false, { type: 'boolean', name: aSuchstringLiteral[j] + ' wird morgen abgeholt', desc: aSuchstringLiteral[j] + ' wird morgen abgeholt (Boolean)', def: false }); var idEventState = 'Muellwarnung.' + aSuchstring[j]; log (idEventState); setState(idEventState, false); } var tage = ['Heute','Morgen','Übermorgen','In 3 Tagen']; // dafür relative Datumsangabe in iCal-Adapter einschalten und ggf. übersetzen function datum(x) { var jetzt = new Date(); if (logging) log('Jetztzeit: ' + jetzt); //var zeit = new Date(jetzt.getTime() + x * 24 * 60 * 60 * 1000); // es werden genau x Tage, als x * 24 Stunden zugezählt --> nicht gut var zeit = new Date (jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate() + x); // in drei Tagen um Mitternacht if (logging) log('Zielzeit: ' + zeit); var jahr = zeit.getFullYear(); var monat = (zeit.getMonth()+1 < 10) ? '0' + (zeit.getMonth()+1) : zeit.getMonth()+1; var tag = (zeit.getDate() < 10) ? '0' + zeit.getDate() : zeit.getDate(); return (tag + '.' + monat + '.' + jahr); } function pruefeKalender() { var kalender = getState(idTabelle).val; var tag = datum(parseInt(stichtag,10)); if (logging) log(tag); try{ var ereignisse = JSON.stringify(kalender, null, 2); // Ausgabe als String if (logging) log(ereignisse); for (var j = 0; j < aSuchstring.length; j++) { var idEventState = 'Muellwarnung.' + aSuchstring[j]; for(var i = 0; i <kalender.length; 20/i++)/{/alle/events/durchgehen/if/(/(kalender[i].date.indexof(tag)/!="-1)" ||/(kalender[i].date.indexof(tage[stichtag])/)/string/datum/oder/relatives/(nicht/nicht)/gefunden,/also/gefunden/var/termin="kalender[i].event;" (termin.indexof(asuchstringliteral[j])/log('treffer:/'/+/tage[stichtag]/asuchstringliteral[j]);/hier/wird/später/vielleicht/stichtag_array/verwendet/setstate(ideventstate,/true);/break;/}/else/false);/catch/(fehler_try)/log('fehler/beim/kalenderevents/einlesen/fehler_try,/'error');/schedule("30/*/*",/function(){/bei/mehreren/müllskripts/den/ersten/wert/verändern/(minuten)/for/(var/j="0;" </asuchstring.length;/j++)/ideventstate="Muellwarnung." asuchstring[j];/event="getState(idEventState).val;" (event)/ansage="aSuchstringLiteral[j]" mülltonne/morgen/abgeholt./bitte/stell/die/tonne/an/straße!';/kann/sayit/push/gesetzt/werden/setstate("sayit.0.tts.text",/"de-de_cloud_female;75;"/ansage);/});/aktualisierung/on/({id:/idtabelle,/change:/'any'},/function(data)/pruefekalender();/1min/nach/mitternacht/schedule("1/pruefekalender);/skriptstart/pruefekalender();<e=""></kalender.length;>`[/i][/i][/i]Frage wie sage ich in Blockly das ich einen Teil eines Wert aus einem Adaptertext nutzen möchte. yr nutzt z.Bsp. "Heftiger Regen","Leichter Regen" oder "Regenschauer" - ich würde aber gerne auf das Textstück "Regen" prüfen wollen.
Danke für die Hilfe,
miwi `
Ich kann mir vorstellen, dass man das iCal-Script einfach dafür anpassen kann. Nach den drei Wörtern suchen, anstatt ical yr, 0 für heute, schedule auf 8:30, sayit rausnehmen. Dann müsste man doch eigentlich ein true/false hinkriegen für "Muellwarnung" bzw. angepasst "Regen".
NEWS
Subcategories