Как Google Smart Home определяет channelNumber для action.devices.commands.selectChannel?

  1. Создал Google Smart Home Action.
  2. Реализованное устройство с: a. deviceType = action.devices.types.SETTOP b. deviceTrait = action.devices.traits.Channel
  3. Устройство успешно обнаружено и добавлено в Homegraph приложения Google Home.
  4. Пользователь отправляет команду: Окей, Google, переходи на ESPN.
  5. Receives the following json in fulfillment URL:
    {
      "requestId": "[RequestId GUID]",
      "inputs": [{
        "intent": "action.devices.EXECUTE",
        "payload": {
          "commands": [{
            "devices": [{
              "id": "[SettopBox device Id]"
            }],
            "execution": [{
              "command": "action.devices.commands.selectChannel",
              "params": {
                "channelCode": "espn",
                "channelName": "ESPN",
                "channelNumber": "206"
              }
            }]
          }]
        }
      }]
    }

Вопросов:

  1. Как Google Smart Home определяет значение channelNumber для ESPN? Команда пользователя была "Окей, Google, смени на ESPN". Это не содержит никакой информации о номере канала.
  2. Если поставщик был установлен автоматически, есть ли настройка в Google Home или Google Assistant для изменения этого поставщика?

person WuTang805    schedule 17.02.2021    source источник
comment
Привет, @ WuTang805, я пытаюсь заставить работать в первую очередь, но моя функция выполнения не получает команду action.devices.commands.selectChannel , остальные команды, такие как action.devices.commands.OnOff, action.devices.commands.relativeChannel, action.devices.commands.mute, работают должным образом. Какие-нибудь подсказки?   -  person amitmula    schedule 27.02.2021
comment
@amitmula Вы отправляете правильный ответ SYNC для action.devices.traits.Channel? См .: developers.google.com/assistant/smarthome/traits/channel.   -  person WuTang805    schedule 05.03.2021
comment
@ WuTanng805 да, я отправляю правильный ответ SYNC, вот что я отправляю availableChannels: [{"key":"sp1","names":["Star Plus","star plus HD"],"number":"117"}]   -  person amitmula    schedule 07.03.2021


Ответы (1)


Номер канала для свойства канала указывается в запросе SYNC вместе с любыми соответствующими этикетками.

{
  "availableChannels": [
    {
      "key": "ktvu2",
      "names": [
        "Fox",
        "KTVU"
      ],
      "number": "2"
    },
    {
      "key": "abc1",
      "names": [
        "ABC",
        "ABC East"
      ],
      "number": "4-11"
    }
  ]
}

Как показано во фрагменте, номер канала поступает от службы. От разработчика интеграции может зависеть, как эти числа могут быть определены, от поставщика услуг кабельного телевидения или по радиоканалу. Это поле является необязательным, поэтому служба без номеров каналов все еще может работать, произнося свое имя.

person Nick Felker    schedule 17.02.2021
comment
Спасибо за понимание. Я забыл, что передавал число в своих ответах SYNC для моих каналов! - person WuTang805; 17.02.2021
comment
@ nick-felker Что-нибудь изменилось в характеристиках канала в последнее время? Я могу получить все намерения в своей функции выполнения, кроме тех, которые указаны с командой action.devices.commands.selectChannel. - person amitmula; 07.03.2021
comment
Насколько мне известно, ничего не изменилось, но если это изменилось, соответствующая документация должна это отразить. - person Nick Felker; 08.03.2021