您現在的位置是:首頁 > 攝影首頁攝影

Home Assistant 篇一:從Node-RED與微信推送談起

由 什麼值得買 發表于 攝影2023-01-16
簡介註冊完成後,需要在應用管理中,建立自建應用:接著上傳應用logo,可以網上找個圖片,填寫應用名稱,選擇可見範圍(直接選擇整個組織即可):接下來就是配置環境了,稍微有點麻煩,大家一定要看仔細,我們需要在企業微信中首先獲取到企業ID:然後點選

nodered是幹嘛的

最近已經寫了三篇,從

再到

從本篇開始,將慢慢來完善Home Assistant這個系列。

為何由此談起?

大家可能會比較好奇,既然是寫Home Assistant,為何卻從Node-RED與微信推送談起,因為Home Assistant涉及到的內容比較寬泛,如果第一篇就寫如何搭建它,可能會顯得比較空洞,之前沒有接觸過的童鞋不太好接受,畢竟搭建並不是核心的內容,找不到成就感 。所以本文先從Node-RED談起,並在其中完成一個簡單實用的流(只有4個節點),為後續的內容建立基礎。

當我們談智慧家居時,究竟在談什麼?

顧名思義,智慧家居的關鍵是智慧。如果你看過某些宣傳片或者聽別人講起也或正在使用,那麼可能會有所感受,我個人覺得智慧家居的核心是自動化,而不是手機或者語音控制,既是根據場景、行為、環境等條件儘可能減少人工操作而達到預期的家居控制。最簡單的例子:人離開自動關閉燈光。

而在自動化這條路上,目前個人用的比較多的,也是比較推薦的就是Node-RED,這也是篇一選擇從它談起的原因,當然它和Home Assistant的聯動,我們後面再說,本篇暫時不提。

作者家的平臺接入了哪些 ?

Home Assistant 篇一:從Node-RED與微信推送談起

Home Assistant 篇一:從Node-RED與微信推送談起

從圖上可以看出,其實我家接入的裝置並不多,因為平臺是在裝修完成幾年後才搭建的,現在接入的裝置也是逐漸替換掉了老的裝置才接入的。所以大家若有興趣,也可以像我一樣,先搭好平臺,在家居的裝置需要更換的時候,再更換為能接入平臺的新裝置,不必在意現在的是否能完全接入。

Node-RED是什麼?如何安裝?

引用兩段百度到的內容:

Node-RED是一個物聯網程式設計工具,它以新穎和有趣的方式,將硬體裝置、應用介面和線上服務連線到一起。。 它不僅提供了一個基於瀏覽器的程式設計環境和豐富的節點型別,使流程的建立變得非常容易,而且還為流程的執行提供了執行環境,實現了一鍵部署的能力。

Node-RED 是構建物聯網(IOT, Internet of Things)應用程式的一個強大工具,其重點是簡化程式碼塊的“連線”以執行任務。它使用視覺化程式設計方法,允許開發人員將預定義的程式碼塊(稱為“節點”,Node)連線起來執行任務。連線的節點,通常是輸入節點、處理節點和輸出節點的組合,當它們連線在一起時,構成一個“流”(Flows)。

如果不能理解,先繼續往下看,全篇看完以後相信就能有一定的瞭解。

我們先在群暉中安裝Node-RED,開啟群暉中的Docker,在登錄檔中搜索nodered,下載nodered/node-red這個映象,參考下面的截圖:

Home Assistant 篇一:從Node-RED與微信推送談起

Home Assistant 篇一:從Node-RED與微信推送談起

下載完成後我們雙擊該映象,然後點選高階設定先配置下

Home Assistant 篇一:從Node-RED與微信推送談起

Home Assistant 篇一:從Node-RED與微信推送談起

勾上啟用自動重新啟動

Home Assistant 篇一:從Node-RED與微信推送談起

繼續點選儲存空間,新增資料夾,按下圖進行設定,在新增過程中新建docker目錄下的nodered資料夾即可:

Home Assistant 篇一:從Node-RED與微信推送談起

接著點選埠設定,按下圖設定埠(後期我們需要用到反向代理把它給開放到公網,所以本地埠先用1881埠,1880留到反向代理用):

