近距離無線

Zigbee

低消費電力のメッシュ無線。スマートホーム向け。

概要

Zigbee(ジグビー)は、IEEE 802.15.4を物理層・MAC層に採用した低消費電力メッシュ無線通信規格です。CSA(Connectivity Standards Alliance、旧Zigbee Alliance)が上位プロトコルを標準化しており、スマートホーム・ビルオートメーション・スマートエネルギー(スマートメーター)などのIoT用途に広く使われています。

2.4GHz帯(全世界)を使用し、250kbpsのデータレートで10〜100mの通信距離を持ちます。メッシュネットワーク構成により電波の届かない場所でもデバイス間で中継しながら通信を維持します。コイン電池で数年動作できる省電力設計で、1ネットワークに最大65,000台接続できます。

Matter規格がZigbee Allianceを母体に開発され、ZigbeeとIPネットワークのブリッジとして機能するため、スマートホーム分野では引き続き重要な役割を担っています。

歴史・背景

Zigbeeの前身となるIEEE 802.15.4規格は2003年に策定されました。Zigbee Allianceは2002年に設立され、2004年にZigbee 1.0仕様を公開しました。

主な進化の歴史:

  • 2004年: Zigbee 1.0(初版)
  • 2006年: Zigbee 2006(リビジョン)
  • 2007年: Zigbee 2007 / Zigbee Pro(セキュリティ・スケーラビリティ強化)
  • 2012年: Zigbee Light Link(照明用プロファイル)
  • 2013年: Zigbee Home Automation(HA)プロファイル
  • 2015年: Zigbee 3.0(既存プロファイルを統合・整理)
  • 2019年: Zigbee Alliance が Thread Group・Apple・Google・Amazon・Samsung等とProject CONNECTEDを発足
  • 2021年: Zigbee Alliance が CSA(Connectivity Standards Alliance)に改名し、Matterの開発を推進
  • 2022年: Matter 1.0リリース(ZigbeeからMatterへの移行が加速)

技術仕様

基本パラメータ

パラメータ
物理層・MAC層規格IEEE 802.15.4
周波数帯2.4 GHz(全世界共通) / 868 MHz(欧州) / 915 MHz(米国)
データレート2.4GHz: 250 kbps / 868MHz: 20 kbps / 915MHz: 40 kbps
通信距離10〜100m(見通し)
最大接続台数1ネットワーク最大65,534台
ネットワーク構成スター / ツリー / メッシュ
暗号化AES-128
消費電力(受信時)約30〜50 mA
消費電力(スリープ)数µA〜数十µA

プロトコルスタック

アプリケーション層
├── Zigbee Cluster Library(ZCL): デバイス操作の共通API
│   ├── クラスター(On/Off, Level Control, Color Control等)
│   └── プロファイル(Home Automation, Smart Energy等)
├── Application Support Sub-Layer(APS): エンドポイント管理
├── Zigbee Network Layer(NWK): メッシュルーティング
├── IEEE 802.15.4 MAC
└── IEEE 802.15.4 PHY

デバイス種別

Zigbeeネットワークは3種類のデバイスで構成されます:

デバイス種別役割電源
Coordinator(コーディネーター)ネットワーク形成・管理。1ネットワークに1台常時電源ゲートウェイ・ハブ
Router(ルーター)データ中継・ルーティング常時電源スマートプラグ・電球
End Device(エンドデバイス)センシング・制御のみ。中継不可電池可センサー・リモコン

エンドデバイスは中継処理を行わないため最も省電力で、電池駆動で数年の動作が可能です。

Zigbee Cluster Library(ZCL)

ZCLはデバイス間の操作を標準化したAPIセットです:

主要クラスター例(Attribute / Command):

On/Off Cluster(0x0006):
  Attribute: OnOff(true/false)
  Command: Off(0x00), On(0x01), Toggle(0x02)

Level Control Cluster(0x0008):
  Attribute: CurrentLevel(0〜254)
  Command: Move to Level, Step, Stop

