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

  • junibart
    antwortet
    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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • junibart
    antwortet
    ( 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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • juliawf
    antwortet
    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

    Einen Kommentar schreiben:


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

    Gruß Waleri

    Einen Kommentar schreiben:


  • juliawf
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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?

    Einen Kommentar schreiben:


  • juliawf
    antwortet
    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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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!

    Einen Kommentar schreiben:


  • juliawf
    antwortet
    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.

    Einen Kommentar schreiben:


  • sepplo815
    antwortet
    Hi André,

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

    Gruß
    Seppl

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • sepplo815
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X