小度音箱对接之DuerOS开放平台智能家居技能协议分析

您所在的位置:网站首页 小度音箱app是什么 小度音箱对接之DuerOS开放平台智能家居技能协议分析

小度音箱对接之DuerOS开放平台智能家居技能协议分析

2024-07-17 13:13:49| 来源: 网络整理| 查看: 265

本文,旨在分析DuerOS开放平台中智能家居技能协议。 参考的官方地址: https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/intro-protocol_markdown 文中仅摘取了几条协议举例,具体参照官方文档。

文章目录 协议简介协议格式Header信息Payload信息 协议详述发现设备DiscoverAppliancesRequestDiscoverAppliancesResponse 控制消息TurnOnRequestTurnOnConfirmation 查询消息GetStateRequestGetStateResponse 错误消息ValueOutOfRangeError 设备属性主动上报主动上报请求消息请求返回消息ReportStateRequest消息ReportStateResponse消息 设备信息同步消息请求消息说明返回说明 技能解绑消息通知UnbindBotRequestUnbindBotResponse

协议简介

智能家居协议是DuerOS与智能家居技能之间的通讯协议。通过这些协议您可以轻松的通过语音控制家里的智能设备,与设备进行交互。 智能家居协议使用HTTPS传输,协议采用JSON消息格式。

协议格式

智能家居协议指令(directives)由Header和Payload两部分组成。

举例如下:

{ "header": { "namespace": "DuerOS.ConnectedHome.Control", "name": "TurnOnRequest", "messageId": "01ebf625-0b89-4c4d-b3aa-32340e894688", "payloadVersion": "1" }, "payload": { "accessToken": "[OAuth token here]", "appliance": { "additionalApplianceDetails": {}, "applianceId": "[Device ID for Light]" }, "function": "light" } } Header信息

Header包含消息标识符、指令名称、命令空间和payload版本信息。

消息格式

{ "header": { "namespace": "DuerOS.ConnectedHome.Discovery", "name": "DiscoverAppliancesRequest", "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2", "payloadVersion": "1" } }

属性说明

Header包含的属性及属性说明。

属性属性说明是否必须namespace指令的类别。 目前支持的类别有:DuerOS.ConnectedHome.Discovery:发现设备指令。DuerOS.ConnectedHome.Control:控制设备指令。DuerOS.ConnectedHome.Query:查询设备指令。是name指令的名称。是messageId消息的唯一标识符,长度小于128个字符。 messageId仅用于标识消息,无其他使用。建议使用随机生成的UUID作为messageId。是payloadVersionpayload的版本号。是 Payload信息

Payload的内容与Header中的name值相关,不同类型的指令,其payload内容也不相同。

举例如下:

{ "payload": { "accessToken": "[OAuth token here]", "appliance": { "additionalApplianceDetails": {}, "applianceId": "[Device ID for Light]" }, "function": "light" } } 协议详述

DuerOS对控制、查询、属性上报等消息进行了分类。根据不同的流程,使用不同的消息。

大致说明如下:

消息类型说明控制方向举例发现设备小度平台向设备云发现用户的设备列表小度–请求–>设备云小度,发现设备控制消息用户对设备的控制类消息由小度音箱或APP发起,发送到设备云进行解析小度–请求–>设备云小度,打开油烟机小度,回家模式查询消息用户查询设备的状态数据由小度音箱或APP发起,发送到设备云进行解析小度–请求–>设备云小度,查询烟机风速小度,查询PM2.5错误消息控制、查询消息,操作失败时,响应给小度的错误消息设备云–响应–>小度设备属性主动上报当手动或其他非小度平台操作了设备后,通知到小度有属性更新小度收到通知后,再向设备云请求设备属性信息。设备云–请求–>小度小度–请求–>设备云设备信息同步消息用户设备信息发生变化时,通知给小度音箱设备云–请求–>小度技能解绑消息通知当用户在技能商店解绑智能家居技能时,通知设备云小度–请求–>设备云 发现设备

