#教學 打造你的智慧家庭吧! HA 串接 Line 推播通知

這篇文章算是我下禮拜的開箱文的預備知識
megapx
Line 為最多台灣人使用的通訊軟體,雖然它一直被許多人罵,太肥大啦,漏通知啦,備份機制差啦一堆問題,但是仍然無法撼動它在台灣的市占率XD Home Assistant 有一狗票的通知服務,可以參考下面連結
其中台灣人有聽過的幾個應該是 Discord、Facebook Messenger、Google Hangouts、Pushbullet、Telegram、Twitter 列了這些就是沒有 Line (如果有的話我也不用打這篇教學了) 於是 Yunseok Oh 這位網友就利用了 Line Notify 的 API,寫了一個 HA 的客製元件 Line Notify 可以透過 Line 來接收其他網站服務通知 首先,從作者的 GitHub 上下載客製元件
將下載下來的客製元件解壓縮後放置在 HA 的根目錄,完整資料夾路徑為 \custom_components\notify_line\
megapx
因為舊版本的緣故,若是你的 HA 版本為 0.88 以下(不含),你需要將 \custom_components\notify_line\ 底下的 notify.py 改名為 notify_line.py,然後把他移到 \custom_components\ 底下,原本的 notify_line 資料夾可直接刪除 接下來設定 Line Notify 的部分 首先,先加入 Line Notify 的 Line 官方帳號,沒加入的話你就無法使用 Line Notify 通知服務 ID搜尋 " @linenotify " 就可以將 Line Notify 官方帳號加入好友 或是你可以直接掃這個 QRcode
megapx
再來我們需將 Home Assistant 登錄進 Line Notify 進入以下網址
右上角點 "登入"
megapx
登入你的 Line 帳號
megapx
登入後網頁滑到底點選 "登錄服務"
megapx
照著圖片填入,填完後點選下方 "同意並前往下一步" .服務名稱:智慧家庭通知 .服務概要:智慧家庭通知 .服務網址:你的 HA 網址 .企業/經營者名稱:智慧家庭通知 .所在國家/地區:台灣 .負責人姓名:智慧家庭通知 .電子郵件帳號:填入你可以收到信的email .Callback URL:
megapx
(服務名稱會直接影響到你接收到通知時的標題,你隨時都可以回來這頁面更改名稱,我後續會說明) 按下 "登錄"
megapx
寄送驗證Email成功
megapx
至Email中收信,並點選 "Line Notify註冊用網址"
megapx
驗證完成,點選 "前往服務一覽"
megapx
點選剛剛建立的 "智慧家庭通知"
megapx
按下 "顯示"
megapx
記錄下你的 Client ID 以及 Client Secret
megapx
將以下網址的 [填入你的Client ID] 替換成你的 Client ID
[填入你的Client ID]&redirect_uri=
megapx
例如,你的 Client ID 是 abcd1234,那你的網址就會是
megapx
將以上網址貼入瀏覽器網址列並進入,會進入下圖的頁面 選擇 "透過1對1聊天接收LINE Notify的通知",然後按下 "同意並連動" 接下來會跳回 Google 的首頁,不要急著關掉!!!
megapx
連動後你的手機會馬上收到通知
megapx
跳回 Google 首頁後你會發現網址列有 code=xxxxxx&state....... 將xxxxxx的部分記錄下來
megapx
下載 Postman 工具
選擇你電腦相對應的版本
megapx
下載後安裝
megapx
安裝完會自動開啟,並要求你註冊,你可以使用 Email 註冊或懶人如我直接使用 Google 登入
megapx
註冊後會帶你到主頁面,預設會是白色主題
megapx
將 GET 改成 POST 在旁邊的 Enter request URL 填入
megapx
照著圖中新增 KEY 的欄位並填入 VALUE 後按下 Send .client_id:你的 Client ID .client_secret:你的 Client Secret .code:回傳網址的 code .grant_type:authorization_code .redirect_uri:
megapx
下方你會看到回傳回來的 access_token,記錄此 access_token
megapx
開啟 HA 的 configuration.yaml,並照著下圖新增
megapx
上圖中我提到可以新增多個 Line Notify,相對的你就要登錄多個服務 可以看到下圖,都是由 HA 發出的測試通知,但是標題都不一樣,這就是在登錄服務時我說的 "服務名稱會直接影響到你接收到通知時的標題"
megapx
在 configuration.yaml 的 notify: 底下新增完 notify_line 客製元件後,到 Configuration→General→CHECK CONFIG,確認過設定是無誤的後即可重啟 HA
megapx
重啟 HA 後直接來測試 Line Notify 是否可以正常發送通知 在 Developer tools 底下選擇 < > States
megapx
下拉選單中選到你剛剛在 configuration.yaml 中設定的 Line 通知名稱
megapx
Service Data (JSON, optional) 中填入 {"message":"測試"}
megapx
如果你的 Line 有收到通知就代表成功啦
megapx
這邊我必須說明一下,若是你想推播通知的對象不是你自己,你有兩種方法 1. 將 Line Notify 這個 bot 拉進你要傳送通知的那個人的對話,這將會變成群組,然後為這個群組生成一組 access_token,也就是再到 Line Notify 網站登錄一個服務 2. 使用你要傳送通知的那個人的帳號密碼登入 Line Notify 網站,幫他登錄 "透過1對1聊天接收LINE Notify的通知" 的服務後產生 access_token 我在前面有說你隨時都可以回去改通知標題 (服務名稱),一樣進入下列網址
登入後點選你帳號名的下拉選單,點選管理登錄服務
megapx
點選你要更改通知標題的服務
megapx
直接改你要的服務名稱,儲存後會馬上生效
megapx
最後,來看一下這 Line Notify 通知要怎麼運用 Line Notify 可用在 Automation 自動化、Script 腳本,有使用過這兩個的一定都知道寫法基本上是一樣的,只不過前者是放在 action: 底下,後者是放在 sequence: 底下 我們從 Script 開始 基本的文字通知,注意,不管是何種通知,message: 都是必要的
megapx
也可以使用 data_template template 的用法屬於進階的玩法,可以參考官方文件如何使用 template
megapx
可以使用貼圖通知,可用的貼圖表如下列網址
megapx
使用目錄絕對路徑來傳送圖片
megapx
使用圖片網址來傳送圖片 與上面的絕對路徑法可以同時設定,但是使用 file: 後 url: 會自動被忽略
megapx
文字使用data_template+貼圖+圖片的通知
megapx
再來是自動化通知,與上面的腳本大同小異,只要會設定腳本的 Line Notify 通知 自動化就一定會
megapx
megapx
下週要開箱的小玩具,可以搭配這個 Line Notify 來做通知
愛心
201
43
全部留言