NEWS
Ical Müllplan auswerten für Alexa oder TTS
-
Hallo,
habe einen Müllplan im ical. Dort bekomme ich für VIS auch schön Tabelle oder HTML ausgegeben.Nun möchte ich aber gerne das ganze in meiner Begrüßung reinpacken.
Das ganze ist eine Speak oder TTS ansage.
Ich will gerne:Hallo XYZ morgen ist die "Gebe Tonne" dran. Aber nur wenn auch morgen eine Tonne dran ist
Hat schon jemand ein Blockly oder script um das irgendwie hinzubekommen ?
-
Lösung gefunden:
https://forum.iobroker.net/topic/27050/test-adapter-trashschedule -
Sonst hätte ich hier auch noch ein kleines Script
(function(){ const id_alexa= "alexa2.0.Echo-Devices.xxxxxxx.Commands.speak"; const id_cal= 'ical.0.events.'; const id_cal_homeoffice_now= id_cal + '0.now.Homeoffice'; const id_Heizung_Buero= 'fritzdect.0.Comet_11xxx32'; on({id: id_cal_homeoffice_now, change:"ne"}, function(obj){ let temp= obj.state.val ? (getState(id_Heizung_Buero + '.comfytemp').val || 22) : (getState(id_Heizung_Buero + '.nighttemp').val || 16) ; setState(id_Heizung_Buero + '.targettemp', temp); setState(id_alexa, '60;Die Heizung im Büro wurde auf ' + temp + ' Grad eingestellt'); }); schedule({hour: 19, minute: 0}, function(){ ['Restabfall','Altpapier','GelberSack'].forEach(function(value){ if (getState(id_cal + '1.' + value).val === true) setState(id_alexa, '60;Morgen ist ' + value); }) }); schedule({hour: 7, minute: 0}, function(){ ['Restabfall','Altpapier','GelberSack'].forEach(function(value){ if (getState(id_cal + '0.today.' + value).val === true) setState(id_alexa, '60;Heute ist ' + value); }) }); })();
Das mit dem Homeoffice kannst du löschen, ist halt mein aktuelles Kalender Script...
Allerdings braucht man noch ein kleinen Doc im iCal adapter, siehe https://github.com/iobroker-community-adapters/ioBroker.ical/issues/103Gruss
Dirk -
@dirkhe Hi,
Dein Skript funktioniert soweit!, aber wie müsste es aussehen wenn an einem Tag zwei Tonnen nach Plan rausgestellt werden müssen?
Das Skript erkennt zwar, das zwei Tonnen dran sind, aber es wir immer eine Tonne über die Alexa ausgegeben bzw. die Sprachausgabe beider Tonne kommt laut log immer zur exakt selben Zeit, weswegen Alexa nur eine Tonne ansagt.
-
Ich habe für jede Tonne ein Blockly und jeweils eine Verzögerung eingebaut.
Als Beispiel:
Papiertonne nach 10sek ansagen
Biotonne nach 20sek ansagen usw. -
@haselchen Ja sowas hatte ich auch im Sinn! Ich bin blutiger Anfänger im JavaScript bzw. Blocky. Das soll heißen das ich nur eine Tonne in die Schleife werfe und kopiere den ganzen Block für jeden anderen Tonne. Wo trage ich nochmal die Verzögerung ein?
-
@vb-raven
Ich benutze einen GoogleHomeMini für die Sprachausgabe.
So sehen die anderen Blocklys auch aus. Aber halt mit anderen Verzögerungen. -
@haselchen
mach am Besten noch einen Haken bei löschen falls läuft (das ist quasi stop timeout), nicht das sonst Deine timeout mehrfach laufen, wenn Du das Fenster öffnest und schließt und wieder öffnest usw. (innerhalb der Verzögerung)
Timeout am Besten immer stoppen, auch wenn es manchmal/meistens auch so geht. -
Nur so nebenbei....
Ist aber schon bekannt dass es einen entsprechenden Skill mit Benachrichtigung und sogar Anzeige auf Echo Show Geräten gibt?...keine Kritik...nur Hinweis falls unbekannt...
-
@Albert-K ich wurde zwar nicht angesprochen, aber ich bin ein Freund von "Alles aus einer Hand" und der iobroker muss es jetzt richten, da er im Haus noch weitere Sachen steuert - stehe aber da noch am Anfang
Aktuell habe ich eine Anruferansage durch FritzBox und Alexa
@haselchen ich werde mir mal Blocky anschauen
-
Hey....Guter Einwand, werde ich beobachten.
Ich brauchte einen zuverlässigen Trigger.
Und das Fenster öffnen wir jeden Tag nach dem Aufstehen. Geöffnet und geschlossen wird es nur 1mal bevor wir das Haus verlassen.
Habe lange tüfteln müssen bevor alle Ansagen korrekt gesprochen wurden.
Wir lassen nämlich auch Radio nach dem Aufstehen auf dem Mini laufen. Das war schon nen Hexenwerk das zu programmieren. -
@haselchen Wie gesagt, ich bin blutiger Anfänger in Blocky.
Wieso brauche ich eigentlich einen Trigger, der mit der eigentlichen Sache nichts zu tun hat? Kann man "nur" den "blauen Block" zur einer bestimmten Zeit laufen lassen?
Was passiert wenn das Fenster vergessen wird zu öffnen bzw. zu schließen - löst dann die Ansprache der Tonnen nicht aus?