ex

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
TMBOY
Date:
Tue Jul 18 16:27:22 2017 +0800
Revision:
44:c1d8923072ba
?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TMBOY 44:c1d8923072ba 1 # Alerts 设备端能力要求
TMBOY 44:c1d8923072ba 2
TMBOY 44:c1d8923072ba 3 ## 连接网络
TMBOY 44:c1d8923072ba 4 用户使用设备创建、删除Alerts,需要接受DCS(duer conversation service)下发的Directive去创建、删除Alert,创建、删除失败后必须向DCS上报Event。
TMBOY 44:c1d8923072ba 5
TMBOY 44:c1d8923072ba 6 ## Alerts创建后在设备离线后可以正确触发
TMBOY 44:c1d8923072ba 7 例如用户创建第二天早上8点的alarm后,设备断网,第二天早上8点alarm需要准时触发。
TMBOY 44:c1d8923072ba 8
TMBOY 44:c1d8923072ba 9 ## 支持本地重建Alerts
TMBOY 44:c1d8923072ba 10 设备重启后需要能够在本地重建Alerts,这种场景下不需要向DCS上报Event。
TMBOY 44:c1d8923072ba 11
TMBOY 44:c1d8923072ba 12 ## 支持NTP网络时间协议
TMBOY 44:c1d8923072ba 13 DCS Alerts下发Alerts都为标准时间戳,设备端需要支持NTP协议对齐时间。
TMBOY 44:c1d8923072ba 14
TMBOY 44:c1d8923072ba 15 # Alerts 流程
TMBOY 44:c1d8923072ba 16 ## 基本Alerts流程
TMBOY 44:c1d8923072ba 17 ![图片](http://bos.nj.bpc.baidu.com/v1/agroup/149b86d35ae902fa853a4eecaa8a5d6c57816155)
TMBOY 44:c1d8923072ba 18 ## 通过设备实体交互停止响铃流程
TMBOY 44:c1d8923072ba 19 ![图片](http://bos.nj.bpc.baidu.com/v1/agroup/373bf9939c691a59d3e80079bae581a037b12135)
TMBOY 44:c1d8923072ba 20 ## 周期重复alarm流程
TMBOY 44:c1d8923072ba 21 ![图片](http://bos.nj.bpc.baidu.com/v1/agroup/cec09e6dd874a76a2a83969c04a7e1f63888dfe4)
TMBOY 44:c1d8923072ba 22 ## 删除Alerts流程
TMBOY 44:c1d8923072ba 23 ![图片](http://bos.nj.bpc.baidu.com/v1/agroup/3b13b8573f2ac6deab79333696f1a3c703bdb479)
TMBOY 44:c1d8923072ba 24 ## mateapp删除Alerts流程
TMBOY 44:c1d8923072ba 25 ![图片](http://bos.nj.bpc.baidu.com/v1/agroup/015c147dc1ced884408d30e06711703f320ed251)
TMBOY 44:c1d8923072ba 26
TMBOY 44:c1d8923072ba 27
TMBOY 44:c1d8923072ba 28 # Alerts接口协议
TMBOY 44:c1d8923072ba 29
TMBOY 44:c1d8923072ba 30 ## 输出能力级别定义
TMBOY 44:c1d8923072ba 31 ### all: 输出完整的Alerts能力
TMBOY 44:c1d8923072ba 32 完整能力输出包括qu解析、Alerts业务逻辑、数据存储。
TMBOY 44:c1d8923072ba 33
TMBOY 44:c1d8923072ba 34 ### qu: 仅输出qu能力
TMBOY 44:c1d8923072ba 35 qu能力输出仅包括qu解析,接入端需要实现Alerts业务逻辑、数据存储。使用DCS管理需要将设备端Alerts详细数据通过device_status携带,且数据格式需是[duer约定格式](#alert_struct)。
TMBOY 44:c1d8923072ba 36
TMBOY 44:c1d8923072ba 37 ## Alerts数据结构
TMBOY 44:c1d8923072ba 38 ### <span id="alert_struct">AlertsStruct</span>
TMBOY 44:c1d8923072ba 39 ```javascript
TMBOY 44:c1d8923072ba 40 AlertsStruct = {
TMBOY 44:c1d8923072ba 41 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 42 "type": string,// Alert类型 TIMER|ALARM
TMBOY 44:c1d8923072ba 43 "scheduled_time": string,// Alert触发时间,秒级时间戳
TMBOY 44:c1d8923072ba 44 "content": string, // Alert事件名称
TMBOY 44:c1d8923072ba 45
TMBOY 44:c1d8923072ba 46 // ####### 接入完整能力不要关注此字段#########
TMBOY 44:c1d8923072ba 47 "extensions": ExtensionsStruct json, // 可选,额外信息,qu能力级别输出携带,例如接入完整能力的A音箱则没有该字段,接入qu能力的B手机助手则有该字段|mateapp携带
TMBOY 44:c1d8923072ba 48 }
TMBOY 44:c1d8923072ba 49 ```
TMBOY 44:c1d8923072ba 50 ```javascript
TMBOY 44:c1d8923072ba 51 ExtensionsStruct = {
TMBOY 44:c1d8923072ba 52 "start_time": int, // 开始时间
TMBOY 44:c1d8923072ba 53 "content": string, // 事件名称
TMBOY 44:c1d8923072ba 54 "duration": int, // timer时长
TMBOY 44:c1d8923072ba 55 "repeat_type": string, // 重复类型 day|week|month|year
TMBOY 44:c1d8923072ba 56 "repeat_week": int, // 可选,重复星期 从低位到高位表示星期一到星期日
TMBOY 44:c1d8923072ba 57 "repeat_month": int, // 可选,重复月 从低位到高位表示1~12月
TMBOY 44:c1d8923072ba 58 "repeat_year": string, // 可选, 重复年 12-1,8-2
TMBOY 44:c1d8923072ba 59 "special_calender": string, // 农历,lunar
TMBOY 44:c1d8923072ba 60 "special_day": string, // 工作日, weekday
TMBOY 44:c1d8923072ba 61 }
TMBOY 44:c1d8923072ba 62 ```
TMBOY 44:c1d8923072ba 63
TMBOY 44:c1d8923072ba 64
TMBOY 44:c1d8923072ba 65 ## device_status Alerts
TMBOY 44:c1d8923072ba 66 客户端请求DCS、上报Event需要携带Alerts device_status
TMBOY 44:c1d8923072ba 67 ```javascript
TMBOY 44:c1d8923072ba 68 {
TMBOY 44:c1d8923072ba 69 "all_alerts": [
TMBOY 44:c1d8923072ba 70 AlertsStruct,// 见Alerts数据结构
TMBOY 44:c1d8923072ba 71 ],
TMBOY 44:c1d8923072ba 72 // 正在活跃的Alerts
TMBOY 44:c1d8923072ba 73 "active_alerts": [
TMBOY 44:c1d8923072ba 74 AlertsStruct,// 见Alerts数据结构
TMBOY 44:c1d8923072ba 75 ],
TMBOY 44:c1d8923072ba 76 }
TMBOY 44:c1d8923072ba 77 ```
TMBOY 44:c1d8923072ba 78
TMBOY 44:c1d8923072ba 79 ## Create
TMBOY 44:c1d8923072ba 80 设备Alerts的本地创建,必须且只有在接受到DCS 的SetAlert Directive之后进行。
TMBOY 44:c1d8923072ba 81 ### SetAlert Directive
TMBOY 44:c1d8923072ba 82 DCS下发SetAlert Directive场景:
TMBOY 44:c1d8923072ba 83 1、客户端通过语音创建alarm、timer
TMBOY 44:c1d8923072ba 84 2、mateapp重新开启已经创建的alarm、timer
TMBOY 44:c1d8923072ba 85 3、mateapp更新已经创建的alarm、timer
TMBOY 44:c1d8923072ba 86
TMBOY 44:c1d8923072ba 87 ```javascript
TMBOY 44:c1d8923072ba 88 {
TMBOY 44:c1d8923072ba 89 "header": {
TMBOY 44:c1d8923072ba 90 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 91 "name": "SetAlert",
TMBOY 44:c1d8923072ba 92 "message_id": string,
TMBOY 44:c1d8923072ba 93 },
TMBOY 44:c1d8923072ba 94 "payload": AlertsStruct,// 见Alerts数据结构
TMBOY 44:c1d8923072ba 95 }
TMBOY 44:c1d8923072ba 96 ```
TMBOY 44:c1d8923072ba 97
TMBOY 44:c1d8923072ba 98 ### SetAlertSucceeded Event
TMBOY 44:c1d8923072ba 99 客户端在收到SetAlert Directive后成功创建Alert必须向DCS上报SetAlertSucceeded Event
TMBOY 44:c1d8923072ba 100 ```javascript
TMBOY 44:c1d8923072ba 101 {
TMBOY 44:c1d8923072ba 102 "header": {
TMBOY 44:c1d8923072ba 103 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 104 "name": "SetAlertSucceeded"
TMBOY 44:c1d8923072ba 105 },
TMBOY 44:c1d8923072ba 106 "payload": {
TMBOY 44:c1d8923072ba 107 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 108 }
TMBOY 44:c1d8923072ba 109 }
TMBOY 44:c1d8923072ba 110 ```
TMBOY 44:c1d8923072ba 111
TMBOY 44:c1d8923072ba 112 ### SetAlertFailed Event
TMBOY 44:c1d8923072ba 113 客户端在收到SetAlert Directive后未成功创建Alert必须向DCS上报SetAlertFailed Event
TMBOY 44:c1d8923072ba 114 ```javascript
TMBOY 44:c1d8923072ba 115 {
TMBOY 44:c1d8923072ba 116 "header": {
TMBOY 44:c1d8923072ba 117 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 118 "name": "SetAlertFailed"
TMBOY 44:c1d8923072ba 119 },
TMBOY 44:c1d8923072ba 120 "payload": {
TMBOY 44:c1d8923072ba 121 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 122 }
TMBOY 44:c1d8923072ba 123 }
TMBOY 44:c1d8923072ba 124 ```
TMBOY 44:c1d8923072ba 125
TMBOY 44:c1d8923072ba 126 ## Delete
TMBOY 44:c1d8923072ba 127 设备Alerts的本地删除,必须且只有在接受到DCS 的SetAlert Directive之后进行。
TMBOY 44:c1d8923072ba 128 ### DeleteAlert Directive
TMBOY 44:c1d8923072ba 129 DCS下发DeleteAlert Directive场景:
TMBOY 44:c1d8923072ba 130 1、客户端通过语音删除alarm、timer
TMBOY 44:c1d8923072ba 131 2、客户端通过语音停止响铃的alarm、timer
TMBOY 44:c1d8923072ba 132 2、mateapp删除alarm、timer
TMBOY 44:c1d8923072ba 133 3、mateapp暂停已经创建的alarm
TMBOY 44:c1d8923072ba 134
TMBOY 44:c1d8923072ba 135 ```javascript
TMBOY 44:c1d8923072ba 136 {
TMBOY 44:c1d8923072ba 137 "header": {
TMBOY 44:c1d8923072ba 138 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 139 "name": "DeleteAlert",
TMBOY 44:c1d8923072ba 140 "message_id": string,
TMBOY 44:c1d8923072ba 141 },
TMBOY 44:c1d8923072ba 142 "payload":{
TMBOY 44:c1d8923072ba 143 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 144 }
TMBOY 44:c1d8923072ba 145 }
TMBOY 44:c1d8923072ba 146 ```
TMBOY 44:c1d8923072ba 147
TMBOY 44:c1d8923072ba 148 ### DeleteAlertSucceeded Event
TMBOY 44:c1d8923072ba 149 客户端在收到DeleteAlert Directive后成功删除Alert必须向DCS上报DeleteAlertSucceeded Event
TMBOY 44:c1d8923072ba 150 ```javascript
TMBOY 44:c1d8923072ba 151 {
TMBOY 44:c1d8923072ba 152 "header": {
TMBOY 44:c1d8923072ba 153 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 154 "name": "DeleteAlertSucceeded"
TMBOY 44:c1d8923072ba 155 },
TMBOY 44:c1d8923072ba 156 "payload": {
TMBOY 44:c1d8923072ba 157 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 158 }
TMBOY 44:c1d8923072ba 159 }
TMBOY 44:c1d8923072ba 160 ```
TMBOY 44:c1d8923072ba 161
TMBOY 44:c1d8923072ba 162 ### DeleteAlertFailed Event
TMBOY 44:c1d8923072ba 163 客户端在收到DeleteAlert Directive后未成功删除Alert必须向DCS上报DeleteAlertfailed Event
TMBOY 44:c1d8923072ba 164 ```javascript
TMBOY 44:c1d8923072ba 165 {
TMBOY 44:c1d8923072ba 166 "header": {
TMBOY 44:c1d8923072ba 167 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 168 "name": "DeleteAlertFailed"
TMBOY 44:c1d8923072ba 169 },
TMBOY 44:c1d8923072ba 170 "payload": {
TMBOY 44:c1d8923072ba 171 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 172 }
TMBOY 44:c1d8923072ba 173 }
TMBOY 44:c1d8923072ba 174 ```
TMBOY 44:c1d8923072ba 175
TMBOY 44:c1d8923072ba 176 ## Start and Stop
TMBOY 44:c1d8923072ba 177 ### AlertStarted Event
TMBOY 44:c1d8923072ba 178 Alert到触发时间响铃必须向DCS上报AlertStarted Event
TMBOY 44:c1d8923072ba 179 ```javascript
TMBOY 44:c1d8923072ba 180 {
TMBOY 44:c1d8923072ba 181 "header": {
TMBOY 44:c1d8923072ba 182 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 183 "name": "AlertStarted"
TMBOY 44:c1d8923072ba 184 },
TMBOY 44:c1d8923072ba 185 "payload": {
TMBOY 44:c1d8923072ba 186 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 187 }
TMBOY 44:c1d8923072ba 188 }
TMBOY 44:c1d8923072ba 189 ```
TMBOY 44:c1d8923072ba 190 ### AlertStoped Event
TMBOY 44:c1d8923072ba 191 Alert停止正在响铃的Alert必须向DCS上报AlertStoped Event
TMBOY 44:c1d8923072ba 192 ```javascript
TMBOY 44:c1d8923072ba 193 {
TMBOY 44:c1d8923072ba 194 "header": {
TMBOY 44:c1d8923072ba 195 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 196 "name": "AlertStoped"
TMBOY 44:c1d8923072ba 197 },
TMBOY 44:c1d8923072ba 198 "payload": {
TMBOY 44:c1d8923072ba 199 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 200 }
TMBOY 44:c1d8923072ba 201 }
TMBOY 44:c1d8923072ba 202 ```
TMBOY 44:c1d8923072ba 203
TMBOY 44:c1d8923072ba 204
TMBOY 44:c1d8923072ba 205 ## 前后台切换
TMBOY 44:c1d8923072ba 206 ### AlertEnteredForeground Event
TMBOY 44:c1d8923072ba 207 ```javascript
TMBOY 44:c1d8923072ba 208 {
TMBOY 44:c1d8923072ba 209 "header": {
TMBOY 44:c1d8923072ba 210 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 211 "name": "AlertEnteredForeground"
TMBOY 44:c1d8923072ba 212 },
TMBOY 44:c1d8923072ba 213 "payload": {
TMBOY 44:c1d8923072ba 214 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 215 }
TMBOY 44:c1d8923072ba 216 }
TMBOY 44:c1d8923072ba 217 ```
TMBOY 44:c1d8923072ba 218
TMBOY 44:c1d8923072ba 219 ### AlertEnteredBackground Event
TMBOY 44:c1d8923072ba 220 ```javascript
TMBOY 44:c1d8923072ba 221 {
TMBOY 44:c1d8923072ba 222 "header": {
TMBOY 44:c1d8923072ba 223 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 224 "name": "AlertEnteredBackground"
TMBOY 44:c1d8923072ba 225 },
TMBOY 44:c1d8923072ba 226 "payload": {
TMBOY 44:c1d8923072ba 227 "token": string,// 唯一标识
TMBOY 44:c1d8923072ba 228 }
TMBOY 44:c1d8923072ba 229 }
TMBOY 44:c1d8923072ba 230 ```
TMBOY 44:c1d8923072ba 231
TMBOY 44:c1d8923072ba 232 # Alarm输出schema
TMBOY 44:c1d8923072ba 233 ## 输出实例
TMBOY 44:c1d8923072ba 234
TMBOY 44:c1d8923072ba 235 ### 创建实例
TMBOY 44:c1d8923072ba 236 ```javascript
TMBOY 44:c1d8923072ba 237 {
TMBOY 44:c1d8923072ba 238 "result": {
TMBOY 44:c1d8923072ba 239 "bot_id": "alarm",
TMBOY 44:c1d8923072ba 240 "bot_meta": {
TMBOY 44:c1d8923072ba 241 "version": "1.0.0",
TMBOY 44:c1d8923072ba 242 "type": "其他",
TMBOY 44:c1d8923072ba 243 "description": "desc"
TMBOY 44:c1d8923072ba 244 },
TMBOY 44:c1d8923072ba 245 "directives":[
TMBOY 44:c1d8923072ba 246 {
TMBOY 44:c1d8923072ba 247 "header": {
TMBOY 44:c1d8923072ba 248 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 249 "name": "Speak",
TMBOY 44:c1d8923072ba 250 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 251 },
TMBOY 44:c1d8923072ba 252 "payload": {
TMBOY 44:c1d8923072ba 253 "token": "156",
TMBOY 44:c1d8923072ba 254 "type": "Text",
TMBOY 44:c1d8923072ba 255 "content": ["为你设置了【起床】提醒。\n度秘将于明天上午8点通知你"],
TMBOY 44:c1d8923072ba 256 "speak_behavior": "REPLACE_ALL",
TMBOY 44:c1d8923072ba 257 "should_get_next_speech": true
TMBOY 44:c1d8923072ba 258 }
TMBOY 44:c1d8923072ba 259 },
TMBOY 44:c1d8923072ba 260 {
TMBOY 44:c1d8923072ba 261 "header": {
TMBOY 44:c1d8923072ba 262 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 263 "name": "SetAlert",
TMBOY 44:c1d8923072ba 264 "message_id": "test_message_id",
TMBOY 44:c1d8923072ba 265 },
TMBOY 44:c1d8923072ba 266 "payload": {
TMBOY 44:c1d8923072ba 267 "token": "test_token",
TMBOY 44:c1d8923072ba 268 "type": "ALARM",
TMBOY 44:c1d8923072ba 269 "scheduled_time": "1490774496",
TMBOY 44:c1d8923072ba 270 }
TMBOY 44:c1d8923072ba 271 }
TMBOY 44:c1d8923072ba 272 ],
TMBOY 44:c1d8923072ba 273 "views": [
TMBOY 44:c1d8923072ba 274 {
TMBOY 44:c1d8923072ba 275 "type": "list",
TMBOY 44:c1d8923072ba 276 "list": [
TMBOY 44:c1d8923072ba 277 {
TMBOY 44:c1d8923072ba 278 "title": "起床",
TMBOY 44:c1d8923072ba 279 "summary": "为你设置了【起床】提醒。\n度秘将于明天上午8点通知你",
TMBOY 44:c1d8923072ba 280 "url": "http://xiaodu.baidu.com/saiya/events",
TMBOY 44:c1d8923072ba 281 "image": "http://xiaodu.baidu.com/saiya/img/remind.png"
TMBOY 44:c1d8923072ba 282 }
TMBOY 44:c1d8923072ba 283 ]
TMBOY 44:c1d8923072ba 284 }
TMBOY 44:c1d8923072ba 285 ],
TMBOY 44:c1d8923072ba 286 "nlu": {
TMBOY 44:c1d8923072ba 287 "domain": "alarm",
TMBOY 44:c1d8923072ba 288 "intent": "alarm",
TMBOY 44:c1d8923072ba 289 "slots": {
TMBOY 44:c1d8923072ba 290 "event_title": "起床",
TMBOY 44:c1d8923072ba 291 "event_type": "wakeup",
TMBOY 44:c1d8923072ba 292 "alarm_time": "{\"day\":\"next\",\"hour\":\"8\",\"apm\":\"am\"}",
TMBOY 44:c1d8923072ba 293 }
TMBOY 44:c1d8923072ba 294 },
TMBOY 44:c1d8923072ba 295 "speech": {
TMBOY 44:c1d8923072ba 296 "type": "Text",
TMBOY 44:c1d8923072ba 297 "content": "为你设置了【起床】提醒。\n度秘将于明天上午8点通知你"
TMBOY 44:c1d8923072ba 298 }
TMBOY 44:c1d8923072ba 299 },
TMBOY 44:c1d8923072ba 300 "id": "1490616124_7372v4pbq",
TMBOY 44:c1d8923072ba 301 "logid": "14906161247428",
TMBOY 44:c1d8923072ba 302 "user_id": "2856",
TMBOY 44:c1d8923072ba 303 "time": 1490616124,
TMBOY 44:c1d8923072ba 304 "cuid": "test_1490616124403",
TMBOY 44:c1d8923072ba 305 "se_query": "明天上午8点提醒我起床",
TMBOY 44:c1d8923072ba 306 "msg": "ok",
TMBOY 44:c1d8923072ba 307 "client_msg_id": "c9bfe944-992b-45b1-8afe-dc2cdaee622a",
TMBOY 44:c1d8923072ba 308 "speech_id": "12345",
TMBOY 44:c1d8923072ba 309 "status": 0
TMBOY 44:c1d8923072ba 310 }
TMBOY 44:c1d8923072ba 311 ```
TMBOY 44:c1d8923072ba 312 ### 管理实例
TMBOY 44:c1d8923072ba 313 ```javascript
TMBOY 44:c1d8923072ba 314 {
TMBOY 44:c1d8923072ba 315 "result": {
TMBOY 44:c1d8923072ba 316 "directives":[
TMBOY 44:c1d8923072ba 317 {
TMBOY 44:c1d8923072ba 318 "header": {
TMBOY 44:c1d8923072ba 319 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 320 "name": "Speak",
TMBOY 44:c1d8923072ba 321 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 322 },
TMBOY 44:c1d8923072ba 323 "payload": {
TMBOY 44:c1d8923072ba 324 "token": "156",
TMBOY 44:c1d8923072ba 325 "type": "Text",
TMBOY 44:c1d8923072ba 326 "content": ["当前没有任何闹钟"],
TMBOY 44:c1d8923072ba 327 "speak_behavior": "REPLACE_ALL",
TMBOY 44:c1d8923072ba 328 "should_get_next_speech": true
TMBOY 44:c1d8923072ba 329 }
TMBOY 44:c1d8923072ba 330 },
TMBOY 44:c1d8923072ba 331 {
TMBOY 44:c1d8923072ba 332 "header": {
TMBOY 44:c1d8923072ba 333 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 334 "name": "DeleteAlert",
TMBOY 44:c1d8923072ba 335 "message_id": "test_message_id",
TMBOY 44:c1d8923072ba 336 },
TMBOY 44:c1d8923072ba 337 "payload": {
TMBOY 44:c1d8923072ba 338 "token": "test_token",
TMBOY 44:c1d8923072ba 339 "type": "ALARM",
TMBOY 44:c1d8923072ba 340 "scheduled_time": "1490774496",
TMBOY 44:c1d8923072ba 341 }
TMBOY 44:c1d8923072ba 342 }
TMBOY 44:c1d8923072ba 343 ],
TMBOY 44:c1d8923072ba 344 "views": [
TMBOY 44:c1d8923072ba 345 {
TMBOY 44:c1d8923072ba 346 "type": "txt",
TMBOY 44:c1d8923072ba 347 "content": "当前没有任何闹钟"
TMBOY 44:c1d8923072ba 348 }
TMBOY 44:c1d8923072ba 349 ],
TMBOY 44:c1d8923072ba 350 "speech": {
TMBOY 44:c1d8923072ba 351 "type": "Text",
TMBOY 44:c1d8923072ba 352 "content": "当前没有任何闹钟"
TMBOY 44:c1d8923072ba 353 },
TMBOY 44:c1d8923072ba 354 "bot_id": "alarm",
TMBOY 44:c1d8923072ba 355 "bot_meta": {
TMBOY 44:c1d8923072ba 356 "version": "1.0.0",
TMBOY 44:c1d8923072ba 357 "type": "其他",
TMBOY 44:c1d8923072ba 358 "description": "desc"
TMBOY 44:c1d8923072ba 359 },
TMBOY 44:c1d8923072ba 360 "nlu": {
TMBOY 44:c1d8923072ba 361 "domain": "alarm",
TMBOY 44:c1d8923072ba 362 "intent": "alarm_manage",
TMBOY 44:c1d8923072ba 363 "slots": {
TMBOY 44:c1d8923072ba 364 "action": "delete",
TMBOY 44:c1d8923072ba 365 "alarm_time": "null\n",
TMBOY 44:c1d8923072ba 366 }
TMBOY 44:c1d8923072ba 367 }
TMBOY 44:c1d8923072ba 368 },
TMBOY 44:c1d8923072ba 369 "id": "1490663709_4834c2s7b",
TMBOY 44:c1d8923072ba 370 "logid": "14906637094391",
TMBOY 44:c1d8923072ba 371 "user_id": "2856",
TMBOY 44:c1d8923072ba 372 "time": 1490663709,
TMBOY 44:c1d8923072ba 373 "cuid": "4B7163F0FD2B34",
TMBOY 44:c1d8923072ba 374 "se_query": "取消闹钟",
TMBOY 44:c1d8923072ba 375 "msg": "ok",
TMBOY 44:c1d8923072ba 376 "client_msg_id": "f67d63bb-917c-4c67-8fa8-be773ec913ba",
TMBOY 44:c1d8923072ba 377 "status": 0
TMBOY 44:c1d8923072ba 378 }
TMBOY 44:c1d8923072ba 379 ```
TMBOY 44:c1d8923072ba 380
TMBOY 44:c1d8923072ba 381 ## NLU
TMBOY 44:c1d8923072ba 382 |slot |desc | value |
TMBOY 44:c1d8923072ba 383 |---|---|---|
TMBOY 44:c1d8923072ba 384 |intent|alarm意图|alarm,alarm_manage|
TMBOY 44:c1d8923072ba 385 |action|alarm动作类型|create,list,update,delete|
TMBOY 44:c1d8923072ba 386 |event_title | alarm标题 | eg:起床|
TMBOY 44:c1d8923072ba 387 |event_type | alarm事件类型 | eg:wakeup|
TMBOY 44:c1d8923072ba 388 |alarm_time|[alarm_time说明](#alarm_time)|json字符串
TMBOY 44:c1d8923072ba 389 |scheduled_time | alarm设置的时间。只会在提醒创建前(即槽位完备)给出 | 1486598400|
TMBOY 44:c1d8923072ba 390
TMBOY 44:c1d8923072ba 391 ## <span id="alarm_time">alarm_time字段说明</span>
TMBOY 44:c1d8923072ba 392 |Key |Value |说明|
TMBOY 44:c1d8923072ba 393 |---|---|---|
TMBOY 44:c1d8923072ba 394 |minute |3, +2, -1|string. 3分,2分钟后,1分钟前|
TMBOY 44:c1d8923072ba 395 |hour|2, +1, -3|string. 2点,1小时后,3小时前|
TMBOY 44:c1d8923072ba 396 |day|1, +2, -3, -1,next, +0|string. 1号,2天后,3天前,昨天,明天,今天|
TMBOY 44:c1d8923072ba 397 |month|1, +2, -3, +0|string. 1月,2个月后,3个月前,这个月|
TMBOY 44:c1d8923072ba 398 |year|1984, +1, -2, +0|string. 1984年,明年,2年前,今年|
TMBOY 44:c1d8923072ba 399 |week|+1, -1, 2, 3, 2+1|string. 下周,上一周,星期二,周三, 下周二|
TMBOY 44:c1d8923072ba 400 |apm|am, pm|string. 上午,下午|
TMBOY 44:c1d8923072ba 401 |const|recent, awhile|string. 刚刚,一会儿|
TMBOY 44:c1d8923072ba 402 |repeat|day, month, year|string. 每天,每月,每年|
TMBOY 44:c1d8923072ba 403 |special_day |weekend, weekday|string. 周末,工作日,节气,节日|
TMBOY 44:c1d8923072ba 404 |special_calendar|lunar|string. 农历|
TMBOY 44:c1d8923072ba 405
TMBOY 44:c1d8923072ba 406 # timer输出schema
TMBOY 44:c1d8923072ba 407 ## 输出实例
TMBOY 44:c1d8923072ba 408 ### 创建实例
TMBOY 44:c1d8923072ba 409 ```javascript
TMBOY 44:c1d8923072ba 410 {
TMBOY 44:c1d8923072ba 411 "result": {
TMBOY 44:c1d8923072ba 412 "directives":[
TMBOY 44:c1d8923072ba 413 {
TMBOY 44:c1d8923072ba 414 "header": {
TMBOY 44:c1d8923072ba 415 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 416 "name": "Speak",
TMBOY 44:c1d8923072ba 417 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 418 },
TMBOY 44:c1d8923072ba 419 "payload": {
TMBOY 44:c1d8923072ba 420 "token": "156",
TMBOY 44:c1d8923072ba 421 "type": "Text",
TMBOY 44:c1d8923072ba 422 "content": ["5分钟,计时开始"],
TMBOY 44:c1d8923072ba 423 "speak_behavior": "REPLACE_ALL",
TMBOY 44:c1d8923072ba 424 "should_get_next_speech": true
TMBOY 44:c1d8923072ba 425 }
TMBOY 44:c1d8923072ba 426 },
TMBOY 44:c1d8923072ba 427 {
TMBOY 44:c1d8923072ba 428 "header": {
TMBOY 44:c1d8923072ba 429 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 430 "name": "SetAlert",
TMBOY 44:c1d8923072ba 431 "message_id": "test_message_id",
TMBOY 44:c1d8923072ba 432 },
TMBOY 44:c1d8923072ba 433 "payload": {
TMBOY 44:c1d8923072ba 434 "token": "test_token",
TMBOY 44:c1d8923072ba 435 "type": "TIMER",
TMBOY 44:c1d8923072ba 436 "scheduled_time": "1490774496",
TMBOY 44:c1d8923072ba 437 }
TMBOY 44:c1d8923072ba 438 }
TMBOY 44:c1d8923072ba 439 ],
TMBOY 44:c1d8923072ba 440 "views": [
TMBOY 44:c1d8923072ba 441 {
TMBOY 44:c1d8923072ba 442 "type": "txt",
TMBOY 44:c1d8923072ba 443 "content": "5分钟,计时开始"
TMBOY 44:c1d8923072ba 444 }
TMBOY 44:c1d8923072ba 445 ],
TMBOY 44:c1d8923072ba 446 "speech": {
TMBOY 44:c1d8923072ba 447 "type": "Text",
TMBOY 44:c1d8923072ba 448 "content": "5分钟,计时开始"
TMBOY 44:c1d8923072ba 449 },
TMBOY 44:c1d8923072ba 450 "bot_id": "timer",
TMBOY 44:c1d8923072ba 451 "bot_meta": {
TMBOY 44:c1d8923072ba 452 "version": "1.0.0",
TMBOY 44:c1d8923072ba 453 "type": "其他",
TMBOY 44:c1d8923072ba 454 "description": "desc"
TMBOY 44:c1d8923072ba 455 },
TMBOY 44:c1d8923072ba 456 "nlu": {
TMBOY 44:c1d8923072ba 457 "domain": "timer",
TMBOY 44:c1d8923072ba 458 "intent": "timer",
TMBOY 44:c1d8923072ba 459 "slots": {
TMBOY 44:c1d8923072ba 460 "intent": "create",
TMBOY 44:c1d8923072ba 461 "minute": "5",
TMBOY 44:c1d8923072ba 462 }
TMBOY 44:c1d8923072ba 463 }
TMBOY 44:c1d8923072ba 464 },
TMBOY 44:c1d8923072ba 465 "id": "1490664954_776f4315j",
TMBOY 44:c1d8923072ba 466 "logid": "14906649544030",
TMBOY 44:c1d8923072ba 467 "user_id": "2856",
TMBOY 44:c1d8923072ba 468 "time": 1490664954,
TMBOY 44:c1d8923072ba 469 "cuid": "4B7163F0FD2B34",
TMBOY 44:c1d8923072ba 470 "se_query": "5分钟倒计时",
TMBOY 44:c1d8923072ba 471 "msg": "ok",
TMBOY 44:c1d8923072ba 472 "client_msg_id": "f67d63bb-917c-4c67-8fa8-be773ec913ba",
TMBOY 44:c1d8923072ba 473 "status": 0
TMBOY 44:c1d8923072ba 474 }
TMBOY 44:c1d8923072ba 475 ```
TMBOY 44:c1d8923072ba 476
TMBOY 44:c1d8923072ba 477 ### timer管理实例
TMBOY 44:c1d8923072ba 478 ```javascript
TMBOY 44:c1d8923072ba 479 {
TMBOY 44:c1d8923072ba 480 "result": {
TMBOY 44:c1d8923072ba 481 "directives":[
TMBOY 44:c1d8923072ba 482 {
TMBOY 44:c1d8923072ba 483 "header": {
TMBOY 44:c1d8923072ba 484 "namespace": "SpeechSynthesizer",
TMBOY 44:c1d8923072ba 485 "name": "Speak",
TMBOY 44:c1d8923072ba 486 "message_id": "message_id-1344"
TMBOY 44:c1d8923072ba 487 },
TMBOY 44:c1d8923072ba 488 "payload": {
TMBOY 44:c1d8923072ba 489 "token": "156",
TMBOY 44:c1d8923072ba 490 "type": "Text",
TMBOY 44:c1d8923072ba 491 "content": ["刚刚5分钟内没有设置过计时"],
TMBOY 44:c1d8923072ba 492 "speak_behavior": "REPLACE_ALL",
TMBOY 44:c1d8923072ba 493 "should_get_next_speech": true
TMBOY 44:c1d8923072ba 494 }
TMBOY 44:c1d8923072ba 495 },
TMBOY 44:c1d8923072ba 496 {
TMBOY 44:c1d8923072ba 497 "header": {
TMBOY 44:c1d8923072ba 498 "namespace": "Alerts",
TMBOY 44:c1d8923072ba 499 "name": "DeleteAlert",
TMBOY 44:c1d8923072ba 500 "message_id": "test_message_id",
TMBOY 44:c1d8923072ba 501 },
TMBOY 44:c1d8923072ba 502 "payload": {
TMBOY 44:c1d8923072ba 503 "token": "test_token",
TMBOY 44:c1d8923072ba 504 "type": "TIMER",
TMBOY 44:c1d8923072ba 505 "scheduled_time": "1490774496",
TMBOY 44:c1d8923072ba 506 }
TMBOY 44:c1d8923072ba 507 }
TMBOY 44:c1d8923072ba 508 ],
TMBOY 44:c1d8923072ba 509 "views": [
TMBOY 44:c1d8923072ba 510 {
TMBOY 44:c1d8923072ba 511 "type": "txt",
TMBOY 44:c1d8923072ba 512 "content": "刚刚5分钟内没有设置过计时"
TMBOY 44:c1d8923072ba 513 }
TMBOY 44:c1d8923072ba 514 ],
TMBOY 44:c1d8923072ba 515 "speech": {
TMBOY 44:c1d8923072ba 516 "type": "Text",
TMBOY 44:c1d8923072ba 517 "content": "刚刚5分钟内没有设置过计时"
TMBOY 44:c1d8923072ba 518 },
TMBOY 44:c1d8923072ba 519 "bot_id": "timer",
TMBOY 44:c1d8923072ba 520 "bot_meta": {
TMBOY 44:c1d8923072ba 521 "version": "1.0.0",
TMBOY 44:c1d8923072ba 522 "type": "其他",
TMBOY 44:c1d8923072ba 523 "description": "desc"
TMBOY 44:c1d8923072ba 524 },
TMBOY 44:c1d8923072ba 525 "nlu": {
TMBOY 44:c1d8923072ba 526 "domain": "timer",
TMBOY 44:c1d8923072ba 527 "intent": "timer_manage",
TMBOY 44:c1d8923072ba 528 "slots": {
TMBOY 44:c1d8923072ba 529 "condition": "recent",
TMBOY 44:c1d8923072ba 530 "intent": "list",
TMBOY 44:c1d8923072ba 531 }
TMBOY 44:c1d8923072ba 532 }
TMBOY 44:c1d8923072ba 533 },
TMBOY 44:c1d8923072ba 534 "id": "1490665516_47484jz9e",
TMBOY 44:c1d8923072ba 535 "logid": "14906655159796",
TMBOY 44:c1d8923072ba 536 "user_id": "2856",
TMBOY 44:c1d8923072ba 537 "time": 1490665516,
TMBOY 44:c1d8923072ba 538 "cuid": "4B7163F0FD2B34",
TMBOY 44:c1d8923072ba 539 "se_query": "查看刚刚的倒计时",
TMBOY 44:c1d8923072ba 540 "msg": "ok",
TMBOY 44:c1d8923072ba 541 "client_msg_id": "f67d63bb-917c-4c67-8fa8-be773ec913ba",
TMBOY 44:c1d8923072ba 542 "status": 0
TMBOY 44:c1d8923072ba 543 }
TMBOY 44:c1d8923072ba 544 ```
TMBOY 44:c1d8923072ba 545
TMBOY 44:c1d8923072ba 546 ## NLU
TMBOY 44:c1d8923072ba 547 |slot |Value |说明|
TMBOY 44:c1d8923072ba 548 |---|---|---|
TMBOY 44:c1d8923072ba 549 |minute|3|string. 3分|
TMBOY 44:c1d8923072ba 550 |hour|2|string. 2小时|
TMBOY 44:c1d8923072ba 551 |day|1|string. 1天|
TMBOY 44:c1d8923072ba 552 |month|1|string. 1个月|
TMBOY 44:c1d8923072ba 553 |year|2|string. 2年|
TMBOY 44:c1d8923072ba 554 |week|1|string. 一周|
TMBOY 44:c1d8923072ba 555 |condition|recent|string. 刚刚|
TMBOY 44:c1d8923072ba 556
TMBOY 44:c1d8923072ba 557
TMBOY 44:c1d8923072ba 558 # mateapp 接口
TMBOY 44:c1d8923072ba 559 ## Alerts列表
TMBOY 44:c1d8923072ba 560 `/saiya/alerts`
TMBOY 44:c1d8923072ba 561 `method:GET`
TMBOY 44:c1d8923072ba 562 `datatype:JSON`
TMBOY 44:c1d8923072ba 563 `params:type=(ALARM|TIMER)`
TMBOY 44:c1d8923072ba 564
TMBOY 44:c1d8923072ba 565 ### response
TMBOY 44:c1d8923072ba 566 ```javascript
TMBOY 44:c1d8923072ba 567 {
TMBOY 44:c1d8923072ba 568 "status": int, //状态码 0正确 其他错误
TMBOY 44:c1d8923072ba 569 "msg": string, // 错误信息
TMBOY 44:c1d8923072ba 570 "data": [
TMBOY 44:c1d8923072ba 571 AlertsStruct, // 见Alerts数据结构
TMBOY 44:c1d8923072ba 572 AlertsStruct, // 见Alerts数据结构
TMBOY 44:c1d8923072ba 573 ]
TMBOY 44:c1d8923072ba 574 }
TMBOY 44:c1d8923072ba 575 ```
TMBOY 44:c1d8923072ba 576
TMBOY 44:c1d8923072ba 577 ## Alerts暂停
TMBOY 44:c1d8923072ba 578 `/saiya/pause`
TMBOY 44:c1d8923072ba 579 `method:POST`
TMBOY 44:c1d8923072ba 580 `datatype:JSON`
TMBOY 44:c1d8923072ba 581 ### postbody
TMBOY 44:c1d8923072ba 582 ```javascript
TMBOY 44:c1d8923072ba 583 {
TMBOY 44:c1d8923072ba 584 "token": string, // 唯一标识
TMBOY 44:c1d8923072ba 585 }
TMBOY 44:c1d8923072ba 586 ```
TMBOY 44:c1d8923072ba 587
TMBOY 44:c1d8923072ba 588 ### response
TMBOY 44:c1d8923072ba 589 ```javascript
TMBOY 44:c1d8923072ba 590 {
TMBOY 44:c1d8923072ba 591 "status": int, //状态码 0正确 其他错误
TMBOY 44:c1d8923072ba 592 "msg": string, // 错误信息
TMBOY 44:c1d8923072ba 593 "data": null
TMBOY 44:c1d8923072ba 594 }
TMBOY 44:c1d8923072ba 595 ```
TMBOY 44:c1d8923072ba 596
TMBOY 44:c1d8923072ba 597 ## Alerts重新开启
TMBOY 44:c1d8923072ba 598 `/saiya/enable`
TMBOY 44:c1d8923072ba 599 `method:POST`
TMBOY 44:c1d8923072ba 600 `datatype:JSON`
TMBOY 44:c1d8923072ba 601 ### postbody
TMBOY 44:c1d8923072ba 602 ```javascript
TMBOY 44:c1d8923072ba 603 {
TMBOY 44:c1d8923072ba 604 "token": string, // 唯一标识
TMBOY 44:c1d8923072ba 605 }
TMBOY 44:c1d8923072ba 606 ```
TMBOY 44:c1d8923072ba 607
TMBOY 44:c1d8923072ba 608 ## Alerts删除
TMBOY 44:c1d8923072ba 609 `/saiya/delete`
TMBOY 44:c1d8923072ba 610 `method:POST`
TMBOY 44:c1d8923072ba 611 `datatype:JSON`
TMBOY 44:c1d8923072ba 612 ### postbody
TMBOY 44:c1d8923072ba 613 ```javascript
TMBOY 44:c1d8923072ba 614 {
TMBOY 44:c1d8923072ba 615 "token": string, // 唯一标识
TMBOY 44:c1d8923072ba 616 }
TMBOY 44:c1d8923072ba 617 ```
TMBOY 44:c1d8923072ba 618
TMBOY 44:c1d8923072ba 619 ### response
TMBOY 44:c1d8923072ba 620 ```javascript
TMBOY 44:c1d8923072ba 621 {
TMBOY 44:c1d8923072ba 622 "status": int, //状态码 0正确 其他错误
TMBOY 44:c1d8923072ba 623 "msg": string, // 错误信息
TMBOY 44:c1d8923072ba 624 "data": null
TMBOY 44:c1d8923072ba 625 }
TMBOY 44:c1d8923072ba 626 ```
TMBOY 44:c1d8923072ba 627
TMBOY 44:c1d8923072ba 628 ## Alerts更新
TMBOY 44:c1d8923072ba 629 `/saiya/update`
TMBOY 44:c1d8923072ba 630 `method:POST`
TMBOY 44:c1d8923072ba 631 `datatype:JSON`
TMBOY 44:c1d8923072ba 632 ### postbody
TMBOY 44:c1d8923072ba 633 ```javascript
TMBOY 44:c1d8923072ba 634 AlertsStruct
TMBOY 44:c1d8923072ba 635 ```
TMBOY 44:c1d8923072ba 636
TMBOY 44:c1d8923072ba 637 ### response
TMBOY 44:c1d8923072ba 638 ```javascript
TMBOY 44:c1d8923072ba 639 {
TMBOY 44:c1d8923072ba 640 "status": int, //状态码 0正确 其他错误
TMBOY 44:c1d8923072ba 641 "msg": string, // 错误信息
TMBOY 44:c1d8923072ba 642 "data": null
TMBOY 44:c1d8923072ba 643 }
TMBOY 44:c1d8923072ba 644 ```
TMBOY 44:c1d8923072ba 645