
パソコンのケースファンを、Philips Hueのアプリからグラデーション照明として操作したい。3Qaxと名乗る製作者はこの目標のため、HueのZigbee通信を解析し、ESP32-C6をHue公式のグラデーション照明として振る舞わせるファームウェア「Gradient Light Bridge」を製作した。MITライセンスでGitHubに公開している。
Hueのブリッジに機器を認識させるだけなら難しくない。壁になったのは、単色の照明ではなく「グラデーション照明」として認識させることだった。Hue純正のグラデーション対応製品は、1本のライトの中で複数の色が連続的に変化する。この挙動をブリッジに正しく認識させ、シーンの呼び出し、動的な色変化の再生、フェード、電源復帰後の状態復元まで対応させるには、実物のグラデーションライトが交わすZigbee通信を記録して比べる必要があった。
解析の中心になったのは、Hueが独自に定義したクラスター「0xFC03」だ。グラデーションの色配列、エフェクトとその速度、スケール、オフセット、スタイルといった情報がここに入る。製作者はこの仕様について、コミュニティーの解析資料や学術論文、ブリッジのハッキング事例まで20件以上の参考文献をリポジトリに整理して残した。
完成したファームウェアは、1個のESP32-C6から最大5つの照明として認識される。出力方式は2種類だ。1つはWS2812などのアドレサブルLEDを直接駆動する方式で、ESP32-C6のRMT機能でGPIOからデータ信号を送る。60個のLEDを12個ずつ5分割し、それぞれをHueの別の照明として扱える。もう1つはパソコン側と連携する方式で、ESP32-C6はUSBシリアル経由でJSON形式の状態変化を出力するにとどめ、受け取ったPython製の常駐プログラムがRGB制御ソフト「OpenRGB」経由でマザーボードやメモリー、ケースのLEDに反映する。
色の見え方をそろえる工夫も入れている。製作者によると、RGB機器の発色はLEDチップや拡散板、制御ファームウェアによってばらつき、同じRGB値でも青すぎたり暗すぎたりする。そこでFastLED風の色補正を独自に実装し、チャンネルごとのゲインとガンマ、色温度プリセットを調整できるようにした。純正のHue照明と同じシーンを並べて比べ、強すぎるチャンネルを下げていく手順も文書化している。
なお、HueのブリッジにZigbee機器を参加させるには、Hue独自の認証鍵が必要になる。製作者はこの鍵を「解析コミュニティーでは広く知られているが、法的な理由からこのリポジトリには含めない」として、利用者が自分で用意する形にした。
現時点でできないことも明記している。Hue Entertainmentの映像同期機能、ろうそくや暖炉といった名前付きエフェクト、実際のファームウェア更新機能は未実装だ。1個のESPから複数の照明を出すとHueアプリでは1つの親機器にまとめられ、親側で色を変えると各エンドポイントへ順番に命令が飛んで色が波打つように変わる。ただしこれは純正のHue照明を複数まとめて操作したときにも起きるため、ブリッジ側の仕様だとしている。

