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 juliawf Beitrag anzeigen
    So habe ich dass dann auch verstanden, wollte nur die dazugehörige Logik bau etwas vereinfachen.
    Achso, jetzt hab ich es erst verstanden. Das da oben war ein neuer Logikbaustein. Warum sagst du das nicht gleich

    Zitat von juliawf Beitrag anzeigen
    Eine Frage noch, ist es jetzt noch Case sensitiv? oder wird jetzt klein und Großschreibung gleichgestellt?
    Hmmm, gute Frage. Muss ich noch mal schauen. Du meinst E3, E4, E5?

    Kommentar


      Ja, sollte eigentlich case-insensitive sein, da der Vergleich mit strtolower() gemacht wird.

      Kommentar


        Achso, jetzt hab ich es erst verstanden. Das da oben war ein neuer Logikbaustein. Warum sagst du das nicht gleich
        mein Fehlen, ist späht geworden, verständlich alles zu Papier zu bringen ist eh nicht meine Stärke.

        Hmmm, gute Frage. Muss ich noch mal schauen. Du meinst E3, E4, E5?
        genau, ich habe alle Räume und Begriffe doppelt eingetragen da es am Anfang die Alexa mal so mal so geschrieben hat.

        Waleri

        Kommentar


          Ja, sollte eigentlich case-insensitive sein, da der Vergleich mit strtolower() gemacht wird.
          Super, dann kann ich meine Begriffe halbieren.

          Gruß Waleri

          Kommentar


            André,
            eine Frage noch, ist es möglich eine Scene oder Befehl mit Statusansage zu kombinieren?
            z.B aktiviere Szene Nacht und als Antwort "Szene aktiviert, die Eingangstür ist nicht verschlossen".
            Ist es generell möglich?

            Waleri

            Kommentar


              Grundsätzlich sollte das möglich sein. Derzeit wartet der Skill nur auf eine Antwort von EDOMI wenn eine Statusanfrage gemacht wurde. In allen anderen Fällen wird ein "Okay" bzw. wenn $debug=true ist auch ein längerer aber statischer Text als Antwort gegeben. Man könnte sich aber vorstellen, dass grundsätzlich auf eine Antwort von EDOMI gewartet wird. Wenn diese dann leer ist, dann wird die Standardantwort vom Skill (alexa.php) gegeben. Könnte bedeuten, dass die Antwort dann etwas länger braucht als das "Okay" zur Zeit. Aber auch nicht länger als die Statusantworten, die es schon gibt.

              Kommentar


                ( es ging um formatierte Sprachausgabe mit ssml-Tags)

                Zitat von jonofe Beitrag anzeigen

                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.
                Das wäre wirklich gut- gerade z.B. bei der Ansage von Messwerten würde ich alexa gern die Aussprache vorgeben.
                Danke und Grüße,
                Gunnar

                Kommentar


                  Zitat von junibart Beitrag anzeigen
                  ( es ging um formatierte Sprachausgabe mit ssml-Tags)



                  Das wäre wirklich gut- gerade z.B. bei der Ansage von Messwerten würde ich alexa gern die Aussprache vorgeben.
                  Hi Gunnar,

                  ersetze mal in der alexa.php in der Funktion buildResponse das Setzen der Variable $response = ' .... mit

                  PHP-Code:
                      $response '
                          {
                            "version": "1.0",
                            "sessionAttributes": {},
                            "response": {
                              "outputSpeech": {
                                "type": "' 
                  . (strpos $text'<speak>' ) === false) ? '"type": "PlainText", "text": ' '"type": "SSML", "ssml": '.
                                
                  '"'.$text '"
                              },
                              "card": {
                                "type": "Simple",
                                "title": "EDOMI",
                                "content": "EDOMI Status Antwort."
                              },
                              "shouldEndSession": true
                            }
                          }'

                  Und dann mal versuchen, ob du SSML senden kannst. Du musst es dann so aufbauen:


                  HTML-Code:
                   <speak>This output speech uses SSML.</speak>
                  Ist Quick'nDirty und ungetestet. Hab derzeit keinen Zugriff auf Alexa.

                  Kommentar


                    Zitat von jonofe Beitrag anzeigen

                    Hi Gunnar,

                    ersetze mal in der alexa.php in der Funktion buildResponse das Setzen der Variable $response = ' .... mit

                    PHP-Code:
                    $response '
                    {
                    ...
                    }'

                    Und dann mal versuchen, ob du SSML senden kannst. Du musst es dann so aufbauen:


                    HTML-Code:
                     <speak>This output speech uses SSML.</speak>
                    Hallo Andrè,

                    klappt leider so noch nicht. "Bei der Kommunikation mit dem angeforderten Skill ist ein Problem aufgetreten."

                    Ich schick Dir die /usr/local/edomi/www/data/log/alexa.log mal per PN. Ich meine, man sieht darin, dass offenbar die Erkennung des Tags "<speak> nicht greift- als Typ wird nicht SSML, sondern Plaintext angegeben...

                    Code:
                    Status received from EDOMI: {"group":"allgemeiner status","name":"wlanpasswort","location":"","status":"1111","response":" <speak>WLan-Passwort 1111.<\/speak>"}
                    
                    "type": "PlainText", "text": 
                    "type": "PlainText", "text":

                    Zitat von jonofe Beitrag anzeigen
                    Ist Quick'nDirty und ungetestet. Hab derzeit keinen Zugriff auf Alexa.
                    Ich hab noch einen Dot übrig. Wo soll ich ihn hinschicken?

                    Grüße,
                    Gunnar

                    Kommentar


                      Zitat von juliawf Beitrag anzeigen
                      André,
                      eine Frage noch, ist es möglich eine Scene oder Befehl mit Statusansage zu kombinieren?
                      z.B aktiviere Szene Nacht und als Antwort "Szene aktiviert, die Eingangstür ist nicht verschlossen".
                      Ist es generell möglich?
                      Hi Waleri,

                      habe das gerade mal implementiert, allerdings wird es vermutlich nicht so einfach funktionieren.
                      Das liegt daran, dass du vermutlich den Status des KOs haben möchtest, welches du mit dem Sprachbefehl gerade geschaltet hast.
                      Dieser Schaltvorgang ist aber ja noch gar nicht ausgelöst, wenn der LBS aufgerufen wird, sondern wird erst durch den Ausgang A1/A2 getriggert.
                      D.h. selbst wenn du auf den "Status Values" Eingang das richtig KO legst, dann hat das natürlich immer noch den Wert vor dem Schaltvorgang.

                      Hoffe das war verständlich.

                      Ich habe noch keine Idee, wie man das lösen kann. Denn es müsste eigentlich mit der Antwort gewartet werden, bis der neue Status nach dem Schaltenvorgang am "Status Values" Eingang ankommt. Und erst dann darf man den ResponseText an den Skill zurückschicken.

                      Kommentar


                        jonofe Da du dich ja wirklich bestens mit Alexa auskennst, was hälst du von dieser Idee: https://knx-user-forum.de/forum/öffe...nternettraffic

                        Wäre das auch mit edomi möglich, hatte da vor 1-2 Wochen mal gefragt nach einer Möglichkeit, ohne externen Zugriff aus dem Internet Alexa trotzdem zu nutzen, das scheint ein Weg zu sein. Wie ist deine Einschätzung zu der Lösung?

                        Kommentar


                          Hi André,
                          Ist verständlich erklärt, in meinem Fall ist es genau das was ich brauche, ich möchte Status vor Türen etc. angesagt bekommen welche Szenen unabhängig sind.
                          Das wären Computer oder Drucker in Arbeitszimmer vergessen auszuschalten, Terrassentür ist noch offen oder Eingangstür nicht verriegelt.
                          Alles andere ist natürlich etwas problematisch, da hast du recht.

                          Gruß Waleri

                          Kommentar


                            Zitat von junibart Beitrag anzeigen
                            Das wäre wirklich gut- gerade z.B. bei der Ansage von Messwerten würde ich alexa gern die Aussprache vorgeben.
                            Hallo,

                            mit SSML hat es ja noch nicht geklappt- hier ein Workaround, der für Ziffern/Messwerte mit Dezimalpunkt funktioniert:

                            Die Ansage einzelner Ziffern kann man mit Semikolons dazwischen erzwingen. Messwertausgaben mit Nachkommastelle nehme ich am Dezimalpunkt mit dem "String Zerteilen"-Funktion auseinander und lasse Vor- und Nachkommastellen getrennt mit dem Text "Komma" dazwischen vorlesen.

                            Bin jetzt bestens über die Außentemperatur und die Min/max-Werte der letzten 12 Stunden im Bilde... ;-)

                            Grüße,

                            Gunnar

                            Kommentar


                              Werde gleich mal ein Update hochladen. Das enthällt dann:
                              1. SSML Unterstützung: dazu muss der Response Text in <speak> </speak> Tags eingefasst sein
                              2. Individuelle Alexa Rückmeldung auch bei Kommandos. Dazu einfach den Response Text an E8 setzen. Dies ist dann die Antwort nach Ausführen des Befehls. Wenn nichts angegeben ist, ist die Default Antwort "Okay"
                              3. Status-Rückmeldung auch bei Kommandos: Funktioniert genau wie unter 2. beschrieben, nur dass jetzt auch E7 und E9 genutzt werden können.
                                Wichtig: Wird ein Statuswert verwendet, welcher durch das Schaltkommando verändert wird, so wird diese Änderung nicht berücksichtig, d.h. es wird immer der Wert vor Ausführung des Schaltbefehls zurückgegeben.
                              Freue mich auf euer Feedback.

                              Kommentar


                                Hi Andrè,

                                Zitat von jonofe Beitrag anzeigen
                                Werde gleich mal ein Update hochladen. Das enthällt dann:[LIST=1][*]SSML Unterstützung: dazu muss der Response Text in <speak> </speak> Tags eingefasst sein
                                Hmm... vielleicht mach ich auch was fasch, aber das funktioniert bei mir nicht.
                                Wenn ausschließlich die <speak> </speak>-Tags und normaler Text in E8 stehen, wird der Text normal vorgelesen. Sobald weitere SSML-Tags dazukommen, z.B.
                                Code:
                                <speak><say-as interpret-as="digits"> %1%</say-as></speak>
                                kommt die Fehlermeldung "Bei der Kommunikation mit dem angeforderten Skill ist ein Problem aufgetreten". %1% enthält eine 16-stellige Zahl. alexa.log schicke ich Dir per PN.

                                Zitat von jonofe Beitrag anzeigen
                                [*]Individuelle Alexa Rückmeldung auch bei Kommandos. Dazu einfach den Response Text an E8 setzen. Dies ist dann die Antwort nach Ausführen des Befehls. Wenn nichts angegeben ist, ist die Default Antwort "Okay"
                                Funktioniert perfekt!

                                Zitat von jonofe Beitrag anzeigen
                                [*]Status-Rückmeldung auch bei Kommandos: Funktioniert genau wie unter 2. beschrieben, nur dass jetzt auch E7 und E9 genutzt werden können.
                                Wichtig: Wird ein Statuswert verwendet, welcher durch das Schaltkommando verändert wird, so wird diese Änderung nicht berücksichtig, d.h. es wird immer der Wert vor Ausführung des Schaltbefehls zurückgegeben.
                                Teste ich in den nächsten Tagen. Mss mir erst eine Anwendung einfallen lassen, ein paar Ideen gab es hier ja schon.

                                Freue mich auf euer Feedback.
                                Der Command-Validator macht echt Spaß... Vielen Dank für die Entwicklung!

                                Beste Grüße,

                                Gunnar

                                Kommentar

                                Lädt...
                                X