发现设备消息用于查找用户可用的设备、可以使用的场景和设备分组信息,有DiscoverAppliancesRequest和DiscoverAppliancesResponse两个指令。DiscoverAppliancesRequest指令是发出查找设备请求,DiscoverAppliancesResponse指令回复查找到的设备。如果你的技能应用中的用户设备信息变更时,可以通过DuerOS提供的异步接口发送通知,触发用户设备信息同步到DuerOS。

DiscoverAppliancesRequest

当用户查找设备时,DuerOS会将该消息发送给技能。另外,用户每次在DuerOS技能商店启用你的技能时,此消息会自动触发一次。

Header信息

属性取值nameDiscoverAppliancesRequestnamespaceDuerOS.ConnectedHome.Discovery

Payload信息

属性描述是否必须accessToken设备云端获取的access token。是openUid被授权的百度账号开放ID,与设备云账号一一对应。设备云端需要将该字段与用户账号一一对应起来存储其它协议中如果需要携带openUid字段时,则需要返回用户账号对应的openUid值。是

应用举例 当用户说“小度小度,发现设备”,DuerOS理解用户为发现设备意图时或者当用户在DuerOS技能商店里启用技能并授权完成之后会向技能发送该DiscoverAppliancesRequest消息。消息示例如下:

{ "header": { "namespace": "DuerOS.ConnectedHome.Discovery", "name": "DiscoverAppliancesRequest", "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2", "payloadVersion": "1" }, "payload": { "accessToken": "[OAuth Token here]", "openUid": "27a7d83c2d3cfbad5d387cd35f3ca17b" } } DiscoverAppliancesResponse

当DuerOS请求技能查找可用设备或可用场景时,技能会返回DiscoverAppliancesResponse消息。 如果查找到设备时,会返回设备的相关信息,包括actions、applianceTypes、additionalApplianceDetails、applianceId、friendlyDescription、friendlyName等属性信息。如果没有找到设备时,会返回空数组。

Header信息

属性取值nameDiscoverAppliancesResponsenamespaceDuerOS.ConnectedHome.Discovery

Payload信息

1. 设备信息

属性描述说明是否必须discoveredAppliances以对象数组返回客户关联设备云帐户的设备、场景。如客户关联帐户没有设备、场景则返回空数组。如果在发现过程中出现错误,字段值设置为null, 用户允许接入的最大的设备数量是300。是discoveredAppliance.applianceTypes支持的设备、场景类型。是discoveredAppliance.applianceId设备标识符。标识符在用户拥有的所有设备上必须是唯一的。此外,标识符需要在同一设备的多个发现请求之间保持一致。标识符可以包含任何字母或数字和以下特殊字符:_ - = # ; : ? @ &。标识符不能超过256个字符。是discoveredAppliance.modelName设备型号名称,是字符串类型,长度不能超过128个字符。是discoveredAppliance.version供应商提供的设备版本。是字符串类型,长度不能超过128个字符。是discoveredAppliance.friendlyName用户用来识别设备的名称。是字符串类型,不能包含特殊字符和标点符号,长度不能超过128个字符。是discoveredAppliance.friendlyDescription设备相关的描述。描述内容需要提及设备厂商,使用场景及连接方式。长度不超过128个字符。是discoveredAppliance.isReachable设备当前是否能够到达。true表示设备当前可以到达,false表示当前设备不能到达。是discoveredAppliance.actions设备支持的操作类型数组。详细情况请参见 设备操作类型。是discoveredAppliance.additionalApplianceDetails提供给设备云使用,存放设备或场景相关的附加信息,是键值对。DuerOS不解析或使用这些数据。该属性的内容不能超过5000字节。是内容可以为空discoveredAppliance.manufacturerName设备厂商的名字。是discoveredAppliance.attributes设备的属性信息。当设备没有属性信息时,协议中不需要传入该字段。每个设备允许同步的最大的属性数量是10。详细信息请参考设备属性及设备属性上报。否建议将设备属性上报,方便用户查询discoveredAppliance.attribute.name属性名称,支持数字、字母和下划线,长度不能超过128个字符。是discoveredAppliance.attribute.value属性值,支持多种json类型。是discoveredAppliance.attribute.scale属性值的单位名称,支持数字、字母和下划线,长度不能超过128个字符。是discoveredAppliance.attribute.timestampOfSample属性值取样的时间戳,单位是秒。是discoveredAppliance.attribute.uncertaintyInMilliseconds属性值取样的时间误差,单位是ms。如果设备使用的是轮询时间间隔的取样方式,那么uncertaintyInMilliseconds就等于时间间隔。如温度传感器每1秒取样1次,那么uncertaintyInMilliseconds的值就是1000。是

