#教學 打造你的智慧家庭吧! 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 進入以下網址 https://notify-bot.line.me/zh_TW/ 右上角點 "登入"
megapx
登入你的 Line 帳號
megapx
登入後網頁滑到底點選 "登錄服務"
megapx
照著圖片填入,填完後點選下方 "同意並前往下一步" .服務名稱:智慧家庭通知 .服務概要:智慧家庭通知 .服務網址:你的 HA 網址 .企業/經營者名稱:智慧家庭通知 .所在國家/地區:台灣 .負責人姓名:智慧家庭通知 .電子郵件帳號:填入你可以收到信的email .Callback URL:https://google.com
megapx
(服務名稱會直接影響到你接收到通知時的標題,你隨時都可以回來這頁面更改名稱,我後續會說明) 按下 "登錄"
megapx
寄送驗證Email成功
megapx
至Email中收信,並點選 "Line Notify註冊用網址"
megapx
驗證完成,點選 "前往服務一覽"
megapx
點選剛剛建立的 "智慧家庭通知"
megapx
按下 "顯示"
megapx
記錄下你的 Client ID 以及 Client Secret
megapx
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:https://google.com
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
全部留言