NEWS
[gelöst] in SayIt Wetter und Geburtstagsscript -> Müllkalender mit einbinden
-
Erst einmal ein gesundes neues Jahr an Alle!
Hallo pix, Hallo wendy2702 !
Bei mir hat es dann, nachdem ich die Zeiten geändert habe, funktioniert.
Aber nur ca. eine Woche.
Und ich war so stolz!
Jetzt kommen überhaupt keine Ansagen mehr.
Gruss Superdad
P.S. Dieses object.Object steht aber noch drinnen. `
Was steht denn im Log?
Auf was für einem Device machst du die Ansage?
-
Hallo,
also im log habe ich folgendes gefunden:
sayit.1 saying: Guten Morgen, heute ist Donnerstag der 5te Januar 2017. Es ist6 Uhr und 5 Minuten. Die Aussentemperatur beträgt -1,4 Grad. Wetter Bedingungen,Wolkig .
2017-01-05 06:05:49.318 - [31merror[39m: sayit.1 Cannot say text on MediaPlayer24 "192.168.178.78":connect ECONNREFUSED 192.168.178.78:50000
Also ein Problem mit dem MediaPlayer24, denke ich!
Die Ansagen gehen über ein Samsung Galaxy Tab A Tablett.
Gruß Superdad
-
ECONNREFUSED 192.168.178.78:50000 `
Verbindung abgelehnt.Das Tab A ist ja relativ modern (habe heute ein update bekommen - das erste) ich weiß nicht, ob da auch schon die ganzen deep sleep Dinge implementiert sind um Strom zu sparen.
Gruß
Rainer
-
Ping zum Tab funktioniert.
Die Adresse mit der :50000 ist aber per Browser nicht erreichbar.
Wenn ich wieder zu Hause bin muss ich mal genauer schauen.
Habe jetzt per VPN-Verbindung getestet, da ich von meiner Firma einen Aufenthalt in Russland "gewonnen" habe.
Eigentlich bin ich auch Apfelfan.
Aber da das Tap vor geraumer Zeit im Angebot war und ich der Meinung bin, dass es für die Küche reicht, hab ich da mal zugeschlagen.
-
-
Hat jemand schon einmal versucht, einen beliebigen Text im Handy einzugeben und den dann über Sayit ansagen zu lassen. Wie müsste man soetwas programmieren.
Da ich mehrere Sonos Anlagen im Haus laufen habe, könnte man eine solche Funktion z. B. dafür nutzen, im ganzen Haus z. B. ansagen zu lassen, dass das Frühstück fertig ist. Oder Ähnliches.
-
Huhu Forum,
Irgendwo wurde das schon behandelt. Aber ich finde es nicht mehr:
Statt die Abfuhr des Müll NUR am Tage der Abfuhr ansagen zu lassen, würde ich es gerne zweimal, also am Tage der Abfuhr und einen Tag vorher ansagen lassen. In cal.1.data.html bzw. cal.1.data.table findet sich ha auch die Info für "morgen".
Nur weiß ich nicht, wie ich das auswerten muss.
Danke für einen Hinweis!
-
Huhu Forum,
Irgendwo wurde das schon behandelt. Aber ich finde es nicht mehr:
Statt die Abfuhr des Müll NUR am Tage der Abfuhr ansagen zu lassen, würde ich es gerne zweimal, also am Tage der Abfuhr und einen Tag vorher ansagen lassen. In cal.1.data.html bzw. cal.1.data.table findet sich ha auch die Info für "morgen".
Nur weiß ich nicht, wie ich das auswerten muss.
Danke für einen Hinweis! `
Hi,
ich denke du suchst das hier:
/* Kalenderevent in der Zukunft suchen sucht im iCal Adapter nach events, die noch kommen http://forum.iobroker.net/viewtopic.php ... 9ce#p34975 20.09.2016 erstellt von pix 13.11.2016 angepasst für Sven */ // Definition var idSayIt = "sayit.0.tts.text"; var lautstaerke = 100; // User Anpassungen var suchstring = 'Bioabfälle'; // Suchbegriff var stichtag = 1; // 0 heute; 1 morgen; 2 übermorgen; 3 In 3 Tagen var idTabelle = 'ical.2.data.table'; // Instanz eintragen var logging = true; // debug Log ein/ausschalten // Ende User Anpassungen createState('Muellwarnung.' + suchstring, false, { type: 'boolean', name: suchstring + ' wird morgen abgeholt', desc: suchstring + ' wird morgen abgeholt (Boolean)', def: false }); var idEventState = 'Muellwarnung.' + suchstring; 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 i = 0; i <kalender.length; i++) { // alle Events durchgehen if ( (kalender.date.indexOf(tag) != -1) || (kalender.date.indexOf(tage[stichtag]) != -1) ) { // String Datum oder relatives Datum (nicht nicht) gefunden, also gefunden var termin = kalender.event; if (termin.indexOf(suchstring) != -1) { log('Treffer: ' + tage[stichtag] + ' ' + suchstring); // hier wird später vielleicht stichtag_array verwendet setState(idEventState, true); } else setState(idEventState, false); } } } catch (fehler_try) { log('Fehler beim Kalenderevents einlesen ' + fehler_try, 'error'); } } schedule("02 19 * * *", function(){ // bei mehreren Müllskripts den ersten Wert verändern (Minuten) var event = getState(idEventState).val; if (event) { var ansage = suchstring + ' Mülltonne wird morgen abgeholt. Bitte stell die Tonne an die Straße!'; // hier kann sayit oder push gesetzt werden //setState("sayit.0.tts.text"/*Text to speech*/, ansage); setState(idSayIt, lautstaerke + ";" + ansage); } }); // bei Aktualisierung on ({id: idTabelle, change: 'any'}, function(data) { pruefeKalender(); }); // 2Min nach Mitternacht schedule("2 * * * *", pruefeKalender); //bei Skriptstart pruefeKalender();Schönen Sonntag
-
Vielen Dank. Ich checke das morgen. Meine Idee ist, das in das bereits bestehende Geburtstags-, Wetter- und Müll Skript einzubauen. So dass ich die Müllansage zweimal erhalte: einmal für den kommenden Tag, also für die Ereignisse "morgen" als Vorwarnung. Und dann noch einmal am Tag der Müllabholung selber. Wenn es läuft poste ich es hier.
