Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

Home Assistant: Sonoff Zigbee 3.0 USB Dongle Plusをルーターとして使う

Sympapaです。
我が家ではHome Assistantとセンサー類の接続にはZigBeeを使用しています。
ZigBeeの接続にはZHA(ZigBee Home Automation)ZigBee2MQTTの両方を使用しており最初に使い始めたZHAをメインで使っていたのですが、ZHAはルーター機能を持ったデバイスを追加するとちょっと調子が良くない部分があるので、メインをZigBee2MQTTへ移行しようかと考えています。(そのあたりのことは今度書こうと思います。)


しかし、ZigBee2MQTTをメインにするにはそれはそれで課題がありました。
ZHAのコーディネーターはHSUBZB-1、ZigBee2MQTTのコーディネーターはSonoff Zigbee 3.0 USB Dongle Plusを使っているのですが、ZHAに使用しているHSUBZB-1は電波の飛びが良く家中をカバー出来るのに対して、Sonoff Zigbee 3.0 USB Dongle Plusは電波の飛びがあまりよろしくないのいです。
といっても前述のとおり、ZigBeeルーター機能を持ったデバイスでメッシュを構築します。外部から電源供給される電球などのデバイスの大半はルーター機能が付いているので、それによってネットワークの範囲を広げることが出来ます。
我が家ではルーター機能を持ったHueの電球が5個、ZigBee2MQTTのネットワーク内にあるので家の大半はカバー出来るのですがHueの電球を使っている範囲も偏りがあるので、一部の箇所に設置したセンサーの電波受信が弱い問題がありました。

そんなワケで今回は、ZigBee2MQTTのコーディネーターとして使用しているのと同じSonoff Zigbee 3.0 USB Dongle Plusを追加で購入し、ルーターファームウェアを焼いてルーター化して、電波の届きにくい場所に追加してやろうと思います。

■Sonoff Zigbee 3.0 USB Dongle Plus

Sonoff Zigbee 3.0 USB Dongle Plusは、ZHAでもZigBee2MQTTでもデフォルトのファームウェアでコーディネーターとして使用でき、アルミのケースに入っていてアンテナも付いているので、そのままで使える初心者に優しいZigBeeコーディネーターです。
もうひとつ初心者に優しい点があって、それはファームウェアを焼くのが簡単な点です。 コーディネーターとして使う分にはデフォルトのファームウェアでも良いと思いますが、最新のコーディネーターファームに更新したりルーター用のファームウェアを焼きたくなった場合、特別なケーブルを用意しなくてもWindows PCのUSB端子に挿してファームウェアを焼くことができます。
CC2652Pベースですが残念ながら電波の飛びは"HUSBZB-1"には遠く及ばず、Hueの電球と比べてもちょっと弱い感じなのでそれが弱点かな。

価格は1700~2000円くらいで比較的安価にZigBeeネットワークを構築できます。
ちなみにここのセラーで4回買い物をしましたが、いずれの場合もAliexpress Standard Shippingを選ぶとJPで始まる追跡番号となり、シンガポールを経由せずに日本へエアでやって来て佐川さんが届けてくれるルートとなって10日前後で届きました。シンガポール経由にならないのは発送元の場所の関係なんですかね。まぁ毎回このルートで届いたのも偶然なのかもしれませんが。
ja.aliexpress.com

ルーターファームウェアを焼いていく

ファームウェアを焼く方法はこのあたりを参考にしてWindows 10のPCを使用し焼いていきます。
ルーター用のファームウェアも、ZHAとZigBee2MQTTの両方をサポートしています。
notenoughtech.com

sonoff.tech


1)ファームウェアを焼くためのWindowsソフトウェアのインストール
こちらでTI FLASH-PROGRAMMER-2をダウンロードし解凍してインストールします。
www.ti.com



2)ファームウェアの入手
ルーター用の最新ファームウェアはここから入手できます。
"Sonoff Zigbee 3.0 USB Dongle Plus"用は”CC1352P2_CC2652P_launchpad_router_*.zip”です。
ダウンロードして解凍します。
github.com



3)ドングルを分解する
アンテナを外してUSBプラグ側のネジ2本を外せば基板を取り出せます。


4)ドングルをPCに接続する
"Sonoff Zigbee 3.0 USB Dongle Plus"をブートローダーモードでPCに接続するため、"Bootボタン"を押しながらPCのUSBポートに接続します。"Bootボタン"はそのまま押しっぱなしでキープし4~5秒に離します。


5)焼く
➀ TI FLASH-PROGRAMMER-2を起動して左上のConnected deviceから"Silicon Labs CP210xUSB to UART Bridge (COM x)"を選びます。
➁ その下のTarget Deviceが”unknown”の場合は、下の”Select Taget Device”のプルダウンメニューから”CC2652P”を選びます。
③ ”Main”タブを選びFlash Image欄にある”Blowse”ボタンを押して、さっきダウンロードし解凍したファームウェアの.hexファイルを選択します。
➃ Actionsの"Erace"にチェックを入れ"All unprotected Pages"にチェックを入れます。
"Program"にチェックを入れ"Entire source file"にチェックを入れます。
"Verify"にチェックを入れ"CRC check"にチェックを入れます。
➄再生マークを押すとスタートし下のStatusに進捗が表示されます。完了するとその下にSuccess!と表示されます。
f:id:sympapa:20220129102411p:plain


うまく接続できなかった場合は下のページからドライバーを入手して解凍し、デバイスマネージャを開いて、ポート(COMとMPT)から"Silicon Labs CP210xUSB to UART Bridge (COM x)"を選び、右クリック>ドライバーの更新>コンピュータを参照してドライバーを検索でさっきダウンロードして解凍したドライバを当てるとうまくいくかもしれません。
www.wch.cn

■設置する

ルーターファームウェアが焼かれている場合は、電源を供給すればルーターとして機能します。
コンセントに対して上下に90°の向きにUSB端子があるUSB電源を使うと便利ですね。
今回は家電量販店で安売りされていたのでこれを使いました。
www.elecom.co.jp


あとはZigBee2MQTTのデバイスとして追加してやればOKです。
バイスの写真は赤いTIロゴになるので一際目立ちます(笑)
これで、電波の届きにくかった場所のネットワークを補強できました。
f:id:sympapa:20220226105743p:plain