使用Home Assistant 搭配 Tasmota 裝置,建置家庭智慧型遙控器!-使用NodeMCU完成遙控器
一開始參考了一些號稱可以拿來當作智慧型遙控器使用的產品,但是他們大多來路不明,如果使用者想要進一步的使用如 Google Assistant 之類的服務,使用者還必須容忍它們使用 wifi、連線到外部的服務,和來路不明的伺服器連線好來完成工作,而且不知道這些產品的會蒐集什麼樣的資料、能夠存活到什麼時候。
所以找到了 Tasmota 這個專案,他支援了很多基於 esp8266 系列的產品,總之台灣沒看到幾個。還不如自己買 8266 的晶片配零件來組裝。
我購買了 nodemcu 來進行安裝,因為 esp 晶片還要自己處理 Serial 的問題,所以乾脆買人家裝好的板子來用,不知道如何挑選可以參考這篇文章
Tasmota 一開始是一個專案,主要是將 sonoff 的產品內的韌體替換成開源系統的專案,使用者可以藉此擺脫 sonoff 的伺服器,直接在區域連線控制。目前已經支援對 ESP8266 及其後續的系列的晶片的韌體。使用者只要購買了基於 esp8266 晶片的產品,並且 tasmota 官方有支援該型號就可以刷囉。
而 Home Assistant 則是一個家庭 IOT 管理的中樞,可以管理各種支援的 IOT 裝置,還可以跟Google Assistant 還有 Homekit 連結。
MQTT 是 IOT 界常用的傳輸協定,他非常的輕量化,是 IOT 界常用的協定,這邊就不贅述了。
硬體需求:
Raspberry pi 4 x1micro SD x1nodemcu x1IRsend:2N3904 x1TSAL6400 x1IRreceive:KY-022 x1麵包版連接線 數量隨喜
接線參考
之後會再補上我的接線圖
首先,先前往下載 tasmotizer,接著下載 tasmta-ir 的韌體。
接著開啟 tasmotizer,先插上裝置,選擇適當的 port (不知道可以去裝置管理員尋找)
選擇剛剛下載的映像檔,勾選 self-restoring device,接著將裝置拔除,按著板子上的 FLASH、插上線,點選 tasmotize!
(想要使用 send config 請另外研究,個人沒有成功過)
接下來必須準備安裝 home assistant (下稱 HA) 了,先前往下載 raspberry pi imger,然後從 other specific-purpose 中選擇 home assistant OS,寫入到記憶卡中之後,插到 raspberry 主機中、開機。即可到 homeassistant.local:8123 中檢視,稍待約20分鐘機器完成配置之後就可以進入畫面了,完成前置設定之後就可以進入系統畫面了。
HA 要跟 tasmota (下稱TA)通訊,需要使用 mqtt 協定,整個網路中需要一個負責處理 mqtt 的中繼伺服器,稱之為 mqtt broker 因此需要在 HA 中安裝 mqtt broker
別忘了啟動他,接著可以到 設定/裝置與服務/mqtt 點選設定/重新設定MQTT,可以在裡面看到使用者名稱以及密碼。這就是稍後TA在連線到borker時會用到的帳號密碼,也可以自己設定帳密,總之記得在這裡就好。
接下來轉向 tasmota,configuration>Configure Other> MQTT enable
回到上一頁,選擇 Configure MQTT
Host:HA的IP
Port:兩邊一樣就可以
Client:剛剛紀錄的帳號
Password:剛剛紀錄的密碼
Topic:設定一個喜歡的主題關鍵字
存檔後,移向首頁
這裡是 cmnd/IR/
接下來需要在 HA 裡面設定一個按鈕,好讓你可以遙控:需要先準備好要遙控的資料,這時候就需要將接收器組裝起來了,接收器接收到時就會在 console log 的頁面顯示出來 (因為前面已經設定好 IRreceive 的腳位了) 這是接收器收到電風扇遙控的紀錄。
{"Protocol":"NEC","Bits":32,"Data":"0xFF00FF","DataLSB":"0xFF00FF","Repeat":0}
接下來,打開 configuration 檔案進行編輯,如果不知道可以參照這篇來進行。
輸入了這些文字,隨後在開發者工具內選擇重新載入所有的 YAML 設定,馬上就可以看到新的按鈕出現在主頁了!
當然還有各種不同的種類的開關可以使用,有按鈕、開關、風扇、門鎖之類的都可以在這邊搜尋,按鈕的還有更詳細的設定可以修改,可以隨自己的需求新增。
mqtt:button:- command_topic: "cmnd/IR/irsend"payload_press: '{"Protocol":"NEC","Bits":32,"Data":"0xFF00FF","DataLSB":"0xFF00FF","Repeat":0}'name: "3F小房間電扇"
之後要來研究如何讓他透過 Google assistant 來控制了。
目前連線都沒有加密,這也是之後想研究的題目。
參考:
https://tasmota.github.io/install/
https://tasmota.github.io/docs/IR-Remote/
留言
張貼留言