远程控制API
INFO
本文档描述了一套完整的远程控制设备的API接口,支持查看MCP工具列表、唤醒、重启、消息发送、获取设备信息、设备设置等功能。
1. 获取MCP工具列表
基本信息
- 接口路径:
/xiaozhi/tools/list - 请求方法: POST
- 认证方式: API Key
请求参数
json
{
"device_id": "string",
"common": "boolean"
}参数说明:
device_id(string, required): 设备 MAC 地址,例如:00:11:22:33:44:55common(boolean, optional, default=true):true: 对应设备端mcp_server.cc中的CommonTools列表false: 对应设备端mcp_server.cc中的UserOnlyTools列表
响应示例
json
{
"code": 200,
"msg": "OK",
"data": {
"tools": [
"self.get_system_info",
"self.reboot",
"self.upgrade_firmware",
"self.screen.get_info",
"self.screen.snapshot",
"self.screen.preview_image",
"self.assets.set_download_url",
"self.wake_up",
"self.send_command",
"self.get_device_state"
]
}
}2. 远程控制接口
用于调用设备端指定的工具。
基本信息
- 接口路径:
/xiaozhi/tools/call - 请求方法: POST
- 认证方式: API Key
请求参数
json
{
"device_id": "string",
"name": "string",
"arguments": {}
}参数说明:
device_id(string, required): 设备 MAC 地址,例如:00:11:22:33:44:55name(string, required): 工具名称arguments(object, optional): 工具调用参数,默认为空
响应示例
以唤醒请求为例,返回结果如下:
json
{
"code": 200,
"msg": "OK",
"data": {
"content": [
{
"type": "text",
"text": "true"
}
],
"isError": false
}
}3. 远程控制接口示例
本部分列举常见的远程控制接口的调用示例。
- 工具名称
name请参考:1. 获取MCP工具列表 - 工具调用参数
arguments请参考:设备端 MCP 工具定义。
3.0 获取系统信息
请求参数:
json
{
"device_id": "string",
"name": "self.get_system_info",
"arguments": {}
}响应示例:
json
{
"code": 200,
"msg": "OK",
"data": {
"content": [
{
"type": "text",
"text": "{\"version\":2,\"language\":\"zh-CN\",\"flash_size\":16777216,\"minimum_free_heap_size\":\"7116772\"}}"
}
],
"isError": false
}
}3.1 重启设备
请求参数:
json
{
"device_id": "string",
"name": "self.reboot",
"arguments": {}
}响应示例:
json
{
"code": 200,
"msg": "OK",
"data": {
"content": [
{
"type": "text",
"text": "true"
}
],
"isError": false
}
}3.2 唤醒设备
请求参数:
json
{
"device_id": "string",
"name": "self.wake_up",
"arguments": { "reason": "你好小智" }
}3.3 发送指令(短文本)
请求参数:
json
{
"device_id": "string",
"name": "self.send_command",
"arguments": { "text": "定个闹钟" }
}DANGER
注:
发送指令要求:请先调用唤醒设备接口让设备进入Listening状态,否则会调用失败;发送指令(短文本)要求:text字段字符数小于 10,否则会调用失败;- 长文本请使用
发送指令(长文本)接口。
3.4 发送指令(长文本)
暂不开放,有需求联系群主。
3.5 获取设备对话状态
请求参数:
json
{
"device_id": "string",
"name": "self.get_device_state",
"arguments": {}
}响应示例:
json
{
"code": 200,
"msg": "OK",
"data": {
"content": [
{
"type": "text",
"text": "{\"state\":\"idle\"}"
}
],
"isError": false
}
}参数说明:
state(string): 设备当前对话状态,可能的值包括:unknown- 未知状态starting- 启动中wifi_configuring- WiFi 配置中idle- 空闲connecting- 连接中listening- 监听中(正在对话)speaking- 播报中upgrading- 升级中activating- 激活中audio_testing- 音频测试中alarm- 闹钟响铃中fatal_error- 致命错误
3.6 获取设备硬件状态
请求参数:
json
{
"device_id": "string",
"name": "self.get_device_status",
"arguments": {}
}响应示例:
json
{
"code": 200,
"msg": "OK",
"data": {
"content": [
{
"type": "text",
"text": "{\"audio_speaker\":{\"volume\":80},\"screen\":{\"brightness\":80,\"theme\":\"light\"},\"battery\":{\"level\":95,\"charging\":false},\"network\":{\"type\":\"wifi\",\"ssid\":\"12_404\",\"signal\":\"medium\"}}"
}
],
"isError": false
}
}3.7 调整音量
请求参数:
json
{
"device_id": "string",
"name": "self.audio_speaker.set_volume",
"arguments": { "volume": 50 }
}参数说明:
volume(int, required): 音量,取值范围 0-100
3.8 调整屏幕亮度
请求参数:
json
{
"device_id": "string",
"name": "self.screen.set_brightness",
"arguments": { "brightness": 50 }
}参数说明:
brightness(int, required): 屏幕亮度,取值范围 0-100
3.9 拍照答疑
WARNING
适用于接入摄像头的设备。
请求参数:
json
{
"device_id": "string",
"name": "self.camera.take_photo",
"arguments": { "question": "这道题怎么做" }
}参数说明:
question(string, required):基于拍照的图片,回答你的问题
3.10 开关灯光
WARNING
适用于接入 Led 灯的设备。
请求参数:
json
{
"device_id": "string",
"name": "self.led.turn_on",
"arguments": {}
}json
{
"device_id": "string",
"name": "self.led.turn_off",
"arguments": {}
}json
{
"device_id": "string",
"name": "self.led.set_brightness",
"arguments": { "brightness": 50 }
}3.11 更多
更多接口需求,可联系群主定制化开发。
