2017-07-19 2 views
1

Mon implémente quelques fonctionnalités de l'API version 3, y compris la Alexa.Speaker Interface.Le périphérique Smart Home implémentant l'interface Alexa.Speaker ne répond pas à la demande de modification de volume

Pour autant que je comprends de la documentation, il doit répondre aux commandes vocales telles que « Alexa, régler le volume du dispositif à 5 », mais Alexa répond toujours avec « Désolé, je ne peux pas contrôler la volume sur votre appareil ".

La réponse de découverte du dispositif ressemble à ceci

{ 
    endpointId: 'music1', 
    friendlyName: 'pillow', 
    description: 'Music on Kodi', 
    manufacturerName: 'Cubox-i', 
    displayCategories: [], 
    capabilities: [ 
     { 
      type: 'AlexaInterface', 
      interface: 'Alexa.PowerController', 
      version: '1.0', 
      properties: { 
       supported: [ 
        { 
         name: 'powerState', 
        }, 
       ], 
      }, 
     }, 
     { 
      type: 'AlexaInterface', 
      interface: 'Alexa.PlaybackController', 
      version: '1.0', 
      properties: {}, 
     }, 
     { 
      type: 'AlexaInterface', 
      interface: 'Alexa.Speaker', 
      version: '1.0', 
      properties: { 
       supported: [ 
        { 
         name: 'volume', 
        }, 
        { 
         name: 'muted', 
        }, 
       ], 
      }, 
     }, 
    ], 
} 

La découverte semble fonctionner très bien, comme l'interface PowerController est répondu à l'amende (par exemple « Alexa, allumer oreiller »).
Je peux voir la découverte, PowerController et PlaybackController demandes et réponses dans les journaux AWS Lambda.

Toute commande vocale à Speaker (si essayant de régler le volume -20, augmentant de 5, ou en demandant à muet ou unmute oreiller) ne produisent pas de demandes à mon Lambda et le résultat dans la réponse mentionnée ci-dessus - ou dans le cas d'une inhibition dans "L'oreiller ne supporte pas cela".

Répondre

1

Au lieu de

properties: { 
      supported: [ 
       { 
        name: 'volume', 
       }, 
       { 
        name: 'muted', 
       }, 
      ], 
     }, 

cette JSON, utilisez ceci:

'properties.supported':[{ 
        name: 'volume', 
       }, 
       { 
        name: 'muted', 
       }] 

Ceci est un bug qu'ils essaient de résoudre, mais jusque-là, cela fonctionnera, s'il vous plaît laissez-moi savoir si cela solution particulière fonctionne pour vous.

+0

Merci de votre réponse. Cela semble avoir fait l'affaire pour la commande "mute/unmute". Cependant lorsque vous essayez de régler le volume ("Réglez le volume de l'oreiller à 5"), la réponse est toujours "Désolé, je ne peux pas contrôler le volume sur votre appareil" - ou parfois "Désolé, oreiller ne supporte pas cela" Ce qui est marrant, c'est que même si j'utilise la même commande d'entrée, le message d'erreur est parfois l'un et parfois l'autre, combiné avec votre indice, cela me dit que cette API n'est pas encore stable et l'erreur sur le mien, mais du côté d'Amazon. – WrongAboutMostThings

1

En plus de 'properties.supported', la version doit être 1 (pas 3). La réponse à la découverte de l'interface du haut-parleur devrait ressembler à:

{ 
    "type": "AlexaInterface", 
    "interface": "Alexa.Speaker", 
    "version": "1.0", 
    "properties.supported":[ 
    { 
     "name": "muted", 
    }, 
    { 
     "name": "volume" 
    }] 
}