Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon Echo - Lautsprecher von amazon mit Alexa Spracherkennung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • steffen79
    antwortet
    Moin zusammen,

    ich bin zwar noch Neuling mit Alexa, aber habe das System schon rudimentär an Edomi angebunden.

    Ich beschreibe mal kurz meinen aktuellen Stand:

    Die Skills für Alexa werden auf https://developer.amazon.com definiert. Dort kann man die erkennbaren Sprachbefehle definieren.
    Grundsätzlich hat man die Möglichkeit, alles selber zu definieren ("Custom Skill") oder das fertige Home Automation Skill von Amazon zu benutzen.

    Die Logik kann (Custom Skill) bzw muss (Home Automation Skill) auf https://aws.amazon.com/ implementiert werden.

    Custom Skill
    Vorteil: Mehr Flexibilität, Möglichkeit direkt https-Requests von dort aus an eigene Server schicken (aber zb. ohne http-Client-Zertifikate)
    Nachteil: Man muss alles selber definieren. Wenn ich das richtig verstanden habe muss außerdem ein weiteres "Hot-Word" wie beispielsweise "Haus" (Beispiel von ThorstenGehrig ) definieren

    Fertiges Home Automation Skill:
    Vorteil: Amazon hat viel vordefiniert, die wichtigsten Sachen laufen sehr flüssig und in verschiedenen Variation (Von: "Alexa, Wohnzimmer" an bis zu "Alexa, mach bitte das Licht im Wohnzimmer an")
    Nachteil: Es funktioniert nur mit Amazon-Lambda zusammen, außerdem muss man noch diese einmalig nervige Authentifizierung ("OAuth") machen.

    Ich habe mich für das fertige Home Automation Skill entschieden. Dazu muss man sich an zwei Amazon Seiten registrieren (developer & aws). Bei aws muss man dabei auch sofort seine Zahlugsdaten (Adresse & Kreditkarte) hinterlegen. Kostet aber nischt für unseren Zweck.
    Hier ist es gut beschrieben, obwohl ich bei meiner Einrichtung dieses wiki noch nicht kannte: http://www.fhemwiki.de/wiki/Alexa-Fhem
    Also, ich habe mich 2x registriert und das Home Automation Skills (developer) mit meiner Lambda-Funktion (aws) verknüpft.

    Kurzer Exkurs: Was macht eine Lambda-Funktion?
    Die kann bestimmt noch viel mehr, weiß ich nicht, aber in meinem Fall macht Sie genau zwei Sachen:
    - Discovery
    - Control
    Generell bekommt die Lambda einen Input-Parameter (quasi von Alexa). In der Objektstruktur dieses Parameters steht der Befehl (Discovery oder Control) und einige andere vom Befehl abhängige Parameter. Als Antwort wird auch wieder ein Objekt zurückgegeben. Bei Discovery eine Liste von Geräten, bei Control ein "ok" oder "nicht ok".
    Diese Antworten beschreibe ich kurz weiter unten.
    Die beim Discovery gefunden Geräte müssen in der Alexa einmalig "importiert" werden: "Meine Geräte suchen" (Das löst auch dann den Request zur Lambda-Funktion aus)

    Das Prinzip ist also bei mir:
    Ich rede mit Alexa, Alexa erkennt Home-Automation-Befehl und sendet das an meine Lambda-Funktion.
    Die Idee der Lambda-Funktion habe ich auch von FHEM übernommen: Die komplette Frage wird als JSON-String an meinen eigenen Webserver mit Client-Zertifikat geschickt. Client-Zertifikat bedeutet, dass nur dieser Amazon-Rechner überhaupt mit meinem Server reden darf. Dieses Client-Zertifikat ist die einzige Änderung gegenüber dem Skript von FHEM. Wie man diese Client-Zertifikate grundsätzlich erstellet, habe ich in meiner "Externer-Zugang-Fallstudie" beschrieben: https://knx-user-forum.de/forum/proj...terner-zugriff
    Als Antwort bekommt der Amazon-Rechner wieder das entsprechende Objekt via JSON zurück.

    Mein php-Skript, dass auf dem edomi Rechner läuft, antwortet also live auf Discovery Requests oder auf Controls (zb Licht schalten).
    Außerdem kommuniziert es mit der Remote-Schnittstelle von edomi.
    Das Skript liest seine "bekannten Geräte" aus einer Textdatei:
    <KO1>; <Name1>
    <KO2>; <Name2>
    KO ist dabei direkt eine Gruppenadresse (die in Edomi natürlich explizit für Fernsteuerung/remote freigeschaltet werden muss!)

    Das funktioniert jetzt soweit alles. Der Echo-Dot hat wirklich eine gute Spracherkennung. Selbst mit TV im Hintergrund noch ganz gut.
    Was jetzt noch fehlt, sind Anpassungen in meinem lokalen alexa.php-Skript, damit auch andere Geräte wie Dimmer angesprochen werden können.
    Das sollten aber nur kleine Modifikationen im alexa.php sein (Andere discoverte Geräte zurückgeben, ein wenig anders aus Control reagieren).

    Viel Spaß beim Ausprobieren,
    Steffen


    Anhänge:
    index.js (umbenennen!) ist meine Lambda-Funktion. Diese muss im ZIP mit client.crt und client.key hochgeladen werden, falls man die Client-Zertifikate benutzen will)
    alexa.php (umbenennen!) liegt lokal auf dem Edomi-Rechner bei mir wird durch Amazon aufgerufen. Dieses Skript ruft edomi-remote auf und liest meine Konfiguration aus.
    config.txt: Meine Konfiguration. KOs aus den Gruppenadressen von Edomi raussuchen und für Fernzugriff freischalten


    Als "PS:" gibt es hier noch zur Erklärung kleine Beispiele für die Kommunikation Alexa->Lambda->´mein alexa.php Skript (das Lambda leitet eigtl nur weiter, muss aber zwingend für home-automation-skill benutzt werden)

    Bei Klick auf "Meine Geräte suchen" in Amazon App gibt es discovery-Request:
    Code:
    {
       "header":{
          "namespace":"Alexa.ConnectedHome.Discovery",
          "name":"DiscoverAppliancesRequest",
          "payloadVersion":"2",
          "messageId":"06c4efaf-da9b-4deb-8561-54412400382c"
       },
       "payload":{
          "accessToken":"BLA BLA aber brauchen wir nicht(?)"
       }
    }
    Meine Antwort für Küche und Schlafzimmer. Mehr hab ich aktuell nicht, kann aber fix in der config.txt hinzugefügt werden. Im Device-Namen verstecke ich die KO-ID:
    Code:
    {
       "header":{
          "namespace":"Alexa.ConnectedHome.Discovery",
          "name":"DiscoverAppliancesResponse",
          "payloadVersion":"2"
       },
       "payload":{
          "discoveredAppliances":[
             {
                "applianceId":"device00524",
                "manufacturerName":"Steffen",
                "modelName":"ST01",
                "version":"VER01",
                "friendlyName":"Wohnzimmer",
                "friendlyDescription":"Das Licht im Wohnzimmer (device00524)",
                "isReachable":true,
                "actions":[
                   "turnOn",
                   "turnOff"
                ]
             },
             {
                "applianceId":"device00526",
                "manufacturerName":"Steffen",
                "modelName":"ST01",
                "version":"VER01",
                "friendlyName":"K\u00fcche",
                "friendlyDescription":"Das Licht im K\u00fcche (device00526)",
                "isReachable":true,
                "actions":[
                   "turnOn",
                   "turnOff"
                ]
             }
          ]
       }
    }

    Schaltbefehle bzw allgemeine Steuerungsbefehle. Im Beispiel für device00524 = KO 524 = Wohnzimmer
    Code:
    {
       "header":{
          "namespace":"Alexa.ConnectedHome.Control",
          "name":"TurnOffRequest",
          "payloadVersion":"2",
          "messageId":"81c27978-cc0c-4ae8-b1bc-09510c597a60"
       },
       "payload":{
          "accessToken":"BLA BLA BLA",
          "appliance":{
             "applianceId":"device00524",
             "additionalApplianceDetails":{
             }
          }
       }
    }
    Meine OK Antwort damit Alexa keine Fehlermeldung (sondern ein "okay") an den Benutzer ausgibt. Hier die passende TurnOffConfirmation:
    Code:
    {
       "header":{
          "namespace":"Alexa.ConnectedHome.Control",
          "payloadVersion":"2",
          "messageId":"81c27978-cc0c-4ae8-b1bc-09510c597a60",
          "name":"TurnOffConfirmation"
       }
    }
    Angehängte Dateien
    Zuletzt geändert von steffen79; 13.11.2016, 08:41.

    Einen Kommentar schreiben:


  • junibart
    antwortet
    Zitat von steffen79 Beitrag anzeigen
    patrickgoll

    Ich kämpfe seit einiger Zeit mit den Amazon Vorgaben und HowTos... kannst Du mir mal kurz sagen wie Du das gemacht hast oder mir Deine Intents und Utterenaces mal zu Verfügung stellen? Das wäre eine super Hilfe :-)

    Gruß,
    Steffen
    Oh, das klingt, als ob schon jemand an dem Thema Echo-Integration in edomi dran ist...

    Mein Echo Dot ist gestern eingetroffen, und wir sind gerade bei der Eingewöhnung ;-)

    Falls es etwas zu testen gibt, mach ich gerne mit.

    Grüße,

    Gunnar


    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi
    also ob Daten gesendet werden kann man leicht feststellen wenn man den Netzwerk-Traffic beobachtet / mitschneidet. Hier also bitte keinen Aluhut ;-)
    Zur Erkennungsgeschwindigkeit: die ist SUPER. Es gibt tausende von reviews auf youtube - da siehst du es mit eigenen Augen/Ohren...

    Gruß
    Thorsten

    (PS: habe noch platz für max 2-3 Dots - dann ist mein Koffer voll - da sind ja noch andere Sachen drin...)

    Einen Kommentar schreiben:


  • MartW
    antwortet
    Zitat von ThorstenGehrig Beitrag anzeigen
    Zuhören tun die Teile doch nur nach dem Hotword.
    Naja, ob das auch wirklich stimmt? Insgeheim weiß das ja nur Amazon selbst..


    Zitat von ThorstenGehrig Beitrag anzeigen
    Soll amazon ruhig wissen wann ich aufstehe...
    Wir leben in der Post-Privacy-Zeit - mit oder ohne Alexa.
    Hier stimme ich dir allerdings zu. Die meisten Services heutzutage laufen ohnehin nach dem "Friss-Oder-Stirb"- Prinzip: Entweder du gibst deine Daten her, oder du kannst das Produkt nicht nutzen. Gerade große Anbieter wie Facebook, Amazon und Google können sich das eben leisten, ihre Produkte nach diesem Prinzip anzubieten..

    Dennoch, in der Wohnung das Gefühl haben, abgehört zu werden ist so eine Sache. Ich hatte mal eine zeit lang mein altes Smartphone mit einem guten Mikro ausgestattet und dann auch als Sprachsteuerung verwendet. Allerdings hat es von der Hotworderkennung bis zum Erkennen der Befehle meiner Meinung nach viel zu lang gedauert.

    Wie ist das denn beim Echo Dot?
    Wie lange dauert die Hotword-Erkennung, und wie lange dauert es bis Echo erkennt, dass der gesprochene Satz "fertig" ist?

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    Hi Steffen im SmartHome.py Forum findest du eine ausführliche Erläuterung meines bisherigen Entwicklungsstandes. https://knx-user-forum.de/forum/supp...zon-echo/page2

    Grüße,
    Patrick

    Einen Kommentar schreiben:


  • steffen79
    antwortet
    patrickgoll

    Ich kämpfe seit einiger Zeit mit den Amazon Vorgaben und HowTos... kannst Du mir mal kurz sagen wie Du das gemacht hast oder mir Deine Intents und Utterenaces mal zu Verfügung stellen? Das wäre eine super Hilfe :-)

    Gruß,
    Steffen

    Einen Kommentar schreiben:


  • ThorstenGehrig
    antwortet
    Hi,
    ein Google home hab ich mir auch bestellt - das ist ein "Kampf der Systeme".
    Die Alexa hab ich schon seid einem Jahr - und muss sagen Sie ist ohne Integration schon super (Musik hören per Sprachsteuerung ist das der Punkt). Der Echo hat auch einen Super-Klang.

    Da die Auslieferungen in Deutschland wohl etwas unübersichtlich sind hier ein generelles Angebot: für VERBINDLICHE Bestellungen von Dot´s kann ich mit einigen helfen. Ich bin derzeit in UK und könnte welche mit nach Deutschland bringen. Kosten ca. 49.66GBP=56€ plus Versand in Deutschland (6€ als Paket). Ich könnte die Pakete am 18.11. zur Post bringen - alternativ persönliche Übergabe am KNX Franken-Stammtisch in Bamberg (ist auch am 18.11.)
    Einfach per PM oder email bescheid sagen.

    Gruß
    Thorsten

    PS: Der Dot hat einen englischen Stecker - aber Stromversorgung ist einfach über MicroUSB mit jedem "alten" Handynetzteil möglich. Umstellung auf Deutsch ist auch kein Problem - einfach in der Alexa-App umstellen -> reboot -> fertig.
    Zuletzt geändert von ThorstenGehrig; 05.11.2016, 08:08.

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    Also ich habe Alexa nur gewählt, weil man eben ganz einfach online in der Amazon Developer Konsole selbst Anwendungen für den Amazon Echo schreiben kann. Dabei kann man beispielsweise Node.JS oder Python verwenden. Beides kann ich nunmal ausreichend gut. Außerdem ist das ganze Sprachschema sehr leicht zu erstellen. Die Anfragen an den Service kommen per JSON Datei. Leicht zu lesen, leicht zu verstehen und auch leicht zu manipulieren.

    Bei Google habe ich nichts dergleichen gehört. Klar bieten die vielleicht mehr APIs an. Wollt ihr aber euer EDOMI da ranflanschen, dann wird das denke ich eher schwierig bis unmöglich.

    Einen Kommentar schreiben:


  • LynnBayer
    antwortet
    Es wurde ja auch google home angekündigt. Jemand sich schon dafür entschieden? Ich denke am Ende wird es das System machen was sich leichter einbinden lässt. Da würde ich sagen könnte google ein wenig die Nase vorne haben. Die haben ja für sehr vieles APIs.

    Einen Kommentar schreiben:


  • patrickgoll
    antwortet
    So ist es. Ich habe selbst schon einen Skill entwickelt, um Alexa an die SmartVISU anzubinden. Der funktioniert auch ganz gut.

    Einen Kommentar schreiben:


  • steffen79
    antwortet
    Vielen Dank für die Erleuchtung und die ausführliche Beschreibung!
    Also ist es so, dass die "Befehle" (http-Requests) immer nur direkt aus der Cloud kommen und nicht von Alexa lokal => lokal getriggert werden?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von steffen79 Beitrag anzeigen
    Ich habe schon etwas gesucht aber noch nichts brauchbares gefunden. Kann mir also jemand erklären, wie das Amazon-Echo-System grundsätzlich funktioniert?

    Klar, Stimme => Cloud, dann Auswertung. Antwort direkt an die lokale Echo-Box...
    Aber wie werden dann Befehle ausgelöst und wohin geschickt? Kann die Zauberbox dann lokal http Requests als "Befehl" absenden?
    Brauche ich dafür (nur Smart-Home-Edomi-Steuerung) die Amazon-App?
    Wie "intelligent" bzw flexibel ist das System - Kann ich eigene Befehle für Rolläden definieren und selbst definierte Befehle ausführen?

    Erhellt mich bitte ;-)
    Ja, alles das geht. Vereinfacht beschrieben funktioniert das für Custom Skills so:
    1. Intent Schema entwickeln
    2. Utterances definieren
    3. Aufrufnamen definieren
    4. Cloud Service entwickeln, der auf deinem Server vom Internet erreichbar ist
    5. Konfiguration bei Amazon vornehmen, die diese Komponenten zusammenbringt
    Details hier:

    https://developer.amazon.com/public/...a-custom-skill

    Ablauf ist dann so:

    Du gibst einen Voice Befehl, Alexa versteht ihn, leitet ihn an die Amazon Cloud weiter. Dort hast du deine Custom Skills registriert und Amazon weiss welchen Cloudservice es aufrufen muss. Es wird also das Skript aufgerufen, welches Du entwickelt hast (z.B. in php) und auf deinem Server vom Internet aus erreichbar ist.
    Dieses Skript erhält nun die Daten des Befehls, der erkannt wurde und du kannst entsprechen darauf reagieren, z.B. an den EDOMI Server per remote API weiterleiten. Genauso kannst du dann nach Ausführen des Befehls noch Sprachtext als Antwort zurückliefern an Alexa zurückgeben. Dieser Text geht dann wieder an die Amazon Cloud, wird digitalisiert und dann an dein Echo Device gesendet, welches dann die Sprachausgabe macht.

    Hoffe es ist jetzt etwas heller ...

    Einen Kommentar schreiben:


  • steffen79
    antwortet
    Ich habe schon etwas gesucht aber noch nichts brauchbares gefunden. Kann mir also jemand erklären, wie das Amazon-Echo-System grundsätzlich funktioniert?

    Klar, Stimme => Cloud, dann Auswertung. Antwort direkt an die lokale Echo-Box...
    Aber wie werden dann Befehle ausgelöst und wohin geschickt? Kann die Zauberbox dann lokal http Requests als "Befehl" absenden?
    Brauche ich dafür (nur Smart-Home-Edomi-Steuerung) die Amazon-App?
    Wie "intelligent" bzw flexibel ist das System - Kann ich eigene Befehle für Rolläden definieren und selbst definierte Befehle ausführen?

    Erhellt mich bitte ;-)

    Einen Kommentar schreiben:


  • MrWhite
    antwortet
    Einladung heute erhalten, Lieferung morgen.

    Einen Kommentar schreiben:


  • junibart
    antwortet
    Es kristallisiert sich heraus, dass Einladungen immer Donnerstags vormittags versendet werden. Das ganze kann man ganz gut in einem Thred im Amazon-Kundenforum verfolgen (Achtung, ca. 4000 Beiträge):
    https://www.amazon.de/forum/amazon/r...Tx1DKMTUI4UJWD

    An diesem Donnerstag sind wohl schon deutlich mehr Einladungen rausgegangen als in der letzten Woche.

    Übrigens lässt sich das neue Spielzeug aus Great Britain problemlos zu moderaten Zusatzkosten beschaffen: Im UK sind Echos und Dots unbeschränkt verfügbar. Sie sind, so liest man im o.a. Forum, problemlos auf deutsch umzustellen. Der Versand nach D muss über einen Drittanbieter, wie borderlinx oder forward2me agewickelt werden. Mit einer Sammelbestellung (6 Dos zum Preis von fünf) kommt man aber kaum teurer als bei einer direkten Bestellung in D (wenn man denn eine Einladung hat).

    Mein Dot kommt vermutlich Montag....aus UK.

    Grüße,

    Gunnar
    Zuletzt geändert von junibart; 03.11.2016, 22:38.

    Einen Kommentar schreiben:

Lädt...
X