NEWS
gelöst: Alexa Logikwert
-
@grizzlyco
Ich glaube Du hast das mit den Routinen Namen nicht gecheckt.
Beispiel, die Routine heißt "wo ist die Katze", dann lautet die Frage an Alexa "Alexa, wo ist die Katze" und schon dürfte Deine Frage beantwortet sein. -
Ach so.
Und wie bekomme ich aus dem True ein Zuhause Bzw nein hin? -
@grizzlyco
Das machst mit nem Script, dass Dir dann eben den z.B "speak" Dp im Alex Adpetr mit der gewünschte Antwort beschreibt.
Bastle mal was zusammen und poste es hier, das bekommen wir schon auf die Reihe ist nichts kompliziertes. -
Die Routine habe ich erstellt. Also kennt Alexa jetzt die Frage. Aber was wähle ich bei Aktion aus? Wenn ich „Smart Home / katzendatenpunkt“ auswähle kommt nur ein Ton.
-
@grizzlyco
Du nimmst ein Trigger und wertest "summary" auf die gewünschte Frage aus und dann ne FALLS, die den "Speak" mit der Atnwort befüllt. Das ist sehr einfachAlso in die FALLS dann ne UND , wenn mehrere Katzen abgefragt werden sollen und eben den passenden DP den Du setzt. Wenn beides erfüllt, steure "speak" "mit Katze 1 ist da"
-
Nur damit ich dich richtig verstehe:
Die Routine soll dann einen Datenpunkt in Iobroker Schalter.
Dieser Schalter wertet dann in Iobroker aus und macht über den Alexa Adapter eine Sprachausgabe.
Richtig?
-
@grizzlyco
Das ist über summery nicht nötig, wobei Du das auch so lösten könntest. Es gibt viele Wege das zu erledigen. Mit summery hab ich auch noch nichts gemacht, scheint mir aber ne elegante Lösung zu sein, da in dem DP die Frage die Alexa zuletzt verstanden hat aufgeführt wird. Mit der Routine kannst aber auch ein DP setzten, nur muss der vorher eben auch wieder erst an Alexa über z.B. den IoT angebunden werden und das kannst dir so eben sparen.Heißt, die Routine selber macht nichts, die dient nur dazu um die Frage an Alexa im "summery" DP zu zeigen und damit geht es dann weiter.
-
Hmmmm vielleicht ist die frage doof, aber was ist summery?
-
@grizzlyco
Ein DP im Alexa Adapter -
@grizzlyco
Hast Du schonmal etwas mit Blockly(Script) gemacht? -
Ja. Das sollte kein Problem sein.
-
@grizzlyco
Dann mal ran und hier posten falls es nicht so klappt wie gewünscht -
Mach ich. Danke erstmal.
-
Es hat funktioniert. Danke.
Ich habe mit dem Alexa Adapter noch nicht viel gemacht. -
@grizzlyco
wenn es läuft, oben editieren und gelöst dazu schreiben, dann noch das funktionierende Ergebnis hier rein.
Erstens weil mans eventuell optimieren kann und zweitens damit andere User als Vorlage nutzen können -
Lösung folgt
on({id: 'alexa2.0.History.summary', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("alexa2.0.History.name").val == 'Schlafzimmer') { // Schalfzimmer if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == true) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Ja, Anton ist zuhause'); } else if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == false) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Nein, Anton ist draussen'); } } else if (getState("alexa2.0.History.name").val == 'Wohnzimmer') { // Wohnzimmer if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == true) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Ja, Anton ist zuhause'); } else if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == false) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Nein, Anton ist draussen'); } } else if (getState("alexa2.0.History.name").val == 'Bad') { // Bad if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == true) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Ja, Anton ist zuhause'); } else if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == false) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Nein, Anton ist draussen'); } } else if (getState("alexa2.0.History.name").val == 'Spielzimmer') { // Spielzimmer if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == true) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Ja, Anton ist zuhause'); } else if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == false) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Nein, Anton ist draussen'); } } else if (getState("alexa2.0.History.name").val == 'Timo Schlafzimmer') { // Timo Schafzimmer if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == true) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Ja, Anton ist zuhause'); } else if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == false) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Nein, Anton ist draussen'); } } else if (getState("alexa2.0.History.name").val == 'Küche') { // Küche if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == true) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Ja, Anton ist zuhause'); } else if (getState("alexa2.0.History.summary").val == 'ist anton zuhause' && getState("surepetcareio.0.Bahnstr.pets.0").val == false) { setState("alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak"/*speak*/, 'Nein, Anton ist draussen'); } } });
-
@grizzlyco
Ui, das ganze aber besser noch als "Code" darstellen lassen ("</>" im Forum Editor),
Dann ist es besser nutzbar. ;-)
Und evtl. die "G..." raus editieren, das sind die Seriennummern Deiner Echos.
Wobei ich nicht weiß, ob "das Böse" damit wirklich etwas anfangen kann.Was ich noch grob erkenne, Du Prüfstand auf Name des Echos, wenn Du auf Seriennummer prüfst, kannst Du so programmieren, dass Du nicht jeden einzeln angeben musst.
Dann kannst Du Dir den Speakdatenpunkt (den Pfad) mit Seriennummer zusammen basteln. -
@padrino
Das mache ich bei Gelegenheit. Hatte heute morgen keine Zeit