Alexa - Abkürzungen in Custom Skills

Begonnen von vbs, 12 Februar 2017, 14:10:22

Vorheriges Thema - Nächstes Thema

vbs

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!

vbs

Nach wie vor für mich ein ziemlich Showstopper bei der ganzen Sache. Keiner eine Idee?

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

vbs

Klasse danke! Ist der aktuelle Stand irgendwo verfügbar? Kann ich gern mal testen.

vbs

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.

justme1968

die alexa-fhem version mit dem fix poste ich nachher.

das reparierte alexa modul habe ich gestern schon eingecheckt. das ist heute im update.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

vbs

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.

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

vbs

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?

justme1968

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.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

vbs

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)