找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 2|回覆: 0

    Zigbee2MQTT 的裝置設定:回報間隔、門檻、去抖動

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    買回來的 Zigbee 裝置,預設設定通常不是最好的

    這篇講三個最值得調的設定。



    在哪裡調

    Z2M 前端 → 點那個裝置 → 「設定(specific)」分頁

    或者寫在 configuration.yaml 裡:
    1. devices:
    2.   '0x00158d0001234567':
    3.     friendly_name: 臥室溫濕度
    4.     temperature_precision: 1
    5.     temperature_calibration: -0.5
    6.     debounce: 1
    7.     debounce_ignore:
    8.       - action
    複製代碼

    一、精度(precision)
    1.     temperature_precision: 1
    2.     humidity_precision: 0
    3.     pressure_precision: 0
    複製代碼

    意思是小數點後幾位。


    • temperature_precision: 1 → 26.5
    • temperature_precision: 0 → 27
    • temperature_precision: 2 → 26.53(沒必要,而且塞資料庫


    這個直接影響回報次數 ——
    精度設 0 的話,溫度要變化一整度才會有新的值。

    我的建議


    • 溫度:1
    • 濕度:0
    • 氣壓:0
    • 電量:0


    二、校正(calibration)
    1.     temperature_calibration: -1.5
    2.     humidity_calibration: 3
    複製代碼

    直接加在讀值上的偏移量。

    怎麼決定


    • 拿一支你信任的溫度計放旁邊
    • 等半小時穩定
    • 算差值填進去


    常見的情況:便宜的溫濕度計濕度普遍偏低 5-10%。



    三、去抖動(debounce)—— 最有用的一個
    1.     debounce: 1
    2.     debounce_ignore:
    3.       - action
    複製代碼

    debounce: 1 的意思是「1 秒內的多次回報合併成一次」。

    為什麼需要

    很多 Zigbee 裝置會在短時間內送出好幾則訊息
    (溫度一則、濕度一則、電量一則……)。

    Z2M 每收到一則就發一次 MQTT,HA 就更新一次 ——
    造成資料庫裡出現一堆「只有一個欄位不同」的記錄。

    debounce 會等 1 秒,把這段時間的所有訊息合併成一則。

    效果


    • MQTT 訊息量減少
    • HA 的狀態更新次數減少
    • 資料庫變小


    debounce_ignore 很重要
    1.     debounce_ignore:
    2.       - action
    複製代碼

    意思是「action 這個屬性不要 debounce」。

    為什麼按鈕的動作不能延遲

    如果你對一個無線按鈕設了 debounce,
    連按兩下會被合併成一次 —— 那就壞了。

    所以:


    • 感測器 → 可以 debounce
    • 按鈕、遙控器不要 debounce,或者一定要加 debounce_ignore: [action]


    四、回報設定(reporting)

    這個是在「裝置端」設定的,比 debounce 更根本。

    Z2M 前端 → 那個裝置 → Reporting 分頁

    可以設定


    • Min rep interval —— 最短間隔(秒)。至少隔這麼久才會回報
    • Max rep interval —— 最長間隔。就算沒變化,最多隔這麼久一定回報一次
    • Min rep change —— 變化超過多少才回報


    這是在裝置的韌體層設定的,所以:


    • 最省電(裝置不用一直發訊號)
    • 最根本(從源頭減少)
    • 但不是所有裝置都支援


    實用的設定值
    1. 溫度:
    2.   Min interval  60      (最快一分鐘一次)
    3.   Max interval  1800    (最慢半小時一定回報一次)
    4.   Min change    50      (0.5 度,單位是 0.01 度)
    5. 濕度:
    6.   Min interval  60
    7.   Max interval  1800
    8.   Min change    200     (2%,單位是 0.01%)
    9. 電量:
    10.   Min interval  3600
    11.   Max interval  43200   (12 小時)
    12.   Min change    100     (1%)
    複製代碼

    注意單位:Zigbee 的溫度單位是 0.01 度
    所以「變化 0.5 度」要填 50

    電池裝置設定 reporting 的注意事項


    • 裝置要「醒著」才能接收設定
    • 設定之前先按一下裝置的按鈕(或觸發它)讓它醒來
    • 可能要試好幾次
    • 有些裝置根本不支援,設了也沒用




    Zigbee2MQTT 2.x 的重大變更(升級前一定要看)

    Z2M 2.0 是一個重大版本,移除了不少東西。
    如果你從 1.x 升上來,這些會咬你:

    一、legacy API 被移除

    舊的 API 端點(1.x 時代的)全部拿掉了。

    如果你有腳本在打 Z2M 的舊 API,要改。

    二、legacy availability payload 被移除

    advanced.legacy_availability_payload 這個選項沒了
    所以 zigbee2mqtt/bridge/state 現在永遠是一個 JSON 物件
    (不再是純文字的 online / offline)。

    有自己寫東西訂閱那個主題的話要改。

    三、legacy action sensors 預設關閉

    舊的「action」感測器預設不再產生。

    如果你的自動化依賴那些,要改用新的事件寫法。

    四、permit_join 大改

    這個最多人踩到。


    • 設定檔裡的 permit_join 選項被移除了
    • 改用前端介面發 MQTT 請求
        zigbee2mqtt/bridge/request/permit_join
    • 「永久開放加入」被拿掉了 —— 最多只能 254 秒


    這是好事(永久開放是安全風險),但如果你習慣把它開著就要適應。

    五、群組成員不能在設定檔裡配置

    groups.devices 被移除了。

    要用前端或 MQTT 請求來管理群組成員。

    六、child lock 變成 switch

    以前 child lock 被發現成 lock 實體,現在是 switch

    實體 ID 會變,自動化要改。

    七、update_state / update_available 被取代

    改用新的 update 實體。

    升級的建議做法


    • 先備份(下一篇會專門講怎麼備份)
    • 看官方的遷移說明
    • 升級之後第一件事是去看 data 目錄裡的 migration-1-to-2.log ——
        Z2M 會在首次啟動時自動遷移 configuration.yaml,
        並把改了什麼記錄在那個檔案裡
    • 檢查所有自動化還能不能跑


    前端的選擇:兩個版本

    現在有兩個網頁前端可以選:


    • zigbee2mqtt-frontend —— 原本的
    • zigbee2mqtt-windfront —— 比較新的替代品


    WindFront 的特色


    • 卡片和格子有狀態顏色的邊框(紅色=離線、橘色虛線=停用)
    • 有專屬的「前端設定」頁面,偏好存在瀏覽器的 local storage
    • permit join 可以指定範圍(整個網路,或某一個路由器)
    • 最近加了能源圖示和中止 OTA 更新的功能


    注意:中止 OTA 那個功能需要 Z2M 的 dev 分支
    舊版本上那個按鈕不會有作用。

    兩個都可以用,看你喜歡哪個介面。

    ---

    下一篇:綁定(Binding) ——
    讓開關直接控制燈,完全不經過 HA。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-9-24 12:21 , Processed in 0.075901 second(s), 24 queries .

    快速回覆 返回頂部 返回列表