Node-RED 企业微信机器人—文本消息

目录


一、功能目标

在第一篇的基础上,边沿检测会输出:

text 复制代码
msg.edgeType = rising 或 falling

本篇根据这个字段构造企业微信文本消息:

  • 上升沿:提示设备运行,禁止进入。
  • 下降沿:提示设备停机,并显示运行时长。

整体流程:

text 复制代码
边沿检测
    ↓
消息构造
    ↓
消息队列
    ↓
企业微信HTTP发送

二、模式值转中文

PLC 输出的模式一般是数字,企业微信消息中应转换为可读文字。

示例:

js 复制代码
function getModeName(mode) {
    const modeNum = parseInt(mode);
    switch (modeNum) {
        case 11: return "<模式名称A>";
        case 12: return "<模式名称B>";
        case 21: return "<模式名称C>";
        case 22: return "<模式名称D>";
        default: return `未知模式(${mode})`;
    }
}

注意:这里的模式名称也属于现场业务信息,写公开文章时建议用 <模式名称A> 代替。

三、构造消息模板

根据边沿类型选择模板:

js 复制代码
const messageTemplates = {
    rising: {
        template: (location, time) =>
            `【设备区域】设备运行\n` +
            `当前模式: ${location}\n` +
            `启动时间: ${time}\n` +
            `正在运行,请勿进入现场区域。\n`
    },
    falling: {
        template: (location, time, duration) =>
            `【设备区域】设备停机\n` +
            `运行时长: ${duration}\n` +
            `停机时间: ${time}\n`
    }
};

构造企业微信消息体:

js 复制代码
const edgeType = msg.edgeType || "rising";
const duration = msg.duration || "暂未记录";
const modeValue = flow.get('mode') || 0;
const location = getModeName(modeValue);
const timeStr = formatDateTime(new Date());

let content;
if (edgeType === "rising") {
    content = messageTemplates.rising.template(location, timeStr);
} else {
    content = messageTemplates.falling.template(location, timeStr, duration);
}

msg.payload = {
    msgtype: "text",
    text: {
        content: content,
        mentioned_mobile_list: ["@all"]
    }
};

return msg;

四、消息队列

文本消息进入 q-gate 消息队列。

作用:

  • 给企业微信发送加缓冲。
  • 避免瞬间多条消息连续冲击接口。
  • 后续需要暂停、排队、清空消息时,有统一控制点。

配置示例:

text 复制代码
defaultState:open
maxQueueLength:20
keepNewest:true
persist:true

五、企业微信HTTP发送

使用 http request 节点:

text 复制代码
Method:POST
URL:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=<企业微信机器人KEY>
Return:text

六、本篇小结

本篇完成了企业微信文本报警:

text 复制代码
rising  -> 设备运行消息
falling -> 设备停机消息

架构上保留了消息队列,后续 PDF 文件消息也可以复用同一个发送出口。


相关推荐
北漂燕郊杨哥3 天前
企业微信机器人 ↔ 扣子智能体 桥接服务程序WeCom-Coze Bridge
golang·机器人·企业微信·扣子·扣子智能体
正在走向自律3 天前
企业微信与DeepSeek大模型深度融合技术实践——智能消息、小程序及多媒体交互全方案
企业微信·小程序开发·deepseek大模型·多模态交互·智能消息·办公智能化
梦想的旅途24 天前
JavaScript 实现企业微信消息自动发送的技术实践
运维·javascript·自动化·企业微信
wechatbot8884 天前
企业微信 AI 自动化运营:RPA 与 API 方案效果实测
人工智能·微信·自动化·企业微信·rpa
金融Tech趋势派5 天前
金融行业如何用企业微信大圆提升客户服务效率?
人工智能·企业微信
王者鳜錸5 天前
企业解决方案二十一-企微消息接收后提炼关键信息并转发方案实现
企业微信·消息接收·消息提炼转发·消息分析·自动化作业
chenyulin45456 天前
企业微信API二次开发:万级并发回调下的极致幂等性设计与防重放架构实战
大数据·人工智能·安全·架构·企业微信
梦想的旅途26 天前
利用 API 实现企业微信消息自动化推送
运维·自动化·企业微信
小懿互联集成平台6 天前
企业微信与金蝶云星空业财审批一体化对接实施方案
数据分析·企业微信·金蝶云星空·小懿互联·数据集成对接·采购申请审批·费用报销审批
2501_941982056 天前
企业微信二下开发:自动发送图片让社群活动海报精准送达?
企业微信