ディレイタイマーとは、ある特定の事象が発生してから指定時間後に何らかの動作をさせるためのタイマーの事だ。
このディレイタイマーを使ってスマート電球を操作できないかいろいろ調べていたのだが、ようやく出来る方法が見つかったのでやり方を紹介したい。
なぜディレイタイマーをスマート電球で使うの?
どうして、ディレイタイマーをスマート電球で使いたいのかというと、トイレの電球の消し忘れを確実に防止したいからだ。
トイレの電球をスマート電球に変えて、電球が点灯してから10分後には必ず消灯するという動作を設定することができれば、例え電球を消し忘れたとしても自動で消えてくれるのでつけっぱなしのままになる心配がなくなるというわけだ。
どうだろう、便利だと思わないだろうか?
2019/9/8追記
当記事の情報はすでに古くなっているので注意。
私は、当記事で紹介している方法でトイレのWi-Fi電球をしばらく運用していたのだが、普段使用しているのがiPhoneという事もありAndroid運用が非常に面倒になり、以下の人感センサーLED電球での運用に変更した。

トイレの電球には人感センサー電球を使ったほうがはるかに便利だったので、皆さんにも上記の人感センサーLED電球での運用を是非ともお勧めしたい。
必要なもの
Wi-Fiスマート電球でディレイタイマー操作を行うにあたって必要なものは以下の通り。
- Wi-Fiスマート電球(Smart Lifeアプリに対応しているもの)
- Wi-Fi環境
- Android携帯(5.0 Lolipop以上)
- Stringify(Androidアプリ)
- IFTTT(PC版(WEB)、Androidアプリ、iOSアプリのいずれか)
Wi-Fiスマート電球(Smart Lifeアプリ対応)
Wi-Fiスマート電球とは、Wi-Fi経由でスマートフォン操作したり、Echo&Alexa、Google Home等のスマートスピーカー等から声で操作することが可能な電球のことだ。
今回行うケースではSmart Lifeというアプリに対応しているスマート電球が必要だ。
今回は「Suvprスマート電球」を利用して動作させている。
この電球のレビューは以下を参照してほしい。

以下のスマートWi-Fi電球もSmart Lifeアプリで使えるので利用可能。
スタイルド スマートLED電球 60W相当 フルカラー調光・調色 口金直径26mm 【Works with Alexa認定製品】 HL...

Wi-Fi接続環境
Wi-Fiスマート電球を操作するにはWi-Fi接続環境が必須となる。
つまり、トイレに設置する場合は、トイレまでWi-Fi電波が届いている状況でなければならない。
電球を設置する場所にWi-Fi電波が届いているかしっかり確認しよう。
Android携帯(5.0 Lollipop以上)
後で説明する「Stringify」というAndroidアプリを使用するため、バージョン5.0以上のAndroid携帯が必要だ。
Android携帯を持っていない人は、「NoxPlayer6」のようなアンドロイドエミューレーターで代用することも可能だ。
Stringify(Androidアプリ)
ディレイタイマーを実現するためにStringifyというAndroidアプリが必要となる。
iOSアプリもあるにはあるのだが、日本のストアからはダウンロードできないようになっている。
IFTTTアプリ
Wi-Fiスマート電球とStringifyのディレイタイマーを連携させるためにIFTTTアプリが必要になる。
IFTTTアプリは、PC用のWEB版、Androidアプリ版、iOS版が用意されておりどれでも好きなものを使用することが可能だ。
ディレイタイマーのセット手順
1.Wi-Fiスマート電球をセットアップ
まず、トイレの電球ソケットにWi-Fiスマート電球をセットし、セットアップしてSmart Lifeアプリに電球を登録しよう。
「Suvprスマート電球」の具体的なセットアップ方法は以下の記事を参照してほしい。

以下のように、「トイレの電球」という名前で登録した。

2.Stringifyアカウントの作成
AndroidスマートフォンでStringifyアプリを起動しよう。
アカウントをまだ作っていない人は「SIGN UP」ボタンをタップしてアカウントを作成する。
名前、メールアドレス、パスワードを入力し、「SIGN」ボタンを押すと、入力したメールアドレス宛にStringifyから確認用のメールが送られてくるので、そのメールの「Verify Email」ボタンをクリックすればアカウントの作成は完了だ。

