生活随笔
收集整理的這篇文章主要介紹了
HomeAssistant和Node-Red
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
HomeAssistant和Node-Red結(jié)合教程
說下背景:
node-red做自動(dòng)化,協(xié)議解析,采集,轉(zhuǎn)發(fā),函數(shù),都是很好用的。因?yàn)樗兄浅XS富的第三控件。但是奈何dashboard太丑了,沒法滿足要求。另一方面Hass的lovelace就很驚艷,還有著非常豐富的UI組件,權(quán)限控制。兩者結(jié)合下就非常好了,就像前后端分離。
前期準(zhǔn)備:
1.linux基本操作
2.docker
開始搞事
第一部分 node-red
1.node red 安裝:
docker run
-d
-p
1880:1880 -p
10502:10502 --restart
=always
-e TZ
="Asia/Shanghai" -v myNodeREDdata
:/data
--name mynodered nodered
/node
-red
注釋1:1880 就是你訪問 node-red頁(yè)面的端口
注釋2:為啥要多 -p 出來個(gè)10502呢?因?yàn)槲沂窍胗胣ode-red做個(gè)modbus server的轉(zhuǎn)發(fā)*
2.關(guān)于node-red的一些注意事項(xiàng):
https
://blog
.csdn
.net
/qq_36393991
/article
/details
/115692049
在這里我寫了一點(diǎn)
3.node-red的使用
注釋1:
基本控件的使用,dashboard ,S7,modbus等等的看教程
注釋2:
S7的使用 注意兩點(diǎn),
一是 西門子200,200smart這類型號(hào)的配置,紅框里的要注意,必須是這樣
二是 V區(qū)的變量配置: V區(qū) V直接換成X ,如果是V VD這種去掉V
**注釋3:**modbus
我貼個(gè)代碼吧,可以導(dǎo)入看看
[{"id":"6ee4efcd.713c","type":"tab","label":"modbus 收 分 發(fā) 轉(zhuǎn)","disabled":true,"info":""},{"id":"c862bafc.693f68","type":"modbus-read","z":"6ee4efcd.713c","name":"readtest","topic":"","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"","dataType":"HoldingRegister","adr":"0","quantity":"40","rate":"1000","rateUnit":"ms","delayOnStart":false,"startDelayTime":"","server":"10d01abc.038e85","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":700,"y":40,"wires":[["21c15648.f3c7ca"],[]]},{"id":"21c15648.f3c7ca","type":"debug","z":"6ee4efcd.713c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":850,"y":40,"wires":[]},{"id":"ed67fd66.960db","type":"modbus-read","z":"6ee4efcd.713c","name":"test","topic":"test","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"1","dataType":"HoldingRegister","adr":"0","quantity":"40","rate":"1000","rateUnit":"ms","delayOnStart":false,"startDelayTime":"","server":"9ccfb0bc.4b34b","useIOFile":false,"ioFile":"","useIOForPayload":false,"emptyMsgOnFail":false,"x":90,"y":120,"wires":[["b06affd6.08e8b","dec62b51.4e90e8","72b7aa0e.1932f4"],[]]},{"id":"b06affd6.08e8b","type":"modbus-write","z":"6ee4efcd.713c","name":"","showStatusActivities":false,"showErrors":false,"unitid":"","dataType":"MHoldingRegisters","adr":"0","quantity":"40","server":"10d01abc.038e85","emptyMsgOnFail":false,"keepMsgProperties":false,"x":280,"y":120,"wires":[[],["5d5be7ef.0cf4f8"]]},{"id":"5d5be7ef.0cf4f8","type":"modbus-server","z":"6ee4efcd.713c","name":"","logEnabled":false,"hostname":"0.0.0.0","serverPort":10502,"responseDelay":100,"delayUnit":"ms","coilsBufferSize":10000,"holdingBufferSize":10000,"inputBufferSize":10000,"discreteBufferSize":10000,"showErrors":false,"x":500,"y":120,"wires":[[],[],[],[],[]]},{"id":"dec62b51.4e90e8","type":"debug","z":"6ee4efcd.713c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":270,"y":40,"wires":[]},{"id":"72b7aa0e.1932f4","type":"function","z":"6ee4efcd.713c","name":"","func":"var newDate = new Date()\nvar ts=newDate.toLocaleString( )\nvar msg3 = {data:msg.payload[3],ts:ts};\nvar msg5 = {data:msg.payload[5],ts:ts };\nvar msg10 = {data:msg.payload[10],ts:ts };\nreturn [msg3,msg5,msg10];","outputs":3,"noerr":0,"initialize":"","finalize":"","libs":[],"x":250,"y":200,"wires":[["99d42b25.71e748"],[],[]]},{"id":"99d42b25.71e748","type":"debug","z":"6ee4efcd.713c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"ts","targetType":"msg","statusVal":"","statusType":"auto","x":440,"y":320,"wires":[]},{"id":"10d01abc.038e85","type":"modbus-client","name":"","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"0.0.0.0","tcpPort":"10502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":1,"commandDelay":1,"clientTimeout":1000,"reconnectOnTimeout":true,"reconnectTimeout":2000,"parallelUnitIdsAllowed":true},{"id":"9ccfb0bc.4b34b","type":"modbus-client","name":"modbus104","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"10.86.3.104","tcpPort":"503","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","unit_id":"1","commandDelay":"1","clientTimeout":"1000","reconnectOnTimeout":true,"reconnectTimeout":"2000","parallelUnitIdsAllowed":true}]
4.node-red使用 Hass
暫時(shí)省略,不過需要注意的是,只是node-red單獨(dú)導(dǎo)入node-red-contrib-home-assistant-websocket 并且配置了hass 也是沒法使用的,必須在hass里面也安裝node-red的插件才可以
5.node-red使用郵箱
暫時(shí)省略
第二部分 HASS
1.HASS安裝
docker run --init -d --Restart
=always --name
="home-assistant" -e
"TZ=Asia/Shanghai" -v /opt/homeassistant:/config --net
=host homeassistant/home-assistant:latest
端口號(hào) 8123 啟動(dòng)
2.下載HACS 壓縮包
HACS可以簡(jiǎn)單理解 就是HASS的應(yīng)用商店,可以在這邊安裝node-red的插件,想到哪說到哪吧,就是在這邊安裝也不現(xiàn)實(shí) ,因?yàn)槭欠瓑θithub下載,基本不可能安裝成功,所以我是自己電腦掛VPN,下載好文件后,放在custom_components文件夾里,(custom_components一般是沒有的,需要手動(dòng)創(chuàng)建,創(chuàng)建的位置就是你 掛在出來的文件夾里 例:/opt/homeassistant/custom_components/),要自己下載文件但是怎么知道插件地址呢?這時(shí)候你可以在HACS中搜索
紅框點(diǎn)擊 就可以去到該插件的 github主頁(yè)了,要哪些文件,放在哪,怎么用github上寫的都比較清楚
弄好之后,重啟docker,在配置–集成里就可以搜索到并且添加進(jìn)來,之后你在node-red里面通過 entity控件添加的實(shí)體 都可以顯示出來
entity控件:這里有3個(gè) 一個(gè)是開關(guān)控制node-red輸出 兩個(gè)node-red輸入到hass
hass能顯示出3個(gè)實(shí)體
最后就可以配置lovelace就可以了
點(diǎn)開關(guān)可以 看到在node-red 控制臺(tái)里的輸出
最后 更高深的在研究吧
總結(jié)
以上是生活随笔為你收集整理的HomeAssistant和Node-Red的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。