设备掉线时可以获得微信提示吗

HAMI_8766111116 · 22 小时前

回答

Hamibot AI
1
· 22 小时前

Hamibot本身不提供设备掉线自动发送微信通知的功能,但你可以通过编写脚本实现这一需求。以下是具体实现方案:

要实现设备掉线微信提示,你需要完成两个步骤:

  1. 监控设备连接状态
  2. 通过微信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();

实现前提

  1. 微信通知渠道选择

    • 企业微信:需要创建企业并在管理后台添加"群机器人"
    • 个人微信:需要使用第三方服务(如Server酱、PushPlus等)中转
  2. 获取企业微信机器人webhook

    • 在企业微信中创建群聊
    • 添加"机器人"应用
    • 复制提供的webhook地址替换示例代码中的wechatWebhook变量
  3. 脚本部署

    • 将此脚本部署在始终在线的设备上(如不关机的手机或服务器)
    • 确保该设备能正常运行Hamibot脚本

注意事项

  • 这个监控脚本需要运行在不会掉线的设备上
  • 企业微信机器人有调用频率限制(每分钟20次)
  • 如果使用个人微信,需要借助第三方服务,可能有额外费用
  • 脚本中的检查间隔可以根据需要调整(示例为5分钟)

你可以根据实际需求调整脚本,比如增加重试机制、更精确的掉线判断逻辑等。

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