找回密碼
 立即註冊
    查看: 16|回覆: 0

    在 Home Assistant 做自適應照明:從裝 HACS 到調到不會被家人嫌

    [複製鏈接]

    !lvup!   100%

    384

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005889
    發表於 2026-9-21 11:07:10 | 顯示全部樓層 |閱讀模式
    自適應照明就是讓室內的燈跟著一天的時間改變色溫和亮度:
    早上偏白、傍晚轉暖、晚上很暖很暗。

    做完這一篇,你會有一組會自己調整的燈,手動調暗之後它不會跟你搶,
    半夜起床時燈是暗紅色的不會閃瞎,而且你知道每一個參數在幹嘛。

    一篇,你會有一組會自己調整的燈,手動調暗之後它不會跟你搶, 半夜起床時燈是暗紅色的不會閃瞎,而且你知道每一個參數在幹嘛。

    先釐清兩個很常見的誤解

    誤解一:「HomeKit 的自適應照明只在開燈那一刻設定一次」

    不是。Apple 的版本在燈開著的時候是持續調整的,
    而且你改亮度的時候它會重算色溫(同一時刻,50% 亮度和 100% 亮度算出來的色溫不一樣)。
    在「家庭」App 裡手動改顏色會讓它暫時停手,重新啟用就會回來。

    Apple 版真正的限制是別的:


    • 只有原生支援自適應照明的 HomeKit 或 Matter 燈泡能用。不是所有可調色溫的燈都有
    • 曲線不能自訂。冷暖的範圍、幾點開始轉暖,都是 Apple 定的
    • 不能只調色溫不調亮度,也不能分房間用不同曲線


    誤解二:「用 Home Assistant 橋接過去的燈,要記得關掉 HomeKit 那邊的自適應照明,不然會打架」

    不用關,因為那個開關根本不會出現。
    Home Assistant 的 HomeKit Bridge 至今不支援 Apple 的自適應照明,
    橋接過去的燈在「家庭」App 裡就是沒有那個選項。

    所以正確的心智模型是:燈一旦走 Home Assistant 橋接,自適應照明就只能由 Home Assistant 做。
    兩套打架的情況只會發生在「同一顆燈既直接配對進 HomeKit、又被 Home Assistant 控制」
    (例如 Hue 橋接器同時接了 HomeKit 和 Home Assistant)。

    步驟 1:確認你的燈做得到

    不是所有燈都能做自適應照明,這一步花兩分鐘可以省掉後面兩小時。


    • 設定 → 工具 → 狀態
    • 實體欄位輸入你那盞燈的 entity_id
    • 看屬性裡的 supported_color_modes


    你會看到什麼,以及各自代表的能力:
    1. supported_color_modes:
    2.   - color_temp        ← 可調色溫,最理想
    3.   - hs                ← 只有色彩,色溫要用 RGB 模擬,效果較差
    4.   - brightness        ← 只能調亮度,只能做亮度自適應
    5.   - onoff             ← 只能開關,做不了
    複製代碼

    清單裡有 color_temp 的最好。這時候屬性裡還會有:
    1. min_color_temp_kelvin: 2000
    2. max_color_temp_kelvin: 6500
    複製代碼

    記下這兩個數字,步驟 4 要用 —— 設定的範圍超過燈的實體範圍沒有意義,
    燈會自己夾到邊界值,然後你會以為設定沒生效。

    只有 hs 沒有 color_temp(常見於便宜的 RGB 燈泡):
    還是可以做,整合會用 RGB 去模擬色溫,但低色溫那一端會偏紅,
    跟真正的暖白不太一樣。

    只有 onoff(一般燈泡接智慧開關):做不了,這篇對它沒用。

    步驟 2:安裝 HACS

    Adaptive Lighting 是社群整合,要先有 HACS(Home Assistant 社群商店)。
    已經裝過的跳到步驟 3。

    Home Assistant OS / Supervised 的裝法(現行做法,不是舊教學那個 SSH 腳本):


    • 設定 → 應用程式 → 右下角應用程式商店
    • 右上角選單 → 儲存庫
    • 貼上 https://github.com/hacs/addons 然後新增
    • 關掉視窗,在商店裡找到 Get HACS,安裝並啟動
    • 看它的日誌,跑完會顯示完成
    • 回到 開發者工具 → YAML → 重新啟動 Home Assistant
    • 設定 → 裝置與服務 → 新增整合 → 搜尋 HACS
    • 照畫面勾選同意事項,然後用 GitHub 帳號授權(會給你一組八位數的代碼,貼到 GitHub 開的那個頁面)


    Container 或 Core 安裝的才是用那支腳本:
    1. # 在 Home Assistant 的設定目錄底下執行
    2. wget -O - https://get.hacs.xyz | bash -
    複製代碼

    執行完一樣要重啟 Home Assistant 再加整合。

    你會看到什麼:左側選單多出一個 HACS 項目,點進去是一個商店介面。

    左側沒出現 → 整合沒加成功,去「設定 → 裝置與服務」看有沒有 HACS 那一筆。
    授權那一步卡住 → 那組代碼有時效(大約十五分鐘),重來一次就好。

    步驟 3:安裝 Adaptive Lighting


    • HACS → 搜尋 Adaptive Lighting
    • 點進去 → 右下角下載
    • 下載完成後,開發者工具 → YAML → 重新啟動


    你會看到什麼:重啟後到「設定 → 裝置與服務 → 新增整合」,
    搜尋 Adaptive Lighting 會找得到。找不到就是沒重啟。

    步驟 4:建立第一組設定

    兩條路,選一條。YAML 建立的那組在介面上是唯讀的,不能混著改。

    路 A:介面(推薦第一次用的人)

    設定 → 裝置與服務 → 新增整合 → Adaptive Lighting。

    它只會問你兩件事:名稱、要控制哪幾盞燈。先這樣就好,
    其他參數之後在「設定」裡改,而且改了立刻生效不用重啟。

    名稱就打房間名,例如 living_room。

    路 B:YAML(想把設定納入版本控制、或要一次建很多組)
    1. # configuration.yaml
    2. adaptive_lighting:
    3.   - name: living_room
    4.     lights:
    5.       - light.living_room_ceiling
    6.       - light.living_room_floor_lamp
    7.     # 色溫範圍:不要超過步驟 1 查到的燈具實體範圍
    8.     min_color_temp: 2000
    9.     max_color_temp: 5500
    10.     # 亮度範圍(百分比)
    11.     min_brightness: 20
    12.     max_brightness: 100
    13.     # 日出日落的偏移,正數是延後、負數是提前
    14.     sunrise_offset: "00:30:00"
    15.     sunset_offset: "-00:30:00"
    16.     # 每 90 秒重算一次,每次用 45 秒漸變過去
    17.     interval: 90
    18.     transition: 45
    19.     # 開燈那一瞬間的漸變時間,設短一點才不會覺得「按了沒反應」
    20.     initial_transition: 1
    21.     # 你手動調過的燈就不要再動它
    22.     take_over_control: true
    23.     # 連「不是透過 HA 做的改變」也算手動接管
    24.     detect_non_ha_changes: false
    25.     # 睡眠模式的目標值
    26.     sleep_brightness: 1
    27.     sleep_color_temp: 1000
    28.   - name: bedroom
    29.     lights:
    30.       - light.bedroom_ceiling
    31.     min_color_temp: 2000
    32.     max_color_temp: 4500
    33.     min_brightness: 10
    34.     max_brightness: 90
    35.     interval: 90
    36.     transition: 45
    37.     take_over_control: true
    38.     sleep_brightness: 1
    39.     sleep_color_temp: 1000
    複製代碼

    存檔 → 開發者工具 → YAML → 重新啟動。

    上面這些值就是整合的預設值(除了我有註解說明的那幾個),
    所以你其實可以只寫 name 和 lights。全部寫出來是為了讓你知道有哪些旋鈕可以轉。

    幾個數字為什麼是這樣:


    • transition 一定要小於 interval。45 對 90 是官方預設的比例,漸變到一半就進行下一輪的話會變成一直在追
    • 漸變時間長,變化才察覺不到。這是整件事的重點:自適應照明做得好的標準是「你不會注意到它在動」。突然跳一下就失敗了
    • min_brightness 不要設 1(除非是睡眠模式)。很多 LED 燈泡在 1% 會閃爍,或是乾脆不亮


    步驟 5:確認它真的在運作

    不要只看燈。去看整合自己算出來的數字:


    • 設定 → 工具 → 狀態
    • 輸入 switch.adaptive_lighting_living_room


    你會看到什麼:狀態是 on,屬性裡有整合目前算出來的目標值:
    1. configuration:
    2.   ...
    3. brightness_pct: 82
    4. color_temp_kelvin: 4180
    5. color_temp_mired: 239
    6. sun_position: 0.71
    7. manual_control: []
    複製代碼


    • sun_position 是太陽高度的正規化值,正午接近 1、日落是 0、半夜接近 -1
    • manual_control 列的是「已經被你手動接管、整合不再動它」的燈


    屬性裡沒有這些欄位 → 在整合的設定裡把 include_config_in_attributes 打開,
    或者更可能是你看錯實體了(要看總開關那個,不是 adapt_brightness 那個)。

    現場驗證:把燈關掉再打開。
    你會看到什麼:燈亮起來的亮度和色溫會符合上面屬性算出來的值。
    白天開會是偏白的亮光,晚上八點開會是明顯偏黃的。

    開起來一律是上次的亮度、完全沒被調整 → 那盞燈已經在 manual_control 清單裡了,
    往下看步驟 7。

    開起來一律是上次的亮度、完全沒被調整

    步驟 6:它給你的四個開關,以及怎麼用

    每一組設定會產生四個 switch 實體(以 living_room 為例):


    • switch.adaptive_lighting_living_room —— 總開關
    • switch.adaptive_lighting_adapt_brightness_living_room —— 只管亮度
    • switch.adaptive_lighting_adapt_color_living_room —— 只管色溫
    • switch.adaptive_lighting_sleep_mode_living_room —— 睡眠模式


    ⚠ 名稱用英文。步驟 4 的 name 如果寫中文,這四個實體的 entity_id
    會被音譯成拼音(「客廳」可能變成 ke_ting),
    然後你在自動化裡寫 switch.adaptive_lighting_客廳 會永遠是 unknown,
    而且不會報錯,因為查一個不存在的實體在 Home Assistant 裡是合法的。

    要中文顯示名稱的話,去「設定 → 裝置與服務 → 實體」改那個實體的顯示名稱,
    entity_id 保持英文。

    以下還有約 64% 的內容
    登入後即可閱讀完整教學

    登入繼續閱讀使用 Google 登入
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    延伸閱讀

    加入惟家 LINE 群 QR Code加入惟家 LINE 群

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

    GMT+8, 2026-9-30 15:27 , Processed in 0.138774 second(s), 25 queries .

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