2. 分组信息

属性描述说明是否必须discoveredGroupsdiscoveredGroups 对象的数组,该对象包含可发现分组,与用户设备帐户相关联的。 如果没有与用户帐户关联的分组,此属性应包含一个空数组。 如果发生错误,该属性可以为空数组[]。阵列中允许的最大项目数量为10。是discoveredGroups.groupName用户用来识别分组的名称, 不应包含特殊字符或标点符号,长度不超过20字符。是discoveredGroups.applianceIds分组所包含设备ID的数组,要求设备ID必须是已经发现的设备中的ID,否则会同步失败每个分组设备ID数量不超过50。是discoveredGroups.groupNotes分组备注信息,不能超过128个字符。是discoveredGroups.additionalGroupDetails提供给技能使用的分组相关的附加信息的键值对。该属性的内容不能超过2000字符。而且DuerOS也不了解或使用这些数据。是,但可以为空数组[]

说明:

如果没有找到设备或相关场景,此时返回的discoveredAppliances是一个空数组。如果查找设备过程中发生了错误,该字段值设置为null。当applianceTypes=ACTIVITY_TRIGGER/SCENE_TRIGGER时,场景和模式不支持通过分组来控制,比如只支持“打开回家模式”,而不支持“打开客厅的回家模式”。

此处就不举例了,示例较长。 参考官网: https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/discovery-message_markdown

控制消息

控制消息(Control Message)是对智能家居设备进行控制的消息。有门锁设备控制消息、摄像机设备控制消息、灯光设备控制消息、温度设备控制消息等。

目前支持以下设备控制消息:

在这里插入图片描述 在这里插入图片描述

以上描述及语料,纯属个人理解,具体看小度。

举个例子

TurnOnRequest

当用户想打开指定设备时,DuerOS会将该消息发送给技能。

Header信息

属性取值nameTurnOnRequestnamespaceDuerOS.ConnectedHome.Control

Payload信息

属性描述说明是否必须accessToken设备云端获取的access token。是appliance设备操作的具体对象,包括applianceId和additionalApplianceDetails。是appliance.applianceId设备标识符。标识符在用户拥有的所有设备上必须是唯一的。此外,标识符需要在同一设备的多个发现请求之间保持一致。标识符可以包含任何字母或数字和以下特殊字符:_ - = # ; : ? @ &。标识符不能超过256个字符。是appliance.additionalApplianceDetails提供给设备云使用,存放设备或场景相关的附加信息,是键值对。DuerOS不解析或使用这些数据。该属性的内容不能超过5000字节。是,内容可以为空function表示打开设备的子功能,例如,打开关闭灶台的灯光、根据此字段识别此类的请求否

应用举例

当用户说“小度小度,打开电灯”,DuerOS理解到用户意图后,向技能发送TurnOnRequest消息,消息示例如下。

