概要
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充電管理: 電気自動車充電の需要コントロール
- 太陽光発電モニタリング: パネルの発電量計測
実装・開発のポイント
代表的なチップ・モジュール
| 製品 | メーカー | 特徴 |
|---|---|---|
| CC2652R | Texas Instruments | Zigbee + BLE + Thread マルチプロトコル |
| EFR32MG24 | Silicon Labs | Matter/Zigbee/Thread/BLE |
| nRF52840 | Nordic Semiconductor | Zigbee + BLE + Thread |
| ESP32-H2 | Espressif | Zigbee + Thread + BLE(802.15.4搭載) |
| XBee3 | Digi | Zigbeeモジュール(組み込み容易) |
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
| 項目 | Zigbee | Z-Wave | Thread | BLE Mesh |
|---|---|---|---|---|
| 周波数 | 2.4 GHz | Sub-GHz | 2.4 GHz | 2.4 GHz |
| 速度 | 250 kbps | 100 kbps | 250 kbps | 1 Mbps |
| 距離 | 10〜100m | 30〜100m | 10〜100m | 10〜30m |
| メッシュ | はい | はい | はい | はい |
| IPv6 | 部分対応 | なし | ネイティブ | なし |
| Matter対応 | Bridgeで対応 | 未対応 | ネイティブ | - |
| エコシステム | 大規模 | 住宅中心 | 成長中 | 成長中 |
ZigbeeはMatterの前身的位置づけですが、既存の膨大なZigbeeデバイス資産は今後もMatterゲートウェイ経由で利用が続くと予想されています。新規設計ではThreadとMatterへの移行が推奨されるケースも増えています。