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


相关推荐
天空属于哈夫克311 天前
打造私域闭环:CRM 如何驱动企微外部客户触达
自动化·企业微信·api
梦想的旅途211 天前
企业微信外部群自动化:一期交付应聚焦双向会话闭环
java·开发语言·机器人·自动化·maven·企业微信
天空属于哈夫克311 天前
医疗私域与电商社群:企微自动化落地的行业差异
自动化·企业微信
挨踢诗人11 天前
企业微信报销审批 × 金蝶云星空 费用凭证集成解决方案
企业微信
梦想的旅途214 天前
企业微信外部群消息自动推送实战
机器人·自动化·企业微信
2501_9419820514 天前
Webhook 驱动:企业微信消息接收与自动回复
网络·机器人·自动化·企业微信
Kimgoeunlaogong15 天前
Clawdbot汉化版从零开始:Clawdbot前端控制台二次开发+UI主题定制
企业微信·前端开发·ai助手·clawdbot
金融Tech趋势派16 天前
企业微信私域实现高效增长的3步策略:精准获客+粘性留存+高效转化
大数据·人工智能·企业微信
河北小博博16 天前
OpenClaw 接入飞书 / 钉钉 / 企业微信:从 HTTP Webhook 到 WebSocket 长连接
钉钉·飞书·企业微信
金融Tech趋势派16 天前
企业微信SCRM哪个好?2026年企业微信客户管理工具服务商选型测评与金融汽车零售等行业实战指导
金融·汽车·企业微信