先講對新手入坑的重點建議。(雖然看得懂這些的大概不新手就是 😆)
- 底層用 IP-based 技術:Thread、Wi-Fi、Ethernet
- 上層用有開放實作的技術:Matter、ESPHome、Tasmota
- 不要用 Zigbee 跟 Bluetooth(Commissioning 短時間用一下 BLE 那種除外)
- 需要 Thread Border Router 的話用 Home Assistant Operating System 上的 OpenThread Border Router Add-on 搭 SLZB-07/SLZB-07Mg24 來架
為什麼不要用 Zigbee#
Zigbee 雖然發展多年,產品也比較多,但是它有一些個人覺得蠻致命的缺陷。
- 包太多東西:一路從 OSI model 的 network layer 管到 application layer
- 空有標準,沒有範例實作:這就變成各家廠商要各自去讀標準然後實作,重造輪子,要造的東西又多,容易造不到位
所以晶片商那邊就會出現各自的 protocol:
End device 廠商有時候 firmware 也會亂做,像是這裡就寫 Aqara(小米):
Some models of end device, notably Xiaomi, don’t attempt to find a new parent so will remain isolated until re-paired with the network.
Zigbee 也有較多的情境必須 re-pair 裝置。
所以如果從零開始,不要再往 Zigbee 去了,你有更好的選擇。如果當下還沒有 Thread 的選項,就先用 Wi-Fi 頂著,別跳進 Zigbee 的坑。
Thread#
Thread 就不同了。
明定開放標準的同時還提供了開放實作 OpenThread。
而且切得很乾淨,不管 application layer 那邊的事。雖然圖中的上層是跑 Matter,但其實跑其他協定的通訊也沒關係。
像 ESPHome 2025.6.0 就加入了 Thread 的基礎支援。
因為有開放的實作,所以基本上不管哪家晶片商或專案(ESPHome 也是),都是拿 OpenThread 為基礎,不必重造輪子又保證了一定程度的品質。
如果願意看深一點做比較的話,也會發現 Thread 在 mesh 方面設計得更好。
硬體#
建 Thread network 需要有 Border Router,雖然市面上有現成的產品可以買,但個人還是建議自己搭。Matter 跟 Thread 都是相對年輕的技術,更新的需求會比較高,自己搭升級才不用看廠商的臉色。
自己搭的話需要有 co-processor 負責無線那邊的事。
因為 Home Assistant 有 Silicon Labs Flasher Add-on,方便刷 firmware,所以會建議從採用 Silicon Labs 晶片的產品中挑。
Home Assistant 有個推薦列表。註:可以跑 Zigbee 的晶片通常也可以跑 Thread,跑哪個看刷哪種 firmware。
個人比較推其中的 SLZB-07,或是 RAM、Flash 更大的 SLZB-07Mg24。
原因如下:
- Home Assistant Yellow
- Raspberry Pi 的 SBC,跑 HAOS 沒問題,加上 Frigate 似乎就差了點效能
- Home Assistant Connect ZBT-1
- 收訊差了點
- 好像沒有強制進入 bootloader 的硬體設計
- SONOFF ZBDongle-E
- USB-to-UART 晶片好像有些是用沁恒的,Windows driver 要另裝,還是比較喜歡 CP2102N
- 不支援 hardware flow control
- Hardware flow control 需要
RTS
、CTS
RTS
被接到 EFR32MG21 的 reset pin,要是啟用 hardware flow control 就會 reset co-processor- 這是 Espressif 的 convention,不知為何被帶到 Silicon Labs 的設計來 😅
- Hardware flow control 需要
- SMLIGHT SLZB-07
- 收訊相對好
- 有強制進入 bootloader 的硬體設計(利用 CP2102N 的 GPIO)
- 支援 hardware flow control