Ankündigung

Einklappen
Keine Ankündigung bisher.

Amazon-Echo Logikbaustein

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

    Hallo Werner, hallo tunneltruppe,

    zuerst mal ein Lob für die tolle Anleitung durch das Dickicht des Amazon-Geraffels... Man versteht auch die Zusammenhänge - gute Idee auch mit dem Installationsformular. Selten so eine gute Anleitung gesehen!

    Bei mir hat die Einrichtung so weit auch funktioniert, Test der Gira-Installation funktioniert, Test AWS-Anbindung ebenfalls (Geräte also eingerichtet).

    Nur erkennt die App keine Geräte, wenn ich danach suchen lasse und die Spracherkennung kennt die Gerätenamen demnach auch nicht. An welcher Stelle muss ich jetzt schauen?

    Bei der Geräteerkennung über die App spuckt das Cloudlog von Amazon folgendes aus:

    Code:
    2017-07-25T12:31:59.885Z 40f4f4c6-7135-11e7-96f7-ab3465e2eed3 *** EVENT***:
    { "directive": { "header": { "namespace": "Alexa.Discovery", "name": "Discover", "payloadVersion": "3", "messageId": "unkenntlichgemacht" }, "payload": { "scope": { "type": "BearerToken", "token": "unkenntlichgemacht" } } } }
    ....und daraufhin:

    Code:
    2017-07-25T12:31:59.965Z 40f4f4c6-7135-11e7-96f7-ab3465e2eed3 TypeError: Cannot read property 'type' of undefined
    at handleCustomSkill (/var/task/index.js:555:13)
    at exports.handler (/var/task/index.js:107:3)

    Gruß Johannes
    Zuletzt geändert von Tachy; 25.07.2017, 15:44.

    Kommentar


      Hallo Johannes,

      der von deinem Alexa-Device gesendete JSON-Event ist ein Discovery Event in der Payload Version=3. Ich habe mich mit diesem Typ von Event noch nicht näher beschäftigt, aber dieser Typ wird unter der Smart Home Skill API in einem neuen Unterbereich mit dem Namen "Reference for Entertainment Device Control" aufgeführt.

      Welches Alexa-Device ist bei dir im Einsatz?
      Du startest dir Gerätesuche über die Alexa App und den Smart Home Skill?

      Ein von meinen Echo's geloggter JSON EVENT für das Smart Home Discovery sieht wie nachfolgend aus:

      Code:
      [COLOR=#444444][FONT=monaco][SIZE=12px]2017-07-26T05:39:41.970Z cf6a7b2d-71c4-11e7-b407-e3ed80b3f166 *** EVENT***:[/SIZE][/FONT][/COLOR]
      { [COLOR=#444444]"header":[/COLOR] { [COLOR=#444444]"namespace":[/COLOR] [COLOR=#009933]"Alexa.ConnectedHome.Discovery"[/COLOR], [COLOR=#444444]"name":[/COLOR] [COLOR=#009933]"DiscoverAppliancesRequest"[/COLOR], [COLOR=#444444]"payloadVersion":[/COLOR] [COLOR=#009933]"2"[/COLOR], [COLOR=#444444]"messageId":[/COLOR] [COLOR=#009933]"XXX"[/COLOR] }, [COLOR=#444444]"payload":[/COLOR] { [COLOR=#444444]"accessToken":[/COLOR] [COLOR=#009933]"XXX"[/COLOR] } }
      Viele Grüße
      Werner

      P.S.: Wie ich gerade festgestellt habe, gibt es jetzt die Payload-Version als weitere Einstellungsmöglichkeit bei der Konfiguration des Smart Home Skills. Für meinen Skill müsstest du hier "v2 (other devices)" wählen.
      Zuletzt geändert von wernerL; 26.07.2017, 08:57.

      Kommentar


        Hallo Werner,

        das war es! Es Funktioniert! Vielen Dank!

        Man muss "v2" auswählen. Sollte man in der Doku noch einbauen - die haben halt wieder einiges geändert

        Kommentar


          Hi Werner,

          wie hast du das Logging in den Bausteinen implementiert? Ich hab mir mal das vom Statusbericht angeschaut. Dort kann unter /tmp/ ein Logfile erzeugt werden. Jedoch wie kann ich das dann über die Debug-Seite vom Homeserver anzeigen lassen?
          http://homeserver/tmp/10001.log geht nicht...

          Richtig schick ist natürlich das vom Echo-Baustein. Bequem integriert. Verrätst du, wie du das implementiert hast?

          Grüße
          Markus
          Grüße
          Markus

          Kommentar


            Hallo Werner,
            zu erst großartige Arbeit an dem Baustein und vielen Dank für die erstklassige Anleitung. Das ganze war in eineinhalb, zwei Stunden umgesetzt.

            An alle habe ich die Frage nach dem Setzen eines neuen Temperaturwertes, daran scheitere ich zur Zeit:
            Bei dem Befehl: Stelle die temperatur im arbeitszimmer auf 22 grad
            erhalte ich eine der beiden Antworten
            Den Wert, ? kann ich nicht als Prozentwert verwenden
            Ich konnte die Temperatur im Arbeitszimmer nicht dimmen weil ich das Gerät nicht finden konnte.

            Die Abfrage der Temperatur funktioniert tadellos...

            Was mache ich falsch, wo könnte mein Fehler liegen.

            Vielen Dank für eure Hilfe!

            Grüße
            Florian

            Kommentar


              Hallo Markus,

              sorry das ich mich jetzt erst melde - war ein paar Wochen im Urlaub.
              Aktuell ist bei mir auch Land unter im wahrsten Sinne des Wortes. Aufgrund eines Leitungswasserschadens stand unser Keller 75 cm hoch unter Wasser .

              Nichtsdestotrotz, falls dass mit dem Logging für dich immer noch aktuell ist, melde dich einfach noch einmal.
              Dann Suche ich bei Gelegenheit die entsprechenden Code Passagen raus.

              Grüße
              Werner

              Kommentar


                Hallo Florian,

                wenn ich mich recht erinnere ist Alexa etwas zickig, was die unterstützten Formulierungen in Bezug auf "Setzen der Raumtemperatur" angeht.

                Versuch es doch mal mit:
                Alexa, stelle das Arbeitszimmer auf 22 Grad.

                Gruß
                Werner

                Kommentar


                  Hallo Werner,

                  erstmal Respekt vor deinem tollen Logikbaustein. Da steckt sicher viel Zeit und Arbeit drin.

                  Nur der Einrichtungsaufwand ist ja der Wahnsinn. Daher meine Frage, warum lässt sich das nicht auch ohne der Anmeldung als Amazon Developer und dem AWS Service umsetzen? Wie machen das die anderen Apps?, Ich meine andere Apps können doch auch einfach auf das Echo geladen werden und bieten die SmartHome Funktionen an.

                  Dann habe ich noch eine Frage bezüglich der Bestätigung des Echos. Nach dem man eine Anweisung an Echo gestellt hat erhält man immer eine Antwort "Ok". Diese finde ich ziemlich nervend. Erst recht weil ich ja sehe dass das Licht an bzw. aus geht wenn ich das Kommando zum Schalten der Lampe gebe. Kannst du evtl. eine Funktion in der Konfiguration implementieren wo die Bestätigungsantwort für bestimmte Geräte abgeschaltet werden könnte?

                  Viele Grüße
                  Thorsten

                  Kommentar


                    Hi Thorsten,

                    wenn man mal von der HUE-Emulation absieht (welche von den Echo's wohl nativ unterstützt wird), läuft die Kommunikation über eine sogenannte Device-Cloud des jeweiligen Herstellers bzw. Anbieters. siehe auch https://developer.amazon.com/public/...home-skill-api
                    Aktuell richtet sozusagen jeder User seine eigene persönliche Device Cloud ein und kümmert sich selbst um Hosting, Verfügbarkeit, Sicherheit, Datenschutz ...

                    Um eine "saubere" mandantenfähige Device Cloud zu realisieren und zu betreiben wäre ein nicht unerheblicher Mehraufwand (Kosten) zu inverstieren.

                    Beim Smart Home Skill hat man leider keinen Einfluß auf die Antworten welche von Alexa gegeben werden.
                    Die Antworten des Custom Skill sind frei definierbar - allerdings bin ich mir nicht sicher ob auch keine Antwort (also Stille) möglich ist.

                    Viele Grüße
                    Werner

                    Kommentar


                      Hallo Werner,
                      eine ausgezeichnte Anleitung und ein prima Baustein (System)

                      Leider scheitere ich an dem Punkt in der Developer Console Configuration
                      obwohl ich darauf geachtet habe das Irland ausgewählt ist, kommt die Fehlermeldung: Error: Invalid ARN for NA region. Please provide a valid ARN in the form 'arn:aws:lambda:us-east-1:000000000000:function:myFunction:myFunctionVersi on'

                      Im Installationsformular, habe ich die ID der Lambdafurktion ARN:
                      arn:aws:lambda:eu-west-1:3XXXXXXXXXX7:function:GiraHS_LBS

                      Komme da leider nicht weiter, was mache ich falsch ?
                      Welche Information benötigst Du um mir ggf. weiter helfen zu können ?

                      Vile Grüße
                      Peter



                      Kommentar


                        Hallo Werner,

                        danke für die Erklärung.

                        Ich hatte nur gesehen, dass die Registrierung als Developer bei Amazong wohl erstmal auf ein Jahr beschrängt ist.

                        Ich muss für mich feststellen, dass die Smart Home Steuerung über Alexa noch ziemlich unausgereift ist. Ich finde die Nutzung des Custom Skills ehrlich gesagt "Murks" weil hierzu das Custom-Skill-spezifische Start-Kommande notwendig ist. Das macht es doch sehr unsmart. Ich komme dann auch durcheinander, weil manche Kommandos ohne das "Alexa, starte Smart Home..." funktionieren und andere wiederum nicht.

                        Meiner Meinung nach gehört das Smart-Home-Skill aufgepeppt, so dass Steuerungsfunktionen wir Jalousie/Rolladen und Abfragen direkt über das Smart-Home Skill abgefregt werden können.
                        Die Standardfunktionen des Smart-Home-Skills (zum Schalten des Lichts und der Temperatur) sind für mich ehrlich gesagt ziemlich unnütz. Das Licht mache ich wesentlich einfacher und schneller an indem ich den Schalter betätige, und die Temperatur Regel ich überhaupt nicht. Aber da kannst du ja nichts dafür. ;-)

                        Ich würde es gut finden, wenn man dem Echo einen Raum zuweisen könnte.

                        Also, wenn das Gerät (Echo) z.B. im Wohnzimmer steht, und man sagt "Alexa, schalte den Fernseher an", dass Alexa dann den Fernseher im Wohnzimmer einschaltet. Das gleiche Kommando im Schlafzimmer könnte dann den Fernseher im Schlafzimmer einschalten.
                        Das wäre wesentlich smarter als wenn ich im Wohnzimmer sagen müsste "Alexa, schalte den Fernseher im Wohnzimmer an", weil ich ja eh im Wohnzimmer bin.

                        Gibt es eigentlich eine Möglichkeit, dass Alexa Ansagen durch eine Logik im Homeserver ausgibt, ohne dass Alexa vorher nach dem Status gefragt wird?

                        Zum Beispiel, wenn die Waschmaschiene fertig ist, dass dann automatisch eine Ansage von Alexa ausgegeben wird "Die Waschmaschiene ist fertig".

                        Viele Grüße
                        Thorsten

                        Kommentar


                          Guten Morgen Peter,

                          das Format der ARN deiner Lambda Funktion sieht völlig korrekt aus.
                          Ich konnte den Fehler leider bei mir nicht reproduzieren: Wenn ich deine ARN verwende (die X durch beliebige Ziffern ersetzt) bekomme ich keine Fehlermeldung.
                          Wenn ich allerdings die ARN mit X verwende bekomme ich genau die gleiche Fehlermeldung wie du.

                          Du hast auch keine Leerzeichen oder sonstige "unsichtbaren" Sonderzeichen in deiner ARN?

                          Viele Grüße
                          Werner

                          Kommentar


                            Guten Morgen Thorsten,

                            mir fehlen in der API des Smart Home Skills auch etliche Funktionen und der Umweg über den Custom Skill finde ich auch nicht prickelnd.

                            Inzwischen wird wohl beim Request ein Device-ID des jeweiligen Echo mitgesendet mit dem man zumindest beim Custom Skill raumspezifische Kommandos ermöglichen könnte. Ob da in naher Zukunft was von Amazon für den Smart Home Skill kommt steht wohl in den Sternen.

                            Announcement sind angekündigt aber noch nicht für alle Entwickler verfügbar. Aktuell sind Durchsagen leider nur mittels einer Krücke (abspielen von zuvor aufgenommenen mp3 Dateien) möglich.

                            Gruß
                            Werner

                            Kommentar


                              Zitat von katoth Beitrag anzeigen
                              Ich muss für mich feststellen, dass die Smart Home Steuerung über Alexa noch ziemlich unausgereift ist. Ich finde die Nutzung des Custom Skills ehrlich gesagt "Murks" weil hierzu das Custom-Skill-spezifische Start-Kommande notwendig ist. Das macht es doch sehr unsmart.
                              Das ist aber doch bei fast jedem Skill so? "Alexa, frage Deutsche Bahn nach einer Verbindung..." - da ist auch Deutsche Bahn das Aktivierungswort.... ich finde das hingegen sehr cool, dass Werner das so programmiert hat, dass man das Aktivierungswort frei vergeben kann "Alexa, frag James, ob im Wohnzimmer Licht an ist" - "James sagt...."

                              Zitat von katoth Beitrag anzeigen
                              Meiner Meinung nach gehört das Smart-Home-Skill aufgepeppt, so dass Steuerungsfunktionen wir Jalousie/Rolladen und Abfragen direkt über das Smart-Home Skill abgefregt werden können.
                              Ja, Amazon müsste den halt aufpeppen, was Werner hier gebaut hat, ist shcon das Maximum, was mit dem Skill geht! Rollladen und Jalousien gehen doch schon direkt "Alexa, setze den Rollladen im Wohnzimmer auf 70%". Oder meinst Du jetzt die Abfrage "Wo steht ein Rollladen aktuell"? Da muss ich Dich mit Deinen eigenen Ansichten schlagen: "Das sehe ich wesentlich schneller, indem ich einfach auf das Fenster blicke" ;-)

                              Zitat von katoth Beitrag anzeigen
                              Das Licht mache ich wesentlich einfacher und schneller an indem ich den Schalter betätige,
                              Schalter? Frag mal, wie viele Schalter einige hier noch haben - ich glaube, MatthiasS kommt auf gerade im Schnitt einen pro Etage! Aber im Ernst: Mit der Argumentation benötigst Du weder eine Alexa, noch eine Visu, weil Du eh alles am Taster am schnellsten siehst!

                              Grüße
                              Olaf
                              Möchte den Komfort meiner Installation nicht mehr missen!

                              Kommentar


                                katoth wenn der nächste Taster nicht erst einen Tagesmarsch entfernt ist, dann ja. Aber ich glaube du hast das mit dem samthome nicht verstanden.

                                Kommentar

                                Lädt...
                                X