Zitat von junibart
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Alexa Custom Skill für EDOMI (LBS 19000646 und 19000647)
Einklappen
X
-
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.
- Likes 1
-
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.Zitat von jonofe Beitrag anzeigenAlle 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.
Nur so eine Idee- bin schon total happy mit dem aktuellen Stand.
Gunnar
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
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,
GunnarZuletzt geändert von junibart; 13.02.2017, 21:50.
Einen Kommentar schreiben:
-
Genau das war es. Jetzt läuft es.Zitat von jonofe Beitrag anzeigenIn 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.
EDIT:
Auch die Statusabfragen funktionieren. Wunderbar!
Besten Dank!
GunnarZuletzt geändert von junibart; 13.02.2017, 20:54.
Einen Kommentar schreiben:
-
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
)
);
Einen Kommentar schreiben:
-
Das kann so bleiben. Durch das FALSE bleibt die User Validierung ausgeschaltet.Zitat von junibart Beitrag anzeigenNoch eine Sache:
In der Alexa.php auchen in dem zu editierenden Abschnitt in Version 0.3 noch folgende Zeilen auf:
Sind die relevant?PHP-Code:$userIdValidation = 'amzn1.ask.account.AE4DXT...';
$userIdValidation = false;
Die Antworteingänge sind ausschließlich für Statusanfragen relevant. Dazu muss auf jeden Fall ein Statuswert an E7 vorhanden sein.Zitat von junibart Beitrag anzeigenAlle 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 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
Einen Kommentar schreiben:
-
Noch eine Sache:
In der Alexa.php auchen in dem zu editierenden Abschnitt in Version 0.3 noch folgende Zeilen auf:
Sind die relevant?PHP-Code:$userIdValidation = 'amzn1.ask.account.AE4DXT...';
$userIdValidation = false;
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
Einen Kommentar schreiben:
-
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.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.
Vielleicht sollte ich es noch expliziter formulieren
Einen Kommentar schreiben:
-
Ja, es taucht eine Fehlermeldung auf.Zitat von jonofe Beitrag anzeigenSyntaxfehler wird korrigiert. Danke für den Hinweis.
Ist das Problem mit den Slots beim Anleger neuer oder beim Anpassen bestehender passiert?
Taucht ganz unten auf der Seite ein Fehler auf? (unter den Utterances)
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. Damit lief das Update des Skills nun durch.
Mal sehen, ob Edomi jetzt immer noch auf Alexa hört ;-)
Grüße,
Gunnar
Einen Kommentar schreiben:
-
Syntaxfehler wird korrigiert. Danke für den Hinweis.
Ist das Problem mit den Slots beim Anleger neuer oder beim Anpassen bestehender passiert?
Taucht ganz unten auf der Seite ein Fehler auf? (unter den Utterances)
Einen Kommentar schreiben:
-
Hi,Zitat von jonofe Beitrag anzeigenIch habe jetzt endlich ein paar freie Stunden am Wochenende dazu genutzt das Update zum EDOMI Alexa Custom Skill fertigzustellen und grob zu dokumentieren.
...
Ich freue mich wie immer über euer stets konstruktives Feedback...
Viele Spaß ...
vielen Dank für das Update! Hab mich gleich mal darangemacht.
Der erste Stolperstein lauerte bei den Intents, da ist irgendwo bei Zeile 311 ein Komma zuviel:
Zwischenablage01.jpg
Momentan scheitere ich daran, die Custom Slot Types zu erweitern- ich kann sie zwar erfassen, aber nach dem Speichern wird nicht die Übersicht über all diese Slot Types angezeigt, sondern nur meine Eingbe mit aktivem "cancel"-Button...
Hat jemand eine Idee?
Gunnar
Einen Kommentar schreiben:
-
Ich habe jetzt endlich ein paar freie Stunden am Wochenende dazu genutzt das Update zum EDOMI Alexa Custom Skill fertigzustellen und grob zu dokumentieren.
Bevor ich die LBS freischalte, wollte ich noch eine kurze Vorgehensweise für das Update darstellen:- LBS19000646 Alexa Receiver downloaden (enthaltene ZIP Datei entpacken. alexa.php/alexa.intent/alexa.slots/alexa.utterances/PDF Doku/PNGs)
- Wenn der Custom Skill schon im Einsatz ist, dann weiter mit Schritt 5.
- Gemäß enthaltener PDF Doku einen EDOMI Alexa Custom Skill anlegen
- Wenn ihr nach PDF vorgegangen seid und an den entsprechenden Stellen auch die Inhalte des Updates 0.3.0 verwendet habt, dann seid ihr eigentlich jetzt fertig.
- Zunächst das Update des Interaction Models vornehmen
- Dazu MUSS mit dem Anlegen und Anpassen der custom slots begonnen werden (alexa.slots im angehängten ZIP File des LBS19000646) bevor die Intents und Utterances aktualisiert werden. Dies muss leider manuell erfolgen. Da auch einige custom slots ergänzt wurden, bitte genau überprüfen.)
- Jetzt Intents und Utterances updaten. Dazu jeweils die Daten aus den Dateien alexa.intent und alexa.utterances in das Intent Model in der Amazon Developer Console kopieren.
- Wenn alles richtig gemacht wurde, dann sollte nach klicken auf "SAVE" das Update des Custom Skills auf Seiten Amazons laufen.
- Jetzt das Update des Custom Skills einspielen. Dazu die Dateil alexa.php an die richtig Stelle auf eurem Heimserver kopieren, so dass dies zu euren Einstellungen in der Amazon Developer Console passt.
- Jetzt die beiden LBS 19000646 und 19000647 in EDOMI einspielen.
- Nun kann man mit einem schon bestehenden Schaltbefehl testen, ob zumindest das noch funktioniert, was auch sschon vor dem Update funktionierte.
- Rolläden Positionsbefehle
- Licht Dimmwerte anspringen
- Licht Dimmwerte abfragen
- Rolläden Postions Statusabfragen
- Licht Statusabfragen
- Licht Farbstatusabfragen
- Allgemeine Statusabfragen
- Individualisierte Antworten durch Alexa
Beispiel:
Alexa, starte EDOMI und fahre die Rolläden im Büro auf 70%
Antwort: Okay.
Dazu benötigt man einen Alexa Command Validator LBS mit folgenden Eingängen:
E1: Verbindung zum Intent Ausgang des Alexa Receiver
E2: 8
E3: "rolläden position"
E4: leer
E5: "Büro"
Den Ausgang A2 verwedent man dann um die Position der entsprechenden Rolläden anzufahren (1 Byte Positions GA)
Alexa, frage EDOMI nach dem Status des Licht(s) im Büro.
Antwort (Bsp.): Die Deckenleuchte ist eingeschaltet und die Schreibtischleuchte ist ausgeschaltet.
Dazu benötigt man einen Alexa Command Validator LBS mit folgenden Eingängen:
E1: Verbindung zum Intent Ausgang des Alexa Receiver
E2: 8
E3: "licht status"
E4: "licht"
E5: "Büro"
E6: leer
E7: hier kommt der Ausgang eines 18000001 LBS an (E1: Status Deckenleuchte, E2: Status Schreibtischleuchte, E13: "|")
E8: "Die Deckenleuchte ist %1% und die Schreibtischleuchte ist %2%."
E9: "0:ausgeschaltet|1:eingeschaltet||0:ausgeschal tet| 1 :eingeschaltet"
Dadurch werden die Statuswerte beider Leuchten kombiniert und der aktuelle Wert wird auf das richtig Wort gemapped und in den Text eingesetzt.
Die resultierende Antwort wird dann an den Custom Skill (alexa.php) übertragen und schließlich ausgegeben.
Hier nochmal als Bild: Screenshot from 2017-02-12 21-04-26.png
Welche Kommandos möglich sind und wie die Syntax gewählt wurde ist im Wesentlichen aus dem Intent Model ableitbar.
Die Utterances zusammen mit den Custom Slots sollten hierbei helfen.
Ich freue mich wie immer über euer stets konstruktives Feedback...
Viele Spaß ...
Zuletzt geändert von jonofe; 12.02.2017, 23:17.
Einen Kommentar schreiben:
-
JAAAAZitat von jonofe Beitrag anzeigen...ist das Testen ein wenig aufwändiger. Insbesondere der Command Validator ist nach nicht für alle Intents fertig.
Aber es dauert sicher nicht mehr lange.
Hoffe das steigert jetzt die Vorfreude
Einen Kommentar schreiben:
-
Hi Gunnar,Zitat von junibart Beitrag anzeigen
Hi André,
sag mal....
die Liste der Dinge, die im kommenden Update dabei sein sollten (u.a. Rolladenposition, akustische Rückmeldung von Werten) klang sehr interessant... hast Du schon einen Plan, wann Du Update auf uns loslassen kannst? Bin schon sehr gespannt...
Grüße,
Gunnar
ja stimmt, ist schon ein wenig her. War leider krank und hatte ein paar andere Prioritäten, aber grundsätzlich ist das schon recht weit.
Ich kann schon Rollädenpositionen anfahren und auch schon neben Default-Statusantworten auch individuelle Antworten konfigurieren.
Bsp.für Defaultantwort bei "Licht status"
Frage: "Alexa, frage EDOMI nach den Status der Deckenleuchte im Büro"
Antwort: Der Status ist eingeschaltet.
Bsp.für individuelle Antwort bei "Licht status"
Frage: "Alexa, frage EDOMI nach den Status des Lichts im Büro"
Antwort: Die Deckenleuchte ist eingeschaltet und die Schreibtischleuchte ist ausgeschaltet.
Ich hoffe das ich am Wochenende ein erstes Update veröffentlichen kann.
Da es ja i.d.R. alle Einstellungen betrifft:
- Intents
- Custom Slots
- Utterances
- alexa.php
- Alexa Receiver
- Alexa Command Validator
ist das Testen ein wenig aufwändiger. Insbesondere der Command Validator ist nach nicht für alle Intents fertig.
Aber es dauert sicher nicht mehr lange.
Hoffe das steigert jetzt die Vorfreude
VG André
Einen Kommentar schreiben:

Einen Kommentar schreiben: