NEWS
Alexa device für Sprachausgabe bestimmen
-
So, funktioniert grundsätzlich aber manchmal verschluckt er sich halt noch und gibt es auf dem falschen Gerät aus, weil der Status in der history nicht schnell genug aktualisiert wird. Da müsste also vor dem Auslesen des Status irgendwie noch eine kleine Verzögerung rein. Mal sehen, ob ich da ne Lösung finde.....
-
@harrymausi
Hallo,
wie @Albert K schon schreib Trigger im Trigger mach man nicht, könnte daran liegen.
bei mir sieht es so aus, einmal mit speakoder mit ssml
es antwortet immer die gefragte
Edit: noch ein Bild
Gruß Michael -
@michi68
Vielen Dank für den Vorschlag.
Wenn ich es richtig sehe, wird hier vermutlich auch die serialnumber aus der history ausgelesen und dann das entsprechende device mit dem speak Befehl angesprochen.
Ich werde es auch einmal so probieren, da mir das Script etwas kompakter erscheint als meins.
Mittlerweile funktioniert es bei mir aber auch gut.
Das Problem war offensichtlich, dass das andere echo Gerät mitgehört hat (die Mikrofone sind ja sehr empfindlich) und somit das von mir angesprochene Gerät nicht in der history stand, sondern ein anderes, welches dann auch antwortete.... -
Und Deine Blockly funktionieren wirklich? Das wundert mich jetzt aber schon etwas.
Als Trigger benötigt man doch den ObjekID und nicht den Wert des ObjektIDs.
-
@albert-k In neueren javascript Versionen wird der Objekt Name angezeigt und nicht die Objekt-ID. Ist also im Bereich des Möglichen.
-
Ja schon, Objekt Name versteh ich ja noch, aber im Beispiel von Michi68 steht ja der Wert des Objekts als Trigger (Alexa, ist das Licht am Balkon an) und nicht der ObjektID oder Objekt Name. (???)
-
@albert-k HAb ja nicht alles gelesen aber er scheint das Objekt zu setzen, wenn der Satz gesprochen wurde.
-
@albert-k
Extra Datenpunkt nur zur Abfrage
-
Boah Jetzt ist es klar. Echt grenzwertig LOL. Hast mich damit ganz schön an der Nase rum geführt
-
-
aber Du hast immer noch Trigger im Trigger. Nicht gut. In diesem Fall richtet es wohl nichts an, ist aber überflüssig
Sobald der geschachtelte Trigger einmal auslöst, triggert er immer, egal ob der übergeordnete Trigger auslöst oder nicht.
Der geschachtelte sollte ein blauer Logik/Falls Block sein. Falls Wert von Objekt Power (=wahr) -> setze Text, schreibe Objekt. (vor allem wenn Du mehrere Objekte einfügen willst)
-
@albert-k
Ich denke, Du meinst das so.
Funktioniert genauso gut! Ich bin im iobroker bzw. blockly leider noch nicht sehr firm.
Ich muss mir da erst einiges erarbeiten.
Manchmal ist es noch ein komplizierter Weg zum Ziel.... -
Ja, genau so. Deshalb Trigger in Trigger gar nicht erst angewöhnen, das kann ganz unvorhersehbare Auswirkungen haben (nicht in Deinem Beispiel aber allgemein)
Jeder fängt mal an, ich bin auch nur etwas länger in Blockly drin und immer noch Anfänger
-
@albert-k
ja das ein oder andere kann man schon mal falsch interpretieren und das dann zu Verwirrung führen
@harrymausi
schön das es geholfen hat und das Trigger in Trigger hast du auch behoben -
Moin,
genau soetwas habe ich gesucht, leider habe ich das Problem, das Alexa erstmal anfängt mir zu erzählen, das es einen Skill nicht finden kann, oder irgendwelche Erklärungen aus dem Internet erzählt oder oder oder ..... und erst dann kommt die eigentliche Sprachaussage, die ich eingegeben habe.
Kann man irgendwie unterbinden, dass wenn Alexa kein Kommando oder ähnliches verstanden hat, sie ruhig bleibt und dadurch dann nur meinen Text ausgibt ?in diesem Sinne ... bis denne
-
Zeig doch mal Dein Blockly. Bei Ausgabe auf "speak" kommt normalerweise nur der Text den man im Blockly definiert. Sie soll ja nichts weiter tun als etwas sprechen.
-
@harrymausi said in Alexa device für Sprachausgabe bestimmen:
Ich habe nun auch einmal die Variante von Michi68 ausprobiert. Hier ist es eleganter gelöst
Oh ja, das ist sehr viel eleganter!
Wieder was gelernt Dank an @Michi68
-
@albert-k sagte in Alexa device für Sprachausgabe bestimmen:
Zeig doch mal Dein Blockly. Bei Ausgabe auf "speak" kommt normalerweise nur der Text den man im Blockly definiert. Sie soll ja nichts weiter tun als etwas sprechen.
-
OK, das liegt nicht am Blockly sondern an Alexa. du musst die Dame überlisten.
Wenn Du den iot Adapter und Skill verwendest, geht das so:
- einen virtuellen Datenpunkt (Logik) unter user.0 anlegen
- im iot Adapter neues Gerät anlegen und mit diesem virtuellen Datenpunkt verknüpfen
- Alexa nach neuen Geräten suchen lassen
- Im Blockly den Trigger auf den virtuellen Datenpunkt setzen und in der Falls Abfrage nach den Schlüsselwörten im "summary" suchen". Dann die Aktion oder Sprachausgabe erstellen und auf "speak" ausgeben.
- Alexa Routine erstellen mit dem Wortlaut, wie man es genau formulieren möchte (z.B. Alexa, wie ist die Temperatur im Garten?). Als Aktion in der Routine dann das gefundene "Gerät"/virtuellen Datenpunkt auf true/false setzen.
- In den Alexa Einstellungen ggf. noch den Kurz Modus einstellen.
- Alexa schaltet also das virtuelle Gerät, das wiederum das Blockly triggert.
Im normalen Alexa Modus kommt dann als Antwort "OK" und danach die Sprachausgabe des Blockly. Im Kurz Modus kommt nur ein Pling und dann die Sprachausgabe.
-
@albert-k sagte in Alexa device für Sprachausgabe bestimmen:
Alexa Routine erstellen mit dem Wortlaut, wie man es genau formulieren möchte (z.B. Alexa, wie ist die Temperatur im Garten?). Als Aktion in der Routine dann das gefundene "Gerät"/virtuellen Datenpunkt auf true/false setzen.
Ich stimme Dir zu, allerdings nehme ich einen Button und triggere auf wurde aktualisiert, dann brauche ich nicht im Blockly noch extra true/false zu schalten. Den Rest mache ich genau so...