+ Antworten
Seite 1 von 62 1 2 3 11 51 ... LetzteLetzte
Ergebnis 1 bis 10 von 617
  1. #1
    Registriert seit
    Dec 2008
    Ort
    Weinheim
    Beiträge
    22

    Standard Amazon Echo an Symcon anbinden inklusive Proxy

    Hallo Forum,
    nach viel Gewürge hab ich nun meinen Amazon Echo an IP Symcon angebunden, sowie einen Proxy erstellt, damit man auf ein SSL Zertifikat verzichten kann.

    Ich dachte, ich schreib mal aus dem Gedächtnis zusammen, wie das geht, und hänge die Sourcen an. Warnung - das ist sicher quick und dirty, und Programmierer bin ich auch nicht, d.h. das ganze ist aus Stücken, welche ich im Internet fand, zusammengebaut und auf Symcon modifiziert.

    Das ganze basiert auf einem Custom Skill, die Variante Home Automation Skill überlasse ich Paresy. Wenn Ihr Euch erstmal das Prinzip ansehen wollt, schaut in das credits file (mein Dank für die Vorarbeiter!) und dort in die Vorgehensweisen.

    Anleitung:

    0. Amazon Echo / Dot / Tap organisieren
    (hab ich beim letzten US trip mitgebracht).
    Ihr braucht einen US account. Einfach mit (existierender) Dummy Addresse in USA anlegen. Wenn alles geht, wieder auf Euren deutschen Account umstellen. Klappt (mit einigen Einschränkungen, z.B. Prime geht bei mir nicht).
    Untenstehendes ZIP file irgendwo auf Eurem PC auspacken - auf die files wird dann im Text verwiesen.
    amazon echo symcon.zip

    Edit: Halleluja, kommt auch in DE raus. Damit braucht man natürlich keinen US Account mehr und Prime Musik sollte dann auch funktionieren. Die Anleitung funktioniert dennoch weiterhin.


    1. Account auf developer.amazon.com
    • Custom Skill anlegen
    • Passenden Invocation name aussuchen, z.B. greenhouse. Euer Echo reagiert dann auf "Alexa, ask greenhouse ...."
    • Inhalt von intent.txt ins Intent Schema
    • Inhalt von utterance.txt in das Feld Sample Utterances

    Spätestens hier fällt auf, Amazon Echo wird nur als Spracherkennung genutzt, die ganze Logik passiert später unter Symcon in php.

    Edit: Nun geht das auch auf deutsch. Intent und utterance ganz genau wie oben, unverändert, nur die invocation phrase natürlich dann in deutsch anlegen und in den deutschen Tab, der nun vorhanden ist, eintragen.

    • Unter Step Configuration könntet ihr nun:


    Direct den https link zu Eurem Symcon Server eintragen, sofern a) der Server mit SSL läuft und bei einer Zertifizierungsorganisation zertifiziert ist. Mann muss also keineswegs auf AWS Lambda zurückgreifen, wie die Amazon Anleitungen suggerieren, das ist nur eine Option.
    Wenn ihr nun kein SSL Zertifikat habt:
    Davon, symcon mit SSL zu zertifizieren hab ich erstmal Abstand genommen, da dies doch recht aufwändig ist. Anstelle dessen habe ich einen Proxy bei Azure angelegt, d.h. ihr müsst dann hier unter Configuration (später) den Proxy link eingeben, der Anfragen auf Euren internen Symcon Server umlenkt. Dazu muss der natürlich über DynDNS im Web erreichbar sein.

    Edit: Paresy's Vorschlag von unten aufgreifend - man kann auch den Symcon Connect Link nehmen. Dazu muß der Connect Dienst in Symcon aktiviert sein. Dann den zugehörigen Link nehmen und um .../hook/<name eures webhooks> ergänzen und wie oben beschrieben unter Configuration eintragen.

    Edit: Solltet Ihr zwei Sprachen unterstützen (Englisch/Deutsch) noch unter "Configuration" beide Endpunkte (North America/Europe) anklicken und mit links auf entweder den Proxy oder Euren Symcon Connect Link versehen. Sonst gibt es beim Testen in der Sprache des jeweils nicht angewählten Endpunkts eine kryptische Fehlermeldung).

    • Unter SSL Certificate:

    anklicken von:
    My development endpoint is a subdomain of a domain that has a wildcard certificate from a certificate authority
    Das passt deswegen, da ja der Azure Web service SSL zertifiziert ist. Damit ist Amazon Echo dann glücklich, und der redirect spart Euch den SSL Zertifizierungsumstand.

    Edit: Genauso geht es mit dem Symcon Connect link.

    • dann erstmal save. Am besten das Fenster weiter offenhalten, das braucht ihr nochmal weiter unten.


    Edit: Ich glaube (bin mir nicht sicher), man braucht nun für die deutsche Variante noch einen Eintrag un
    • Unter Step Publishing

    unter Countries & Regions. Ich hab dort alle ausgewählt und in die übrigen Felder was halbwegs sinnvolles eingetragen. Eine Zertifizierung hab ich nicht ausgewählt, da nicht sinnvoll (der Skill ist ja nur für Euch). Diese war zumindest zum Zeitpunkt der Erstellung auch gar nicht anwählbar (15.09.2016).

    2. Optionalen Proxy anlegen (kann man sich mit der Symcon Connect Variante sparen)

    • Kann man in AWS Lambda oder Azure machen. Ich habs in Azure gemacht (siehe 2.-ter link im credits file). Dazu:
    • In Azure Account anlegen
    • Kostenlosen Testaccount verwenden (läuft erstmal einen Monat). Danach sinds vermutlich auch nur kleine Pfennigbeträge, weiss ich selbst noch nicht was das kostet.
    • Unter App Services auf hinzufügen klicken - Namen vergeben, irgendeine Ressourcengruppe vergeben, an Dashboard anheften, erstellen. Dauert ne Minute, dann habt ihr Euren proxy server.
    • Dem muss man dann noch beibringen, bei Aufruf auf Euer Symcon umzulenken.
    • Dazu auf Step Übersicht gehen, oben stehen alle links, die man so braucht.
    • Von dort Link URL kopieren, tragen wir nun (als https !) in den Tab Configuration bei developer.amazon.com ein.
      Achtung - hängt dort noch ein /hook/<irgend ein name für einen webhook> dran, z.B. https://hausproxy.azurewebsites.net/hook/hausecho. Das auswertende php file realisieren wir nämlich später in sycmon als webhook.
    • Unter Tab Anmeldeinformationen für Bereitstellung legt ihr nun noch ein FTP passwort an.
    • Nun braucht ihr einen FTP client (Filezilla) auf eurem PC. Nutzt ftp hostname, bereitstellungs ftp benutzername und das neu angelegte passwort, um von Filezille auf Azure zuzugreifen.
    • Navigiert in folder 'site' und ladet dort file applicationHost.xdt hoch (im Verzeichnis Azure_proxy)
    • Nun müsst ihr noch file web.config an Eure Situation anpassen - dazu sucht nach your.dyndns.domain:your_port und setzt dort Euren DynDNS Name für Euren Symcon Server ein.
    • Anschliessend auf Azure ins Verzeichniss wwwroot gehen und dort web.config hochladen.
    • Nun habt ihr Euren Proxy. Wenn ihr absolut keine Ahnung habt, was das war - googled ARR für IIS.
      Ach ja, da ist noch jede Menge Zeug in dem web.config, was man gar nicht braucht. War aber zu faul, das zu löschen - stört nicht weiter.


    Kurz zum Verständnis: Wenn Ihr Eure Alexa anlabert, schickt die das zu dem Amazon Echo Service. Der dekodiert die Sprache in Text und schickt das an den Proxy. Der ist schön mit zertifiziertem SSL versehen (ist ja Microsoft Azure), eine Voraussetzung für den Amazon Service. Der macht jetzt ein Redirect auf Euren Symcon Server und ruft dort einen Webhook auf, den wir gleich anlegen.

    3. Symcon einrichten
    • Legt Euch eine Kategorie an, z.B. AmazonEcho
    • Kopiert files index, functions und lights.php dort als Scripte rein. Nennt die in Symcon auch so (umbenennen der automatisch vergebenen Skriptnamen). Oder alternativ ändert die 'includes' im PHP index für diese files.
    • Legt einen Webhook an auf index.php mit dem Namen, welchen Ihr oben in dem Amazon Echo Configuration Tab als Anhang an die Proxy Domain vergeben habt.
    • Ach ja, mein symcon web server läuft mit SSL, ist aber nicht zertifiziert. Also die Variante, die im Browser erstmal hässliche Warnungen fabriziert, die man absegnen muß. Ich erwähn das mal, da ich die Translation in obigen ARR files nicht wirklich verstehe, und das eben genau so bei mir funktioniert. Müsste aber auch ohne SSL gehen.
    • Das File index php ruft module auf (momentan nur eins bei mir, lights.php). Passt dort in ligths.php die Aufrufe Eurer Devices an, und auch die Auswertung der Texte.
    • Edit:Für ein Quentchen mehr Sicherheit könnt ihr ggfs. die auskommentierten Checks in der index.php wieder aktivieren. Dazu application und userid per IPS_LogMessage testweise rausschreiben in die IPS Meldungen und dann ganz oben in index.php einfügen.Die Zertifiierungsabfragen gehen aber nicht, wenn ihr den Connect Service nutzt, da diese vom Connect Service nicht mitgegeben werden. Also diese nicht auskommentieren.
    • Edit: Solltet ihr bi-lingual arbeiten wollen, dann könntet ihr auch die locale auswerten. Ggfs. müsste dann noch der Response entsprechend aufgebohrt werden.


    Was mir bei dem Ansatz gefiel, war die Möglichkeit, die Auswertung in php zu machen. Im Grund wird nur nach Schlüsselworten gesucht. Ihr könnt soviel drumrumquatschen, wie ihr wollt.
    Z.B. führen bei mir "Alexa, ask <euer invocation name> switch north" genauso zum Umschalten der nördlichen Wohnzimmerlampe, als wenn ich sagte: "Alexa, ask <euer invocation name> switch lamps in living room north."
    Man muß lediglich darauf achten, dass die Schlüsselworte nicht zweideutig werden.

    Edit: Die scripts sind genauso auch für die deutsche Variante verwendbar. Einfach den Text in deutsch ändern und die Schlüsselworte auf deutsch hinterlegen und ein wenig anpassen. Ich hab mir dazu einfach die englischen Scripte kopiert, umbenannt (lights.php --> licht.php), ein "require" darauf ergänzen, und dann geht das sogar bi-lingual.

    Noch ein Wort zu dem index.php - man erkennt, dass der clevere Programmierer (nicht ich) dort auch schon Sicherheitscode lt. Anweisung der Amazon Developer Documentation hinterlegt hat. Das braucht man, wenn man sich den code von Amazon für ein Publishing zertifizieren lassen will. Den hab ich für meine Zwecke erstmal rauskommentiert.

    So, war doch ganz einfach, oder? Vermutlich hab ich Details vergessen niederzuschreiben - fragt ggfs., dann antworte ich so gut ich es weiss und ändere das hier.

    PS: Als Tip: Erstmal einen testhook erstellen, der vielleicht nur ein echo "hallo world" enthält, und schauen, ob die proxy redirection als url in einem Browser funktioniert. Ansonsten ist das debugging schwierig.

    So, traut Euch - das Teil ist geil.

    Viele Grüsse
    Axel
    Geändert von axelroro (19.09.16 um 21:38 Uhr)

  2. #2
    Registriert seit
    Feb 2011
    Beiträge
    451

    In ein paar Tage auch in Deutschland erhähllich !
    Habe gerade von Amazon eine Einladung erhalten.... Auch ein ECHO Dot Gen 2 wird vorgestellt.....

    Ich werde es beobachten...wenn es gut mit IPS funktioniert hätte ich lust....
    Geändert von thezepter (14.09.16 um 14:12 Uhr)
    IPS 4.1 / Docker Homebridge / RaspBerryMatic / ipsView / Sonos / Bose SoundTocuh / Gardena Gartenbewässerung / Logitech Harmony Ultimate / Philips Hue / Z-Wave / IP-Cams / Withings Waage / Ipad / AppleWatch / FritzBox 7390 / Amazon Echo

  3. #3
    Registriert seit
    Dec 2008
    Ort
    Weinheim
    Beiträge
    22

    Super, wird auch Zeit.

    Die Spracherkennung ist erstaunlich gut. Bei mir natürlich noch in Englisch. Man kann damit prima fernsteuern. Inzwischen bei mir Licht und Jalousien. Das lässt sich nach obigem Schema leicht erweitern.

    Eine Einschränkung: Unser Wohnzimmer ist recht gross, und hallt ein wenig. Das mag sie nicht immer. In gedämpfteren Räümen mit mehr Teppich ist die Erkennung echt erstaunlich gut.

    Was ich mich frage, ob es einen Unterschied machen mag, die utterances explizit auszupermutieren. Das sollte die Freiheitsgrade bei der Spracherkennung ja so einschränken, dass diese noch besser sein können sollte. Bei der Variante oben wird Sprache ja frei erkannt, mal von den Triggerbegriffen abgesehen, ist aber auch schon prima.

    Wie auch immer, hab mir grad auch eine Einladung angefordert. Der Tap wäre ja fast noch besser, da dieser aktiv Bluetooth rausschicken kann, z.B. über einen Bluetoothadapter an die Stereoanlage. Das kann der Echo nicht, der empfängt nur Bluetoothmusik, wenn man das will.

    Grüße

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    17,387

    Kleiner Tipp wegen SSL: Wenn ihr den Symcon Connect Dienst bei euch aktiviert, bekommt ihr SSL quasi frei Haus

    paresy

  5. #5
    Registriert seit
    Sep 2012
    Ort
    Stuttgart - Remshalden
    Beiträge
    228

    Wo liegt den der unterschied zwischen dem DOT und dem Echo? Weil für die Haussteuerung müsste der DOT ausreichen oder? Dann könnten man ihn auch in 2-3 Räumen verteilen und hätte so überall sprachsteuerung.....oder was kann der kleine weniger?

  6. #6
    Registriert seit
    Feb 2011
    Beiträge
    451

    Korrekt ! Der kleine ist in meinen Augen ein ganz großer ;-)
    Ihm fehlt lediglich der Lautsprecher mit BUMS ;-)
    In dem Teil ist nur ein kleiner Lautsprecher eingebaut ABER man kann ihn z.B. an einem Sonos Play 5 etc. anschlißen.

    Die Telekom hat gerade verkündet, daß ihr SmartHome System (Qivicon) Amazons Echo von Anfang an unterstützt.
    Geändert von thezepter (15.09.16 um 06:42 Uhr)
    IPS 4.1 / Docker Homebridge / RaspBerryMatic / ipsView / Sonos / Bose SoundTocuh / Gardena Gartenbewässerung / Logitech Harmony Ultimate / Philips Hue / Z-Wave / IP-Cams / Withings Waage / Ipad / AppleWatch / FritzBox 7390 / Amazon Echo

  7. #7
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    2,868

    Hallo Paresy,

    könntest Du Dir bei der Rechtslage eine "offizielle" Unterstützung bzw. Einbindung ins IPS vorstellen?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    1xCUNO, 1xFS20 SU-2, 3xFritz!Box, 3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408
    1xFHT8i mit USB von Helmut, 4xFHT8V

  8. #8
    Registriert seit
    Feb 2011
    Beiträge
    451

    Zitat Zitat von JPaeper Beitrag anzeigen
    Hallo Paresy,

    könntest Du Dir bei der Rechtslage eine "offizielle" Unterstützung bzw. Einbindung ins IPS vorstellen?

    Joachim
    Wäre super !! Vor allem da die Rechtslage um einiges angenehmer geworden ist, da sich die Telekom mit Amazon zusammengesetzt hat und Amazon Echo Anfragen ausschließlich über EU bzw Deutsche Server laufen.
    IPS 4.1 / Docker Homebridge / RaspBerryMatic / ipsView / Sonos / Bose SoundTocuh / Gardena Gartenbewässerung / Logitech Harmony Ultimate / Philips Hue / Z-Wave / IP-Cams / Withings Waage / Ipad / AppleWatch / FritzBox 7390 / Amazon Echo

  9. #9
    Registriert seit
    Oct 2007
    Ort
    Villach,Kärnten,Österreich
    Beiträge
    2,479

    Servus

    Für die PHP Auswertung des erkannten Textes sieh dir mal an was sebiman für WindowsPhone gebaut hat:
    Vorstellung Windows App - oder endlich eine Frau die macht was ich sage :-)
    Ich finde das ist cool gelöst und funktioniert sehr gut. Damit kann man sogar richtig schöne Dialoge erstellen welche in der Wortwahl selbst aber flexibel sind. d.h. man kann sehr natürliche Sprache verwenden.

    Gewöhnen kann ich mich an Spracheingabe aber (noch) nicht. Sehe das eher als nette Spielerei, fürn Alltag ist es aber noch sehr befremdlich.

    gruß
    bb
    Besuche mich unter:
    www.baptist-family.com

  10. #10
    Registriert seit
    Oct 2010
    Beiträge
    127

    Hallo Axel,

    vielen Dank erst mal für deine gute Beschreibung zur Einrichtung von Alexa, wirklich super gemacht. Auch wenn wir in Deutschland auf die offizielle Version des Echo noch etwas warten müssen, hört sich das ganze Thema für mich sehr vielversprechend an.

    Ich habe natürlich gleich mal deine Version umgesetzt. Die Verbindung zu IPS klappt wunderbar. Wenn man schon SSL hat ist das ganze bei Amazon in wenigen Minuten eingerichtet. Genial finde ich, das man die ganze Logik der Steuerung in IPS relativ einfach bauen kann und den gesprochenen Satz in IPS auswertet. Damit spart man sich das ganze Amazon Lamda gedönz, wo ich noch nicht durchgestiegen bin.

    Mal sehn ob ich über die Einladung so ein teil bekomme. Testen kann man schon mal damit... https://echosim.io/.

    Bisher habe ich bereits die Cortana mit dem Modul von Sebiman wie Bernhard geschrieben hat im Einsatz. Auch das funktioniert wunderbar, auf Cortana Seite ist die Logik etwas anders, dort bekommt man vordefinierte Begriffe geliefert, deshalb muß alles etwas umgebaut werden und ist ggf. nicht direkt kompatibel.

    Ich bin sehr gespannt wie die Alexa die Befehle innerhalb eines Zimmers (z.B. vom Sofa aus) erkennt. Das ist für mich entscheidend, um der Sprachsteuerung zum Durchbruch zu verhelfen.
    Machbar scheint mir damit dann alles zu sein, auch wenn man das Risiko eingeht im Wohnzimmer belauscht zu werden ;-). Aber ohne Risiko kein Spaß...

    In diesem Sinne dann allen viel Spaß beim testen und tüfteln
    Helmut

Ähnliche Themen

  1. Integration mit Amazon Echo funktioniert
    Von ckerndl im Forum Allgemeine Diskussion
    Antworten: 19
    Letzter Beitrag: 24.12.16, 10:31
  2. Amazon "Echo"
    Von pleibling im Forum Off Topic
    Antworten: 36
    Letzter Beitrag: 14.09.16, 12:32
  3. Auerswald Dialog TFS 201 an Symcon anbinden
    Von Chilled im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 13
    Letzter Beitrag: 30.03.16, 13:39
  4. Amazon Echo
    Von aag im Forum Schaufenster
    Antworten: 6
    Letzter Beitrag: 10.03.16, 10:12
  5. Symcon App mit IPS 4 und Reverse Proxy Nutzen
    Von PaulG4H im Forum Allgemeine Diskussion
    Antworten: 2
    Letzter Beitrag: 18.02.16, 18:14

Stichworte