みんなのケータイ

NFCタグ&スマホをHueの物理スイッチ代わりにしてみた

Hueの物理スイッチが高いので、1枚100円くらいのNFCタグを使ってみる

 スマートホームに欠かせないスマートライトのHue。我が家にもすでに16個くらいあって大活躍しているのだが、いくらスマートフォンアプリからも操作できるスマートライトだからといって、いちいちそのすべてを専用アプリから操作するのは超メンドい。

 ホーム画面からすぐに操作できるウィジェットも一応あるが、しばらくするとなぜか機能しなくなったりするのでアテにならない。メインで使っているarrows 5G F-51Aを含め、最近のAndroid端末だと電源キー長押しで宅内のスマート機器を手軽に操作できるようになったりもしているが、それでも目的の操作を達成するのに多少の手間がかかる。スマートスピーカーの音声操作も迅速さに欠ける気がする。

arrows 5Gでは電源キー長押しで宅内のスマート機器を操作できるが、ちょっと手間がかかる

 結局、照明を直接操作できる物理的なスマートスイッチ、またはディマースイッチが手っ取り早いので、ライトとセットで購入したくなるのだが、1個3000円前後するから、照明ごと、部屋ごとに買い揃えようとするとこれまたコストが爆上がりになってしまうのが困りどころ。

 スマートフォンのメンドい操作はできる限り避けつつ、物理スイッチを追加購入することもせず、それでもなんとかハードウェアボタンっぽい気楽さでオンオフできる方法はないものか。

Hueのディマースイッチ(左)とスマートスイッチ(中央)。それぞれ3000円前後するので、照明ごとに買うのはちょっとキツい

 そんなときにふと思い出したのが、HueのAPIの存在だ。Hueでは照明を制御できるAPIが公開されていて、誰でも利用できる。いろいろなソフトウェアやハードウェアから自由にそのAPIにアクセスし、室内のライトをオンオフしたり、明るさ・色合いを変えたりできるのだ。

 であれば、スマートフォンのおサイフケータイ機能を使って、特定のNFCタグにかざしたときに、そのAPIを叩いて照明を制御する仕組みを作れば、めちゃくちゃ安価にスイッチ代わりのものができちゃうのでは……。

HueのブリッジのURLにアクセスすると、API操作を試せる画面が表示される

 ということで、さっそくトライしてみる。以前、当コーナーでスマートロックのセサミを、同じようにNFCタグで制御する仕組みを紹介したが、今回も基本的なやり方としてはそれと大きくは変わらない。

 ざっくりと流れを説明すると、HueのAPIを呼び出すプログラムをPHPで作り、NASのWebサーバーに置く。その後、「Trigger」というアプリでプログラムのURLをNFCタグに書き込めば、あとはスマートフォンをNFCタグにかざすだけでURLにアクセスし、Hueを操作できるようになる、という感じ。

なんとなくPHPでプログラムを作成
NAS上でWebサーバーを稼働させ、そこにプログラムをアップロード
「Trigger」アプリで、トリガーにNFCを選択
アクションには「URL/URIを開く」を指定
パラメーター付きのURLを入力
NFCタグにスマートフォンをかざしてURLを書き込む

 プログラムは、最初にライトの状態を取得して、オンだったらオフに、オフだったらオンに切り替える単純な内容。ライト単体や複数のライトからなるグループは、URLに付加するオプションパラメーターで指定する形なので、1つのプログラムで室内のどのライトにも対応可能だ。

 なので、たとえば部屋の明かり、デスク上の明かり、クローゼットの明かりをそれぞれ個別にオンオフできるようにしたいなら、NFCタグもそれぞれに1つずつ用意すればいいということになる。

スマホをかざすだけで部屋の明かりをオンオフ可能に!
Web会議時の照明に使っている2個セットのHue Playも、その上に貼ってあるNFCタグにかざすだけでオンオフできるようにした

 NFCタグは10個入りが1000円程度で手に入るので、専用のディマースイッチよりはるかに安上がり。もちろん、1つのNFCタグで叩けるのは基本的には1つのURLのみなので、物理スイッチのように自在に明るさ調整できるような仕組みにするのは困難だ。けれども、とりあえずオンオフだけしたいとか、暗くしたい・明るくしたい、みたいに決め打ちで制御するような目的であれば、これで十分だろう。

 自宅にある全てのライトをオンオフするNFCタグを玄関に貼っておいて、外出するとき、もしくは帰宅したときにさっとスマートフォンをかざして丸ごと操作できるようにするのも便利そう。なんかNFCタグが室内に大量に貼られている未来が見えなくもないが、日常生活が便利になるなら、まあ、OKということにしたい。