回答
Hamibot本身不提供设备掉线自动发送微信通知的功能,但你可以通过编写脚本实现这一需求。以下是具体实现方案:
要实现设备掉线微信提示,你需要完成两个步骤:
- 监控设备连接状态
- 通过微信API发送通知
实现方案
首先,你需要一个脚本定期检查设备连接状态:
// 文档地址 https://docs.hamibot.com/
// 设备ID列表
var deviceIds = ['你的设备ID'];
// 检查设备状态函数
function checkDeviceStatus() {
for (var i = 0; i < deviceIds.length; i++) {
var deviceId = deviceIds[i];
// 尝试向设备发送消息来检测是否在线
var response = http.request('https://api.hamibot.com/v1/devices/' + deviceId + '/messages', {
method: 'POST',
contentType: 'application/json',
headers: {
authorization: '你的令牌(hmp开头)',
},
body: JSON.stringify({
title: '连接测试',
text: '状态检查'
}),
});
// 如果返回不是204,说明设备可能掉线
if (response.status !== 204) {
sendWechatNotification(deviceId);
}
}
}
// 发送微信通知函数(以企业微信为例)
function sendWechatNotification(deviceId) {
var wechatWebhook = '你的企业微信机器人webhook地址';
var response = http.request(wechatWebhook, {
method: 'POST',
contentType: 'application/json',
body: JSON.stringify({
msgtype: 'text',
text: {
content: '⚠️ 设备掉线提醒\n设备ID: ' + deviceId + '\n时间: ' + new Date().toLocaleString(),
mentioned_list: ["@all"]
}
})
});
if (response.status === 200) {
console.log('微信通知已发送');
} else {
console.log('发送微信通知失败: ' + response.body);
}
}
// 每5分钟检查一次
setInterval(checkDeviceStatus, 5 * 60 * 1000);
// 立即执行一次检查
checkDeviceStatus();
实现前提
-
微信通知渠道选择:
- 企业微信:需要创建企业并在管理后台添加"群机器人"
- 个人微信:需要使用第三方服务(如Server酱、PushPlus等)中转
-
获取企业微信机器人webhook:
- 在企业微信中创建群聊
- 添加"机器人"应用
- 复制提供的webhook地址替换示例代码中的
wechatWebhook变量
-
脚本部署:
- 将此脚本部署在始终在线的设备上(如不关机的手机或服务器)
- 确保该设备能正常运行Hamibot脚本
注意事项
- 这个监控脚本需要运行在不会掉线的设备上
- 企业微信机器人有调用频率限制(每分钟20次)
- 如果使用个人微信,需要借助第三方服务,可能有额外费用
- 脚本中的检查间隔可以根据需要调整(示例为5分钟)
你可以根据实际需求调整脚本,比如增加重试机制、更精确的掉线判断逻辑等。
ℹ️ 本回答由 AI 生成,内容仅供参考