Sympapaの日記

スマートなんとかはスマートじゃない方法でつくられている

Home Assistant: LINEへ自動でメッセージを送れるカスタムコンポーネントの導入


こんにちは。
Sympapaです。

LINEには"Line-Notify"というAPIサービスがありIFTTTと連携できるようになっていて、これを使ってLINEへ自動メッセージを送っている人は結構いるみたいですね。私も以前IFTTTは利用していたのですが、あまり便利な使い方を思いつかなくてメッセージの自動送信を使ったことはありませんでした。
しかし、Home Assistantで家の情報を色々取得出来るようになり「家に誰もいなくなった」とか「○○が帰ってきた」とか「家に誰もいないのに窓が開いた!(汗」とか「洗濯が終わった」とか家族のLINEグループに届くと便利かなーとか思ったり思わなかったり。
まぁ家族まで巻き込むかどうかは慎重に判断するとして、Home AssistantにもLINEへメッセージを送ることが出来る"HA-Line-Notify"というカスタムインテグレーションがあることを知ったのでインストールしてみることにしました。
LINEには"Line-Notify"というAPIサービスがあってIFTTTでは簡単に連携できるようになっていますが、このカスタムインテグレーションを使えばHome Assistantでも難しいことを考えずに同じ事が出来るようになるんだと思います、たぶん。

■導入してみる

1."Line-Notify"の設定

"Line-Notify"はAPIを使って指定したLINEグループへbotがメッセージ(トーク)を送る仕組みになってます。
最初に対象のLINEグループを指定してアクセストークンの発行をする必要があります。
notify-bot.line.me

1)上の”Line-Notify”のページを開きLINEのアカウントで使っているメールアドレスとパスワードでログインします。
2)マイページへ行き[トークンを発行する]を押すと下のようなダイヤログが出ます。
3)”トークン名"を入力します。メッセージの最初に[トークン名]がくっついて届くのでちゃんとした名前を付けましょう(笑)
4)LINEに登録されているグループの一覧が表示されるので、botからどのグループにメッセージを送るのかを選びます。自分にだけメッセージを送りたい場合は「1:1でLINE Notifyから通知を受け取る」を選びます。
5)[発行する]を押すとアクセストークンが表示されるので、コピーするなりメモるなりします。
botからメッセージを送りたいグループが複数ある場合は、同様の手順で複数のアクセストークンを取得できます。

  • 6)LINEのアプリから対象のグループに"Line Notify”を招待します。

これで"Line Notify"の設定は完了です。

2.Home Assistantに"HA-Line-Notify”を導入する

設定とかは簡単ですがインストールはマニュアルです。
github.com

1)上のHA-Line-NotifyのGitHubへアクセスします。
2)緑色のCodeってボタンを押してDownload ZIPを押しダウンロードし解凍します。
3)Home Assistantの”/config/custom_components”フォルダの中に"notify_line”ってフォルダを作成します。
4)さっきダウンロードして解凍した"HA-Line-Notify-master"フォルダを開き、"custom_components>notify_line"の中にある3つのファイルを、さっきHome Assistantで作った"notify_line”フォルダにコピーします。
【ファイル】
__init__.py
manifest.json
notify.py
5)configuration.yamlに以下のようなコードを追記します。オートメーションやスクリプトからサービスとして呼び出せます。nameとトークンを変えて別々のサービスを設定することもできます。(例では2つ設定しています)

notify:
  - name: line_notification
    platform: notify_line
    access_token: 'アクセストークン1'
  - name: line_notification_2
    platform: notify_line
    access_token: 'アクセストークン2'

6)Home Assistantを再起動します。

■使ってみる

上でも書きましたが、Home Assistantのオートメーションやスクリプトからサービスとして呼び出しメッセージを送ることができます。
"notify.名前"のサービスを選んで送りたいメッセージを設定します。
f:id:sympapa:20211030080032p:plain

オートメーションやスクリプトを実行するとこのようにメッセージが届きます。

■感想

まだ実用してないので感想というほどではありませんが、オートメーションやスクリプトを実行すると一瞬でメッセージが届き凄くレスポンスが良いです。
モバイル接続のスマホからートメーションやスクリプトを実行した場合、私の場合はHome Assistant cloud(Nabu casa)→ウチのHome Assistantサーバ →Home Assistant cloud(Nabu casa)→Line Notifyのサーバ→Lineのサーバ という経路を辿ると思うのですがそれでも一瞬でメッセージが届くので、Home Assistant cloud(Nabu casa)とLine Notifyのサーバのレスポンスはなかなか良さそうです。
他のスマートホームバイスのサーバもこれくらいレスポンスが良いといいんですけどねぇ。

では。