NEWS
[GELÖST] Alexa Standard-Sprachausgabe deaktivieren
-
Hallo,
folgendes habe ich gemacht. Mein Skript erkennt, wenn ich einen Satz mit "Fernseher" und "Steckdose" sage, wie zum Beispiel, "Schalte die Steckdose Fernseher an". Mein Skript schaltet die entsprechende (Osram-)Steckdose an, Alexa sagt aber trotzdem, dass sie kein Gerät mit "Steckdose Fernseher" kennt. Im Anschluss läuft dann mein Skript weiter und Alexa sagt das, was ich per Skript definiert habe. Mein Skript funktioniert also, bzw. macht eigentlich was es soll, nur die Standardausgabe von Alexa, wenn sie ein Gerät nicht kennt, ist hier unschön.
Kann ich das irgendwie umgehen, dass Alexa ihre Standardaussage macht, wenn sie ein Gerät nicht findet?
Im Anhang mein Skript, falls es wichtig ist:
var jsonobjekt = "alexa2.0.History.json"; var alexaWohnzimmer = "alexa2.0.Echo-Devices.G090L909643516A0"; var ausgabe = ""; on({id: jsonobjekt, change: "ne"}, function (obj) { var value = obj.state.val; var alexaBefehl = JSON.parse(value); if ((alexaBefehl.summary.indexOf("steckdose") > 0 && (alexaBefehl.summary.indexOf("fernsehen") > 0) || alexaBefehl.summary.indexOf("fernseher") > 0)) { ausgabe = '<speak><prosody volume="x-loud">'; if (getState("zigbee.0.7cb03eaa0a0898b3.state").val) { setState("zigbee.0.7cb03eaa0a0898b3.state", false); ausgabe += "Steckdose ist nun aus."; } else { setState("zigbee.0.7cb03eaa0a0898b3.state", true); ausgabe += "Steckdose ist nun an."; } ausgabe += '</prosody></speak>'; setState(alexaWohnzimmer + ".Commands.ssml", ausgabe); } });
Besten Dank schonmal und liebe Grüße
Thomas -
in der Alexa app ne routine erstellen auf Fernseher und Steckdose und keine Bestätigung einstellen
-
@Adnim sagte in Alexa Standard-Sprachausgabe deaktivieren:
in der Alexa app ne routine erstellen auf Fernseher und Steckdose und keine Bestätigung einstellen
Aber dann muss ich ja genau den Satz sagen, den ich bei der Routine einstelle. Das wollte ich eigentlich umgehen.
-
hmm halt die Triggerwörter die du auch im Skript nutzt?
edit:
Bsp:
WENN Sprachbefehl „Alexa, Fernseher“, DANN starte NIX. -
@Adnim
Aber dann würde Alexa nur bei „Alexa Fernseher“ nichts machen, bei „Alexa Fernseher einschalten“ würde sie dann wiederum was sagen. -
@tööö
Moin, mir ist kein Weg bekannt das abzuschalten.
Problem: Du sagst Alexa das sie was schalten soll, aber sie findet nix zum schalten, weil ihr das Gerät nicht bekannt ist. (weil Du in der Summary schaust und Dein Script schaltet). Geschaltet wird zwar alles, weil das Dein Script macht, aber Alexa quittiert dann eben das sie kein Gerät findet oder fragt blöde nach.Warum schaltest Du nicht direkt über z.B. iot die Steckdose an ?
Alexa, Fernseher an.Wenn Du über Dein Script (über die Summary) schalten willst und vermeiden willst das sie nix findet, könntest Du auch Dummy Geräte einfügen, aber dann könntest Du auch gleich die richtigen Geräte einfügen.
Du könntest vielleicht probieren, wenn Dein Script Deine Triggerwörter erkennt, die Lautstärke des ECHO so weit wie möglich runter zu setzen und anschließend wieder zurück zu setzen.
(Habe ich selbst noch nicht probiert) -
@dslraser sagte in Alexa Standard-Sprachausgabe deaktivieren:
Warum schaltest Du nicht direkt über z.B. iot die Steckdose an ?
Alexa, Fernseher an.SmartNamen kannst Du soviel dort rein setzen(mit Komma getrennt) wie Du willst. Also mehrere Sätze/Wörter, so wie Du sonst auch schaltest.
-
@dslraser
Das mit dem Dummygerät klingt nach einer Möglichkeit, die werde ich mal probieren.Warum ich die Steckdose Fernseher nicht als Gerät hinzufügen möchte und über iot schalten möchte, ist ganz einfach. Ich will nicht immer sagen „Alexa Steckdose Fernseher anmachen“, sondern auch mal „Alexa mach die Steckdose am Fernseher an“.
Klar, das sind Luxsprobleme.
-
@tööö sagte in Alexa Standard-Sprachausgabe deaktivieren:
Warum ich die Steckdose Fernseher nicht als Gerät hinzufügen möchte und über iot schalten möchte, ist ganz einfach. Ich will nicht immer sagen „Alexa Steckdose Fernseher anmachen“, sondern auch mal „Alexa mach die Steckdose am Fernseher an“.
Das meinte ich. Füge doch alles was Du sonst so sagst, oder sagen könntest, bei diesem Gerät bei iot ein. (das mach ich bei einigen Geräten so, z.B wenn ich Fernsehsender umschalten will.)
Alexa,
z. d. f. , kanal zwei, das zweite
anusw...
-
@dslraser sagte in Alexa Standard-Sprachausgabe deaktivieren:
Das meinte ich. Füge doch alles was Du sonst so sagst, oder sagen könntest, bei diesem Gerät bei iot ein. (das mach ich bei einigen Geräten so, z.B wenn ich Fernsehsender umschalten will.)
Alexa,
z. d. f. , kanal zwei, das zweite
Ah ok, Danke, dann mache ich das so.
-
@tööö
und nicht vergessen das Script zu deaktivieren... -
Ich kam nun ein ganzes Stück weiter dank deiner Hilfe/Tipps. Mein Skript sieht nun folgendermaßen aus:
var alexaWohnzimmer = "alexa2.0.Echo-Devices.G090L909643516A0"; var ausgabe = ""; var spracheAN = ["Alles klar, Steckdose ist nun an.", "Ok, der Fernseher bekommt nun Strom.", "Ok, der Fernseher ist nun mit Strom versorgt.", "Jawoll, viel Spaß beim Fernschauen.", "Mache ich gern, Strom fließt.", "Ok, du kannst nun Fernschauen."]; var spracheAUS = ["Ok, Steckdose ist nun aus.", "Alles klar, der Fernseher bekommt nun kein Strom mehr.", "Super, nun wird wieder Strom gespart.", "Ok, ich hoffe, es war ein spannendes Fernsehprogramm.", "Mache ich gern, die Stromrechnung freut sich.", "Erledigt, Fernseher bleibt nun aus."]; var index; ausgabe = '<speak><prosody volume="x-loud">'; if (getState("zigbee.0.7cb03eaa0a0898b3.state").val) { setState("zigbee.0.7cb03eaa0a0898b3.state", false); index = Math.floor(Math.random() * (spracheAUS.length - 0)) + 0; ausgabe += spracheAUS[index]; } else { setState("zigbee.0.7cb03eaa0a0898b3.state", true); index = Math.floor(Math.random() * (spracheAN.length - 0)) + 0; ausgabe += spracheAN[index]; } ausgabe += '</prosody></speak>'; setState(alexaWohnzimmer + ".Commands.ssml", ausgabe);
Alexa soll natürlich verschiedene Rückmeldungen geben. In der iot-Instanz habe ich das Skript hinzugefügt und verschiedene Werte hinterlegt "Steckdose Fernseher, Steckdose Fernsehen, Steckdose am Fernseher..."
In der Alexa-App dann nach Geräten gesucht, alle gefunden. Soweit ist das auch super.Wenn ich nun sage, "Alexa, schalte Steckdose Fernseher ein", klappt das auch wunderbar und das Skript wird ausgeführt. Aber wenn ich sage "Alexa, schalte Steckdose Fernseher aus", klappt das natürlich nicht.
Kann ich das noch irgendwie lösen? Natürlich könnte ich sicher meine ZigBee-Steckdose auch hinzufügen, aber dann habe ich die Zufallsantwort von Alexa nicht, bzw. kann dahinter keine eigenen Skripte legen.
-
@tööö du brauchst dein skript nicht! siehe ein post oberhalb deines postings...
-
@da_Woody sagte in Alexa Standard-Sprachausgabe deaktivieren:
@tööö du brauchst dein skript nicht! siehe ein post oberhalb deines postings...
Ja, das würde gehen, aber dann könnte Alexa keine Zufallssätze nach dem Schalten der Steckdose ausgeben, so wie ich es im Skript programmiert habe.
Das muss doch irgendwie gehen, oder ist man hier streng im System gefangen?
-
@tööö sagte in Alexa Standard-Sprachausgabe deaktivieren:
Wenn ich nun sage, "Alexa, schalte Steckdose Fernseher ein", klappt das auch wunderbar und das Skript wird ausgeführt. Aber wenn ich sage "Alexa, schalte Steckdose Fernseher aus", klappt das natürlich nicht.
auch wieder verschiedene Möglichkeiten...
Ohne Script kommt es drauf an wie Du die Geräte in iot einfügst, bzw. was das für Geräte sind.
Ein Button z.B. löst immer aus, weil er nur aktualisiert wird. Ein Schalter (Switch) kann an und aus. Light kann z.B. noch level von bis usw... Das kannst Du schon sehr gut an den Symbolen im iot Adapter erkennen.Wenn Du iot und Script laufen hast, dann gibt das bestimmt ein durcheinander....
-
@tööö sagte in Alexa Standard-Sprachausgabe deaktivieren:
Ja, das würde gehen, aber dann könnte Alexa keine Zufallssätze nach dem Schalten der Steckdose ausgeben, so wie ich es im Skript programmiert habe.
Du könntest ja probieren das Script nichts schalten zu lassen, sondern nur die Zufallsantworten ausgeben lassen.
Edit:
also wenn die Steckdose/Fernseher tatsächlich geschalten wurde und an ist(z.B. true) dann sabbel die Zufallsantwort. Alles ohne die summary. -
@dslraser sagte in Alexa Standard-Sprachausgabe deaktivieren:
@tööö sagte in Alexa Standard-Sprachausgabe deaktivieren:
Ja, das würde gehen, aber dann könnte Alexa keine Zufallssätze nach dem Schalten der Steckdose ausgeben, so wie ich es im Skript programmiert habe.
Du könntest ja probieren das Script nichts schalten zu lassen, sondern nur die Zufallsantworten ausgeben lassen.
Edit:
also wenn die Steckdose/Fernseher tatsächlich geschalten wurde und an ist(z.B. true) dann sabbel die Zufallsantwort. Alles ohne die summary.Wieso komme ich nicht auf solche Ideen? Aber gut, Danke, das klingt plausibel und machbar. Problem habe ich nun nur beim Hinzufügen der Zigbee-Steckdose (Osram). Skripte gingen wunderbar hinzuzufügen, aber die Steckdose mag er nun aus irgendeinem Grund nicht:
iot.0 2020-08-30 10:33:25.433 error (1281) "zigbee.0.7cb03eaa0a0898b3.state" not exists or no native part.
Müsste doch genauso gehen, wie wenn ich die Skripte in die iot-Instanz hinzufüge, oder?
-
@dslraser irgendwie skuril. erst soll alexa den schnabel halten, jetzt soll sie "lustige" antworten gebn...
-
@tööö
füge das/die SmartNamen einfach über den RAW des Datenpunktes hinzu.Beispiel ? (oder weißt Du was ich meine)
-
@tööö
Beispiel SmartNamen über RAW einfügen