Yamawine’s blog

ホームオートメーション奮闘記

AlexaとHome Assistant

我が家のAlexaは、主にHome Assistantからのメッセージを喋らせる用途に使っています。「雨が降ってきました」「換気しましょう」「電気をたくさん使っています」などなど。他にも朝食時に「アレクサ、フラッシュニュース」と言ってNHKニュースを聞いたりしています。テレビより省エネですしね。ときたまAlexaはトンチンカンに、お願いしてもいないのに突然話を始めたり、聞いたこととは全く関係のない話を始めたり、と我が家に笑いのタネを提供しています。

 

キッチンにSONOS Roamが置いてあって、手が汚れていたり、手が離せなかったりする時にキッチンタイマーとして使うのは思いの外便利です。とはいえ、Alexaに喋る時は何故か少しだけ緊張します。そのせいで噛んでしまうこともたびたび。Alexaの音声認識はかなりのものだと思うのですが、それでも家人と話しをするのと少し勝手が違い、Alexaにお願いするのが億劫に感じる時もあります。なので、普通のキッチンタイマーを全く使わなくなることはないですね。気分で使い分けています。

 

SwitchbotとAlexaだけでホームオートメーションを始めた頃は、面白がってテレビなどのオンオフをAlexaにお願いするようにしていたのですが、Alexaにお願いするのが少しだけ億劫なこと、運動不足に拍車がかかること、そしていつ頃かどうしてかは不明なのですが、AlexaとSwitchbotの連携が一部切れてしまい、テレビのオンオフができなくなってしまったこともあり、そのまま放ってあります。

 

Alexaの警告(?)メッセージをたまたま聞き逃してしまうことも多々あります。Home AssistantとAlexaの関係がよく分かっていない家人は、「アレクサ、もう一度言って」と言ったことがあります。これを実現するのはそれほど難しいことではありません。Home Assistantで直前のメッセージをHelper変数に覚えておいて、AWS(気がついたらHatena Blogが変なリンクを付けてました。正しくは Amazon Web Servicesです。下にリンク貼っておきます)からHome Assistantのwebhookを叩いて、直前のメッセージを再生すれば良いだけです。技術的にはそうなんですが、そうするためにはdynamic DNShttpsの認証が必要になります。これは無料でもできなくはないのですが、その代わり手間がかかります。いっとき、AWSからのwebhookを別な目的で使ったことがあったのですが、httpsの認証が切れたのをきっかけに辞めてしまいました。

 

aws.amazon.com

 

前のblogでも書きましたが、我が家のHome Assistantは基本的に操作の自動化ではなく、監視が主です。なので、Home Assistantのダッシュボードから照明のオンオフ、カーテンの上げ下げなどは必要なく、温度、湿度、降雨の状況、電気使用量などが分かれば良いのです。Home Assistantのネット記事やYoutubeを見ると凝ったダッシュボードをどう作るか、と言うのがたくさん見つかりますが、我が家のダッシュボードは、見栄えを良くするのが結構面倒なこともあって、分かればOK的に味気ないものになってます。どうせ私しか見ないんだし。

 

そもそもダッシュボードで何かを操作するためにはダッシュボード端末(スマホタブレット?スマートなんとか?)に触る必要があって、それなら直接機器やリモコンを操作すれば良いですよね?運動不足の解消にほんの少し貢献しますし。Alexaに警告メッセージを喋らせるのも、Home Assistantの普通のnotificationでは端末にメッセージが表示されるだけなので、端末を見ていないとメッセージに気が付かないことがあるからです。

 

本当は警告メッセージを聞き逃しても後から見て分かるよう、家人向けのカッコいいダッシュボードを作りたいとは前々から考えています。メッセージの内容が毎回変わること、複数の異なるメッセージを一度に、優先度をつけて表示することができるようにすること、などを考えると、どうも今のHome AssistantのLovelaceでは考えているような物はできないように思います。

 

なければ自分で作ればいいのでは?とも考えたのですが、この手のプログラミングはあまり得意ではないので腰が非常に重いのです。