Home Assistant 篇一:從Node-RED與微信推送談起

接著點選環境,單擊加號,新增環境變數,可變填寫“TZ”,值為“Asia/Shanghai”,用來解決容器與主機的時間相差8小時的問題。

Home Assistant 篇一:從Node-RED與微信推送談起

點選應用,回到常規設定頁面,取消勾選“嚮導完成後執行此容器”

第三步:在File Station中找到第二步新建的 docker/nodered 資料夾,並對該資料夾增加 Everyone 的完全控制權限。右鍵nodered資料夾,屬性->許可權->新增,在許可權編輯器中的使用者或組找到Everyone,然後設定讀取和寫入許可權,然後點選完成即可,參考下圖:

Home Assistant 篇一:從Node-RED與微信推送談起

設定好後,我們回到docker中把剛剛配置好的容器啟動起來。然後訪問http://你的群暉IP:1881,就能看到廬山真面目啦 :

Home Assistant 篇一:從Node-RED與微信推送談起

一個介面的介紹:

Home Assistant 篇一:從Node-RED與微信推送談起

預設情況下Node-RED是不需要密碼進行訪問的,所以現在還不能把它開放到公網,我們需要給它設定使用密碼登入,請大家參考它的官方文件

說起來其實也不復雜,先停止容器,找到docker/nodered目錄中的settings。js檔案,取消註釋下面的內容:

