@miwi:
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".
`/* 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]