アカウントが作成できたら、メールアドレスとパスワードを入力し「SIGN IN」ボタンをタップしてログインする。
GET STARTED画面が表示されたら右上の「Skip」で飛ばそう。

すると以下のホーム画面が表示される。
下部にあるアイコンメニューから「Things」アイコンタップしてみよう。

アイコンがたくさんある画面が表示される。
StringifyではこれらのThingをつなぎ合わせてFlowを作成するわけだ。

IFTTTと連携するにはここにIFTTTアイコンが表示する必要がある。
そこで、Thingsを追加しようと、右下の+アイコンをタップし「Add a new thing」をタップしてみると・・・・

こんな感じで真っ白な画面が表示されてしまう。ガッデム!なぜ?
なぜだかわからないが、私の端末ではThingが追加できない。

でもご安心を。表示させる方法は当然見つけてある。
Stringifyについては、ひとまずいったん保留しておいてとりあえず次のステップを実行してほしい。
この記事を書き終えてから「Add a New thing」画面を表示するための方法を見つけた。
Google Playから以下のアプリをインストールすれば無事表示されるようになった。ただし、NoxPlayerだとうまくいかなかった。
3.IFTTTからStringifyアカウントに接続する
ここのステップは、PC用WEB版のIFTTTかiPhoneアプリ版のどちらかで実行してほしい。
Android版だとStringifyの説明ページに「接続ボタン」が表示されなかったので。
ここでは、PC用WEB版を使用することにする。
IFTTTのPC用WEBサイトはレスポンシブ対応なので、スマホサイズに画面を縮小して解説を行う。
まず、以下のURLにアクセスし、「Sign in」をクリックする。
Sign in画面が表示されるので、アカウント情報を入力し、「Sign in」ボタンをクリックする。

ページ上部の虫眼鏡アイコンをクリックすると、検索画面(下の画像右)が表示される。

検索ボックスに「stringify」と入力し、「Services」タブをクリックする。
すると「Stringify」という四角いアイコンが表示されるのでそれをクリックする。」

Stringifyの説明ページが表示されるので、画面中の「Connect」ボタンをクリックする。
すると、Stringifyのアカウント情報を入力する画面が表示される。
Stringifyアカウントのメールアドレスとパスワードを入力し、「Authorize」ボタンをクリックする。

以下の画面(Connectボタンがなくなっている)が表示されたらここのステップは完了だ。

4.Stringifyアプリでflowを作成する
ここで、もう一度Stringifyアプリを起動し、「Things」画面を見てみよう。
以下のように無事「IFTTT」アイコンが表示することができた。

さっそく、Flowを作成していこう。
右下の+アイコンをタップして表示されるメニューから、「Create a new flow」をタップする。

まずこのFlowに名前を付けよう。
画面上部の「Name your flow」をタップすると名前を入力するダイアログが表示されるので、好みのネームをを入力する。
今回は10分ディレイタイマーを作成するので、DelayTimer10Mという名前にした。
入力したら「DONE」をタップする。

次に、下部の「+」アイコンをタップして「Add Things」画面が表示する。
画面から「IFTTT」アイコンと「タイマー」アイコンをそれぞれタップしチェックマークがついていることを確認して、右上の「Add」ボタンをタップする。

先ほど選択したIFTTTとタイマーのアイコンが画面下部に表示されるので、まずはIFTTTアイコンを適当な〇の中にドラッグ&ドロップしよう。
すると、ドロップした場所の〇の中に歯車がついたIFTTTアイコンが表示されるのでそれをタップする。

画面にWHEN(this happens)が表示されていることを確認し、「IFTTT Applet runs this Flow」をタップする。
画面中に表示されているIDは、後でIFTTTアプリからIFTTTアクションの設定する際に必要なのでflowのトリガー用IDとしてメモっておこう。
確認したら画面下部にある「SAVE」ボタンをタップする。

次にタイマーアイコンをIFTTTアイコンの右横の〇の中にドラッグ&ドロップする。
ドロップした場所の〇の中に歯車がついたタイマーアイコンが表示されるのでそれをタップする。

Timer設定画面が表示されるので、「Start the timer」をタップする。
「Countdown」のところに表示されているタイマー時間をタップする。