Color Control Cluster(0x0300):
  Attribute: CurrentHue, CurrentSaturation, ColorTemperatureMireds
  Command: Move to Color, Move to Color Temperature

Temperature Measurement(0x0402):
  Attribute: MeasuredValue(0.01℃単位の符号付き16bit整数)

Occupancy Sensing(0x0406):
  Attribute: Occupancy(人感センサー状態)

アドレッシング

Zigbeeのアドレス:
- IEEE アドレス(64bit EUI-64): 製造時に付与される一意アドレス
- NWKアドレス(16bit): ネットワーク参加時に動的に付与

エンドポイント(8bit, 1〜240):
1台のデバイスが複数の機能(エンドポイント)を持てる
例: スマートプラグ1台に「On/Off制御」と「電力計測」の2エンドポイント

動作原理

メッシュルーティング

ZigbeeのNWK層はメッシュルーティングをサポートします。AODV(Ad hoc On-demand Distance Vector Routing)をベースにしたアルゴリズムで経路探索します:

経路探索(Route Discovery):
送信元が目標デバイスへのROUTE REQUEST(RREQ)をブロードキャスト
  → 各Routerが転送しながらコスト累積
  → 目標デバイスがROUTE REPLY(RREP)をユニキャスト返信
  → 送信元が最小コスト経路を選択してルーティングテーブルに保存

障害時の自動再ルーティング:
経路中のノードが不応答 → Link Status Failure
  → 次の代替経路を探索(Route Repair)

省電力メカニズム

エンドデバイスの省電力:

1. Beaconed Network(Beacon Enabled):
   - Coordinatorがビーコンを一定間隔で送信
   - エンドデバイスはビーコンに同期してスリープ/起床
   - スーパーフレーム構造で低デューティーサイクル実現

2. Non-beaconed Network(Beacon Disabled):
   - エンドデバイスは自由にスリープ可能
   - 受信時は親ノード(Router/Coordinator)のキューにバッファ
   - 起床後にData Request送信してキュー確認
   - スマートホームでは主にこちらを使用

セキュリティ

AES-128-CCMによる暗号化と認証:
- ネットワークキー(128bit): 全デバイス共通の暗号鍵
- アプリケーションキー: エンドポイント間の追加暗号化
- Trust Center: Coordinator上で動作し、デバイス認証・キー配布を管理

キー配布の仕組み:
新デバイス → Install Code(QRコード/製品ラベル)→ Trust Center
→ ユニークな暗号化チャンネルでNetwork Keyを安全に配布

用途・ユースケース

スマートホーム

最大の普及分野です:

  • 照明制御: Philips Hue・IKEA TRADFRI(ZigbeeプロトコルがHue Bridgeで動作)
  • スマートプラグ: リモートオン/オフ・電力計測
  • 温湿度センサー: 室内環境モニタリング・エアコン連動
  • 開閉センサー: 窓・ドアの開閉検知
  • モーションセンサー: 照明の自動オン/オフ
  • スマートロック: 玄関施錠・解錠
  • スマートサーモスタット: 暖房・冷房の自動制御

Philips Hueシステムは世界最大のZigbeeネットワークの一つで、単一のHue Bridgeに最大63台の電球が接続されています。

ビルオートメーション

  • 照明制御: オフィスの在席検知と照明連動(Zigbee Light Link)
  • HVAC制御: 空調システムとの連携
  • エネルギー管理: 電力計・センサーデータの一元管理

スマートエネルギー(Smart Energy Profile)

  • スマートメーター: 電力会社向け電力計測・需要応答(Demand Response)
  • EV充電管理: 電気自動車充電の需要コントロール
  • 太陽光発電モニタリング: パネルの発電量計測

実装・開発のポイント

代表的なチップ・モジュール

