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

    HomeKit 的自適應照明,能不能在 Home Assistant 重現?

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    自適應照明(Adaptive Lighting)是 HomeKit 很受歡迎的功能:
    燈光的色溫和亮度隨著一天的時間自動變化
    早上偏白、傍晚轉暖、晚上很暖。

    好消息:HA 可以做,而且做得比 HomeKit 原生更細



    先講為什麼這個有用

    人的生理時鐘受光線影響很大:


    • 白天的高色溫藍光(5000K 以上)讓人清醒
    • 傍晚的暖光(2700K 以下)讓身體開始分泌褪黑激素
    • 晚上如果一直用冷白光,入睡會比較困難


    自適應照明就是讓室內光模擬自然光的變化。

    我自己用了之後最有感的是:晚上比較好睡
    (這是主觀感受,不是實驗數據。)

    HomeKit 原生版本的限制


    • 只有支援自適應照明的 HomeKit 燈泡才能用
    • 不能自訂曲線(Apple 決定好的)
    • 手動調整之後會暫時停用,但規則不透明
    • 只在燈「被打開的那一刻」設定,之後不會持續調整


    HA 的做法:Adaptive Lighting 整合(HACS)

    這是一個很成熟的社群整合,功能比原生強很多。

    安裝


    • HACS(如果還沒裝)
    • HACS → 整合 → 搜尋 Adaptive Lighting → 下載
    • 重啟 HA
    • 設定 → 裝置與服務 → 新增整合 → Adaptive Lighting


    設定
    1. adaptive_lighting:
    2.   - name: 客廳
    3.     lights:
    4.       - light.living_room_ceiling
    5.       - light.living_room_lamp
    6.     # 色溫範圍
    7.     min_color_temp: 2000        # 最暖(晚上)
    8.     max_color_temp: 5500        # 最冷(正午)
    9.     # 亮度範圍
    10.     min_brightness: 20
    11.     max_brightness: 100
    12.     # 日出日落的偏移(讓變化提前或延後)
    13.     sunrise_offset: "00:30:00"
    14.     sunset_offset: "-00:30:00"
    15.     # 多久檢查一次
    16.     interval: 90
    17.     transition: 45
    18.     # 只在燈被打開時設定一次,還是持續調整
    19.     take_over_control: true
    20.     detect_non_ha_changes: true
    21.     # 睡眠模式
    22.     sleep_brightness: 1
    23.     sleep_color_temp: 1800
    複製代碼

    幾個關鍵參數的意思

    take_over_control


    • true —— 你手動調整之後,整合就不再自動調那盞燈
        直到你把它關掉再打開
    • false —— 不管你怎麼調,它都會調回去


    一定要設 true。設 false 的話你手動調暗,十秒後它又調亮,會瘋掉。

    detect_non_ha_changes

    偵測「不是透過 HA 做的改變」(例如用實體遙控器調的)。

    設 true 的話,那種改變也會被視為「使用者接管」。

    需要多查詢一次燈的狀態,會增加一點負擔,但通常值得。

    interval 和 transition


    • interval: 90 —— 每 90 秒重新計算一次
    • transition: 45 —— 每次變化花 45 秒漸變


    transition 要小於 interval,不然會來不及。

    漸變時間長一點,變化才會察覺不到 —— 這是重點。
    突然跳變會很明顯,慢慢變就很自然。



    它提供的三個開關

    安裝後每個設定會產生三個 switch 實體:


    • switch.adaptive_lighting_客廳 —— 總開關
    • switch.adaptive_lighting_adapt_brightness_客廳 —— 只調亮度
    • switch.adaptive_lighting_adapt_color_客廳 —— 只調色溫
    • switch.adaptive_lighting_sleep_mode_客廳 —— 睡眠模式


    這個設計很好用。例如:

    看電影時只保留色溫、不調亮度
    1. - action: switch.turn_off
    2.   target:
    3.     entity_id: switch.adaptive_lighting_adapt_brightness_客廳
    複製代碼

    睡眠模式
    1. alias: 睡覺時啟用自適應照明的睡眠模式
    2. triggers:
    3.   - trigger: state
    4.     entity_id: input_select.house_mode
    5.     to: 睡覺
    6. actions:
    7.   - action: switch.turn_on
    8.     target:
    9.       entity_id:
    10.         - switch.adaptive_lighting_sleep_mode_客廳
    11.         - switch.adaptive_lighting_sleep_mode_主臥
    12. mode: single
    複製代碼

    開啟後所有燈會變成 1% 亮度、1800K 的極暖光
    半夜起來不會被閃瞎。

    不用 HACS 的做法:自己寫

    如果你不想裝第三方整合,可以自己做一個簡化版。

    做一個色溫感測器
    1. template:
    2.   - trigger:
    3.       - trigger: time_pattern
    4.         minutes: "/5"
    5.     sensor:
    6.       - name: 建議色溫
    7.         unique_id: suggested_color_temp
    8.         unit_of_measurement: K
    9.         state: >
    10.           {% set sunrise = state_attr('sun.sun','next_rising') %}
    11.           {% set h = now().hour + now().minute / 60 %}
    12.           {% if h < 6 %}
    13.             1900
    14.           {% elif h < 9 %}
    15.             {{ (1900 + (h - 6) / 3 * 2600) | round(0) | int }}
    16.           {% elif h < 16 %}
    17.             4500
    18.           {% elif h < 19 %}
    19.             {{ (4500 - (h - 16) / 3 * 1500) | round(0) | int }}
    20.           {% elif h < 22 %}
    21.             {{ (3000 - (h - 19) / 3 * 800) | round(0) | int }}
    22.           {% else %}
    23.             2000
    24.           {% endif %}
    25.       - name: 建議亮度
    26.         unique_id: suggested_brightness
    27.         unit_of_measurement: "%"
    28.         state: >
    29.           {% set h = now().hour + now().minute / 60 %}
    30.           {% if h < 6 %}5
    31.           {% elif h < 8 %}{{ (5 + (h - 6) / 2 * 55) | round(0) | int }}
    32.           {% elif h < 18 %}90
    33.           {% elif h < 22 %}{{ (90 - (h - 18) / 4 * 50) | round(0) | int }}
    34.           {% else %}25
    35.           {% endif %}
    複製代碼

    然後在自動化裡用它
    1. alias: 開燈時套用建議色溫
    2. triggers:
    3.   - trigger: state
    4.     entity_id: light.living_room
    5.     from: "off"
    6.     to: "on"
    7. actions:
    8.   - action: light.turn_on
    9.     target:
    10.       entity_id: light.living_room
    11.     data:
    12.       color_temp_kelvin: "{{ states('sensor.建議色溫') | int }}"
    13.       brightness_pct: "{{ states('sensor.建議亮度') | int }}"
    14.       transition: 2
    15. mode: parallel
    16. max: 10
    複製代碼

    這個做法的優缺點


    • 優點:不用裝第三方整合、完全可控、曲線自己定
    • 缺點:只在「開燈的那一刻」設定,不會持續調整
        (要持續調的話要另外寫,而且要處理「使用者手動調過」的判斷 —— 這正是
        Adaptive Lighting 整合替你做的複雜部分)


    重要:燈具要支援色溫


    • 可調色溫的燈泡(CCT) → 完全可用
    • RGB 燈泡 → 可以,但色溫是用 RGB 模擬的,品質比專門的 CCT 差
    • 只能調亮度的燈 → 只能做亮度自適應
    • 開關控制的一般燈 → 完全做不了


    確認方法:在 HA 點那盞燈,看有沒有色溫的滑桿。

    橋接回 HomeKit 的注意事項

    如果你的燈是透過 HA 橋接到「家庭」App 的:


    • 關掉 HomeKit 原生的自適應照明(在家庭 App 裡那盞燈的設定)
    • 不然兩套會打架,燈會一直閃


    這個很多人中招。症狀是燈的色溫每隔幾秒跳一次。

    ---

    我自己的設定是:


    • 客廳、餐廳、書房:完整的自適應照明
    • 主臥:只調色溫,亮度手動(因為亮度需求變化大)
    • 浴室、走道:不用(那邊是感應燈,用固定的日夜兩段就好)


    建議從一兩個房間開始試,適應之後再擴大。
    一次全屋打開的話,家人可能會覺得「燈怎麼怪怪的」。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

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

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

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