hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

TP-Link TapoのLEDライトの色を毎秒変え続けるスクリプト

イエーイ、盛り上がろうぜ、みたいなときには、照明がチカチカ変わっていい感じになってほしい。
家で使ってるTP-LinkのTapoって照明にはAPIがあったので、色を変える信号を送り続けるスクリプトを書いて、無事家の照明をチカチカできるようになった。



Node.js用のライブラリがあったので、これを使って、機器のリストを取ってきて、毎秒ランダムな色を送る。RGBの各値をFFか00のどちらかにしたらパキッとした色が出てよかった。ただし、見て楽しくない色は除きたいので、真っ白か真っ黒にはならないようにする。
書いたのはだいぶ前なのだけど、よく見るとすごい乱暴な実装になっていておもしろい。

function randomColor() {
  const ff00 = () => (Math.random() >= 0.5 ? "FF" : "00");
  const c = `#${ff00()}${ff00()}${ff00()}`;
  if (c === "#000000" || c === "#FFFFFF") {
    return randomColor();
  } else {
    return c;
  }
};

夜に試してたら、家族が寝てる寝室もチカチカしてしまっていた。
寝ててくれたので良かったけど、ふと起きてチカチカしてると気になるかと思って、起動時に機器名を指定できるようにした。


仕事で使おうと思うと、障害発生時に照明が赤くなるとか仕込んでおくと、会議してて障害に気づきませんでした、みたいなのがなくなりそう。
ただ面接中に突然照明がデデーンって赤くなると、悪い受け答えをしてしまって、失格かな?みたいに誤解される恐れもある。

github.com


このライトは2000円くらいでOK Googleとか言って色を変えられるのでおすすめです。