Smart HomeをDIYする

Apple HomeKit は対応製品が少なくて高価なのでHomebridgeでがんばります

話題のThreadを使ってみた

スマートホーム機器を統一すると期待されているMatterは、有線LAN/WiFiに加えて、Threadの上で動くことになってます。そのためThreadが注目されています。聞きなれない名前なので、ごく最新の規格なのかと思っていたら、昔からある規格でした。対応製品がいくつもあり、なんと目の前にあるHomePod miniにもThreadが搭載されていました。色々調べた結果をまとめておきます。また、Threadを採用したLED電球を買って、HomePod miniに接続し、動作確認しました。

Personal Area Network (PAN)

まずはThread, Zigbee, BLEが対象とするPANという用語の説明です。

PANって言葉を最初に使ったのは多分IBM研究所のZimmermanさんで1996年ころのことです。人体の接触で通信して、例えば握手すると名刺交換できたり、ドアノブに触ると解錠される仕組みを提案してました。その後、近距離の低消費電力微弱電波によるネットワークのことがPANと呼ばれるようになりました。キーボードやヘッドフォンを無線で繋げたり、超消費電力のセンサーネットワークなどで使われるネットワークがPANと呼ばれてます。

Thread

Matterで話題になるまでThreadの事を知りませんでした。調べてみました。

Threadは、IEEE 802.15.4という規格の物理層データリンク層の上に、IPv6UDP/IPを実装したものです。IEEE 802.15.4は、Zigbeeで使われている規格です。Threadが実装されていれば、EthernetWiFiで動いているIPベースのプログラムが動きます。コンピュータネットワークの世界から見たら、理想的なPANの実装と言えます。

