IFTTT×MESHを使った「帰宅時の照明自動点灯システム」にひと工夫加えて、日没と日の出でスイッチのオン/オフを切り替えるようにしました。
下記の記事で、IFTTT×MESHを使って「夜に自宅に帰ったら部屋の照明を点灯する」方法を紹介しました。
IFTTTアクションの発動時間を制御する方法を発見!これでIFTTTはほぼ無敵になる。 – ハミングスタジオブログ
もちろんこれでも動作はするのですが、 ひとつ不満だったのが、 照明を点ける/点けないを切り替えるために設定する 昼→夜の境目を「19:00」に固定していたこと。
19:00といっても真夏はまだ明るいし、 逆に真冬になれば17:00頃にはもう暗い。
季節が変わるたびに手動で設定を変更していたら自動化の意味がないので、 改良を加えることにしました。
昼と夜の境目は
昼と夜の境目は、もちろん「日没」。
逆に、夜から昼(朝)になるのは「日の出」。
IFTTTは「Weather Underground」というサービスと繋ぐことができ、日の出や日没をトリガーとして設定することができます。
というわけで、日没と日の出の情報を使って、 照明を点灯する/しない の切り替えをするように改良しました。
改良
前回のMESHレシピはこちら。
前回の記事で紹介した2つのIFTTT Appletを流用しますので、それらを作っておいてくださいね。
さらに事前準備として、以下のIFTTT Applet2つを追加します。
あらかじめWeather UndergroundにConnectして、自分の住所の地域を設定したら、
- thisにWeather Underground > Sunriseを、thatにMESH > Send an event to MESH app を選択。
イベントIDを「sunrise」として保存。 - 同じくthisにWeather Underground > Sunsetを、thatにMESH > Send an event to MESH app を選択。
イベントIDを「sunset」として保存。
ここからはMESH。
下図のようにタグを配置します。
今度はタイマータグの代わりにスイッチタグを使います。
①前回からの流用。「受信したら」でイベントIDを「whenbackhome」
②「受信したら」でイベントIDを「sunrise」
③「受信したら」でイベントIDを「sunset」
④スイッチタグは「選んで切替える」を、出力数を2にする。
⑤これも前回からの流用。「受信したら」でイベントIDを「lightmyroom」
⑥LEDタグ(点滅の設定。数値は適当でよい)
スイッチタグ「選んで切替える」は、 「入力」コネクターに信号が入ったら「出力」コネクターに出力します。
「出力選択」コネクターに信号が入ると、 出力先が「出力1」>「出力2」(>「出力3」…)と切り替わります。
(この図では「出力2」の前に「▶︎」があるので、出力2が選択された状態です。)
このレシビは次のように動きます。
(見やすいように先ほどの図をもう一度載せておきますね。)
- デフォルトでは④「出力1」が選択されています。
この状態でジオフェンス内に入ると、①(whenbackhome)>④「出力1」 > ⑤(部屋の照明が点灯) となります。 - デフォルトの状態から日が昇ると、②(sunrise)>④「出力2」に切り替わります。
この状態でジオフェンス内に入ると、①>④「出力2」 >⑥の LEDタグが点灯(=部屋の照明は点灯しない)となります。 - 2の状態から日が沈むと、①>③(sunset)>④リセット(=出力1に切り替わる)されます。
つまり1の状態に戻るということ。
これで、日没と日の出の度に出力先が切り替わり、 日没中の間だけ帰宅時に部屋の照明が点灯するようになりました。
昼間は何の動作もしてくれなくていいので⑥のLEDタグについては不要かと思いましたが、 最初のうち「出力2」コネクターに何も繋がないとうまく動作せず、 LEDタグを繋いだら動くようになりました。
直接関係あるかはわかりませんが、それ以降は問題なく動いているので繋いだままにしています。
繋ぐタグがない場合は何か適当なIFTTT Appletでも作って繋いでおいてもいいかもしれません。
あと一つだけ不満が
前回同様、安定して動作しています。
今回の改良で一年中使えるレシピになりました。
あと一つ不満なのは、ちょうど日没の時刻に自宅に居るとき。
Locationのトリガーはジオフェンスを越えたことを検知しないと動かないので、このレシピだと当然自動点灯はしません。
結局手動で照明を点けないといけない。
(どんだけ面倒くさがりなんだ…)
ここはまた次回改良します。
完全自動点灯が実現するまであと少しです。