Skip to main content

IoT 筆記

Technical
Author
Kuan-Yi Li

先講對新手入坑的重點建議。(雖然看得懂這些的大概不新手就是 😆)

  • 底層用 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 雖然發展多年,產品也比較多,但是它有一些個人覺得蠻致命的缺陷。

Zigbee Stack by Digi

  1. 包太多東西:一路從 OSI model 的 network layer 管到 application layer
  2. 空有標準,沒有範例實作:這就變成各家廠商要各自去讀標準然後實作,重造輪子,要造的東西又多,容易造不到位

所以晶片商那邊就會出現各自的 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

Matter architecture by Google

而且切得很乾淨,不管 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 需要 RTSCTS
      • RTS 被接到 EFR32MG21 的 reset pin,要是啟用 hardware flow control 就會 reset co-processor
      • 這是 Espressif 的 convention,不知為何被帶到 Silicon Labs 的設計來 😅
  • SMLIGHT SLZB-07
    • 收訊相對好
    • 有強制進入 bootloader 的硬體設計(利用 CP2102N 的 GPIO)
    • 支援 hardware flow control