オフトゥンから出られない
執筆時現在の季節は真冬です。この寒い季節、私は朝布団からすぐに出ることができません。
そこで、起きる前にどうにかエアコンをつけて部屋を暖めておくことはできないかと考えました。
自室の環境
エアコンの制御はhomebridgeを母艦とするAppleのホームAppを使用しています。
iPhoneのホームAppからエアコンの任意の設定を行うことが可能です。
わかりやすく言うと、iPhoneでエアコンのオンオフや温度設定を自由に行える状態にあるということです。
また、起床時のアラームはiPhoneの標準時計アプリを使っており、8時に予鈴が1回、20分後に1回鳴ります。
環境の理想系
・就寝直前、翌朝の気温を確認して予約をする。
・予約がある場合、8時になったらエアコンをつける。
といったものを想定しました。
ここで必要になる事は、
(A) 就寝から8時までの間、予約をすることを記録しておく事
(B) その記録を元にエアコンをつける事
の両方を満たす事です。
この環境でのこれらを満たす最適解を見つけようとしました。
解決策
(i) ショートカットアプリ単体での使用
ショートカット起動後、○時間後にエアコンをつける、というもの。
しかし、この動作は○時間分ショートカットをつけっぱなしにする必要があります。
ショートカットアプリ自体長時間にわたる起動に対応していないので、これはうまく動きません。
つまり、先述の(A)を満たしていません。
(ii) ショートカットのオートメーション
オートメーション機能を使って8時にエアコンを付けることができます。
しかし、翌朝はオンにする、オフにする、といった切り替えは時計アプリのアラームのようにボタン一つで簡単にできません。
そのため、これも(A)を満たしません。
(iii) ホームオートメーション
これもショートカットのオートメーションと同じで、オンオフを簡単に切り替えられません。
[現状での最適解] ホームアプリでのダミースイッチ作成
簡単に説明すると、
- ホームAppにダミースイッチを設置
- 毎朝8時のオートメーションのショートカットを作成
ショートカットの内容:ダミースイッチがオンの場合、エアコンをつける
ホームAppはデバイスの状態を常に反映・記録させておくことができます。ここに目をつけました。
オンオフだけを記録するスイッチ(ダミースイッチ)を設置して、そのスイッチのオンオフを毎朝判定すれば良いのではと考えました。
つまり、これまでに解決できなかった(A)をダミースイッチによって克服することができます。
方法
1. ホームAppにダミースイッチを設置
これには__homebridge-dummy__を使用します。
任意の名前・スイッチの種類を作成することが可能です。
2. 毎朝8時のオートメーションのショートカットを作成
まず、ショートカットAppのオートメーションで以下の設定でオートメーションを組みます。
そして、以下のようなショートカットを作成します。
簡単に説明すると、if分岐でホームAppの暖房予約のオンオフを検出し、オンの場合暖房をオンにするというものです。
これで完成です。
あとは就寝前までに暖房予約のスイッチをオンにすれば、毎朝8時に暖房が入るようになります。
あとがき
本当は"○時間後にオンにする"を実行したかったのですが、本文にあるようにショートカットアプリ自体が長時間の動作に対応していないため、実装することができませんでした。
これがいつしか使えるようになればいいのですが、、、
また、翌朝の予想気温を自動取得して完全に自動でエアコンのオンオフを制御するのも面白いと思います。
今回は行いませんでしたが、冷房のスイッチも作成しても便利になるかもしれません。