( https://www.threadgroup.org/ )

でもThreadはあまり流行っている印象がないです。スマートホームで使うPANといえば、ZigbeeかBLEです(海外にはこれらに加えてZ-Waveってのもあるらしいです)。Threadは新しい規格ということで認知されていないのかもしれません。検索して時期を調べてみました。確かに、他と比べると新しいですね。

  1. Zigbeeは2004年から (IEEE 802.15.4-2003)
  2. BLEは2009年末から (Bluetooth 4.0)
  3. Threadは2014年から (Thread Group)

認知度の低かったThreadですが、Matter (2019~)のおかげで急に脚光を浴びている印象があります。MatterはもともとConnected Home over IP(CHIP)と呼ばれていて、デバイスを全部IPで接続したいという方針です。なので、PANの規格としてIPが動くThreadが採用されるのは当然の流れだったと思われます。

IPのPANと非IPのPAN

上のThreadの階層図のネットワーク層に6LoWPANという名前があります。IPv6 over Low-Power Wireless Personal Area Networksの略で、「しっくすろうぱん」と発音します。最初のRFCは2007年らしく、その頃は話題になってました。その後、ZigbeeやBLEの影に隠れて、忘れられて(いたと思って)いました。Threadではこの6LoWPANを活かしているようです。調べていたらこちらにわかりやすい解説がありました。PANはデータ量が少ない上に、ノイズでデータを失う可能性も高いので、MACフレームサイズが小さい(127バイト)そうです。それに対して、IPv6のサイズは大きい (1280バイト以上)ので、分割したり圧縮したりという地道な工夫が必要です。6LoWPANはそれをやっているそうです。

これに対してZigbeeやBLEでは、IP接続ではなく、独自のプロトコルを採用してます。電力やバンド幅をふんだんに使えて、S/N比の高い通信環境を対象としたIPを、PANに持ち込むのは非効率的だとの考えだと思います。でもそのかわり、ZigbeeやBLEをIPネットワークから利用するためには、橋渡しをするブリッジ(ゲートウェイ)が必ず必要になります。それも、プロトコルが違うので、ネットワーク階層の上のレベルで、データの意味を判断して橋渡しすることになります。なので、例えばA社のゲートウェイはB社のデータ構造を知らないので橋渡しできない、という状況を招きやすく、互換性が無いのが現状です。TuyaのセンサにはTuyaのゲートウェイが必要ですし、SwitchBotのデバイスにはSwitchBotのゲートウェイが必要です。

Matterは、多少非効率でも互換性が高い方が良いという判断で、IPで動くPAN規格であるThreadを採用したのかと思います。下の図はThreadネットワーク構成例の図です。それぞれのデバイスまでIPが到達していることが記されてます。物理層が違うのでその橋渡しをするThread Border Routerというユニットは必要ですが、UDP/IPレベルのパケットをそのまま通過させるだけです。データの詳細を解読する必要がないので、デバイスのメーカに関係なく機能する互換性の高いシステムになります。また、パケットの中まで解析する必要がないので、暗号化されているデータを解読する必要がなく、セキュリティとしても有利です。

( https://www.threadgroup.org/ )

Zigbee, BLEとThreadの関係

ZigbeeもBLEも、IPではない、独自のプロトコルなので、Threadとは互換性がありません。今まで構築されたスマートホームの環境なら、引き続き使用可能ですが、Matterのネットワークで使用するには、Matterのデータ構造とプロトコルに対応したゲートウェイが必要になるはずです。

ただ、Zigbeeに関しては、ネットワーク階層の物理層データリンク層がThreadと同じIEEE 802.15.4です。Zigbeeが先に作られていて、6LoWPANとThreadがそれを利用したという順番です。Zigbee用チップのデータリンク層以下は使い回しできると思われます。Matterを作っている組織であるConnectivity Standards Alliance (CSA)は、その前の名前がZigbee Allianceでした。BLEをベースにしてIPv6を実装するのではなくて(そういう仕掛けもあるらしいです)、IEEE 802.15.4を採用したことには多少の政治的理由もあるのかもしれません。

Threadを使う上で、BLEにも役割が与えられてはいます。上の図にも少し出てますが、セキュリティや設定の部分でBLEを使うこともあるとのことです。機器の設定を行う場合に、スマートフォンに搭載されているBLEを利用することを想定しているのでしょう。今のHomeKitのように、QRコードを読んで設定するような方式では、おそらくBLEは使わないと思います。

すぐに買えるThread製品

国内で買えるThread製品を探してみたところ、AmazonでNanoleafという会社の製品を見つけました。Threadに対応した照明器具を何種類か販売しているようです。その中でも、LED電球が一番安かったです。

NanoleafのThread使用方法を説明したwebページを見ると、Thread Border Routerになるデバイスを別途入手して、それ経由でGoogle Home, Amazon Alexa, Apple HomeKitなどからアクセスするようです。Nanoleaf社以外のThread Border Routerとしては、eeroという会社の製品または、Apple HomePod mini, Apple TV 4Kがあるとのことです!なんと、目の前にあるHomePod miniがThread Border Routerだとは知りませんでした。

ちなみに、eeeroの製品をAmazonで探したところ、専用の取り付けブラケットが数千円から1万円くらいで売られているだけでした。あまりに高価なので、本体かと思いました。本体は販売されていないようです。

ということで、現時点で国内で入手できるThread Border Routerは、調べた範囲では、AppleのHomePod miniとAppleTV 4Kだけのようです。

Thread対応のApple製品

まずはHomePod miniです。サイトのスペック表には、確かにThread搭載していると書いてあります。

ただ、

との注が付いていました。Threadには対応しているものの、HAP関係のパケットのみを中継しているようです。年内には、HomePodのOSがバージョンアップによりMatter対応するとのことなので、その時にはMatter関係のパケットも中継するようになるのだと思います。

追記:現在は、Matterにも対応しています (2023/1/21) 。

もう一つはApple TV 4Kです。2021年発売のApple TV 4K (第2世代)と、先日発売になったばかりの2022年版のApple TV 4K(第3世代)でThread対応しています。

ただし、Apple TV 4K 第3世代は、Ethernet搭載モデルだけがThread対応です。WiFiモデルはThread Border Routerにならないようです。

Apple TV 4K 第3世代の注意書きを見ると、こちらはHomeKitとMatterに対応しているようです。またThread Border Routerに相当しているという説明もありました。

一方で、GoogleAmazonスマートスピーカー類をいろいろ調べてみたのですが、Threadに対応しているという記述は見つかりませんでした。Amazon Echoの上位機種にはZigbeeが搭載されているのですが、Threadには対応していないようです。Amazon, Google, Appleの中では、Appleが一番Threadに力を入れていたようです。Thread対応のデバイスを探してみると、HomeKit対応製品が多かったのですが、これも、HomePod mini, Apple TV 4KにThreadが搭載されている関係なのでしょう。

Nanoleafの電球

ならば、NanoleafのThread電球を買って、HomePod miniで試すべきかと思いました。ゴツゴツした特徴のある形の電球です。

以前買った格安フルカラーLED電球と比べたら高価ですが、他のブランド品と比べたら普通の価格です。明るく発色も良い製品かと思います。HomeKit対応と書いてあり、本体にもコードが印刷されています。

          

また箱には、Thread Border RouterがあればThreadによって信頼性が向上するという説明も書いてありました。

Google Homeでも動作すると書いてあります。箱には書いて無いですがAmazon Alexaからも動作するはずです。Bluetoothロゴがあるので、Threadが無い環境ではBLEで動作するのかもしれません。

電球を通電し、iPhoneのホームから「アクセサリの追加」を選び、QRコードを読み取りました。このように、通常のHomeKitデバイスと同様の方法で追加した結果、ホームに表示されました。

工場出荷時設定リセットの方法

ホームに表示されている下向き矢印マークは、新しいファームウェアがあるのでダウンロードせよという案内です。NanoleafのiOSアプリが必要とのことで、まずはアプリをダウンロードしました。アプリの中から「ファームウェア更新」というメニューを選び更新しました。しかし更新したところ、今度はHomeKitでの応答が悪くなりました。登録しなおそうと思い、ホームから削除したら、再登録できなくなりました。

そこで、Nanoleafのサイトに書いてあった工場出荷時状態へのリセットを試しました。3秒間隔でon/offすると5回目に電球が点滅しフル点灯になりリセットされます。この結果、再びHomeKitに登録できるようになりました。ファームウェアアップデートをした後は、リセットしないといけないようでした。

ただ、これ以降も時々応答が悪くなったり、「アップデート中」になったり「応答なし」状態になることがあります。ファームウェアアップデートとは関係なかったのかもしれません。ネットワーク環境のせいかもしれませんが、同じくHomeKit対応のMerossのスマートプラグは問題なく安定して動作してます。NanoleafのHomeKit実装の問題なのか、Threadの問題なのか不明です。しばらくすると回復しますが、待ちきれない場合はまたリセットしてます。とはいえ1個しかないThread対応デバイスなので、引き続き使用して様子を見ます。

     

追記:HomePodソフトウェアを16.1にバージョンアップしたら、「アップデート中」とか「応答なし」となる状況がほぼ解消しました。バージョンアップが効いたのかと思います。(2022/10/25))

Thread接続になっているのか

いろいろ試して電球の接続方式を確認したところ、確かにThread接続のようでした。

まず、HomePod miniの電源を抜いてoffにしました。すると電球は反応しなくなりました。電源を戻すと、しばらくして復旧しました。HomePod miniを経由して接続されていることは間違いないようです。BLE接続の可能性はなくは無いですが、Threadで接続されていると思われます。

NanoleafのiOSアプリには、Threadネットワークという項目がありました。Threadの一部として動いているように読み取れます。Threadのメッシュを構成するデバイスはThread Routerというらしいので、ここもルーターと表示されているのかと思います。Zigbeeでも電球はルーターになるので同じ扱いなのでしょう。

さらにNanoleafのiOSアプリから電球を選択し、設定画面を開いたところ、

接続タイプが「糸」になってました。直訳がキツイですが、Thread接続になっていました。

まとめ

Threadについて調べました。Appleは昔からThreadを応援しているようで、HomePod miniとApple TV 4KがThread対応していることを知りました。またThread対応のNanoleafの電球をHomeKitにThread接続して、動作確認しました。