· スマートホーム

Nabu Casa ZWA-2コントローラにおけるZ-Wave通信ジャミングの解消策

30秒でわかる内容解説

Home AssistantユーザーがNabu Casa ZWA-2コントローラと57台のFibaroデバイスで発生した通信ジャミングを、報告間隔の素数化とS0セキュリティの解除で解消した。Z-Waveは多数のデバイスが同時にデータを送信すると電波が干渉し、コントローラが応答を停止する現象が起きる。この事例ではネットワーク設定を最適化することで、1日あたりのジャミング発生回数を2〜3回にまで大幅に削減した。多くの家庭でZ-Waveネットワークを運用しているユーザーにとって参考になる手法だ。

データ報告の最適化と素数間隔の適用

Z-Wave通信ジャミングとは、複数のデバイスが同時にデータパッケージを送信し、電波が干渉して衝突する現象である。コントローラは受信したデータにエラーがないか確認し、正常ならACK(応答)を送信する。応答が返ってこないと送信側は再送を試み、ネットワークがデータで溢れるとコントローラはジャミングモードに陥る。このユーザーは約60台のデバイスを持つ環境で、主にコントローラへの送信データ量を削減することで解決を図った。

具体的な手法の一つは、電力消費や電圧などの測定値を報告する間隔を調整することである。洗濯乾燥機のように負荷が変動しやすい機器では、報告レベル(前回値からの変化率)を引き上げることで送信回数を減らした。LED照明など消費電力の少ない機器には小さなデルタ値を設定し、使用していない出力の報告間隔をゼロに設定した。

もう一つの重要な最適化は、報告間隔に素数を使うことである。すべてのデバイスが同じ周期でデータを送ると衝突確率が高まるため、個々の報告周期を重複しない素数に設定した。重要な情報の更新には低い素数を使い、優先度の低い機器には高い素数を使用した。電池駆動のセンサーはバッテリー節約のため約1時間以上の間隔でウェイクアップ信号を送信する。607秒や1297秒など幅広い素数を用意し、機器の重要度に応じて使い分けた。

700シリーズコントローラの特性とS0セキュリティの負荷

このユーザーは当初Aeotec Gen 5コントローラを使用していたが、数ヶ月前にNabu Casa ZWA-2コントローラに移行した。ZWA-2は700シリーズに該当し、感度が高くメッシュネットワークのホップ数を減らせる利点があった。しかしデバイス数を増やすと、Z-Wave JS UI上で多数のJammed(ジャム)やnot responding(応答なし)レポートが発生した。

USB3の干渉やケーブル品質、最新のファームウェア書き換えを試したが、目立った改善は見られなかった。

S0セキュリティと非暗号化通信のラウンド数比較
通信方式ラウンド数
S0セキュリティ3
非暗号化1

700および800シリーズのコントローラは、古い500シリーズに比べてジャミングの影響を大きく受けやすい。Nabu Casaは現在も古いファームウェアバージョンを運用しているが、他のブランドでも最新ファームウェアで同様の現象が報告されている。問題はコントローラそのものよりも、デバイス間の通信頻度と方法にあった。

通信セキュリティも大きな要因だった。ユーザーは新しいノードを追加する際、S0セキュリティを適用していた。S0セキュリティはデバイス間でハンドシェイクとセキュリティハンドシェイクを往復させ、最終的に暗号化データを送信する。この仕組みは非暗号化通信と比較して3倍のデータ量を送信することになる。ネットワークがデータで飽和する原因となり、ジャミングを悪化させていた。

過剰送信デバイスの特定と再インクルード手法

最適化を進めた結果、ZWA-2からのジャミングレポートは1日あたり2〜3回、持続時間も数秒以内に収まった。顕著なラグや通信断もなく、ネットワークは安定した。しかし一部のデバイスが設定に関わらず1秒ごとに電力データを送信しており、デュアルスイッチの場合は2秒ごとに送信していた。この過剰送信を引き起こした機器はFibaro FGS-223 Double Switchである。

ユーザーは13台保有する同モデルのうち1台のみで発生したため、ソフトウェアの不具合と判断している。他のユーザーからはZigbeeやThreadネットワークでも電力報告が同様の干渉を引き起こす可能性が指摘された。Last Seen(最終通信時刻)の値を確認することで、報告頻度の高いデバイスを特定できる。

セキュリティレベルの変更は再インクルード(ネットワークへの再接続)を必要とする。Home AssistantやZ-Wave JS UIから通常削除すると、エンティティごと消去され設定もリセットされる。ユーザーはZ-Wave JS UIのTemplates機能で各デバイスのパラメータを保存し、deadノードを置き換える手法でエンティティを維持した。

予備のAeotec Gen 5コントローラで排除信号を送信し、デバイス側のスイッチを3回クリックするだけで初期化できた。

S2セキュリティへの移行と運用基準の統一

S0セキュリティから非セキュリティへの変更は全ての環境でジャミングを完全に解消するかは未検証である。特にドアロックや開閉器などセキュリティが重要な機器には暗号化通信を推奨する。新しいデバイスではS2セキュリティが標準化されており、キー交換をインクルード時に済ませるため通信効率は非暗号化と同等だ。今後はS2対応デバイスの普及に合わせてネットワークのセキュリティレベルを段階的に移行する予定である。

Fibaro FGS-223のソフトウェア不具合もリセット後の再検証が必要だ。設定を初期化した状態で通信頻度が正常化するか確認し、問題が解消すれば同モデルの運用基準を統一する。電池駆動センサーのバッテリー残量表示が古いままになっている場合も、定期的なウェイクアップ間隔の見直しで状態を把握しやすくする。

2026年9月20日に公開されたこの事例では、ネットワーク構成の微調整で通信品質が劇的に向上した。今後はZ-Wave JS UIのテンプレート機能を活用し、同型デバイスの設定を一元管理する運用に移行する。

出典