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

    實體設定被低估了:改名稱、圖示、裝置類別、小數位數

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    這篇講的都是「點幾下就好」的事,但影響很大。
    很多人裝了一年 HA 都沒動過這些。



    怎麼進去

    點任何一個實體 → 右上角齒輪
    或者 設定 → 裝置與服務 → 實體,搜尋後點進去。

    1. 實體 ID:最重要的一個

    預設的實體 ID 通常很醜:
    1. sensor.0x00158d0004a1b2c3_temperature
    2. light.tz3000_odygigth_ts011f_switch
    3. binary_sensor.lumi_lumi_sensor_motion_aq2_ias_zone
    複製代碼

    強烈建議全部改成英文、有意義的短名
    1. sensor.bathroom_temperature
    2. light.living_room_ceiling
    3. binary_sensor.hallway_motion
    複製代碼

    為什麼不用中文?

    中文 ID 能用,但:


    • 寫 REST API 要做 URL 編碼
    • 用 entity_globs 比對時容易出問題
    • 在終端機、日誌、SQL 裡難處理
    • 換電腦或系統時偶爾會有編碼問題


    ID 用英文、名稱用中文,兩全其美。介面上你看到的一直都是中文名稱。

    命名建議:<區域>_<裝置>_<功能>
    1. light.bedroom_ceiling
    2. light.bedroom_bedside
    3. sensor.bedroom_temperature
    4. sensor.bedroom_humidity
    5. binary_sensor.bedroom_motion
    複製代碼

    好處是用前綴就能抓一整組
    1. {{ states.sensor | selectattr('entity_id','search','bedroom_') | list }}
    複製代碼

    改 ID 會有副作用:所有引用它的地方都要改。
    所以越早改越好 —— 裝置剛加進來就改,別等寫了二十個自動化才想改。

    (HA 現在改 ID 時會提示哪些地方有引用,但不會自動幫你改。)



    2. 裝置類別(device_class)

    這個決定HA 怎麼理解和顯示這個實體

    同樣是 binary_sensor,device_class 不同顯示完全不一樣:


    • motion → 顯示「偵測到動作 / 清空」,圖示是走動的人
    • door → 顯示「開啟 / 關閉」,圖示是門
    • moisture → 顯示「偵測到潮濕 / 乾燥」
    • problem → 顯示「異常 / 正常」,on 的時候是紅色
    • battery → on 代表「電量低」


    沒設的話一律顯示「開 / 關」,看起來很蠢,而且自動化不好讀。

    sensor 的 device_class 更重要,它決定:


    • 單位換算(temperature 會自動處理 °C / °F)
    • 能不能進能源儀表板(energy、gas、water)
    • 歷史圖表怎麼畫


    3. 狀態類別(state_class)

    這個決定會不會進長期統計,很關鍵但很多人不知道。


    • measurement — 瞬時值(溫度、功率)。統計會存最大/最小/平均
    • total — 累計值,可以歸零(每日用電)
    • total_increasing — 只增不減的累計值(電表讀數)


    沒有 state_class 的感測器,資料只會待在 recorder 裡,
    被 purge 之後就永遠消失了。


    有 state_class 的會額外進 statistics 表,那份可以存很多年。

    所以:任何你想看長期趨勢的東西,一定要設 state_class。

    4. 顯示精度

    這個是新功能,很多人沒發現。

    溫度感測器回傳 26.437501 度,介面上顯示一長串很難看。
    在實體設定裡找到「顯示精度」,設成 1 位小數。

    重點:這只改顯示,不改實際值
    自動化拿到的還是完整的 26.437501,所以不會影響判斷邏輯。

    (以前大家用範本 round() 包一層,那會真的改掉值,
    而且多一個實體。現在不用了。)

    5. 圖示

    圖示來自 Material Design Icons,寫法是 mdi:名稱

    pictogrammers.com/library/mdi/ 搜尋,複製名稱貼上。

    動態圖示要寫範本(在 template 實體裡):
    1. template:
    2.   - sensor:
    3.       - name: 冷氣狀態
    4.         state: "{{ states('climate.客廳') }}"
    5.         icon: >
    6.           {% if is_state('climate.客廳','cool') %}
    7.             mdi:snowflake
    8.           {% elif is_state('climate.客廳','heat') %}
    9.             mdi:fire
    10.           {% else %}
    11.             mdi:air-conditioner
    12.           {% endif %}
    複製代碼

    6. 隱藏 vs 停用

    這兩個差很多:


    • 隱藏(Hidden) — 還在運作、還在記錄,只是不出現在介面上
    • 停用(Disabled) — 完全不運作,不佔資源,不進資料庫


    Zigbee 裝置常常會有一堆用不到的實體(linkquality、電壓、韌體版本)。

    建議:不會用到的直接「停用」,不要只是隱藏。
    停用才能真的減少資料庫寫入。

    7. 可見性條件(新版)

    儀表板卡片現在可以設「什麼時候才顯示」,不用寫 conditional 卡片:

    點卡片編輯 → 可見性 分頁 → 加條件。

    例如「冷氣卡片只在夏天顯示」「除濕機卡片只在濕度大於 70 時顯示」。

    批次修改的技巧

    一個一個改很累。兩個加速方法:

    方法一:實體清單多選

    設定 → 裝置與服務 → 實體,勾選多個之後,
    上方會出現批次操作(啟用、停用、隱藏、指派區域、指派標籤)。

    方法二:改 entity_registry(進階,要小心)

    .storage/core.entity_registry 是個 JSON 檔。
    理論上可以直接改,但一定要先關掉 HA、先備份
    改壞的話整個實體註冊表會毀掉。

    我試過一次,後來覺得不值得 —— 批次多選已經夠用了。

    ---

    我建議的順序是:新裝置一加進來,馬上做三件事 ——
    改實體 ID、設裝置類別、停用用不到的實體。

    三分鐘的事,省掉以後一堆麻煩。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

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

    GMT+8, 2026-9-24 10:30 , Processed in 0.080784 second(s), 26 queries .

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