製品メーカー特徴
CC2652RTexas InstrumentsZigbee + BLE + Thread マルチプロトコル
EFR32MG24Silicon LabsMatter/Zigbee/Thread/BLE
nRF52840Nordic SemiconductorZigbee + BLE + Thread
ESP32-H2EspressifZigbee + Thread + BLE(802.15.4搭載)
XBee3DigiZigbeeモジュール(組み込み容易)

ESP32-H2 + Zigbeeの実装例(Espressif IDF)

#include "esp_zigbee_core.h"
#include "esp_log.h"

#define TAG "ZIGBEE_SENSOR"

// 温度センサーエンドポイント設定
static void esp_zb_task(void *pvParameters) {
    // Zigbee スタック初期化
    esp_zb_cfg_t zb_nwk_cfg = ESP_ZB_ZED_CONFIG();  // End Device設定
    esp_zb_init(&zb_nwk_cfg);

    // エンドポイント(EP1)にTemperature Measurement Clusterを追加
    esp_zb_ep_list_t *ep_list = esp_zb_ep_list_create();
    esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create();

    // Temperature Measurement Cluster(0x0402)
    esp_zb_attribute_list_t *temp_attr_list = esp_zb_temperature_meas_cluster_create(NULL);
    esp_zb_cluster_list_add_temperature_meas_cluster(cluster_list, temp_attr_list,
                                                     ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);

    // Battery Percentage Remaining Cluster(電池残量)
    esp_zb_cluster_list_add_power_config_cluster(cluster_list,
        esp_zb_power_config_cluster_create(NULL), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);

    esp_zb_ep_list_add_ep(ep_list, cluster_list,
        ESP_ZB_ZCL_ENDPOINT(1),  // エンドポイント番号
        ESP_ZB_AF_HA_PROFILE_ID, // Home Automation Profile
        ESP_ZB_HA_TEMPERATURE_SENSOR_DEVICE_ID);

    esp_zb_device_register(ep_list);
    esp_zb_start(false);
    esp_zb_main_loop_iteration();
}

// 温度値を更新してZigbeeスタックに通知
void update_temperature(int16_t temp_x100) {
    // temp_x100: 温度×100(例: 2540 = 25.40℃)
    esp_zb_zcl_set_attribute_val(
        1,                                // エンドポイント
        ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT,
        ESP_ZB_ZCL_CLUSTER_SERVER_ROLE,
        ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID,
        &temp_x100,
        false
    );
}

Zigbeeゲートウェイ(Home Assistant連携)

多くのスマートホーム構成では、ZigbeeコーディネーターをRaspberry PiやHome Assistantに接続します:

# Home Assistant configuration.yaml
zigbee2mqtt:
  # Zigbee2MQTTによるZigbeeデバイス→MQTT変換
  # SONOFF Zigbee 3.0 USB Dongle Plus または
  # Texas Instruments CC2652RB等を使用

# devices.yaml(自動生成例)
"0x00158d0001234567":
  friendly_name: "living_room_temp_sensor"
  description: "Xiaomi Temperature Sensor"
典型的なZigbee→クラウド連携スタック:
センサー(Zigbee) → Coordinator(USB) → Zigbee2MQTT → Mosquitto(MQTT Broker)
→ Home Assistant / Node-RED → クラウドAPI

他技術との比較

Zigbee vs Z-Wave vs Thread vs BLE Mesh

項目ZigbeeZ-WaveThreadBLE Mesh
周波数2.4 GHzSub-GHz2.4 GHz2.4 GHz
速度250 kbps100 kbps250 kbps1 Mbps
距離10〜100m30〜100m10〜100m10〜30m
メッシュはいはいはいはい
IPv6部分対応なしネイティブなし
Matter対応Bridgeで対応未対応ネイティブ-
エコシステム大規模住宅中心成長中成長中

ZigbeeはMatterの前身的位置づけですが、既存の膨大なZigbeeデバイス資産は今後もMatterゲートウェイ経由で利用が続くと予想されています。新規設計ではThreadMatterへの移行が推奨されるケースも増えています。

関連用語

参考リンク