{ "header": { "namespace": "DuerOS.ConnectedHome.Control", "name": "TurnOnRequest", "messageId": "01ebf625-0b89-4c4d-b3aa-32340e894688", "payloadVersion": "1" }, "payload": { "accessToken": "[OAuth token here]", "appliance": { "additionalApplianceDetails": {}, "applianceId": "[Device ID for Light]" }, "function": "light" } } TurnOnConfirmation

当请求的设备成功打开时,技能会发送该消息给DuerOS。

Header信息

属性取值nameTurnOnConfirmationnamespaceDuerOS.ConnectedHome.Control

Payload信息

属性取值是否必须attributes设备属性信息,支持上报一个或多个属性信息。请查看属性信息附录,了解设备的属性和上报方式。否,当设备属性信息发生变化时,建议将属性变更信息上报给DuerOS。

应用举例

当电视成功打开时,技能向DuerOS发送TurnOnConfirmation消息,示例如下。

{ "header": { "namespace": "DuerOS.ConnectedHome.Control", "name": "TurnOnConfirmation", "messageId": "26fa11a8-accb-4f66-a272-8b1ff7abd722", "payloadVersion": "1" }, "payload": { "attributes": [] } } 查询消息

查询消息(Query Message)主要是通过智能家居设备查询空气质量、查询空气湿度、查询设备温度、查询设备状态等信息。目前支持以下查询消息。

在这里插入图片描述

举个例子

GetStateRequest

当用户想了解设备状态时,DuerOS会该将消息发送给技能,比如想要了解扫地机器人当前状态(清扫中/充电中/回充中…)时,可以说,“小度小度, 扫地机器人在干吗?”, 这时技能会收到GetStateRequest消息。

Header信息

属性取值nameGetStateRequestnamespaceDuerOS.ConnectedHome.Query

Payload信息

属性描述说明是否必须accessToken设备云端获取的access token。是appliance设备操作的具体对象。包括applianceId和additionalApplianceDetails。是appliance.applianceId设备标识符。标识符在用户拥有的所有设备上必须是唯一的。此外,标识符需要在同一设备的多个发现请求之间保持一致。标识符可以包含任何字母或数字和以下特殊字符:_ - = # ; : ? @ &。标识符不能超过256个字符。是appliance.additionalApplianceDetails提供给设备云使用,存放设备或场景相关的附加信息,是键值对。DuerOS不解析或使用这些数据。该属性的内容不能超过5000字节。是,内容可以为空

应用举例

用户说“小度小度,扫地机器人在干吗?”,DuerOS接收到用户意图后,向技能发送GetStateRequest消息。消息示例如下。

{ "header": { "namespace": "DuerOS.ConnectedHome.Query", "name": "GetStateRequest", "messageId": "01ebf625-0b89-4c4d-b3aa-32340e894688", "payloadVersion": "1" }, "payload": { "accessToken": "[OAuth token here]", "appliance": { "additionalApplianceDetails": {}, "applianceId": "[Device ID for Ceiling Fan]" } } } GetStateResponse

当技能查询到设备当前状态时,需要给DuerOS返回该消息,告知用户当前扫地机器人的状态。

Header信息

属性取值nameGetStateResponsenamespaceDuerOS.ConnectedHome.Query

Payload信息

属性描述说明是否必须attributes设备的属性信息,最多支持上报10个属性。是attribute.name属性名称,这里取"state"。是attribute.value字符串,目前支持的属性值如下:CLEANING:清扫中CHARGING:充电中RECHARGING:回充中SLEEPING:休眠中STAND_BY:待命中REPORT_ERROR:报错SHUT_DOWN:关机REMOTE_CONTROLING:遥控中PAUSED:已暂停是attribute.scale属性值的单位名称,这里是空串’’。是attribute.timestampOfSample属性值取样的时间戳,单位是秒。是attribute.uncertaintyInMilliseconds属性值取样的时间误差,单位是ms。是

应用举例

