NEWS
Alexa - Rundruf im Haus
-
Idee: via Alexa eine Nachricht im ganze Haus sprechen lassen.
"Brüllen" durch das ganze Haus gehört der Vergangenheit an.
Ich habe in verschiedenen Räumen Sonos Lautsprecher stehen. Diese nutze ich mit dem SayIt- (ich habe diverse Instanzen von Sayit angelegt. Pro Raum eine plus eine für alle), dem Sonos- sowie dem javascript Adapter dazu, eine Nachricht, die ich in allen Räumen ansagen lassen möchte, über Alexa auszulösen.
Dazu in Alexa das Schlüsselwort "Rundruf" gefolgt von der anzusagenden Nachricht sprechen. Und schon wird die Nachricht überall angesagt. Die Lautstärke kann natürlich angepaßt werden (vgl. Script).
Viel Spaß
! //######################################################################
! // Skript zum Rundruf im Haus (Alexa, Sonos)
! //######################################################################
! on ({id: 'alexa2.0.History.summary'/summary/, change: "any"}, fAusgabe);
! //######################################################################
! // Definitionen
! //######################################################################
! // für die Sonos Ausgabe, "2" für Büro , "4" für ALLE Räume
! var idSayIt = "sayit.4.tts.text";
! var lautstaerke = 70;
! // Keyword wird hier festgelegt
! var Key = "rundruf";
! //######################################################################
! // Funktion und Ausgabe
! //######################################################################
! function fAusgabe(){
! var Ausgabe = getState("alexa2.0.History.summary"/summary/).val;
! log("Ausgabe–---->" + Ausgabe +"#");
!
! // Länge des Ausdrucks in Alexa + Position des Keys + Länge des Key ermitteln
! var LaengeAusgabe = Ausgabe.length;
! var PositionKey = Ausgabe.indexOf(Key);
! var LaengeKey = Key.length;
!
! // log(LaengeAusgabe);
! // log(PositionKey);
! // log(LaengeKey);
!
! var Keyword = (Ausgabe.slice(PositionKey, PositionKey + LaengeKey));
! // log("Keyword------>" + Keyword+"#");
!
! var ansage = (Ausgabe.slice(PositionKey + LaengeKey, LaengeAusgabe));
! //log("ansage------>" + ansage+"#");
!
! if (Keyword === Key){
! // log("Alexa Say empfangen");
! setState (idSayIt, lautstaerke +";" + ansage);
! }
! }PS: ursprünglich habe ich das Script für den Telegram Adapter i.V.m. Text to Command irgendwoher aus den Tiefen des Netz kopiert (sorry, daß ich nicht mehr weiß, von wem, sonst hätte ich ihn natürlich genannt) und entsprechen angepaßt.
-
Und wie verhinderst du das sie an dem Alexa gerät wo du das sagst Dir sagt das es das Kommando nicht finden kann?
Gesendet vom Handy …
-
Gar nicht.
Zur Optimierung des Scripts müssen dann die Profis ran. Im Moment läuft das so bei mir.