欢迎使用 Google Home 开发者中心,这是一个学习如何开发智能家居 Action 的新平台。注意:构建 Action 的工作仍需在 Actions 控制台中完成。

智能家居 InputSelector 特征架构

action.devices.traits.InputSelector - 此特征用于能够切换输入的设备。

对于每种设备,媒体输入都可以具有代表音频或视频 Feed 的动态名称。这些 Feed 可以采用硬线或网络方式,但应命名且有合理的持久性。此特征不支持任意临时 Feed,例如可搜索的网络库。支持已配对的已命名蓝牙来源。来源可以有多个名称,因此支持用户创建的名称和发现的名称以及默认名称;例如,“hdmi_1”也可以是“DVD Player”或“usb_1”也可以是“硬盘”。

可对媒体输入进行排序,以支持“next”和“previous”命令。

切换开关模式一样,输入内容应该以所有可用语言提供;这对于默认名称尤其重要。

设备属性

具有此特征的设备可以在 SYNC 操作中报告以下属性。如需详细了解如何处理 SYNC intent,请参阅 intent 执行方式

属性 类型 说明
availableInputs 数组

必填。

代表输入音频或视频 Feed 的对象列表。Feed 可以采用硬线或网络方式。每个 Feed 都应命名且有合理的持久性。请务必仔细定义您的同义词,以防止出现意外(过度触发)的情况。

[item, ...] 对象

可用的输入源。

key String

必填。

输入的唯一键。该密钥不得以语音或响应形式展示给用户。

names 数组

必填。

所有可用语言输入的名称列表。

[item, ...] 对象

给定可用语言的输入。

lang String

必填。

语言代码。

name_synonym 数组

必填。

采用给定语言输入的简单易懂的名称。第一个同义词用于 Google 助理对用户的响应。

[item, ...] String

输入名称。

commandOnlyInputSelector Boolean

(默认:false

指示设备是否支持单向 (true) 或双向 (false) 通信。如果设备无法响应此特征的 QUERY intent 或报告状态,请将此属性设为 true。

orderedInputs Boolean

(默认:false

如果输出列表是有序的,则为 true。这也表明可以使用“下一个”和“上一个”功能。

示例

具有两个有序输入的设备

{
  "availableInputs": [
    {
      "key": "hdmi_1",
      "names": [
        {
          "lang": "en",
          "name_synonym": [
            "HDMI 1",
            "1st HDMI",
            "DVD Player"
          ]
        },
        {
          "lang": "de",
          "name_synonym": [
            "HDMI 1",
            "Zuerst HDMI",
            "DVD Spieler"
          ]
        }
      ]
    },
    {
      "key": "usb_1",
      "names": [
        {
          "lang": "en",
          "name_synonym": [
            "USB 1",
            "First USB",
            "Hard Drive"
          ]
        },
        {
          "lang": "de",
          "name_synonym": [
            "USB 1",
            "Zuerst USB",
            "Festplatte"
          ]
        }
      ]
    }
  ],
  "orderedInputs": true
}

设备状态

具有此特征的实体可以在 QUERY 操作中报告以下状态。如需详细了解如何处理 QUERY intent,请参阅 intent 执行方式

类型 说明
currentInput String

必填。

当前使用的输入源的键。

示例

当前已选择 HDMI 输入设备

{
  "currentInput": "hdmi_1"
}

设备命令

具有此特征的设备可能会在 EXECUTE 操作中响应以下命令。如需详细了解如何处理 EXECUTE intent,请参阅 intent 执行方式

action.devices.commands.SetInput

设置媒体输入。

参数

参数 类型 说明
newInput String

必填。

新输入的键。

示例

选择 USB 输入

{
  "command": "action.devices.commands.SetInput",
  "params": {
    "newInput": "usb_1"
  }
}

action.devices.commands.NextInput

选择下一个输入源。仅在 orderedInputs 属性设为 true 时适用。

此命令需要以下属性:
{
  "orderedInputs": true
}

参数

参数 类型 说明

没有属性

示例

无参数

{
  "command": "action.devices.commands.NextInput",
  "params": {}
}

action.devices.commands.PreviousInput

选择上一个输入内容。仅在 orderedInputs 属性设为 true 时适用。

此命令需要以下属性:
{
  "orderedInputs": true
}

参数

参数 类型 说明

没有属性

示例

无参数

{
  "command": "action.devices.commands.PreviousInput",
  "params": {}
}

示例话语

de-DE

  • Ändere den Eingangskanal auf AUX .

en-US

  • change input mode to HDMI 1

es-ES

  • cambia a hdmi 1

fr-FR

  • Activation du mode HDMI1 .
  • Mets la télé sur HDMI 1 .

hi-IN

  • टीवी की इनपुट HDMI 1 में स्विच करो

it-IT

  • metti ingresso aux sulla tv

ja-JP

  • テレビ HDMI1 にして

ko-KR

  • TV HDMI 1 로 바꿔 줘

nl-NL

  • zet de TV op bluetooth

pt-BR

  • Muda a entrada da TV para HDMI2 .
  • mudar a entrada para AUX

sv-SE

  • Sätt på hdmi 1

设备错误

查看错误和异常的完整列表。

unsupportedInput:输入来源目前不受支持。