Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Smarthome Skill (Payload Version 3)

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

    Mit dem Alexa Custom Skill von jonofe hatte ich das Delay nicht!

    Kommentar


      Zitat von philipp900 Beitrag anzeigen
      Ich habe gefühlt auch 3 Sekunden Verzögerung zwischen dem Ende meines Sprachbefehls und der Aktion.
      Zitat von philipp900 Beitrag anzeigen
      Kann das Delay verkürzt werden oder liegt das evenuell sogar an der Verarbeitungsgeschwindigkeit des Echo bzw. Amazon.
      Habe den Echo neu und sonst noch keine Vergleichswerte obs mit anderen Systemen schneller geht.
      Ca. 2.5 bis 3 Sekunden sind bei mir auch die Norm. Ich habe das damals (Herbst 2019) mal etwas genauer analysiert:

      Grundsätzlich läuft die Kette ja wie folgt:

      (1) Voice Befehl (Audio)
      (2) Empfang durch Echo Device
      (3) Aufruf Alexa Service (HTTPS)
      (4) Aufruf AWS Lambda (HTTPS)
      (5) HTTPS-GET an RevProxy
      (6) HTTPS-GET an Edomi Skill Skript
      (7) TCP Socket an Smarthome Skill LBS
      (8) IPC Message Queue an Smarthome Device Skill Device
      (9) Ausführung
      (10) Antwort an Smarthome Skill LBS (IPC Message Queue)
      (11) Antwort an Edomi Skill Skript (TCP Socket)
      (12) Antwort an RevProxy (HTTPS)
      (13) Antwort an AWS Lambda (HTTPS)
      (14) Antwort an Alexa Service (HTTPS)
      (15) Voice Antwort an Echo Device (HTTPS)
      (16) Sprachausgabe (Audio)
      Und danach die gleiche Kette zurück bis das Echo Device die Bestätigung ausgibt.

      Vom Voice Befehl (1) bis zur Lambda Funktion (4) hat man keinen Einfluss. (außer vielleicht durch die Entscheidung wo man seine Lambda Function provisioniert. Bei mir ist es Ireland, da m.W. der Alexa Service für Europe West auch in Ireland läuft)

      Von Start der Lambda Function (4) bis zum Empfang der Antwort (13) haben meine Messungen (via Python time() und AWS Cloudwatch) ungefähr 1.1 - 1.2 Sekunden ergeben.

      Vom Eingang im Skillskript (6) bis zum Senden der Antwort (12) zurück an die Lambda Funktion sind es ungefähr 0.6-07 Sekunden (gemessen im Edomi Skill Skript mit microtime()). Das ist also quasi die lokale Verarbeitungszeit im eigenen Netzwerk (ohne Reverse Proxy Weiterleitung).

      Das ergibt also 0.4-0.6 Sekunden für die Übertragung zwischen Lambda und Homenetwork (4+5+12+13).

      Das bedeutet, bei einer Gesamtdauer eines Befehls (Ende Sprachbefehl bis zum Schalten des Geräts) von 2.5 bis 3 Sekunden werden für die Schritte 2-4 ca. 1.4 bis 1.9 Sekunden verwendet.

      Keine Ahnung wie es sich aktuell verhält, aber da die gefühlten Reaktionszeiten sich bei mir nicht merklich geändert haben, vermute ich, dass das Timing noch vergleichbar sein sollte.

      Kommentar


        Zitat von jonofe Beitrag anzeigen

        Vielleicht deshalb: (?)

        SceneController und Powercontroller haben unterschiedliche Utterances

        Alexa, schalte #### ein/aus (PowerController)
        Alexa, (de)aktiviere #### (SceneController)

        Wobei beim SceneController evtl. auch das AUS/EIN funktioniert. Müsste man mal testen.
        Hi.
        Ja.. Kann schon sein.
        Obwohl ich bei dem power Controller auch "deaktiviere" sagen kann.

        Egal. Werde mir was bei gedacht haben ​​​
        Zuletzt geändert von trollmar; 10.01.2020, 22:30.
        Jean-Luc Picard: "Things are only impossible until they are not."

        Kommentar


          jonofe, danke für die Aufklärung. Allerdings eine reine HUE Lampe zu schalten ohne EDOMI geht auch schneller und mit dem Custom Skill hatte ich die Problem auch nicht. Also kannst du performance Verbesserungen deinerseits bereits ausschließen?

          Kommentar


            HUE funktioniert ja ganz anders, da kann direkt im Homenetwork kommuniziert werden. Und der CustomSkill funktioniert anders und erfordert keine weitere Kommunikation über eine Lambda Function.
            Im Moment glaube ich nicht, dass da viel Potenzial zur Beschleunigung ist, wenn knapp 2 Sekunden im Alexa Service vergehen, bevor der Befehl überhaupt bei der Lambda Function ankommt.
            Interessant wäre, wie schnell die Smarthome Skills von HS2, SHNG, FHEM, NodeRed etc. reagieren.
            ggf. könnte eine Kommunikation von Lambda Function zu Edomi Skill via MQTT noch eine Verbesserung bringen. Das würde zusätzlich den offenen Port in der Firewall und den ReverseProxy beseitigen. Das wird aber noch dauern.

            Teutone : wie lange ist denn die Zeit von Ende des Befehls bis zum Schaltvorgang beim CustomSkill?

            Kommentar


              Zitat von jonofe Beitrag anzeigen
              ggf. könnte eine Kommunikation von Lambda Function zu Edomi Skill via MQTT noch eine Verbesserung bringen. Das würde zusätzlich den offenen Port in der Firewall und den ReverseProxy beseitigen. Das wird aber noch dauern.
              ja gute Idee!! Das ist eine konsequente weiterentwicklung ....polling über cloud broker?
              Jean-Luc Picard: "Things are only impossible until they are not."

              Kommentar


                Was ich letztens kurz getestet hatte, direkt aus der Lambdafunktion einen Edomi-Remote Befehl auslösen
                Code:
                https://IP/remote/?login=xxx&pass=xxx&koid=122&kovalue=DeviceId,CmdType,Cmd
                Das war zumindest im direkten Vergleich etwas schneller.

                Kommentar


                  Mahlzeit Zusammen

                  der Reverseproxy spackt, wenn ich den aufs lokale Netz und Alexa begrenzen will

                  Require all granted funktioniert

                  Code:
                  Jan 12 10:26:44 raspberrypi systemd[1]: Starting The Apache HTTP Server...
                  Jan 12 10:26:44 raspberrypi apachectl[1490]: AH00526: Syntax error on line 8 of /etc/apache2/sites-enabled/000-default-le-ssl.c
                  Jan 12 10:26:44 raspberrypi apachectl[1490]: Unknown Authz provider: IP
                  Jan 12 10:26:44 raspberrypi apachectl[1490]: Action 'start' failed.
                  Jan 12 10:26:44 raspberrypi apachectl[1490]: The Apache error log may have more information.
                  Jan 12 10:26:44 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
                  Jan 12 10:26:44 raspberrypi systemd[1]: apache2.service: Failed with result 'exit-code'.
                  Jan 12 10:26:44 raspberrypi systemd[1]: Failed to start The Apache HTTP Server.
                  Code:
                  <RequireAll>
                  Require all granted
                  #Require IP 192.168.178.0/24 54.240.197.0/24
                  </RequireAll>

                  Kommentar


                    Zitat von HeMichael Beitrag anzeigen
                    der Reverseproxy spackt, wenn ich den aufs lokale Netz und Alexa begrenzen will

                    Require all granted funktioniert
                    Ja da sich ständig die IP Ranges von Amazon Alexa ändern, wird das vermutlich auch nicht anders funktionieren.

                    Oder man prüft im Log des Apache, mit welchem IPs Amazon das Skillskript aufruft und erlaubt den Zugriff von dort. Ist aber etwas mühsam und wenn neue Adressen verwendet werden, dann muss man diese nachpflegen.

                    Kommentar


                      mhm ok, dann ist das blöd :P dann machen wir die tore ganz weiiiit auf :P

                      Kommentar


                        Zitat von HeMichael Beitrag anzeigen
                        mhm ok, dann ist das blöd :P dann machen wir die tore ganz weiiiit auf :P
                        Man kann auch die offiziell dokumentierten Amazon IP Ranges nehmen, aber die Liste ist leider sehr lang und mir ist es bislang nicht gelungen die für Alexa relevanten Einträge herauszufiltern:

                        https://docs.aws.amazon.com/general/...ip-ranges.html
                        https://ip-ranges.amazonaws.com/ip-ranges.json

                        Kommentar


                          mhm ok, ich schaus mir mal an. Irland is ja zumindest EU-west-1 das schränkt schon mal auf 211 Zeilen in der JSON ein, muss mir mal nur ansehen was da jetz dann Api gateway, EC2 Healtcheck usw. is

                          Kommentar


                            Der Skill lässt sich in der Alexa-App/Web nicht aktivieren

                            Verknüpfung fehlgeschlagen.
                            Der Autorisierungsserver meldete einen error- Parameter. Weitere Informationen finden Sie unter https://tools.ietf.org/html/rfc6749#section-4.1.2.1.
                            Weitere Informationen und Unterstützung bei der Konfiguration Ihres Skills für die Kontoverknüpfung mit OAuth finden Sie in diesem Handbuch.

                            Kommentar


                              Zitat von HeMichael Beitrag anzeigen
                              Der Skill lässt sich in der Alexa-App/Web nicht aktivieren
                              Ohne das Logfile des Skillskripts bei Aktivierung wird die Diagnose schwierig.

                              Kommentar


                                mhm ok, wo find ich das :P

                                Edit: und is das lambda so richtig? bei dir war mehr im PDF, aber standardmässig wird nur der mittlere Blcok angezeigt
                                Angehängte Dateien

                                Kommentar

                                Lädt...
                                X