lanhemeng 发表于 2018-1-14 19:44:09

自定义设备通过Node-red接入HA--MQTT

本帖最后由 lanhemeng 于 2018-1-14 19:44 编辑

1.先参考囧神的帖子安装MQTTUbuntu安装Mosquitto也就是MQTT(无坑版);
2.在configuration.yaml添加如下代码:

mqtt:
broker: 127.0.0.1
port: 1883
client_id: home-assistant-1
keepalive: 60
username: mqtt
password: MQTT
discovery: true

3.在configuration.yaml中添加sensor, 这里以攀藤G5S PM2.5,甲醛,温湿度三合一传感器为例;参考了大神的帖子
攀藤G5+WidoraAIR(ESP32) 空气质量检测 接入HomeAssistant

sensor:

- platform: mqtt
    state_topic: 'dev/ptg5s'
    name: 'HCHO'
    unit_of_measurement: 'mg/m3'
    value_template: '{{ value_json.HCHO}}'
- platform: mqtt
    state_topic: 'dev/ptg5s'
    name: 'PM2.5'
    unit_of_measurement: 'μg/m3'
    value_template: '{{ value_json.pm2p5}}'
- platform: mqtt
    state_topic: 'dev/ptg5s'
    name: 'PM1.0'
    unit_of_measurement: 'μg/m3'
    value_template: '{{ value_json.pm1p0}}'
- platform: mqtt
    state_topic: 'dev/ptg5s'
    name: 'PM10'
    unit_of_measurement: 'μg/m3'
    value_template: '{{ value_json.pm10}}'

4.Node FL程序


A.添加serial 串口节点,并设置串口


B.添加Function节点,并填充以下JS代码;
arry = new Uint8Array(msg.payload);
PM1CF=arry*256+arry;
PM25CF=arry*256+arry;
PM10CF=arry*256+arry;
PM1DQ=arry*256+arry;
PM25DQ=arry*256+arry;
PM10DQ=arry*256+arry;
HCHO=(arry*256+arry)/1000;
T=(arry*256+arry)/10;
H=(arry*256+arry)/10;
Version=arry;
Err=arry;

global.set("PM1CF",PM1CF);
global.set("PM25CF",PM25CF);
global.set("PM10CF",PM10CF);
global.set("PM1DQ",PM1DQ);
global.set("PM25DQ",PM25DQ);
global.set("PM10DQ",PM10DQ);
global.set("HCHO",HCHO);
global.set("T",T);
global.set("H",H);
global.set("Version",Version);
global.set("Err",Err);

var msg1 = { payload:PM1CF};
var msg2 = { payload:PM25CF};
var msg3 = { payload:PM10CF};
var msg4 = { payload:PM1DQ};
var msg5 = { payload:PM25DQ};
var msg6 = { payload:PM10DQ};
var msg7 = { payload:HCHO};
var msg8 = { payload:T};
var msg9 = { payload:H};
var msg10 = { payload:Version};
var msg11 = { payload:Err};

return ;

C.以甲醛为例,再添加一个Function,添加如下代码;
msg.payload={"HCHO": parseFloat(msg.payload)}
return msg;


C.添加一个MQTT输出节点,并新添加一个MQTT Server


D.依次添加其他Sensor,部署,完成接入


这里只是以串口设备为例,其他设备如485 modbus,WebSocket等设备也可以通过这种方法接入,非常简单;

完整Node FL 如下:
**** Hidden Message *****



wanyakui520 发表于 2018-1-14 20:41:50

谢谢大神,我马上去试试

alei643 发表于 2018-1-14 22:22:52

终于有干货了

superz_xp 发表于 2018-1-14 22:46:30

LZ是通过什么设备接传感器的啊?

lanhemeng 发表于 2018-1-15 11:45:34

superz_xp 发表于 2018-1-14 22:46
LZ是通过什么设备接传感器的啊?

树莓派,接的传感器,HA装在服务器里了

qq412498569 发表于 2018-1-15 17:24:14

学习以下

angelyangw 发表于 2018-1-16 09:24:34

感谢大神分享

hewh79 发表于 2018-1-17 11:21:01

学习学习,提高高

k_xg9 发表于 2018-1-17 15:34:53

谢谢分享

Nutrition-x 发表于 2018-1-18 17:03:31

学习以下
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 自定义设备通过Node-red接入HA--MQTT