どうもCHASUKEでございます。
自宅のWiFiに接続し忘れて、制限(5GB/月など)のあるキャリアのパケットのままストリーミング動画や音楽を使ってた!!ってことはよくある失敗だと思います。が、失敗を防止できるWiFi接続をし忘れていたらスマホに警告通知をプッシュしてくれる仕組みを作れる自動化アプリがありました^^
その名も「Codyl Connect」です。
日本発信のアプリとのこと。自動化アプリというと「IFTTT」「mything」のようなWebサービス同士やWebサービスとスマホを繋いでくれる便利アプリです。だが、アプリを使っていくと他のサービスとの違いに気づきます。
▼私が他の自動化アプリと違いを感じたのはこんなところ。
- WiFiアクセスポイント接続情報やBluetooth接続情報も「条件」に使える
- Webサービスやスマホの情報を使った「条件」が何個も積める
- 複雑な仕組みが自由に作れる反面、プログラマー的思考が必要となる
今回は、このスマホアプリ『Codyl Connect』で、誰でも簡単にシナリオ(仕組み)を作れるテンプレートを利用して、自宅にいるときにWiFi接続しているかチェックするシナリオを作ってみました。また、テンプレートから少し改造してみました^^
では、いってみましょう。
テンプレート利用でシナリオを作る
Codyl Connectでは、起動する処理単位のことを「シナリオ」と言います。シナリオは自由に作れるのですが、最初から作っていくのは大変なので、いくつかのシナリオがテンプレートとして作られています。
テンプレートを利用してシナリオを作る手順は、
- アプリをダウンロードして、会員登録する
- シナリオのテンプレートを選ぶ
- テンプレートの必要項目を入力
- 実行
こんだけです。テンプレートならとっても簡単です^^
アプリのダウンロード
アプリはこちらからどうぞ。現時点(2017/04/22)ではiPhoneアプリのみの公開です。
▼ダウンロードして開いたら会員登録をしましょう。また位置情報や通知機能も利用するのでオンにしておきます。
なにやら色々と出てきました。ボタンは、トリガーにしてシナリオを実行する際に使いますが今回は利用しません。
シナリオのテンプレートを選ぶ
さっそくシナリオを作っていきますが、シナリオはアプリからは作れません。ブラウザから作っていきます。パソコンのブラウザからのが綺麗で見やすいですが、あえてスマホのブラウザからやっていきますw
▼アプリ内の「ブラウザでサービスにログイン」を選択するとiPhoneならSafariブラウザが立ち上がってくるはずです。ここから作っていきます。
またログイン画面が出てきますので、会員情報を入れましょう。アプリからブラウザーを起動すると毎回Safariの新しいタブが開かれてログインさせられます。しかも、Safariのタブがすごいことになるので注意しなければ。。。
▼ログインして、[右上メニュー] - [シナリオ] - [テンプレートから作成]
これでテンプレートが現れます。
▼めちゃくちゃたくさんのテンプレートが出てきます。
今回利用するWi-Fiの接続警告のシナリオは「0044」にあります。「テンプレートを使用する」を選択して、シナリオを動かすための必要項目を埋めていきます。
テンプレートの必要項目を入力
シナリオは『ステート』と『コネクター』で構成されています。
シナリオは、複数のステートでできています。例えば、ステート1がある条件になったらステート2に遷移するなど。んで、1つのステートは、複数のコネクタでできてます。最後に、コネクタがWebサービスやスマホに接続する処理のことです。
テンプレートを利用することで、上に出てくるステートやコネクターの組み合わせが既にできあがっています。ただし、コネクターでサービスやスマホに接続するために必要な『コネクター情報』、接続して得た情報を使って判定するために必要な『パラメータ』を入力する必要があります。
▼設定するとこんな感じになります。超縦に長いですw
コネクターは、はじめての場合「新規コネクターの作成」から作ってやります。ここはほぼ使うコネクターが決まっているので困ることはないと思います。パラメータは、自宅の「位置情報」とWiFi接続チェックするための「アクセスポイントSSID」を入力します。
コツとしては、取得される位置情報に誤差が生じると家にいないと判定されることで、通知がこなくなってしまいます。自宅範囲はある程度大きめに囲って置くといいと思います♪
これで完成。
起動したら、ちゃんと警告がきた!
完成したシナリオを起動してみました。
▼当然、WiFiオフを想定して切っておきます。
WiFiをオフにして「今すぐ起動」を試してみたところ、このような形で警告通知がiPhoneにプッシュされました。ここで、スケジュール設定を「有効」(※上の例だと無効になってます。)にしておくと、繰り返し指定した間隔(上の例だと10分間隔。)で実行されます。いい感じです。サクッとできちゃいました^^
ちなみに、起動する度に「クォータ」と呼ばれるスマホゲームで言うとスタミナみたいなものが消費されていきます。消費クォータは、シナリオ内で利用するコネクタ単位で消費数が決められており、今回の「WiFi接続チェック」については、プッシュ通知までされて52クォータが消費されました。この消費クォータは起動ログで確認できます。
ちなみに、クォータは自動で回復するようです。現在オープン記念で6/30までキャンペーン中(http://www.codyltech.com/connect/campaigns/)とのことです^^
作成したシナリオをもっと詳しく
作成したシナリオは、テンプレートから作成したので、上で少しだけ説明したステートやコネクターの組み合わせを意識してませんでした。「テンプレートのここが気にいらねぇ」とか、私のように、自宅以外ではモバイルルータに接続したいって人は最初からシナリオを作るか、テンプレートをいじって作るといった方法があります。
ブラウザから先ほど作成したシナリオの詳細画面にいき、一番下の「イベントウォーク編集」を選択すると、先ほどテンプレートから作ったシナリオの細かい動きが見えます。ちなみにリファレンス(https://connect.codyltech.com/man#)も用意されており、参考になります。
▼開くとこんな感じです。
赤枠で囲った3つのステートでシナリオができているのがわかります。さらに、黄色文字で書かれた「コネクター」を選択するとコネクターの条件を参照・変更できます。
▼この情報を参照してテンプレートを解読すると次のような作りであることがわかります。
- [state2]では、位置情報とWiFiアクセスポイントの情報を取ってきて、指定した自宅範囲内にいる場合で、指定したアクセスポイントに接続されてなければ、すぐに[state4]へ遷移します。自宅範囲外など条件に当たらない場合、[state2]の状態で状況が変わるまで無制限に待ってくれます。
- [state4]に遷移して、10分間、自宅範囲内で自宅WiFi未接続な状態が変わらなければ、[state13]に遷移します。逆に10分以内に自宅範囲外にいったり、接続WiFiが自宅のものに接続されれば[main_exit]に遷移してシナリオは終了します。
- [state13]では、iPhoneに警告をプッシュ通知して終わります。
作成したシナリオを少し改造する
上で解読したとおり、起動して、[state4]まで遷移したあと、自宅範囲内で自宅WiFi未接続な状況を10分間監視します。が、この10分間でも動画を見続けたら相当な通信を消費してしまいます。ということで、3分間経過したら警告プッシュしてもらうように変更してみました。
▼label_16のコネクターを消して、即時で警告プッシュでも良かったんですが、意図的に一瞬WiFiをオフにするタイミングでいちいち通知されるのも微妙だと思ったので一応3分に変更しました。変更は対象のコネクターを選択することで変更できます。
これに加えて、シナリオ全体の再起動頻度が10分になっているので、もっと短くしてもいいかもしれませんね。
さて、これに加えて、自宅外ではモバイルルータの接続忘れをチェックするシナリオを作ろうと思いましたが、長くなってしまったので次回にしますm(_ _)m
→とは言っても、作り方は簡単です。別に上で使ったテンプレートを用意して、今度は自宅範囲外だったらモバイルルータのSSIDに接続されているかチェックするだけですから。
最後に
最初はIFTTTとmyThingsと同じような自動化アプリかと思ってましたが、よりプログラミングに近く複雑な仕組みを作れることに気づいた時は、「このアプリすげー」と感動しました。また、シナリオ作りは最初はとっつきにくいですが、慣れてくると面白くなってきます。
サービスが始まったばかりで、まだまだ接続できる『コネクター』は少ないですが、今後はどんどん増えていくようなので、とっても楽しみな自動化アプリであります。現在使えるコネクターの一覧(http://www.codyltech.com/connect/#connect_connectors)はこちら。
興味を持った人、こりゃ使えると思ってくれた方は是非お試しください!
わかってくると面白いサービスです。