すると電卓型の入力コントロールが表示されるので、好みの時間(ディレイタイム)を設定しよう。10分と設定する場合であれば1000と入力すればよい。
入力したら「OK」をタップする。
Countdownの所に、設定したディレイタイムが表示されていることを確認し、画面下部の「SAVE」ボタンをタップする。

最後にもう一つThingを追加するために画面下部の「+」アイコンをタップする。
Add Things画面で「IFTTT」とタップしてチェックを入れ「Add」ボタンをタップする。

IFTTTアイコンをタイマーアイコンの右横の〇にドラッグ&ドロップする。
これまでと同じように、ドロップしたIFTTTアイコンをタップする。

最初のIFTTTアイコン設定時とは違い、今度は「Actions」タブをタップし、「THEN(do this)」と表示されていることを確認して「Run an IFTTT Applet」をタップする。
画面中に表示されているIDは、後でIFTTTアプリからIFトリガーを設定する際に必要なのでIFTTTアプレットのトリガー用IDとしてメモっておこう。
確認したら画面下部にある「SAVE」ボタンをタップする。

必要なThingsの設定はこれで完了。
最後にそれぞれのアイコンをリンクさせる。
IFTTTのアイコンを素早くドラッグすると黄色い〇が移動するのでTimeアイコンの上にドロップする。

すると、IFTTTとTimerの間に接続を表すアイコンが表示される。
同じようにして、もう片方のTimerとIFTTTアイコンを接続させたらFlowが完成。
最後に画面下部の「Enable Flow」ボタンをタップしてFlowを有効化する。

以下のように、「You successfully enabled this flow」と表示されればこのFlowをIFTTTから使用することが出来るようになる。

画面下部にある「Flows」アイコンをタップすれば、作成したFlowを確認することが可能だ。

5.IFTTTでアプレットを作成する
いよいよ最後のステップだ。
先ほどStringifyで作成したディレイタイマーFlowを使って「トイレの電球が点灯してから10分後に自動消灯する」というIFTTTアプレットを作成する。
具体的には以下の2つのアプレットを作成する必要がある。
- 電球オンをトリガーにStringifyのフローを実行させるためのアプレット
- StringifyのFlowの実行完了をトリガーに電球をオフにするためのアプレット
PC用Web版、Androidアプリ版、iOSアプリ版のいずれかで以下の手順を実行しよう。
ここではiOS版のiFTTTを使用して操作の説明を行う。
電球オンをトリガーにするアプレットの作成
1つ目は、電球をONにした時にStringifyのディレイタイマーFlowを呼び出すためのアプレットを作成する。
IFTTTアプリを起動したら、下部の3つのメニューアイコンから「MyApplets」をタップする。
My Applets画面が表示されるので、右上の「+」アイコンをタップする。

New Applet画面が表示されたら、「+This」をタップする。
「Select trigger service」画面が表示されるので、検索ボックスをタップしよう。

検索ボックスに「smart life」と入力すると「Smart Life」のアイコンが画面に表示されるのでそれをタップする。
「Choose trigger」画面が表示されるので、「Device or group is turned on」をタップする。

「Configure trigger」画面、「Which device/group?」でディレイタイマーを適用させる電球を選択し、「Create trigger」ボタンをタップする。
次の画面が表示されたら、「+that」をタップする。

「Select action service」画面が表示されるので、「検索ボックス」をタップする。
検索ボックスに「stringify」と入力すると「Stringify」のアイコンが表示されるのでそれをタップする。

「Choose action」画面が表示されるので、「Run a Stringify Flow」ボタンをタップする。
「Run a Stringify action」画面、「Which Flow?」でStringify上で作成した「DelayTimer10M」Flowが選択できるようになっている。
表示されているIDが、メモをしておいたFlowのトリガーIDと一致していることを確認して「Create action」ボタンをタップする。
Re
「Applet preview」画面が表示される。
「Receive notifications when this Applet runs」をONにしておくとこのアプレット実行時にスマートフォンに通知を送信してくれる。
最初のうちは正常に動作しているのかを確認するためにONにしておくことをお勧めする。
最後に「Finish」ボタンをタップする。

Applet turned on!と表示されたら「<」アイコンをタップ。
次の画面も「<」アイコンをタップする。