技能查询到“扫地机器人当前的运行状态是正在清扫时”,向DuerOS返回GetStateResponse消息,消息示例如下。

{ "header": { "namespace": "DuerOS.ConnectedHome.Query", "name": "GetStateResponse", "messageId": "780013dd-99d0-4c69-9e35-db0457f9f2a7", "payloadVersion": "1" }, "payload": { "attributes": [{ "name": "state", "value": "CLEANING", "scale": "", "timestampOfSample":1496741861, "uncertaintyInMilliseconds": 10 }] } } 错误消息

当DuerOS向技能发送设备请求信息时,请求信息中可能存在设备不支持或者超出设备使用范围等问题,此时技能会返回相应的错误类型和信息。技能不需要返回每个错误,仅返回错误对应的错误类型。本文列出了错误类型和详细信息。

在这里插入图片描述 在这里插入图片描述

举个例子

ValueOutOfRangeError

当用户请求中对设备的设置参数超过设备支持的参数范围时,DuerOS就会收到该错误消息。

Header信息

属性取值nameValueOutOfRangeErrornamespaceDuerOS.ConnectedHome.Control

Payload信息

属性描述说明是否必须minimumValue设备的允许设置参数的最小值,是64位双精度值类型。是maximumValue设备的允许设置参数的最大值,是64位双精度值类型。是

应用举例

如用户想把空调温度设置为10度,但是空调的温度范围是17到30度,此时技能就会发送该消息给DuerOS,说明用户输入参数范围错误。消息示例如下。

{ "header":{ "namespace":"DuerOS.ConnectedHome.Control", "name":" ValueOutOfRangeError", "messageId":"697fe957-c842-4545-a159-8a8c75fbe5bd", "payloadVersion":"1", }, "payload":{ "minimumValue":17.0, "maximumValue":30.0 } } 设备属性主动上报

当用户手动操作设备或者通过第三方app修改设备状态,如手动关闭厨房灯,手动切换电风扇模式,使用第三方app修改设备名称等,这些情况下DuerOS不会感知到设备属性变化,需要设备云主动上报设备属性。

流程:

技能主动向DuerOS发送请求消息,请求DuerOS同步设备属性信息。

DuerOS收到请求后向技能发送ReportStateRequest消息,请求技能上报相应的属性信息

技能收到请求后,将向DuerOS发送ReportStateResponse消息,上报属性信息。

主动上报请求消息

当用户手动操作设备或者通过第三方app修改设备状态时,技能会主动上报属性信息,发送上报请求消息。

接口地址

https://xiaodu.baidu.com/saiya/smarthome/changereport

请求方式

POST请求方式。

Head说明

参数名称取值Content-Typeapplication/json

参数信息

1. Header信息

属性取值namespaceDuerOS.ConnectedHome.ControlnameChangeReportRequest

2. Payload信息

属性描述说明是否必须botId设备云技能ID。是openUid用户被授权的百度账号开放ID,与设备云账号一一对应。是appliance上报的设备对象,包括applianceId和attributeName。是appliance.applianceId设备标识符。标识符在用户拥有的所有设备上必须是唯一的。此外,标识符需要在同一设备的多个发现请求之间保持一致。标识符可以包含任何字母或数字和以下特殊字符:_ - = # ; : ? @ &。标识符不能超过256个字符。是appliance.attributeName设备的属性名称,每次仅请求上报一个属性。是

请求示例

curl -v "https://xiaodu.baidu.com/saiya/smarthome/changereport" -H 'Content-Type:application/json' -d '{ "header": { "namespace": "DuerOS.ConnectedHome.Control", "name": "ChangeReportRequest", "messageId": "01ebf625-0b89-4c4d-b3aa-32340e894688", "payloadVersion": "1" }, "payload": { "botId": "5385e18b-619a-abcd-ed10-33a7d69780a6", "openUid": "27a7d83c2d3cfbad5d387cd35f3ca17b", "appliance": { "applianceId": "[Device ID for Light]", "attributeName": "powerState" } } }

