Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Custom Skill für EDOMI (LBS 19000646 und 19000647)

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

    Zitat von junibart Beitrag anzeigen


    Die Lösung ist, bei einem Update des skills bei Amazon *zuerst* die Custom Slot Types zu erfassen, und erst dann die Intents und Utterances durch die neuen Versionen zu ersetzen.
    Na es hatte ja schon einen Hintergrund, dass ich oben geschrieben hatte, dass man mit den Custom Slots anfangen soll. Das liegt daran, dass bei jeder Änderung eines Slot Types der Skill neu gebaut wird und eine semantische Prüfung stattfindet.

    Vielleicht sollte ich es noch expliziter formulieren

    Kommentar


      Noch eine Sache:
      In der Alexa.php auchen in dem zu editierenden Abschnitt in Version 0.3 noch folgende Zeilen auf:

      PHP-Code:
      $userIdValidation 'amzn1.ask.account.AE4DXT...';
      $userIdValidation false
      Sind die relevant?

      Ansonsten eine kurze Zwischenmeldung für heute:

      Alexa Skill aktualisiert, EDOMI-LBS in v0.3 eingespielt, sonstige Konfiguration beibehalten.

      Alle vorher konfigurierten Befehle funktionieren- Schalten und Rolläden fahren wird ausgeführt, es kommt jedoch kein Antworttext mehr. Stattdessen eine weile hektisches blaues flimmern und dann "Der angeforderte Skill braucht zu lange für die Antwort."

      Die Antworttext-Eingänge sind bis auf einen leer, beim Rolladen hatte ich testhalber "Jawoll" eingetragen... auch da kam nichts.
      Kann aber auch an einem Fehler meinereits liegen, ich geh morgen nochmal alles genau durch.
      Gute Nacht,

      Gunnar

      Kommentar


        Zitat von junibart Beitrag anzeigen
        Noch eine Sache:
        In der Alexa.php auchen in dem zu editierenden Abschnitt in Version 0.3 noch folgende Zeilen auf:

        PHP-Code:
        $userIdValidation 'amzn1.ask.account.AE4DXT...';
        $userIdValidation false
        Sind die relevant?
        Das kann so bleiben. Durch das FALSE bleibt die User Validierung ausgeschaltet.


        Zitat von junibart Beitrag anzeigen
        Alle vorher konfigurierten Befehle funktionieren- Schalten und Rolläden fahren wird ausgeführt, es kommt jedoch kein Antworttext mehr. Stattdessen eine weile hektisches blaues flimmern und dann "Der angeforderte Skill braucht zu lange für die Antwort."

        Die Antworttext-Eingänge sind bis auf einen leer, beim Rolladen hatte ich testhalber "Jawoll" eingetragen... auch da kam nichts.
        Kann aber auch an einem Fehler meinereits liegen, ich geh morgen nochmal alles genau durch.
        Die Antworteingänge sind ausschließlich für Statusanfragen relevant. Dazu muss auf jeden Fall ein Statuswert an E7 vorhanden sein.
        Die normale Bestätigung von Schaltbefehlen erfolgt in alexa.php und sollte eigentlich immer "Okay" lauten, solange $debug in alexa.php auf FALSE steht.
        Wenn du den Status eines Rolladen abfragen willst, dann brauchst deine Positions-GA auf E7 (0-255). Mehr ist nicht notwendig. Dann sollte Alexa mit dem Standardsatz "Die Position ist XX Prozent." antworten.

        Als Debug-Info ist folgender Befehl ganz hilfreich:

        Code:
        tail -f /usr/local/edomi/www/data/log/alexa.log

        Kommentar


          Glaube ich habe eine Änderung vergessen:

          In alexa.php werden am Anfang ja die $targets definiert.
          Dort ist nun bei mindestens einem Eintrag (die meisten haben vermutlich nur ein Target definiert) der Array-Eintrag 'status' => true zu definieren.
          Das ist dann das Target (Verbindung zum Alexa Receiver LBS), über die mögliche Statusantworten erwartet werden.


          PHP-Code:
          $targets = array(
              array(
                  
          'ip' => '192.168.0.###'// IP des EDOMI Servers
                  
          'protocol' => 'tcp'// muss "tcp" sein
                  
          'port' => ####, // port des Alexa Receivers LBS
                  
          'status' => true // true wenn von diesem EDOMI Server die Antworten auf Statusabfragen kommen sollen
              
          )
          ); 

          Kommentar


            Zitat von jonofe Beitrag anzeigen
            In alexa.php werden am Anfang ja die $targets definiert.
            Dort ist nun bei mindestens einem Eintrag (die meisten haben vermutlich nur ein Target definiert) der Array-Eintrag 'status' => true zu definieren.
            Genau das war es. Jetzt läuft es.

            EDIT:
            Auch die Statusabfragen funktionieren. Wunderbar!


            Besten Dank!

            Gunnar
            Zuletzt geändert von junibart; 13.02.2017, 20:54.

            Kommentar


              So, noch ein bisschen weiter gespielt:

              Die Ansagen von Alexa kommen manchmal etwas ungewöhnlich daher.

              "Die Aussentemperatur beträgt minus zwei {Pause} fünf Grad Celsius" (an E7 lag der wert -2.5 an).
              Vermutlich muss man die Dezimalzahl erst auseinandernehmen und an passender Stelle den Text "Komma" einfügen?


              "Das WLan-Passwort lautet eins eins eins eins eintausendeinhundertelf Durchwahl eins eins eins eins eintausendeinhundertelf"
              (an E7 lag 1111 1111 1111 1111 bzw. mein richtiger WLan-Schlüssel)

              Gibt es eigentlich "Formatierungsregeln" für Alexas Aussprache, also z.B. wie man einzelne Ziffern und große Zahlen erzwingen kann? Ein Punkt scheint z.B. eine kurze Pause zu erzeugen.

              EDIT: Gerade gefunden: Es gibt eine Beschreibungssparache (SSML), mit der man das modellieren kann. Wird das unterstützt?
              (https://developer.amazon.com/public/...ssml-reference)

              Muss jetzt nur ein wenig kürzer treten, meine Gattin ist schon etwas angefressen von der Konkurrenz im Haus. Am WE hab ich sturmfrei... spätestens dann gehts weiter.

              Grüße,

              Gunnar
              Zuletzt geändert von junibart; 13.02.2017, 21:50.

              Kommentar


                Du kannst das sehr gut in der Amazon Developer Console testen. Und zwar unter "Test" und dort bei "Voice Simulator". Damit kannst du am PC hören, wie Alexa einen entsprechenden Befehl ausspricht. Alle diese von dir aufgelisteten ungewöhnlichen Ansagen liegen wie schon von dir vermutet an Alexa und nicht am Skill. ggf. kann man im Skill aber noch ein paar sinnvolle mappings machen.

                EDIT: Vielleicht ein LBS, der eine beliebige rationale Zahl in einen String umwandelt.
                Zuletzt geändert von jonofe; 13.02.2017, 22:06.

                Kommentar


                  Zitat von jonofe Beitrag anzeigen
                  Alle diese von dir aufgelisteten ungewöhnlichen Ansagen liegen wie schon von dir vermutet an Alexa und nicht am Skill. ggf. kann man im Skill aber noch ein paar sinnvolle mappings machen.
                  Spricht was dagegen, in der Alexa.php dem "outputSpeech" statt "plaintext" eher "SSML" zuzuweisen und im ResponseText (E8) SSML-Tags (z.B. <say-as interpret-as="digits"> %1% </say-as> ) zuzulassen? Dann wäre man völlig frei in der Gestaltung der Aussprache.

                  Nur so eine Idee- bin schon total happy mit dem aktuellen Stand.

                  Gunnar

                  Kommentar


                    Zitat von junibart Beitrag anzeigen

                    Spricht was dagegen, in der Alexa.php dem "outputSpeech" statt "plaintext" eher "SSML" zuzuweisen und im ResponseText (E8) SSML-Tags (z.B. <say-as interpret-as="digits"> %1% </say-as> ) zuzulassen? Dann wäre man völlig frei in der Gestaltung der Aussprache.
                    das könnte man konfigurierbar machen, so dass man es individuell für jeden Command Validator einstellen kann. werde es mal prüfen und dann ins nächste Update mit reinbringen.

                    Kommentar


                      Hi,

                      erst mal fettes Lob und Danke für deine Arbeit!!!
                      Ist eine Mega coole Sache und ich bin gespannt was da noch so kommt…

                      Habe gestern das Ganze Konstrukt in Betrieb genommen und es funktioniert (zum Teil) sogar ;o)
                      Das einfache EIN/AUS ansteuern funktioniert super.
                      Bei einer Statusabfrage bekomme ich am EDOMI Server die Fehlermeldung:
                      Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000646.php | Fehlercode: 1 | Zeile: 108 | Call to undefined function msg_get_queue() FATALERROR
                      Ich vermute, dass ich bei dem Custom-Skill was verbockt habe was dem LBS nicht so gut gefällt. Finde aber nichts, ist ja auch recht viel. Wie kann ich das am besten rausfinden? Gibt’s da ein Log oder so?


                      Kleine Ergänzung (für Linux Schwächlinge wie ich es bin) zu deinem HowTo:
                      Die Rechte der alexa.php auf den Edomi Server Ausführbar machen damit es funktioniert ;o)

                      Danke und Gruß
                      Seppl_o815

                      Kommentar


                        Zitat von sepplo815 Beitrag anzeigen
                        Hi,

                        erst mal fettes Lob und Danke für deine Arbeit!!!
                        Ist eine Mega coole Sache und ich bin gespannt was da noch so kommt…

                        Habe gestern das Ganze Konstrukt in Betrieb genommen und es funktioniert (zum Teil) sogar ;o)
                        Das einfache EIN/AUS ansteuern funktioniert super.
                        Glückwunsch, das klingt doch super!

                        Zitat von sepplo815 Beitrag anzeigen
                        Bei einer Statusabfrage bekomme ich am EDOMI Server die Fehlermeldung:
                        Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000646.php | Fehlercode: 1 | Zeile: 108 | Call to undefined function msg_get_queue() FATALERROR
                        Ich vermute, dass ich bei dem Custom-Skill was verbockt habe was dem LBS nicht so gut gefällt. Finde aber nichts, ist ja auch recht viel. Wie kann ich das am besten rausfinden? Gibt’s da ein Log oder so?
                        Nein, alles gut. Du musst lediglich das Paket php-process installieren:

                        Code:
                        yum install php-process
                        Da ich es gefühlt in >20 LBS verwende, haben die meisten das wohl schon installiert und ich hatte vergessen es explizit zu erwähnen.
                        Danach sollte dann auch die Kommunikation zurück von EDOMI an alexa.php funktionieren.


                        Zitat von sepplo815 Beitrag anzeigen
                        Kleine Ergänzung (für Linux Schwächlinge wie ich es bin) zu deinem HowTo:
                        Die Rechte der alexa.php auf den Edomi Server Ausführbar machen damit es funktioniert ;o)
                        Guter Hinweis, werde ich ergänzen. Danke dafür.

                        Kommentar


                          Hi André,

                          danke für die schnelle Antwort.
                          Wird heute Abend gleich getestet *freu*

                          Gruß
                          Seppl

                          Kommentar


                            Auch von mir ein fettes Dankeschön,
                            mir hat bei Status abfragen nur eins nicht gefallen, ich habe in Wohnzimmer 6 unterschidliche Lichter, das war dann dem entsprechend eine Lange ansage von Alexa.
                            Ich habe Stringverbinder soweit geändert dass mir Statusansage nur aus eingeschalteten Lampen zusammengesetzt wird. Es ist dann auch möglich mitzuteilen dass alle Lampen aus sind.
                            LBS 19000894 Unbenannt2.JPG
                            Zuletzt geändert von juliawf; 14.02.2017, 23:15.

                            Kommentar


                              Na das war ja die Idee hinter dem Eingang Response Text, dass jeder such den Text so formatieren kann wie er möchte. Das kann dann ein Status aller Leuchten, es können nur die eingeschalteten oder gar nur die Info, dass mindestens eine Leuchte eingeschaltet ist. Mann muss sich halt nur vorher das, was man hören möchte, als Logikwert bauen und mit einem Text und Wertemapping versehen. That's it!

                              Kommentar


                                So habe ich dass dann auch verstanden, wollte nur die dazugehörige Logik bau etwas vereinfachen.

                                Eine Frage noch, ist es jetzt noch Case sensitiv? oder wird jetzt klein und Großschreibung gleichgestellt?

                                Gruß
                                Waleri

                                Kommentar

                                Lädt...
                                X