My Applets画面に以下のようにアプレットが追加されたら1つ目のアプレットの作成は完了だ。

Stringify Flowの実行完了をトリガーにするアプレットの作成
2つ目のアプレットとして、StringifyのディレイタイマーFlowが完了した時に電球をオフにするというアプレットを作成する。
My Appletsの右上「+」アイコンをタップし、New Applet画面で「+this」をタップする。

「Select trigger service」画面の検索ボックスをタップし、「stringify」と入力して表示される「Stringify」アイコンをタップする。

「Choose trigger」画面で「Stringify Flow runs」をタップする。
「Stringify Flow runs」画面、「Which Flow?」でStringify上で作成した「DelayTimer10M」Flowが選択できるようになっている。
表示されているIDが、メモをしておいたIFTTTアプレットのトリガー用IDと一致していることを確認して「Create trigger」ボタンをタップする。

次の画面で「+That」をタップし、Select action service画面の検索ボックスをタップする。

検索ボックスに「smart life」と入力すると「Smart Life」アイコンが表示されるのでそれをタップ。

Chose Action画面を少しスクロールさせて「Turn off」ボタンをタップする。
「Configure action」画面、「Which device/group?」でディレイタイマー実行後にオフにする電球を選択し、「Create action」ボタンをタップする。

「Applet preview」画面が表示される。
1つ目のアプレット作成時と同様に、正常に動作するかを確認するため「Receive notifications when this Applet runs」をONにしておこう。
最後に「Finish」ボタンをタップする。

Applet turned on!と表示されたら「<」アイコンをタップ。
次の画面も「<」アイコンをタップする。

My Applets画面に以下のようにアプレットが追加されたら2つ目のアプレットの作成は完了だ。

これにてすべての準備は完了だ。
お疲れさまでした。
動作確認
すべての設定が終わったら、実際にディレイタイマーが発動するのかどうか操作して確認してみよう。
確認方法はトイレの電球をONにするだけ。
スマホアプリ、Amazon Echo等のスマートスピーカー、物理スイッチボタンなんでもいいのでトイレの電気をONにしっぱなしにしよう。
電気をONにした後10分たって電気が無事消えれば成功だ。
IFTTTアプレットは起動するまで15分程度の遅延が発生する可能性があることに注意。つまり10分タイマーを使った場合、点灯してから25分後に消灯するという事もあり得る。
IFFFTアプレット作成時に通知をONに設定しているので、スマートフォンの通知で動作を確認することもできる。
またIFFFTアプリの「Activity」画面でもアプレットが稼働したかどうかを確認可能だ。
以下の通り、トイレの電源ONにした後2時23分にでStringifyのflowが起動し、2時33分にライトをオフにするアプレットが実行されたことがわかる。

注意事項
この方法を使用するにあたって以下のような注意点がある。
厳密な時間運用はできない
IFTTTには仕様的に15分程度の遅延が発生する可能性があり、電気の消灯が予定より遅れる可能性がある。
きっかり指定通りのディレイ時間で動かすことはできない。
タイマー稼働中に手動でオフ、オン操作をすると予定通りの動作にならない
Stringifyのフローはタイマーが完了するまで新しいフローは受け付けないらしく、タイマー稼働中に手動でオフ、オンの操作をしてもタイマーが上書きされない。
つまり、10分タイマー処理の開始後、手動で電球オフした後、タイマーの残り時間が2分のタイミングで誰かが電球をONにした場合、その時は点灯から2分で消灯してしまうことになる。
そのため、複数人が利用する場合は不都合が生じる可能性がある。
最後に
今回は、AndroidアプリのStringifyとIFTTTを組み合わせてWi-Fiスマート電球のディレイタイマーを実現する方法を紹介した。
スマート電球をトイレで使用する前提で紹介したが、注意点に書いた通り、複数人で使用するような環境だと不都合が生じる可能性もある。
でも、一人暮らしのような場合だと今回のやり方で十分使えるのではないかと思うので興味がある方はぜひ試してみてほしい。
じつは、別の方法でタイマーの停止と更新が可能になるほぼ理想的な方法を見つけているのだが、1点問題点があり、それがうまく解決できればまた紹介したいと思う。
コメント