So, ich versuchs mal mit einem eigenen Thread :)
Ich hab momentan Probleme, Abkürzungen (wie TV) in einem Custom Skill zu nutzen. Ich hab da mindestens zwei Probleme/Auffälligkeiten.
1. So wie ich die Dokumentation (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference#custom-slot-type-values) verstehe, sollte alexa als Wert den String "PC" schicken, wenn ich "PC" sage. Wobei die "spoken form" trotzdem "p. c." ist.
Aber ist es so, dass die Nachricht, die Alexa an alexa-fhem sendet, offenbar die "spoken form" enthält (in Slot "AvrInput_Value"):
{
"name":"AvrInputIntent",
"slots":{
"preposition":{
"name":"preposition"
},
"Room":{
"name":"Room"
},
"Device":{
"name":"Device",
"value":"verstärker"
},
"AvrInput_Value":{
"name":"AvrInput_Value",
"value":"p. c."
},
"article":{
"name":"article"
}
}
}
Ist das korrekt so? Ich hatte das, wie gesagt, in der Doku anders verstanden.
2. Nun gut, also Alexa sendet "p. c.". Also hab ich in "alexaMapping" in meinem FHEM-Alexa-Device das auch entsprechend eingetragen:
AvrInput=verb=stelle,property=eingang,valuePrefix=auf,values=p.+c.:av1;t.+v.:hdmi1;h.+t.+.p+.c.:hdmi2;konsole:hdmi3
Also der Wert "p. c." soll auf "av1" gemappt werden. Wenn nun so eine Nachricht rein kommt mit "p. c." dann wird sie in alexa-fhem offenbar aber gar nicht gemappt:
Feb 12 13:24:31 minion alexa[51339]: Room: { name: 'Room' },
Feb 12 13:24:31 minion alexa[51339]: Device: { name: 'Device', value: 'verstärker' },
Feb 12 13:24:31 minion alexa[51339]: AvrInput_Value: { name: 'AvrInput_Value', value: 'p. c.' },
Feb 12 13:24:31 minion alexa[51339]: article: { name: 'article' } }
Feb 12 13:24:31 minion alexa[51339]: [2/12/2017, 1:24:31 PM] p. c.
Feb 12 13:24:31 minion alexa[51339]: [2/12/2017, 1:24:31 PM] AvrInput
Feb 12 13:24:31 minion alexa[51339]: [2/12/2017, 1:24:31 PM] AvrInputIntent
Feb 12 13:24:31 minion alexa[51339]: [2/12/2017, 1:24:31 PM] [FHEM] wz_avr: executing set cmd for AvrInput with value p. c.
Also es wird wirklich der "p. c." ohne Mapping an meinen AVR gesetzt.
Als Gegenprobe: Wenn ich stattdessen "konsole" sage, dann wird das korrekt wie in alexaMapping angegeben auf hdmi3 gemappt:
Feb 12 13:24:51 minion alexa[51339]: Room: { name: 'Room' },
Feb 12 13:24:51 minion alexa[51339]: Device: { name: 'Device', value: 'verstärker' },
Feb 12 13:24:51 minion alexa[51339]: AvrInput_Value: { name: 'AvrInput_Value', value: 'konsole' },
Feb 12 13:24:51 minion alexa[51339]: article: { name: 'article' } }
Feb 12 13:24:51 minion alexa[51339]: [2/12/2017, 1:24:51 PM] konsole
Feb 12 13:24:51 minion alexa[51339]: [2/12/2017, 1:24:51 PM] AvrInput
Feb 12 13:24:51 minion alexa[51339]: [2/12/2017, 1:24:51 PM] AvrInputIntent
Feb 12 13:24:51 minion alexa[51339]: [2/12/2017, 1:24:51 PM] [FHEM] wz_avr-input values: value konsole mapped to hdmi3
Feb 12 13:24:51 minion alexa[51339]: [2/12/2017, 1:24:51 PM] [FHEM] wz_avr: executing set cmd for AvrInput with value hdmi3
Hat jemand eine Idee, was ich davon falsch verstanden habe oder was da nicht richtig funktioniert? Danke!
Nach wie vor für mich ein ziemlich Showstopper bei der ganzen Sache. Keiner eine Idee?
ich hatte an zwei stellen vergessen die + durch leerzeichen zu ersetzen. das habe ich eben repariert.
in der nächsten version kann man im alexaMapping so etwas verwenden:Sender:verb=schalte,valuePrefix=auf,values=a.+r.+d.:ard;z.+d.+f.:zdf;s.+w.+r.+drei:swr3;hessen
gruss
andre
Klasse danke! Ist der aktuelle Stand irgendwo verfügbar? Kann ich gern mal testen.
Eine Sache noch:
Bei der Generieung der Custom Slot Values, die man dann bei Amazon einträgt, müssen die "+"-Zeichen auch korrekt zu Leerzeichen gemacht werden momentan werden sie einfach durchgereicht:
Custom Slot Types:
------------------
AvrInput_Value
konsole
p+.c.
Hast du wahrscheinlich aber selbst schon dran gedacht.
die alexa-fhem version mit dem fix poste ich nachher.
das reparierte alexa modul habe ich gestern schon eingecheckt. das ist heute im update.
Ich kann auf jeden Fall schonmal besätigen, dass jetzt die Custom Slot Values von FHEM korrekt (ohne "+") generiert werden:
Custom Slot Types:
------------------
AvrInput_Value
konsole
p. c.
neue version ist hier: https://forum.fhem.de/index.php/topic,60244.msg540117.html#msg540117 (https://forum.fhem.de/index.php/topic,60244.msg540117.html#msg540117).
gruss
andre
Sorry, ich nochmal. Diese Abkürzungen lassen mich irgendwie nicht los :(
Ich hab das Gefühl, dass da irgendwas noch nicht rund läuft: Und zwar kommen die Alexa-Nachrichten entweder mit oder ohne Punkte. Also entweder "p. c." oder "p c". Blöderweise immer genau andersrum als es alexa-fhem erwartet.
Aber nochmal von vorn:
Wenn ich folgendes alexaMapping habe:
Activity=verb=stelle,valuePrefix=auf,values=p.+c.:pc;fernsehen:tv;film:htpc;h.+t.+p.+c.:htpc;retro;spielen:game;t.+v.:tv
ergibt das diese CustomSlots:
Custom Slot Types:
------------------
Activity_Value
fernsehen
film
h. t. p. c.
p. c.
retro
spielen
t. v.
Und wenn ich das ausspreche, dann bekomme ich von Amazon geschickt:
{"name":"ActivityIntent","slots":{"preposition":{"name":"preposition"},"Activity_Value":{"name":"Activity_Value","value":"p c"},"Room":{"name":"Room"},"Device":{"name":"Device","value":"modus"},"article":{"name":"article"}}}}}
Also "p c". Aber alexa-fhem erwartet es mit Punkten "p. c." :(
Wenn ich jedoch mein alexaMapping auf ohne Punkte ändere:
Activity=verb=stelle,valuePrefix=auf,values=p+c:pc;fernsehen:tv;film:htpc;h+t+p+c:htpc;retro;spielen:game;t+v:tv
dann bekomm ich diese CustomSlots:
Custom Slot Types:
------------------
Activity_Value
fernsehen
film
h t p c
p c
retro
spielen
t v
aber dann schickt mir Amazon MIT Punkten:
{"name":"ActivityIntent","slots":{"preposition":{"name":"preposition"},"Activity_Value":{"name":"Activity_Value","value":"p. c."},"Room":{"name":"Room"},"Device":{"name":"Device","value":"modus"},"article":{"name":"article"}}}}}
Passt also wieder nicht zu dem, was alexa-fhem erwartet :(
In dem Fall, wenn Amazon MIT Punkten verschickt, dann spricht Alexa das PC mit einer übertriebenen Pause aus. Also "P C". Wenn Amazon OHNE Punkte schickt, dann spricht Alexa flüssig am Stück "Pehzeh".
Da wird der Hund in der Pfanne verrückt :( Kapier ich was nicht oder ist da noch irgendwo ein kleiner Bug?
könnte es sein das alexa beim wort pc irgendetwas anders macht? laut api dokumentation sollen abkürzungen mit . geschrieben werden. was passiert bei tv?
bitte versuch es mal mit dem sender beispiel aus dem verlinkten thread. das hatte ich genau so getestet und es hat funktioniert.
ansonsten kannst du auch jeweils die version mit und ohne punkt in values scheiben.
Habe das Sender-Beispiel so spontan nicht gefunden, aber ich glaube es ging um "r. t. l."?
Ist in der Tat komisch, wenn ich diesen Intent habe:
Activity=verb=stelle,valuePrefix=auf,values=p.+c.:pc;fernsehen:tv;film:htpc;h.+t.+p.+c.:htpc;retro;spielen:game;t.+v.:tv;r.+t.+l.:rtl
Dann bekomme ich für PC nach wie vor "p c" geschickt:
:{"name":"ActivityIntent","slots":{"preposition":{"name":"preposition"},"Activity_Value":{"name":"Activity_Value","value":"p c"},"Room":{"name":"Room"},"Device":{"name":"Device","value":"modus"},"article":{"name":"article"}}}}}
Für RTL jedoch mit Punkten ::)
{"name":"ActivityIntent","slots":{"preposition":{"name":"preposition"},"Activity_Value":{"name":"Activity_Value","value":"r. t. l."},"Room":{"name":"Room"},"Device":{"name":"Device","value":"modus"},"article":{"name":"article"}}}}}
(und von Alexa völlig übetrieben "R !! T !!! L !!!!!!!" ausgesprochen.)
Sehr seltsam... Bug oder Feature? 8)