adminAuth: {

type: “credentials”,

users: [

{

username: “admin”,

password: “$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN。”,

permissions: “*”

}

}

password後面的字串需要自己用想設定的密碼去生成一個,線上生成連結:,Rounds預設就好:

Home Assistant 篇一:從Node-RED與微信推送談起

用生成好的字串替換掉檔案中的字串,然後再啟動Node-RED即可看到需要密碼進行登陸了:

Home Assistant 篇一:從Node-RED與微信推送談起

賬號admin,密碼為你設定的密碼,登陸以後我們先把微信推送的外掛安裝上,點選右上角三橫線,點選設定:

Home Assistant 篇一:從Node-RED與微信推送談起

點選控制板->安裝->搜尋欄輸入biz,然後在搜尋結果中安裝截圖中的外掛:

Home Assistant 篇一:從Node-RED與微信推送談起

安裝完成後,暫時不要關閉頁面,一會兒再回來繼續配置。接下來我們說說企業微信。

為什麼要用企業微信?如何註冊企業微信?

在智慧家居中,或多或少都需要訊息通知的功能。既然是通知,那麼時效要求就比較高,並且及時能被相應的人員看到。所以我選擇使用企業微信,因為它的推送服務穩定 ,當然如郵件、簡訊等等方式也行,這裡只談企業微信。

首先註冊,官網在這裡,開啟官網後直接點選立即註冊即可。個人註冊不用進行認證,使用也不會產生費用,註冊流程很簡單,這裡就不截圖了。

註冊完成後,需要在應用管理中,建立自建應用:

Home Assistant 篇一:從Node-RED與微信推送談起

接著上傳應用logo,可以網上找個圖片,



填寫應用名稱,選擇可見範圍(直接選擇整個組織即可):

Home Assistant 篇一:從Node-RED與微信推送談起

接下來就是配置環境了,稍微有點麻煩,大家一定要看仔細,我們需要在企業微信中首先獲取到企業ID:

Home Assistant 篇一:從Node-RED與微信推送談起

然後點選應用管理,往下滑動,點開我們剛剛建立的應用,先記錄下AgentID,然後點選Secret後面的檢視(這裡需要自己先在手機上安裝好企業微信,用完後可以解除安裝掉):

Home Assistant 篇一:從Node-RED與微信推送談起

然後找到接收訊息,點選設定API接收(截圖上是因為配置過了,所以顯示的是已啟用API接收):

Home Assistant 篇一:從Node-RED與微信推送談起

按照下圖對API接收訊息進行設定(設定完成後不要點選儲存,點了也沒用,需要先配置到Node-RED,這邊點選儲存的時候會進行驗證):

Home Assistant 篇一:從Node-RED與微信推送談起

這樣我們就在企業微信中拿到了所有需要的資訊,不要關閉頁面。

現在回到Node-RED進行配置,在頁面左邊往下滑動,找到企業微信中的推送節點,拖動到工作區中,然後雙擊它,開啟編輯對話方塊,點選鉛筆按鈕進行配置:

Home Assistant 篇一:從Node-RED與微信推送談起

接下來就把我們在企業微信中記錄到的資訊全部填進去。這裡需要注意,前面在企業微信中填寫的URL是加了埠號的,這裡URL和埠需要分開填寫,同時還要保證這個URL外網能訪問到,也就是必須得有公網哦:

Home Assistant 篇一:從Node-RED與微信推送談起

填寫完成後,依次點選左上角新增->完成->部署。然後再回到企業微信點選儲存,若配置沒有問題即可儲存成功,若有問題可根據錯誤提示進行排查,也可在評論裡留言諮詢 。

儲存成功後,在微信中關注下企業微信外掛,點選我的企業->微信外掛,用手機微信掃描該頁面的二維碼:

Home Assistant 篇一:從Node-RED與微信推送談起

關注後就能看到該企業和應用了,我是置頂了的:

Home Assistant 篇一:從Node-RED與微信推送談起

Home Assistant 篇一:從Node-RED與微信推送談起

接下來先記下自己企業微信的賬號,在通訊錄中:

Home Assistant 篇一:從Node-RED與微信推送談起

記下後就可以關掉企業微信後臺。

Node-RED配置

回到Node-RED,向工作區新增一個http in的節點,並雙擊進行編輯:

Home Assistant 篇一:從Node-RED與微信推送談起

繼續新增http response節點,無需編輯,保持預設:

Home Assistant 篇一:從Node-RED與微信推送談起

繼續新增function節點,並雙擊進行編輯,輸入以下內容:

msg。payload = msg。payload。text;

msg。touser = ‘前邊獲取到你的微信賬號’;  //這樣推送資訊就只會傳送你,如果要傳送給所有人就使用:@all

return msg;

Home Assistant 篇一:從Node-RED與微信推送談起

再雙擊推送,修改下它的標題

Home Assistant 篇一:從Node-RED與微信推送談起

接著把這些節點連線起來,並點選部署:

Home Assistant 篇一:從Node-RED與微信推送談起

到此Node-RED也配置完成。

群暉簡訊服務配置

開啟群暉後臺,控制面板->通知設定->簡訊->新增簡訊服務提供商,注意IP地址和埠哈,和自己的一致:

https://192。168。1。10:1881/Home_NAS?to=886888888888&text;=Hello world

Home Assistant 篇一:從Node-RED與微信推送談起

點選下一步後,點新增,這步是為了驗證Node-RED的許可權,先生成一個加密的字串,這裡用的是Base64加密,可以在這裡生成https://base64。us/,假如我們Node-RED的密碼是admin:

Home Assistant 篇一:從Node-RED與微信推送談起

引數填入:Authorization,值填入:Basic YWRtaW4=

Home Assistant 篇一:從Node-RED與微信推送談起

點選儲存,然後繼續下一步,照圖中進行選擇:

Home Assistant 篇一:從Node-RED與微信推送談起

點選完成,回到簡訊頁面後隨便填入個電話號碼,然後點選寄送測試簡訊:

Home Assistant 篇一:從Node-RED與微信推送談起

這時手機就會收到訊息:

Home Assistant 篇一:從Node-RED與微信推送談起

最後至於需要推送哪些內容,就看自己的規則了:

Home Assistant 篇一:從Node-RED與微信推送談起

快去試試吧

寫在最後

寫了這麼多,只實現了一個小小的功能,只放在這個場景甚至可以說是可有可無的功能,因為郵件同樣可以,使用郵件客戶端也能正常推送。但正因為有了這些點滴的積累,後面的使用才會越來越順暢,自動化的複雜度在該系列的後續中也會越來越高,在複雜度提高了以後現在的積累也會讓大家更加容易理解。

同時本篇的推送服務在後續篇章中也非常常用,如電費不足的通知、燃氣費繳費的通知等等。要跟著作者繼續下去這篇是的必備的基礎哦。

好了,今天就到這裡,同樣歡迎收藏、評論、點贊。對了,還有打賞 ,下次再見 。