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

2019年5月11日 11:55
這篇文章算是我下禮拜的開箱文的預備知識
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\
因為舊版本的緣故,若是你的 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
再來我們需將 Home Assistant 登錄進 Line Notify 進入以下網址
右上角點 "登入"
登入你的 Line 帳號
登入後網頁滑到底點選 "登錄服務"
照著圖片填入,填完後點選下方 "同意並前往下一步" .服務名稱:智慧家庭通知 .服務概要:智慧家庭通知 .服務網址:你的 HA 網址 .企業/經營者名稱:智慧家庭通知 .所在國家/地區:台灣 .負責人姓名:智慧家庭通知 .電子郵件帳號:填入你可以收到信的email .Callback URL:
(服務名稱會直接影響到你接收到通知時的標題,你隨時都可以回來這頁面更改名稱,我後續會說明) 按下 "登錄"
寄送驗證Email成功
至Email中收信,並點選 "Line Notify註冊用網址"
驗證完成,點選 "前往服務一覽"
點選剛剛建立的 "智慧家庭通知"
按下 "顯示"
記錄下你的 Client ID 以及 Client Secret
將以下網址的 [填入你的Client ID] 替換成你的 Client ID
[填入你的Client ID]&redirect_uri=
例如,你的 Client ID 是 abcd1234,那你的網址就會是
將以上網址貼入瀏覽器網址列並進入,會進入下圖的頁面 選擇 "透過1對1聊天接收LINE Notify的通知",然後按下 "同意並連動" 接下來會跳回 Google 的首頁,不要急著關掉!!!
連動後你的手機會馬上收到通知
跳回 Google 首頁後你會發現網址列有 code=xxxxxx&state....... 將xxxxxx的部分記錄下來
下載 Postman 工具
選擇你電腦相對應的版本
下載後安裝
安裝完會自動開啟,並要求你註冊,你可以使用 Email 註冊或懶人如我直接使用 Google 登入
註冊後會帶你到主頁面,預設會是白色主題
將 GET 改成 POST 在旁邊的 Enter request URL 填入
照著圖中新增 KEY 的欄位並填入 VALUE 後按下 Send .client_id:你的 Client ID .client_secret:你的 Client Secret .code:回傳網址的 code .grant_type:authorization_code .redirect_uri:
下方你會看到回傳回來的 access_token,記錄此 access_token
開啟 HA 的 configuration.yaml,並照著下圖新增
上圖中我提到可以新增多個 Line Notify,相對的你就要登錄多個服務 可以看到下圖,都是由 HA 發出的測試通知,但是標題都不一樣,這就是在登錄服務時我說的 "服務名稱會直接影響到你接收到通知時的標題"
在 configuration.yaml 的 notify: 底下新增完 notify_line 客製元件後,到 Configuration→General→CHECK CONFIG,確認過設定是無誤的後即可重啟 HA
重啟 HA 後直接來測試 Line Notify 是否可以正常發送通知 在 Developer tools 底下選擇 < > States
下拉選單中選到你剛剛在 configuration.yaml 中設定的 Line 通知名稱
Service Data (JSON, optional) 中填入 {"message":"測試"}
如果你的 Line 有收到通知就代表成功啦
這邊我必須說明一下,若是你想推播通知的對象不是你自己,你有兩種方法 1. 將 Line Notify 這個 bot 拉進你要傳送通知的那個人的對話,這將會變成群組,然後為這個群組生成一組 access_token,也就是再到 Line Notify 網站登錄一個服務 2. 使用你要傳送通知的那個人的帳號密碼登入 Line Notify 網站,幫他登錄 "透過1對1聊天接收LINE Notify的通知" 的服務後產生 access_token 我在前面有說你隨時都可以回去改通知標題 (服務名稱),一樣進入下列網址
登入後點選你帳號名的下拉選單,點選管理登錄服務
點選你要更改通知標題的服務
直接改你要的服務名稱,儲存後會馬上生效
最後,來看一下這 Line Notify 通知要怎麼運用 Line Notify 可用在 Automation 自動化、Script 腳本,有使用過這兩個的一定都知道寫法基本上是一樣的,只不過前者是放在 action: 底下,後者是放在 sequence: 底下 我們從 Script 開始 基本的文字通知,注意,不管是何種通知,message: 都是必要的
也可以使用 data_template template 的用法屬於進階的玩法,可以參考官方文件如何使用 template
可以使用貼圖通知,可用的貼圖表如下列網址
使用目錄絕對路徑來傳送圖片
使用圖片網址來傳送圖片 與上面的絕對路徑法可以同時設定,但是使用 file: 後 url: 會自動被忽略
文字使用data_template+貼圖+圖片的通知
再來是自動化通知,與上面的腳本大同小異,只要會設定腳本的 Line Notify 通知 自動化就一定會
下週要開箱的小玩具,可以搭配這個 Line Notify 來做通知
195
留言 43
文章資訊
87 篇文章1703 人追蹤
Logo
每天有 58 則貼文
共 43 則留言
元智大學
推一個
東海大學 電機工程學系
我還不先推爆它!🤣🤣
逢甲大學
求大大自動化腳本教學
B3 哇,這範圍太大了啦 文章可能要打好幾天欸
國立臺中科技大學 應用商學系
我上網爬了一下文,還是不太清楚他可以做什麼用,他是可以偵測誰有沒有在家還有什麼功能嗎? 我本身是用telegram 想知道HA可以做什麼 不好意思小妹不才,可以告訴我嗎?
B5 你是指 HA 能做什麼? 還是指 Telegram 在 HA 中能做什麼?
國立臺中科技大學 應用商學系
B6 嗯...是想問HA能在telegram做什麼
太酷了,這個東西 不過後續樓主有做什麼方面的應用呢?
B7 HA 上通訊軟體類的元件都是用來發送通知用的,看了一下 Telegram 也不例外,不過多了可以傳影片、文件、位置訊息 比起 Line Notify 來說難一些,因為 Line Notify 這個 Bot 是已經寫好的,而 Telegram 要使用你自己架的 Bot
B8 目前我的 HA 通知都是還是主要仰賴 Google 的 FCM 推播,目前有做 Line 通知的只有 HA 新版本提醒通知,還有在文末做為測試用途的到家離家回報 在 HA 的討論群組裡,有人是用來做門鎖通知,如果三十分鐘內沒鎖門,HA會將門自動上鎖,並透過 LINE 通知
B10 那現實當中是用什麼感應裝置來實現這個應用的?
B11 要實現這些全都是要透過 HA 上的裝置及感應器 像離家、到家的實作要在 HA 上設置地區感應器,並透過手機上的 Google Map 位置分享來讓 HA 知道你人在哪裡,等到你一進入/離開你設定的地區,Line就發通知 (這部分我會在下篇開箱文中說明) 網友的鎖門通知則是他有買智慧門鎖,並可以接進 HA,讓 HA 可以知道門鎖的狀態
B7 昨天玩了一下 Line 的官方帳號,可以透過 Line 直接控制、查詢 HA 上的東西,Telegram 也可以做到同樣的事情,不過不管是 Line 官方帳號 Bot 或是 Telegram Bot,都要透過串接 Dialogflow 來實作,不是這篇教學裡面的 Line Notify,我可能再找時間寫教學
臺北醫學大學 牙醫學系
感覺又是個好用的新玩意 亂入借問一下 不知道樓主有沒有辦法幫我看看這個問題
我按照網址上的方式去設定 但發現他的解析只能限定完全一樣的文字 像是如果只設定snack 那萬一他翻譯成snacks就無法辨認 或是加了一些其他的單字進去也就無法 感覺使用上很不聰明 不知道是腳本設計的問題還是Regexp
B14 我剛剛看下面這一段,在 if 中新增 "snacks" 也無法嗎?
臺北醫學大學 牙醫學系
可以的,但我的意思就是這樣一來需要設定很多詞彙,假設我還想順便記錄品項細目的話就沒辦法,像是晚餐義大利麵200元跟晚餐便當200元我就要兩組詞彙都寫進去,沒辦法只寫入晚餐就好,我以為在解析的時候應該可以找到某一關鍵字就自動分類,而不用全部符合才對,只是不知道該從腳本的編寫去研究還是是在regex的表示法裡面
匿名
這則留言已被本人刪除
已經刪除的內容就像 Dcard 一樣,錯過是無法再相見的!
B16 我用HA+Dialogflow+IFTTT弄了一個記帳的,打破只用IFTTT不支援中文的限制 不過詞彙一樣要新增很多組,但是是用同義詞的方式來新增
你要紀錄明細的話我說不定也可以用Dialogflow搞出來 HA真是萬能
Google助理設定好之後也能用Line記帳
之前貌似有一個Line的記帳雞
B16 大概是這樣,目前弄了食衣住,可以用自然語言對話
也可以用一句話指令
臺北醫學大學 牙醫學系
我家的wifi是用dongle沒有辦法ddns這樣是不是沒辦法在外面用HA這麼操作阿
臺北醫學大學 牙醫學系
樹莓派阿,只是我把寬頻停掉用上網吃到飽的sim卡放在家裡用,買了usb網卡來分享,所以沒有太多功能可以設定
B23 恩... 4G分享器嘛.... 對,這樣就沒辦法玩了 除非你要付費,HA 現在背後是 Nabu Casa 在出資,可以用每個月5美元來訂閱 Google Assistant 服務
淡江大學 材料化學系
我都照著做後,在檢查設定內容那關轉到天荒地老都不會停。 是因為0.96.4不支援嘛?
B25 你試試看用我這包~
我有發現作者有改 code
淡江大學 材料化學系
感謝!!已經可以使用了^^
匿名
這則留言已被刪除
已經刪除的內容就像 Dcard 一樣,錯過是無法再相見的!
請問如果HA是用HASS.IO安裝的,是不是就無法使用本篇的方法了呢?? 可是我又有看到最近有一個是通知服務是Command line Notify,這樣還有解嗎??
B29 Hass.io 一樣可以使用,將 custom_components 資料夾放置於 config 資料夾底下即可,也就是... \config\custom_components\notify_line\ Command line Notify 跟這個 LINE notify 是不同的東西喔,Command line 是用指令 HA 上有許多 Command line 的元件
像我自己就有用 Command line Switch
B29 看到你刪了28樓的留言,怕我tag B28 你沒看到,所以再tag你一次 另外~ 要用我在 B26 放的那包喔
義守大學 國際商務學系
B30 真的是太感謝了!! 之前一直都有關注您的文章,這幾天才實際接觸,目前還是對於很多東西不了解 像是我就不太清楚Command line Switch 主要用途是幹嘛的… 目前只能看大大您的分享或其他網友的分享去模仿使用(汗…)
B32 我一開始也是模仿別人的寫法,尤其是自動化與腳本,然後一邊理解參數為什麼要這樣用,搭配官方的說明一起看 現在HA最新版本是0.97,預計快推出0.98了,官方正在準備1.0的版本,1.0後對於新手來說會是個福音,據他們的規劃,1.0開始會越來越少自行打yaml的程序,大部分功能、設定都可以在介面上操作,當然也會保留進階的yaml模式 Command line系列的東西呢,舉例來說,如果有個產品在HA上沒有整合,但是產品本身有API可以控制他,你就可以想盡辦法用指令來整合這個產品 像我自己在用的Command line Switch,我是用在LIFX,雖然HA上已經有整合了,但是在區網外的LIFX燈泡就無法控制了,而剛好LIFX官方有開API讓開發者使用,所以透過curl指令就可以控制燈泡了 可以逛逛
每一個元件其實官方都有寫說明 然後要非常注意的地方是HA在更新很快,下一版會怎麼改不知道,像我這教學中HA介面的部分在現在的0.97已經有改了
[Callback URL:
]這一行好像要去掉最後一個" / "才能正常連動
臺北醫學大學
請問這個line notify是不是HA要能與外網連通才能用?
B35 沒錯喔~ 畢竟是要走 LINE 的伺服器
明志科技大學
J大您好,新手剛照您步驟學習。走到上一步卡住,不知如何新增客制元件。請J大開示,感謝
B37 就是指下面這個步驟喔
configuration.yaml 這個檔案你能在 HA 的根目錄找到
明志科技大學 電機工程系
感謝j大,已順利設定完成。期待您更多實用教學。
感謝你!! 已經順利設定完成!!
國立虎尾科技大學
想請問怎麼將小米藍芽溫濕度感測器2 接入HA裏,我沒有使用ESPhome,有辦法直接透過小米網關2接入嗎。我是在windows virtual box架設Hassio的。
淡江大學
B41 透過BLE直接接入應該可以吧,我是用樹莓派,虛擬機的部分我就不太清楚了
B0 您好我想請問
ID&redirect_uri=
這裡的設置我顯示:錯誤請求:redirect_uri 與註冊的 URI 不匹配
請問是我哪裡打錯了