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 文件消息也可以复用同一个发送出口。


相关推荐
GesLuck2 小时前
Node-RED企业微信发送—群文件
android·java·企业微信
金融Tech趋势派1 天前
2026企业微信SCRM与获客系统选型指南:功能矩阵、场景适配与避坑清单
大数据·人工智能·企业微信
金融Tech趋势派1 天前
2026企业微信SCRM与服务商测评:私域获客、会话存档、AI能力全维度评估
人工智能·dubbo·企业微信
tianxiaxue12 天前
企业微信添加后如何自动改备注?
企业微信
金融Tech趋势派2 天前
食品连锁品牌私域运营:企业微信+微盛·企微管家AI SCRM打造降本提效闭环
大数据·人工智能·企业微信
tianxiaxue12 天前
企业微信如何实现进线提醒?
企业微信
梦想的旅途25 天前
企微API:外部群的主动/被动自动回复机器人
机器人·企业微信·rpa
古月开发6 天前
AI 自动写周报工具:接入企业微信推送实战
人工智能·企业微信
dblens 数据库管理和开发工具6 天前
DBLens + 企业微信智能机器人:把数据库 Agent 接入工作群
数据库·机器人·企业微信