说明

这里主动上报的属性,属性值是通过ReportStateRequest查询到的,所以需要在ReportStateRequest协议实现中支持上对于上报属性的查询。 请求返回消息

当技能主动发起上报属性请求后,DuerOS返回确认信息。

参数说明

参数名称描述类型是否必须status消息状态。0表示已经完成属性上报,非0表示消息异常。int是msg消息提示信息。当状态码为0时,提示更新的属性记录数。当状态码非0时,返回对应的错误消息。string是messageId请求消息中的messageId信息。string是data返回消息的数据信息。array是data.updated_attribute_num同步属性的数量。int是

返回示例

{ “status”: 0, "msg": "update 3 attributes", "messageId": "请求消息中的messageId", "data": { "updated_attribute_num": 3 } } ReportStateRequest消息

当DuerOS收到技能主动上报设备属性的请求时,会向技能发送ReportStateRequest消息,请求技能上报属性的完整信息。

Header信息

属性取值nameReportStateRequestnamespaceDuerOS.ConnectedHome.Query

Payload信息

属性描述说明是否必须accessToken设备云端获取的access token。是appliance设备操作的具体对象。包括applianceId和additionalApplianceDetails。是appliance.applianceId设备标识符。标识符在用户拥有的所有设备上必须是唯一的。此外,标识符需要在同一设备的多个发现请求之间保持一致。标识符可以包含任何字母或数字和以下特殊字符:_ - = # ; : ? @ &。标识符不能超过256个字符。是appliance.additionalApplianceDetails提供给设备云使用,存放设备或场景相关的附加信息,是键值对。DuerOS不解析或使用这些数据。该属性的内容不能超过5000字节。是,内容可以为空appliance.attributeName查询的属性名称,字符串类型,支持数字、字母和下划线,长度不能超过128个字符。是

应用举例

当手动将关上厨房灯时,厨房灯的属性发生变化,技能主动向DuerOS发送请求,DuerOS收到请求后,向技能发送ReportStateRequest消息,消息示例如下。

{ "header": { "namespace": "DuerOS.ConnectedHome.Query", "name": "ReportStateRequest", "messageId": "01ebf625-0b89-4c4d-b3aa-32340e894688", "payloadVersion": "1" }, "payload": { "accessToken": "[OAuth token here]", "appliance": { "additionalApplianceDetails": {}, "applianceId": "[Device ID for Light ]" "attributeName": "turnOnState" } } } ReportStateResponse消息

当技能收到ReportStateRequest请求消息时,会主动上报请求消息中属性的完整信息,并向技能发送ReportStateResponse消息。

Header信息

属性取值nameReportStateResponsenamespaceDuerOS.ConnectedHome.Query

Payload信息

属性描述说明是否必须attributes设备的属性信息,最多支持上报10个属性。是attribute.name属性名称,支持数字、字母和下划线,长度不能超过128个字符。是attribute.value属性值,支持多种json类型。是attribute.scale属性值的单位名称,支持数字、字母和下划线,长度不能超过128个字符。是attribute.timestampOfSample属性值取样的时间戳,单位是秒。是attribute.uncertaintyInMilliseconds属性值取样的时间误差,单位是ms。如果设备使用的是轮询时间间隔的取样方式,那么uncertaintyInMilliseconds就等于时间间隔。如温度传感器每1秒取样1次,那么uncertaintyInMilliseconds的值就是1000。是

应用举例

技能获取到厨房灯的turnOnState属性时,向DuerOS发送ReportStateResponse消息,消息示例如下。

{ "header": { "namespace": "DuerOS.ConnectedHome.Query", "name": "ReportStateResponse", "messageId": "780013dd-99d0-4c69-9e35-db0457f9f2a7", "payloadVersion": "1" }, "payload": { "attributes": [ { "name": "turnOnState", "value": "OFF", "scale": "", "timestampOfSample": 1496741861, "uncertaintyInMilliseconds": 0 } ] } }

