NodeRed应用——一步实现批量解析Json传感器数据和HomeAssistant自动发现

   1 前言

本文章原文发表于我的微信公众号,请大家关注阅读,涉及的源代码等都在公众号,扫描以下二维码即可关注。

也可点击链接访问:一步实现批量解析Json传感器数据和HomeAssistant自动发现

2.概述

前面分两章分别讲了如何解析Json传感器数据和在HomeAssistant中的自动发现,它们是相对独立的功能,如果按照以上方式同时处理多个传感器数据则需要使用大量的节点,且过程繁杂;为解决这个问题我设计了一套流程,只需要使用几个节点就可一步实现解析和自动发现,且只需要简单定义即可。

另:新关注朋友如需阅读前期的这两篇文章可点击下方链接读取:

用NodeRed解析Json数据

用NodeRed在HomeAssistant中自动发现实体--传感器

3.流程基本原理

第一步:首先定义各传感器数据,如:键、topic路径、设备类型、生成实体的参数、前端显示的名称、数据计算规则等并把它们定义为一个flow全局变量,同时把自动发现参数发布至HomeAssistant,且自动发现无需设置。

图片

     以上是我定义的数据表,看似复杂,实则很简单,可以用excel做一张表,然后复制进去即可。

第二部:处理Json数据,我这里是订阅的Modus网关采集的数据,然后用函数批量处理后发布至HomeAssistant,当然这个流程完全可以解析任何Json数据。

完成以上步骤就完成了Json数据的采集分析与HA自动发现。

4.流程使用方法详解

这里不讲流程的具体开发流程,只讲如何使用,我的目的是让朋友们能够拿来就用,以下是整个流程图:

图片

以上流程中前三排流程在实际使用中没有任何用处,只是在调试过程中使用,方便输出调试数据。

首先修改定义函数定义节点,导入以上流程后修改函数定义项目:

图片

数据表作用和定义如下:

id:为项目的序号,不要重复;

Notes:为在HA中显示的名称,即FriendName;

Key:为在Json数据中的键名:如{"energy":62.1},就填energy;

Path:用于区分不同设备的topic路径,可不设,如不设请留空;

DrvClass:设备类别,需是HA支持的设备类型;

UOM:单位,仅用于传感器;

icon:自定义的图标,如不指定请留空;

entities:HA实体英文名,不能使用中文,且不能重复;

Calc:计算式,如果需要进行计算,请填写公式,如不进行计算,请直接填写Payload;

正确填写完成以上值后,设置就基本完成。可以触发“输出Modus-Json内容”节点,输出数据表的内容,如下所示:

图片

检查完成以上数据无误后,就可以连接各MQTT节点,流程中的光伏监控和能源监控是我的两个Modbus网关,具体设置可参考前面的文章,发布至HA节点请正确填写HA的MQTT服务器地址,然后触发一次自动发现节点就可以运行,不管有多少个实体,HA都会自动完成发现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值