今週はコロナでバタバタしてたので以前に作った部分の話しだけ。
今できている家電操作系の話しです。
部屋の中の家電を出来るだけ自動化してAI類に操作させるのは、イメージ的にかっこいいのでやっぱりやりたくなりますよね。
でもなかなか操作可能家電は少ないし、あっても高いです。
それに実際にやって「本当に便利になるの?」みたいな話しもあります。
現在運用中なのは、3つのスマートプラグのON/OFF制御、ロボット掃除機1台、通電監視1台です。
ON/OFF制御は「PCモニタ類」, 「電気足敷き」, 「居間の家電のまとめ」
オンオフだけのスマートホーム
電源のオンオフを制御する部分は元々個人環境サポートツールとして2020年夏頃から作っているmi-serverの機能として作っているものでちょうどスマートホームあたりが流行っていた頃ではないかと思います。生成AIはまだ来ていない頃です。
ですので生活に合ったタイミングで家電をオンオフすることを目的にしたものです。その頃にAPIで操作出来る安めのスマートプラグとしてTP-LINKのデバイスを使いました。
(以下のリンクは新モデルになったもので自分が使ったのは1世代か2世代前のもの)
APIの制御としてnpmからのパッケージを使用しました。
https://www.npmjs.com/package/tplink-smarthome-api
コンセントの電源をオンオフするのはとりあえず「PCのモニタ類」, 「電気足敷き暖房」, 「居間の家電のまとめ口」の三種類です。
オンオフすると危ないもの(PCの電源とか電流の多そうな機器)はさすがにつなぎません。主に夜中にまとまってオフになっていると節電になりそうなものという判断基準です。
制御の時間タイミングはmi-server(nodejs/tsed)から操作するときもあれば、node-redから操作することもあります。
https://note.com/marble_walkers/n/n63cd8660b013
とりあえずは時間と状況に合わせてオンオフ出来るようになったのでこの状態でしばらくは単に使っている状態でした。
ChatGPTでの音声制御の追加と推移
だいぶたってからChatGPTとWhisperが発表されて、しばらく遊んでいた後に「ああ、これならWhisperで会話入力して、その会話の意味を判定してデバイスのオンオフとか出来そうでは」と思いついてその仕組みをmi-serverに組み込みました。
https://translucent-sloth-59b.notion.site/ChatGPT-1-dd054835ddef479a8ab0972144941238?pvs=4
思いついた当時はまだChatGPTのfunction callの機能は未発表だったので、プロンプトで無理矢理に「電源オンの指示だと思われる場合はONのみを返答してください」として、返答にONの文字列が入っているかみたいな形で判別する案を考えていました。そのため結構判定にばらつきがあり、遊ぶにはよいけどクリティカルな用途に使うのはちょっと怖いかなという感じでした。
その後ChatGPTのfunction call機能が発表されて「あーこれが欲しかったー(&もう少し早く出てれば変に判定処理に悩まずに済んだのに)」という訳でさっそく作り替えました。
https://translucent-sloth-59b.notion.site/ChatGPT-2-8b3ad29a62184fb5963511647294d13c
ただfunction callについてもすごく安定という訳ではないので、クリティカルな用途には厳しいかなと今でも思います。
Whisper/ChatGPT function callで操作する「ロボット掃除機」
function callである程度デバイスをまともに操作出来そうなめどがついたのでこの際もうちょっと本格的なものを使えないかと考えていた頃に、古いルンバが寿命で故障したので「じゃちょっと高いけどSwitchBotの掃除機に変えようか」という気になりました。
SwitchBotのAPIは明確に公式で公開されているので制御の点では安心です。
https://github.com/OpenWonderLabs/SwitchBotAPI
挨拶する掃除機はそれなりによいかも
SwitchBot掃除機を組み込むときはChatGPTにもかなり慣れたしAPIも機能が多いのでいくつかギミックを合わせて組み込んでいます。
一日一回、直近の掃除機運用状態を見て、掃除機を使ったほうがよいかそうでもないかを会話で説明する
掃除開始時に開始の挨拶をする
掃除完了時に完了の挨拶をする
結構これらの機能は気に入って使っています。単純に挨拶するだけならSwitchBot掃除機の起動・終了にも音声発声します。でもChatGPTと織り交ぜて直近の掃除具合を解析させたり、ハルシネーションを混ぜて訳のわからない挨拶をしてくれるのは私は好きです。
ただそのあたりは人の好みだろうし鬱陶しいと思う人もいるだろうな とは思います。
通電監視「洗濯機」
SwitchBot掃除機と同時にSwitchBotのスマートプラグも買いました。
こちらは実は電源オンオフには使っておらず通電確認に使っています(後述)。
自動操作の一長一短
スマートプラグの電源オンオフをしていて気づいたことがあります。
電灯等の基本家電のオンオフを自動操作するのは意外に使いにくいのです。
電源を単にオンオフするだけなら電源スイッチを直接操作したほうが早い
電源を入れたいときにPCやスマホ/サーバーの電源が入っていないと電源も入れられない。
Whisper-ChatGPT経由で判定する時間は10秒くらいはかかるがそれなら電源スイッチを直接操作したほうが早い。
この手の自動化は、平時に時間が決まっている操作をタイマーでオンオフするとか、何か別の操作をしたらそれに連携してオンオフするとかに使うのが便利です。逆に、そういう形で操作しないとかえって面倒です。
ロボット掃除機のオンオフも同じ面があります。が、こっちは少しニュアンスが違ってきます。
ロボット掃除機を使うときはやはり部屋を少し片付けて準備しなければならない
ロボット掃除機を使うのは数日に1回でも困らない
電気のオンオフは「暗くなったらすぐ入れる」「番組見たければすぐリモコン入れる」みたいな要求に対する即応性がかなり必要です。
一方、掃除はそのものが面倒な仕事ですし、掃除機は事前準備がいるくらいに儀式的です。
その儀式の前後をChatGPTで掃除の実施の判断、掃除開始の挨拶、掃除終了の挨拶を付けさせると、仕事の開始と終了に勢いが付き気持ちよく始められます。
面倒くささをChatGPTとの擬似会話での連動と合わせると、掃除の面倒くさい感を下げる効果があります。
結果として「単に家電のオンオフだけではあまり役立たない(気持ちいいけど) 、むしろ生成AIで前後の説明をサポートすることで家事のモチベーションの維持に役立つ。」です。
前後の説明を生成AIでサポートするためには、生成AIに家事状態のセンサーを付けまくって状態分析をする機能のほうこそ役立つ、よってまずは「通電確認」機能が有効です。
という訳で、電流の流れ状態を検出する通電センサーがあるSwitchBotのスマートプラグを洗濯機に付けたのです。オンオフの制御はしません。
掃除と洗濯の状況報告は結構きもちいい
洗濯機は汚れ物を入れないといけないですし、洗濯後の衣類も出さないといけませんから、そもそも電源のオンオフの自動化は意味がないです。でも洗濯を何日周期で行っているかなど、統計的に取得できれば、いろんなタイミングで管理AI側から洗濯すべき/不要などの示唆文を生成できます。
こういう音声が流れれば気持ちいいですし、忙しくなければ洗濯機を回すかな という気も起きてきます。
洗濯機が故障してしまった
実はというと現状は以下の状態です。。
まず自分が使っている洗濯機はもう10年以上使っているもので、排水の弁がうまく開かないことがありそこでエラーで止まってしまうことが多いのです。。通電もそこで止まるので、洗濯が完了していないのに「洗濯が完了しました」と言い出してしまうことが多々あったのです。。
その上、SwitchBotスマートプラグAPIの通電検出もプッシュ通知ではなくポーリングして問いかけないと通電状態を検出できません。つまり比較的頻繁にポーリングしないと通電検出が出来ないのです。この手のIOT APIは企業側サーバーへのアクセスになりますし、あんまり頻繁に呼ぶのも気の毒だし、認証キーが切れることも多いです。
洗濯機故障による誤検出+認証キー切れのために現状ちょっと放置状態になっているのです。。
洗濯周期については結構あてになるのでよい機能なのですがとりあえずは洗濯機の買い換えから考えないといけない状態です。。
そうこうやってるうちにmi botのほうの改良にかまけてしまいました。。
家庭用の無接触の通電監視デバイスが欲しい(できればpush通知)
ちょっと洗濯機は買い換えないといけない状況ですが、通電通知+AIは有効だと考えています。
スマートプラグによる電源オンオフデバイスはかなりあるのですが、私はそちらより家庭用の無接触の通電監視専用デバイスが欲しいです。例えばエアコンとか電子レンジとかは超高級品にはAPI操作出来るものもありますが、ほとんどはAPIなしです。これらはスマートプラグでオンオフしても電源オンオフにはなりません。それにこれらは使用電流もかなり大きいのでオンオフ用のスマートプラグを入れるのはちょっと怖いのです。
欲しいのは通電情報だけなので電源回路に入れなくてよい通電センサー(電流センサー)が欲しいのです。工業用または工作用部品だとそういうのは結構あるのですが、今の自分だとがっつり工作というのは結構つらいので、スマートプラグなみに家庭用での安い通電センサーが普通に売られるようにならないかなーと思うところです。もちろんプッシュ通知でです。その時点で万人に使えるソリューションになってないといけないので、家庭用というのが厳しいのですが。
でもTV+エアコン+電子レンジ+PC+暖房機器+各部屋電灯+洗濯機+布団乾燥機の電源オンオフ状態の情報がまとめて手に入れば、それらの組み合わせ情報を判断させて、生成AIに結構面白いことをしゃべらせられると思うのです。
でもまあ、とにもかくにもまず「洗濯機の買い換えが必要なのです」。。。
(追記)プライバシーには注意がいるかもしれない
通電通知を通知するデバイスとなると実は結構プライバシー問題があるかもしれません。情報が取られれば空き巣のヒントにもなります。。
私はお金もたいしてないし、プライバシーより収集して便利になったほうがよいと思う人なので、どちらかというと、通電情報は渡すので通電がなかったらぶっ倒れてないか確認にきてくれる見守りサービスとかタダでやってくれないかな と思いますが(たしか電気ポットでそういう有料サービスありましたよね)。