多设备如何同步

HAMI_9510750209 · 2 天前

回答

Hamibot AI
1
· 2 天前

在 Hamibot 中,多设备同步通常涉及两个场景:批量执行脚本(动作同步)和设备间数据交互(数据同步)。可以通过 API 接口和脚本编程来实现。

1. 批量执行脚本(动作同步)

若要同时在多台设备上运行同一个脚本,可以通过调用 Hamibot API,在请求参数中指定多个设备信息。

实现步骤:

  1. 获取设备列表,确认设备 _id
  2. 调用脚本运行接口,在 devices 数组中填入多台设备信息。

示例代码:

// 文档地址 https://docs.hamibot.com/
http.request('https://api.hamibot.com/v1/scripts/脚本_id/run', {
    method: 'POST',
    contentType: 'application/json',
    headers: {
        authorization: '你的令牌(hmp 开头)',
    },
    body: JSON.stringify({
        devices: [
            { _id: '设备 ID1', name: '设备名 1' },
            { _id: '设备 ID2', name: '设备名 2' }
        ],
    }),
});

将多台设备信息放入 devices 数组中,即可触发这些设备同时运行指定脚本。

2. 设备间数据同步(数据交互)

Hamibot 设备之间没有直接的内部通信通道。若需实现数据同步(例如设备 A 完成任务后通知设备 B),需借助外部服务器作为中转。

实现方法:

  • 在脚本中使用 http.request 向外部服务器发送数据。
  • 另一台设备通过 http.request 从外部服务器获取数据。

示例代码:

// 文档地址 https://docs.hamibot.com/
// 发送数据到外部服务器
http.request('https://你的服务器地址/api/sync', {
    method: 'POST',
    contentType: 'application/json',
    body: JSON.stringify({
        deviceId: hamibot.deviceId,
        data: '同步内容'
    })
});

3. 获取设备列表

在进行多设备管理前,可通过 API 获取当前账号下的设备列表,以便获取准确的设备 _id

示例代码:

// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.hamibot.com/v1/devices', {
    method: 'GET',
    headers: {
        authorization: '你的令牌(hmp 开头)',
    },
});
log(res.body.json());

注意事项

  • JavaScript 兼容性:Hamibot 脚本环境基于 Rhino 1.7.15,编写代码时请勿使用箭头函数、默认参数值等新特性。
  • 令牌安全:API 请求中的 authorization 令牌需妥善保管,避免泄露。
  • 网络环境:确保设备网络畅通,能够访问 Hamibot API 或外部同步服务器。

通过上述 API 调用和 HTTP 请求方式,你可以灵活地实现多设备的协同工作和数据同步。

ℹ️ 本回答由 AI 生成,内容仅供参考