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

    okay, ich schau mir das mit SSML noch mal an. Zugegebenermaßen, habe ich keinen Test mit anderen SSML Tags gemacht, sondern lediglich das resultierende JSON mit der API Beschreibung verglichen. Evtl. geht da noch irgendwas mit den Sonderzeichen schief.

    EDIT: ich vermute es liegt an den Anführungszeichen, da sowohl der SSML Text als ganzes in Anführungszeichen eingeschlossen ist aber auch Anführungszeichen in deinem SSML Code verwendet werden. Werde morgen mal testen, wie man das lösen kann, so dass die Zuordnung eindeutig ist.
    Zuletzt geändert von jonofe; 19.02.2017, 23:26.

    Kommentar


      junibart : Versuch mal vor jedes Anführungszeichen einen Backslash zu setzen. Evtl. ist das schon die Lösung.

      Kommentar


        Habe es gerade mal verifiziert. Wenn die Anführungszeichen mit einem \ escaped werden, dann funktioniert SSML wie erwartet.
        Werde dies in der nächsten Version automatisch durch den LBS machen.

        Kommentar


          Hallo André,
          Ich habe vorgestern die Bausteine und alexa.php aktualisiert, danke für die Umsetzung der Statusmeldungen.

          Heute früh habe ich gesehen, dass ich hin und wieder Fehler-log eintag bekomme.

          Code:
          2017-02-20 22:15:26 570729 ? 22989 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 148 | Undefined index: location ERROR
          2017-02-20 22:15:26 571944 ? 22989 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 156 | Undefined index: location ERROR
          In meinem Individual-log von Command Validator steht ungefähr 20x das hier:
          Code:
           [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 773933[/TD]
           			[TD] 22989[/TD]
           			[TD] debug[/TD]
           			[TD] LBS19000647 [v0.3.1]: LBS ended[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 778028[/TD]
           			[TD] 22989[/TD]
           			[TD] debug[/TD]
           			[TD] LBS19000647 [v0.3.1]: LBS started[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 779690[/TD]
           			[TD] 22989[/TD]
           			[TD] debug[/TD]
           			[TD] LBS19000647 [v0.3.1]: Array[LF]([LF] [group] => szene[LF] [name] => gutenacht[LF] [value] => gutenacht[LF] [queue] => 1424534575[LF])[LF][/TD]
           		[/TR]
          [/TABLE]
          mit einer Unterbrechung von:
          Code:
           [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 573682[/TD]
           			[TD] 22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: Sending message to Alexa Receiver:[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 573909[/TD]
           			[TD]22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: ================ ARRAY/OBJECT START ================[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 574126[/TD]
           			[TD]22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: group => szene[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 574381[/TD]
           			[TD]22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: name => gutenacht[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 574645[/TD]
           			[TD]22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: location =>[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 574846[/TD]
           			[TD]22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: status =>[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 575020[/TD]
           			[TD]22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: response => Gute Nacht[/TD]
           		[/TR]
          [TR]
          [TD]2017-02-20 22:15:26[/TD]
           			[TD] 575164[/TD]
           			[TD]22989[/TD]
           			[TD]debug[/TD]
           			[TD]LBS19000647 [v0.3.1]: ================ ARRAY/OBJECT END ================[/TD]
           		[/TR]
          [/TABLE]
          Läst sich da irgendwie eingrenzen welcher LBS mir da Schwierigkeiten macht.
          Was nicht schlecht wäre wenn mann die Möglichkeit hätte Bausteinen eigene ID oder Nummerierung zu verpassen damit Sie das auch mit ins Log reinschreiben.
          Allerdings denke ich, wird es ohne weiteres nicht gehen, und nur im log von Command Validator bringt es wahrscheinlich nichts.
          Da es bis Gestern alles einwandfrei lief habe ich bei den Meisten deinen LBS den Loglevel schon auf 0 gestellt, deshalb "nur" ca 20 Einträge. Soll ich alle wieder Aktivieren?

          Gruß Waleri

          Kommentar


            Den Fehler schau ich mir mal an.
            Das mit dem Logfile habe ich in anderen LBS schon ungesetzt. Muss also nur die Loggingfunktion austauschen.
            Man kann dann einstellen, ob ein Logfile je LBS-Instanz oder ob ein gemeinsames Log mit Angabe der LBS-ID angelegt wird.

            Kommentar


              Morgen,
              Werde heute mein Glück mit austauschen versuchen.
              Kannst du mir vielleicht Sagen in welchen LBS es schon vorhanden ist? Es sind von dir 55 Stück in Downloadbereich.

              Code:
               [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
              [TR]
              [TD]2017-02-21 19:27:10[/TD]
               			[TD]383074[/TD]
               			[TD]?[/TD]
               			[TD]22989[/TD]
               			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 148 | Undefined index: location[/TD]
               			[TD] ERROR[/TD]
               		[/TR]
              [TR]
              [TD]2017-02-21 19:27:10[/TD]
               			[TD]384360[/TD]
               			[TD]?[/TD]
               			[TD]22989[/TD]
               			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 156 | Undefined index: location[/TD]
               			[TD] ERROR[/TD]
               		[/TR]
              [TR]
              [TD]2017-02-21 22:40:28[/TD]
               			[TD]406045[/TD]
               			[TD]?[/TD]
               			[TD]22989[/TD]
               			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 148 | Undefined index: location[/TD]
               			[TD] ERROR[/TD]
               		[/TR]
              [TR]
              [TD]2017-02-21 22:40:28[/TD]
               			[TD]407278[/TD]
               			[TD]?[/TD]
               			[TD]22989[/TD]
               			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 156 | Undefined index: location[/TD]
               		[/TR]
              [/TABLE]
              So wie es aussieht habe ich ein generelles Problem mit Szenen.

              Gruß Waleri
              Zuletzt geändert von juliawf; 22.02.2017, 06:57.

              Kommentar


                Da ich derzeit beruflich unterwegs bin, kann ich mir das erst morgen anschauen. Für das Logging müssen auch noch zwei Variablen angelegt werden. Auch das werde ich am Wochenende anpassen.

                Kommentar


                  Nur kein Stress, es funktioniert alles, nur bei rote schrift auf grauen Hintergrund zucke ich leicht zusammen.

                  Gruß Waleri

                  Kommentar


                    Zitat von jonofe Beitrag anzeigen
                    Habe es gerade mal verifiziert. Wenn die Anführungszeichen mit einem \ escaped werden, dann funktioniert SSML wie erwartet.
                    Werde dies in der nächsten Version automatisch durch den LBS machen.

                    Hallo,

                    ja, der Workaround mit den Backslashes funktioniert. Besten Dank für den Tip!

                    Für mich reicht das dann hinsichtlich des Custom Skills, bis auf ein Detail:

                    Wenn man einen Rolladen-Fahrbefehl abgesetzt hat, ist der Stop-Befehl "Alexa, starte edomi und stoppe den Rolladen im Wohnzimmer" sehr unpraktisch- bis der ausgesprochen und interpretiert ist, ist das Teil schon am anschlag (und nicht in der Position, die man haben will...). Ist es möglich, dass Alexa den Dialog aufrecht erhält, also nach dem Ausführen noch ca. 10 Sekunden zuhört, ob ein "Stopp" kommt, und das dann auch ausführt?

                    Bei der täglichen Nutzung ist allerdings das "starte edomi und..." auch bei einfachen Licht-Befehlen doch ganz schön umständlich. Du hattest in einem früheren Beitrag angedeutet, dass Du Dir nach dem Custom Skill auch nochmal den Smarthome-Skill ansehen würdest- das wäre richtig gut.

                    Ein einfaches "Alexa, schalte Licht am Esstisch ein!" würde die Akzeptanz in der Familie doch erheblich steigern. Das ist auch jetzt schon möglich (es gibt m.E. auch schon ein LBS dafür), aber eine Integration beider Skills wäre perfekt.

                    Besten Dank für die Enwicklungsarbeit, die Du hier leistest.

                    Grüße,
                    Gunnar

                    Kommentar


                      ja das sollte möglich sein, dass der Dialog bestehen bleibt. Schaue ich mir mal an, wie man das am besten macht.

                      Ein Smarthome Skill sollte eigentlich parallel zum Custom Skill funktionieren. Ich sehe allerdings im Moment nur wenige Synergien, da es komplett unterschiedliche Konzepte sind. Daher wäre meine Empfehlung beide Lösungen parallel zu verwenden. Im Moment fehlt mir die Zeit dafür, insbesondere weil ich weder in Java noch Python besondere Skills habe.

                      Kommentar


                        Zitat von juliawf Beitrag anzeigen
                        Heute früh habe ich gesehen, dass ich hin und wieder Fehler-log eintag bekomme.

                        Code:
                        2017-02-20 22:15:26 570729 ? 22989 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 148 | Undefined index: location ERROR
                        2017-02-20 22:15:26 571944 ? 22989 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19000647.php | Fehlercode: 8 | Zeile: 156 | Undefined index: location ERROR
                        Dieser Fehler sollte in v0.4 nun behoben sein

                        Zitat von juliawf Beitrag anzeigen
                        Läst sich da irgendwie eingrenzen welcher LBS mir da Schwierigkeiten macht.
                        Was nicht schlecht wäre wenn mann die Möglichkeit hätte Bausteinen eigene ID oder Nummerierung zu verpassen damit Sie das auch mit ins Log reinschreiben.
                        Das Logging wurde wie folgt angepasst:
                        1. Alle Alexa Command Validator LBS schreiben weiterhin ins selbe Logfile
                        2. Am Ende eines jeden Eintrags steht in Klammern die EDOMI ID der LBS Instanz (also die ID, die in der Titelzeile eines LBS im Logikeditor steht)
                        Mit den Variable 104 und 105 kann man dieses Verhalten übrigens anpassen. Das ist aber nicht über Eingänge des LBS möglich, da in der Regel nur eine Art von Logging sinnvoll ist und dies hängt dann von der Art des LBS ab.

                        Falls es doch jemand ändern möchte, ist dies auch in der Hilfe dokumentiert:

                        V104=0: Ein gemeinsames Logfile für alle LBS Instanzen
                        V104=1: Je LBS Instanz ein eigenes Logfile. Die ID der LBS Instanz wird dann an den Logfile Namen angehängt.
                        V105=0: Keine ID der LBS Instanz
                        V105=1: ID der LBS Instanz steht am Ende eines jeden Log-Eintrags

                        Sinn machen also vor allem die Kombinationen:

                        V104=0 & V105=1
                        V104=1 & V105=0
                        V104=0 & V105=0

                        Kommentar


                          Dieser Fehler sollte in v0.4 nun behoben sein
                          Ist er

                          Kommentar


                            Zitat von junibart Beitrag anzeigen
                            Wenn man einen Rolladen-Fahrbefehl abgesetzt hat, ist der Stop-Befehl "Alexa, starte edomi und stoppe den Rolladen im Wohnzimmer" sehr unpraktisch- bis der ausgesprochen und interpretiert ist, ist das Teil schon am anschlag (und nicht in der Position, die man haben will...). Ist es möglich, dass Alexa den Dialog aufrecht erhält, also nach dem Ausführen noch ca. 10 Sekunden zuhört, ob ein "Stopp" kommt, und das dann auch ausführt?
                            Das ist leider doch nicht so einfach wie gedacht, da man den Timeout von Alexa nicht beeinflussen kann. D.h. nach spätestens 8 Sekunden ist die Session beendet. Ggf. kann man das einmalig mit einem "Reprompt" verlängern. D.h. man gibt den Befehl zum "Rolläden fahren", die Session bleibt offen, nach 6 Sekunden ohne Stopp Befehl wird Alexa dann nochmal etwas sagen und nochmal 6 Sekunden auf ein Stopp warten. Danach ist dann endgültig die Session beendet. Werde das bei Gelegenheit mal ausprobieren, ob das wirklich Sinn macht.

                            Kommentar


                              André,

                              würde es so gehen?
                              "Alexa, starte edomi und fahre Rolladen...."
                              Und in nächsten zb. 20 Sekunden "Alexa, starte edomi Stopp"
                              Dass der Befehl "Rolladen Fahren" und Raum gemerkt wird, damit ich die Befehl revidiert werden kann und die Anweisung kürzer ausfällt.

                              Eine Steigerung da davon "Alexa, starte edomi und dimme...." , danach "Alexa, starte edomi noch etwas dunkler/heller"

                              Ich weiss das ist wirklich nicht einfach und übersteigt mein wissen, deshalb nur ein Denkanstoß, vielleicht wird auch was ähnliches draus.

                              Gruß Waleri

                              Kommentar


                                Grundsätzlich ist dann immer die Frage, woher weiss man, ob es erweitertes Kommando ist oder ob es ein neuer Befehl ist.
                                Was bestimmt funktionieren würde, dass man die Kommunikation offen hällt und dann alle folgenden Befehl an denselben Command Validator LBS gehen. Dieser könnte dann einen weiteren Ausgang bekommen, der jeweils den Folgebefehl erhält, bis die Session beendet ist. Da könnte dann zum Beispiel "heller", "dunkler", "Rolläden Stop" ankommen und man könnte mit einem String-Vergleicher dann die entsprechenden Aktionen auslösen.

                                Ich werde das mal für die nächste Version im Hinterkopf behalten.

                                Kommentar

                                Lädt...
                                X