NEWS
ICal Adapter Verbesserungsvorschlag
-
Hallo an den Entwickler des iCal Adapters!
Erstmal herzlichen Dank für diesen tollen Adapter! Ich hätte jedoch einen Vorschlag der für mich und theoretisch für andere sehr interessant wäre.
Es gibt den Datenpunkt
> Count of events for today
Wie wäre es mit einem Datenpunkt für Morgen
> Counts of Events for tomorrow
. Desweiteren wäre es weltklasse Datenpunkte abfragen zu können welcher Termin. Zum Beispiel Graue Tonne, Gelbe Tonne usw.Wozu das ganze?
Meine Idee wäre folgende: In der Zeit zwischen 18-21Uhr läuft eine Person durch das Wohnzimmer. Dies wird durch einen Bewegungmelder erkannt und aus dem iCal Kalender kann ich auslesen welche Mülltonne morgen abgeholt wird.
Alexa würde dann ausgelöst durch die Bewegung sagen: Bitte "Gelbe Tonne" raustellen. Morgen Abholung.
-
https://github.com/ioBroker/ioBroker.ical/issues/72 … Issue gibts schon, auser dem Ersteller wollte es bisher noch niemand weiter bzw twonky hat schon eine Skript-idee beigefügt.
-
Ah ok super verstehe. Wusste nicht dass es schon die Idee gibt.
Dann bin ich mal gespannt was da noch so passiert.
-
Es hilft auf jeden Fall beim Feature-issue im Github einen "Thumbs up" zu setzen das man sieht wieviele User Interesse haben…
-
Alles klar wird gemacht Sir
-
Just for Info. Habe meine Idee/Projekt mit einem Workaround umgesetzt.
Alexa sagt mir am Vorabend beim betreten des Wohnzimmers welche Tonne für den nächsten Tag rausgestellt werden muss.
-
Hallo Flexer,
das gibt es schon.
Anbei mal ein Script von pix, was ich für mich ergänzt/erweitert habe.
mfg
`/* Kalenderevent in der Zukunft suchen sucht im iCal Adapter nach events, die noch kommen http://forum.iobroker.net/viewtopic.php?f=21&t=3761&sid=4319378b32a0ce096bbbbfc0ebd859ce#p34975 20.09.2016 erstellt von pix 02.02.2017 geändert von bahnuhr */ // Variablen var suchstring = 'Tonne'; // Suchbegriff var stichtag = 1; // 0=heute; 1=morgen; 2=übermorgen; 3=in 3 Tagen var idTabelle = 'ical.0.data.table'; // Instanz eintragen var logging = false; // debug Log ein/ausschalten 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.getFullYear(), jetzt.getMonth(), jetzt.getDate() + x); // z.B. 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 + '.'); //return (tag + '.' + monat + '.' + jahr); } function pruefeKalender() { var Auto_M = getState('javascript.0.Status.System.Auto_Müllabfuhr').val; var kalender = getState(idTabelle).val; var tag = datum(parseInt(stichtag,10)); var termin = []; if (logging) log(tag); try{ var ereignisse = JSON.stringify(kalender, null, 2); // Ausgabe als String if (logging) log(ereignisse); for(var i = 0; i <kalender.length; 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/term="kalender[i].event;" (term.indexof(suchstring)/termin.push(kalender[i].event);/log/('treffer:/'/+/termin);/}/termin.sort();/(termin.length="==" 0)/setstate('javascript.0.status.sonstige.müll_morgen',/'kein/eintrag');="">= 1 && (Auto_M === true || Auto_M === 1)) { setState('javascript.0.Status.Sonstige.Müll_morgen', termin.join(', ')); } } catch (fehler_try) { log('Fehler beim Kalenderevents einlesen ' + fehler_try, 'error'); } } // bei Aktualisierung on ({id: idTabelle, change: 'any'}, function(data) { pruefeKalender(); }); on({id: "javascript.0.Status.System.Auto_Müllabfuhr", change: "ne"}, function() { // Automatik geändert auf aus -> Folge: Anzeige verschwindet var Auto_M = getState('javascript.0.Status.System.Auto_Müllabfuhr').val; if (Auto_M === false || Auto_M === 0) { setState('javascript.0.Status.Sonstige.Müll_morgen', 'kein Eintrag'); } }); // um 16:00 Uhr schedule("0 16 * * *", pruefeKalender); schedule("0 20 * * *", function () { var Auto_M = getState('javascript.0.Status.System.Auto_Müllabfuhr').val; var Muell = getState('javascript.0.Status.Sonstige.Müll_morgen').val; if (Muell !== "kein Eintrag" && (Auto_M === true || Auto_M === 1)) { vText = "Müllabfuhr:\nMorgen muss die **" + Muell + "** rausgestellt werden."; sendTo('telegram', { text: vText, parse_mode: 'HTML' }); } }); //bei Skriptstart pruefeKalender();</kalender.length;>` [/i][/i][/i][/i]