myThingsとIFTTTの比較から考えるDIY文化とメーカームーブメント
はじめに
この記事は、myThings Advent Calendar 2015の9日目の記事です。
前日は、miyauchiさんのスマート鳩時計の作り方(スマート鳩時計の紹介&サーボモータ制御編)でした。 からくりで動く鳩時計を、スマートにしてしまった作品で、普通に欲しいですw
僕はいまこんな感じのおうちハックをしていて、その経験からこちらで述べたとおり、生活に直結するおうちハックでは完成度及び不具合が少ないことが重要と感じています。 自分で立てたサーバーが落ちたり、書いたコードにバグがあると、家に帰ってまでその対応に追われることになり、ゆっくり休めません。そこで主に既存のデバイスとmyThingsやIFTTTを使って構築し、品質の担保を行っています。
僕は比較的にこれらのサービスのヘビーユーザーだと思うのですが、主にハードウェアを駆使するおうちハッカー視点でmyThingsとIFTTTの比較や考え方の違いをまとめたいと思います。また以前書いたIoT・スマートホームのプラットフォームについてまとめてみたも参考ください。
myThingsやIFTTTの共通点について
基本的にどちらも、起きる条件と、起こす行動を組み合わせてレシピを簡単に作ることで、WEBサービスやデバイスを連携できるサービスです。使用している用語は少し異なります。
サービス名 | 起きる条件 | 起こす行動 |
---|---|---|
myThings | トリガー | アクション |
IFTTT | This | That |
IFTTTは、IF This Then That の略で、「もしこれならあれをする」というそのままのサービスです。 どちらもとてもシンプルにレシピを作ることができるのが特徴です。
サービス形態
どちらもスマートフォンの両OSをサポートしていますが、IFTTTにはWEB画面があります。
サービス名 | iOS | Android | WEB |
---|---|---|---|
myThings | ◯ | ◯ | × |
IFTTT | ◯ | ◯ | ◯ |
複雑な条件の設定をするとき、レシピが多くなってきたときはWEB画面で管理できるIFTTTは便利だと思います。
チャンネル数
チャンネルの数はIFTTTが圧倒的すぎるので、比較しません。またサービス開始もmyThingsは間もないので、規模で比較するのはアンフェアかなと思います。正直多すぎて引きます。(IFTTTで連携できるサービスを全部調べてまとめたら、IoTマスターになれるかも・・・。今度やるかw )
トリガーの比較
IFTTTとmyThingsには、共通したチャンネルがいくつかあるので、比較してみます。
サービス名 | myThings | IFTTT |
---|---|---|
近況投稿 | - | New status message by you |
ハッシュタグ付き近況投稿 | - | New status message by you with hashtag |
リンク投稿 | - | New link post by you |
ハッシュタグ付きリンク投稿 | - | New link post by you with hashtag |
シェア | シェアをしたら | - |
指定範囲内からの投稿 | - | Any new post by you in area |
写真投稿 | 自分が写真付きの投稿をしたら | New photo post by you |
ハッシュタグ付き写真投稿 | 自分が指定のハッシュタグ付きの写真を投稿したら | New photo post by you with hashtag |
位置情報付き写真投稿 | 自分が位置情報付きの写真を投稿したら | - |
指定範囲から写真投稿 | - | New photo post by you in area |
写真にタグ付けされた | - | You are tagged in a photo |
プロフィールが変わった | - | Your profile changes |
比較してみると、myThingsは写真にやたら偏っている。IFTTTは、ステータス、リンク、シェア、プロフィールなど幅広く取り揃えています。 よく見ると、なんでもいいので投稿したら、という項目がどちらにもないことに気づきました。
netatmo
サービス名 | myThings | IFTTT | 備考 |
---|---|---|---|
気圧が上がる | - | Air pressure rises above | |
気圧が下がる | - | Air pressure drops below | |
二酸化炭素濃度が上がる | - | Carbon dioxide rises above | |
二酸化炭素濃度が下がる | - | Carbon dioxide drops below | |
湿度が上がる | - | Humidity rises above | 室内・室外 |
湿度が下がる | - | Humidity drops below | 室内・室外 |
騒音レベルが上がる | 一定以上の音量を感知したら | Noise level rises above | |
騒音レベルが下がる | - | Noise level drops below | |
温度が上がる | 室温が指定の温度以上なら | Temperature rises above | 室内・室外 |
温度が下がる | 室温が指定の温度以下なら | Temperature drops below | 室内・室外 |
雨を検知 | - | Rain detected | |
雨が検知されない | - | Rain no longer detected | |
今日の降水量 | - | Today's rainfall measurement | |
前日の降水量 | - | Yesterday's rainfall measurement |
IFTTTのほうはとても充実しており、はっきり言ってしまうと、現状ではnetatmoについては、myThingsはIFTTTの下位互換です。
ただまだ出たばかりなので、優先度の高い温度系と騒音を対応したのだと思います。今後の追加に期待です。
*1
Withings(体重計だけ)
サービス名 | myThings | IFTTT | 備考 |
---|---|---|---|
新しい計測 | - | Air pressure rises above | |
体重増加 | - | Body Scale - Weight measurement rises above | |
体重減少 | - | Body Scale - Weight measurement drops below | |
体重計測なし | 最後の体重測定から一定の期間測定しなかったら |
Withingsのトリガーはどちらも控えめです。APIでは体脂肪率がとれますし、空気の質も計測しているのでトリガーにあっても良さそうです。 *2
トリガー考察
全般的にIFTTTのほうが種類豊富で、細かく条件を設定できます。 しかしながら下位互換というわけではなく、myThingsにしかないトリガーがいくつかあります。 例えば、「最後の体重測定から一定の期間測定しなかったら」というトリガーはとてもよく考えられています。
スマート体重計は結局乗り続けないと、計測データが取れず、役をなしません。体重が増えてるかも・・と思ってなかなか体重計に乗らない日もあるかもしれません。前回の記事にも書きましたが、初めはIFTTTの新しい計測があったら照明を付ける、といったレシピを作り、帰ったら体重計に乗る習慣をつけようとしました。しかしながらこのレシピでは15分経たないと照明はつきませんでした。Withingsのトリガーがもともとリアルタイムに作られていませんでした。
その点、myThingsの「最後の体重測定から一定の期間測定しなかったら」というトリガーは有用で、乗らなかったときにFacebookに投稿するというペナルティを与える使い方で、毎日乗るようになりました。IFTTTの後追いで同じトリガーを作るのではなく、ユースケースを考えて工夫されていると感じました。
登録チャンネル外の連携
登録されていない市販デバイスや自作デバイスを連携させる手段がどちらにもあります。
myThingsの場合
IDCFクラウド上のサーバーを立ち上げ、MQTTにてイベントを登録、発火させます。
IoTが流行りつつあるとはいえ、なかなかハードルが高いと思います。サーバーの利用料も気にしないといけませんし。
またそれで作ったとしても、15分に1回という発動タイミングなので、厳しいです。Hackeyを買って繋げようとしたら、リアルタイムに発動するのに毎回アプリの即時実行ボタンを叩かなくてはいけないことをしり、がっかりしました。
ただ15分の間隔をうまく使っているハックもあるようです。寝落ちしたらHueなどのデバイスで起こしてくれるもので、寝落ちしても15分は寝かせてくれる、といううまい使い方をしていました。
IFTTTの場合
IFTTTには、Maker Channelというものがあり、発表されてからハックがとても捗りました。
トリガーのほうは、これを叩けば、というGetのリクエストを簡単に生成することができます。
アクションのほうもは、自由度が高くリクエストを生成できます。POST, GETはもちろん、PUT, DELETE, HEADなどのメソッド、jsonやurlencoded, plainなどボディの形式も選べて、OAuthでない限りほとんどのWebAPIに対応できるのではないかと思います。
便利なので、メーカーチャンネルからメーカーチャンネルという、認証チャンネルを介さない使い方をしてしまうほどです。
例えば、Hackey→IFTTT→IRKitという使い方で、鍵を回すと照明が付くということが簡単に作れてしまいます。
DIY文化、メーカームーブメントの浸透度の違い
こうした比較から思うのは、アメリカ人のDIY文化の強さです。アメリカでは、自分の家の価値を高めるため、生活しやすくするため、積極的に家をリフォームしたり、カッコイイと思うものを自分で作ってみたりと、自分で作る文化性がとても高いように感じられます。Maker Faireもアメリカ発祥ですし、Burning manもそうです。
なぜ日本ではDIYやMakerの文化が根付かず、アメリカがここまで強いかは諸説あると思います。 個人的には、多様な人々、多様な価値観、生活習慣があり、万人が便利だと思うものを作るのは難しいため 自分でカスタマイズしていく文化が強くなっていったことが理由としてあると思います。
こうした人にとって、変にカスタマイズされたものよりも、不完全でも自分で改良する余地が大きいほうが嬉しいです。 こういった文化だからこそ、幅広いチャンネル、トリガー、アクションを用意しているIFTTTが愛されているのだと思います。
myThingsへの期待と要望
もちろんこうしたものを直接日本人が受け入れられないのは分かりますが、挑戦していこうとするmyThingsは素晴らしいと思います。こうしたDIY, Makerの文化を広げていってくれることに期待しています。
現状でDIY文化がなかなかない以上、ユーザーを拡大するには、あまり考えなくてもすぐ使えるレシピやトリガーを作ることが必要かもしれません。各デバイスから得られる一次情報を加工して、二次情報として使いやすいトリガーにしてくれると嬉しいです。 例えばNetatmoの場合、花壇に水やりが必要か判断するために、「一定期間内の降水量が閾値よりも小さいとき」とか、家族や老人の見守り用に、「一定期間騒音レベルが閾値に達しなかったとき」などです。
とはいえ、メーカームーブメントやDIY文化を日本にも根付かせる観点から、過度に用意しすぎる方向にいかないことを願います。とにかく自由度が欲しいです。
というわけで、以下の2点を要望します。
リアルタイム性のあるMaker Channel
15分に1回はさすがに厳しいです。リアルの行動がちゃんとリアルにすぐ反映できるようにしたいです。
また、より簡単に自作デバイスもしくはAPIを持つ未登録デバイスが使えるようになるMaker Channelが欲しいです。
時間・場所制限
トリガーを発動する条件に制限を加えたいです。前から思ってるのですが、IFTTTじゃなくて、IF This and This and This Then That and That,くらいのサービスが欲しいです。 具体的には、
- 寝ている夜中には時間帯には発動させない、といった時間制限
- 自宅にいないときに発動させない、GPSによる場所制限
が欲しいです。こうしたサービスを一般向けのmyThingsじゃなくても、myThings Proみたいな月額料金制のMaker向けのサービスでもよいです。お金払います。
まとめ
myThingsはチャンネルやトリガーの幅がまだ狭い部分もあるが、ユースケースがよく考えられたトリガーがあります。また開発者向けにはまだまだ使いづらいところがあります。DIY, メーカームーブメントを日本で根付かせるためにも頑張って欲しいです。
明日のmyThings Advent Calendar 2015は、takuya-andouさんです。