TL;DR
いい色のLED電球をNode.jsで操作できる。
日本でもIKEA Trådfri Gatewayが売ってる。
IKEAにふらっと行ってみたら、
うおおおおおおおお!!!!!
いつの間にか、IKEA Trådfri Gatewayが売られている!!!!
おおおおおおおお!!!!
取り乱しましたが、IKEA Trådfriとは、かの家具量販店IKEAで販売している、無線で操作できるLED電球のことです。
専用のリモコンで操作できる他、GatewayがあればGoogle Home,Alexaはもちろん、ソフトウェア操作できるものです。
ただ、悔しいながら、日本では、Gatewayが販売されていなかったのです。
シーリングライトはもちろん、床暖房までボイスコントロールするほどホームオートメーション好きの私でしたが、Amazonで入手したLED電球のダウンライトを赤外線操作可能なLEDに変更したところ、色が明るすぎ(白すぎ)て部屋に合わず、スイッチ操作のものに戻してしまっていました。
それに比べて、IKEA Trådfriは色がとても良いです。IKEAの店舗に行っては、Trådfriの暖かな色に羨望の眼差しを向けていましたが、専用のリモコンでしか操作できない日本のTrådfriでは無線のオイシさも半減。購入をできずにいました。
それが!今週ふらっとIKEAに行ってみたら!あるではありませんか!Gateway!
ということで、LED電球も合わせてGatewayを買ってしまいました!!!!!
セットアップ(省略)
Trådfri GatewayがあればGoogle Home、Alexaとも接続できます。手順はたくさん書いてあるので、ググってください。ここでは省略します。
が、注意点を1点。
TrådfriはLED電球単体で販売していますが、Gatewayとの接続のためにはリモコン(上記写真のLED電球とともに写っている丸いやつ)が必要です。最初に買うときは、リモコンとセットのものを購入することをおすすめします。1つあればいいので、2個めからはLED単体のものをご購入することをおすすめします。
NodeでLチカ
Node.jsで操作するときは、node-tradfri-clientを使えばAPI操作ができます。
先にAndroid/iPhoneでのセットアップを済ませておいてください。
mkdir tradfri
cd tradfri
npm install node-tradfri-client
サンプルコードは以下です。
var tradfri = require("node-tradfri-client");
var Client = tradfri.TradfriClient
async function lightTo(deviceName, onOff) {
const gateway = await tradfri.discoverGateway();
var client = new Client(gateway.addresses[0]);
const {identity, psk} = await client.authenticate(process.env.SECURITY_CODE);
await client.connect(identity, psk);
client.on("device updated", async (device) => {
if (device.name === deviceName, device.type === tradfri.AccessoryTypes.lightbulb) {
await client.operateLight(device, {onOff, transitionTime:5});
setTimeout(() => client.destroy(), 500);
}
}).observeDevices();
}
lightTo(process.env.NAME, process.env.ON == "true");
簡単ですね。
あとは、コマンドで
NAME={Android/iPhoneで設定したLEDの名前} ON=true SECURITY_CODE={Gatewayの裏に書いてあるSecurity Code} node index.js
まとめ
実はPhilips Hue Bridgeを使えば、これまでもTrådfriは操作できたのですが、Hue BridgeはAmazonで7000円以上、Trådfri Gatewayであれば、店舗に行けば5000円くらいで買えます。
まだホームオートメーションをやられたことがない方もTrådfriでお家のソフトウェア制御を始めてみてはいかがでしょう?