说明

技能主动上报属性时,在主动上报请求消息中每次仅请求上报一个属性,在ReportStateResponse消息中除了返回请求的属性外,还可以返回设备的其他属性信息,最多支持返回10个属性信息。 设备信息同步消息

该接口为厂商通知DuerOS的接口,当技能涉及的用户设备信息发生变化时,如用户新增设备或减少设备,此时技能可以通过设备信息同步接口请求DuerOS进行设备信息同步。

请求消息说明

技能向DuerOS发送请求消息,请求DuerOS同步设备变更信息。

接口地址

https://xiaodu.baidu.com/saiya/smarthome/devicesync

请求方式

POST请求方式

参数说明

参数名称参数说明类型是否必需botId技能ID。string是logId技能本次请求logId。string是openUids需要同步的用户openUid信息,每次同步的openUid不超过5个。array是

Head说明

参数名称取值Content-Typeapplication/json

请求示例

curl -v "https://xiaodu.baidu.com/saiya/smarthome/devicesync" -H 'Content-Type:application/json' -d '{ "botId":"123456xyz-123456-4c5d-345677xyz", "logId":"123456789", "openUids":[ "17a7d83c2d3cfbad5d387cd35f3ca17b" ] }' 返回说明

当技能发起设备信息同步请求后,DuerOS返回信息同步确认消息。

参数说明

参数名称描述类型是否必须status请求消息状态。0表示消息正常,非0表示消息异常。int是msg请求消息同步状态,可能出现以下情况。ok:表示至少一个openUid同步成功。openUid not more than 5:表示openUid信息超过5个。not support botId:表示技能ID不存在。sync failed:表示请求信息同步失败。param error:表示参数不合法。string是logid请求消息中的logid。string是data返回消息的数据信息。array是data.failed同步失败的openUid集合。array是data.succeed同步成功的openUid集合。array是

返回示例

{ "status": 0, "msg": "ok", "logid": "123456789", "data": { "failed": [], "succeed": [ "17a7d83c2d3cfbad5d387cd35f3ca17b" ] } } 技能解绑消息通知

该接口为DuerOS通知厂商的接口。当用户在技能商店解绑智能家居技能时,DuerOS会使用该协议通知到技能服务器,以便第三方智能家居服务提供商获取到用户的这一行为而做出相应的逻辑变化,比如,用户解绑技能后,当用户新增设备时,不再通知DuerOS。协议使用HTTPS传输,采用JSON消息格式。

UnbindBotRequest

当用在技能商店解绑该技能时,DuerOS会将该消息发送给技能。

Header信息

属性取值nameUnbindBotRequestnamespaceDuerOS.ConnectedHome.UnbindBot

Payload信息

属性描述是否必须accessToken设备云端获取的access token。是

应用举例

当用户在技能商店解绑了该技能时, DuerOS向技能发送UnbindBot消息,消息样例如下

{ "header": { "namespace": "DuerOS.ConnectedHome.UnbindBot", "name": "UnbindBotRequest", "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2", "payloadVersion": "1" }, "payload": { "accessToken": "[OAuth Token here]" } } UnbindBotResponse

当DuerOS通知技能用户解绑了该技能,技能会返回UnbindBotResponse消息。

Header信息

属性取值nameUnbindBotResponsenamespaceDuerOS.ConnectedHome.UnbindBot

Payload信息

Payload信息为空,DuerOS只是通知技能用户在DuerOS技能商店解绑了该技能。

应用举例

当DuerOS向技能发送了解绑消息后,技能回复DuerOS消息样例如下

{ "header": { "namespace": "DuerOS.ConnectedHome.UnbindBot", "name": "UnbindBotResponse", "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2", "payloadVersion": "1" }, "payload": { } }


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