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

    電視當 HA 的通知螢幕:三種做法與實際效果

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    電視是家裡最大的螢幕
    而且大家看的時候通常都在客廳 —— 正是最需要知道訊息的地方。

    這篇講怎麼把它變成通知螢幕。



    先想清楚:什麼訊息值得打斷看電視?

    這是最重要的問題。打斷看電視的成本很高
    亂用的話家人會把整套關掉。

    我的分級


    • 一定要打斷:瓦斯、漏水、煙霧、闖入
    • 值得打斷:門鈴、有人到家、電話
    • 不要打斷:洗衣機好了、裝置電量低、每日摘要


    做法一:Android TV 的覆疊通知(最推薦)

    有一個社群 App 叫 Notifications for Android TV
    它在 Android TV 上跑一個服務,接收 HTTP 請求並顯示覆疊通知。

    安裝


    • 在 Android TV 上從 Play Store 或側載安裝
    • 打開它,記下顯示的 IP
    • HA 加入 Notifications for Android TV 整合


    使用
    1. - action: notify.android_tv_living_room
    2.   data:
    3.     title: 門鈴
    4.     message: 有人在門口
    5.     data:
    6.       duration: 10
    7.       fontsize: large
    8.       position: bottom-right
    9.       transparency: 25%
    10.       color: "#1a73e8"
    11.       # 可以帶圖片(例如攝影機快照)
    12.       image:
    13.         path: /config/www/snapshots/doorbell.jpg
    複製代碼

    優點


    • 不會中斷播放(只是覆疊一個小視窗)
    • 可以帶圖片
    • 可以設定顯示時間、位置、透明度
    • 不需要切換輸入


    這是體驗最好的做法。

    搭配攝影機快照
    1. alias: 門鈴通知到電視
    2. triggers:
    3.   - trigger: state
    4.     entity_id: binary_sensor.doorbell
    5.     to: "on"
    6. conditions:
    7.   - condition: state
    8.     entity_id: binary_sensor.電視開著
    9.     state: "on"
    10. actions:
    11.   # 1. 拍一張快照
    12.   - action: camera.snapshot
    13.     target: {entity_id: camera.front_door}
    14.     data:
    15.       filename: /config/www/snapshots/doorbell.jpg
    16.   - delay: "00:00:01"
    17.   # 2. 顯示在電視上
    18.   - action: notify.android_tv_living_room
    19.     data:
    20.       title: 門口有人
    21.       message: "{{ now().strftime('%H:%M') }}"
    22.       data:
    23.         duration: 15
    24.         fontsize: large
    25.         position: top-right
    26.         image:
    27.           path: /config/www/snapshots/doorbell.jpg
    28. mode: single
    複製代碼



    做法二:Cast 投放(適合需要大畫面的)

    用 HA 的 Cast 整合,把畫面投到電視或 Chromecast。

    適合的場景


    • 顯示攝影機即時畫面(門鈴、包裹送達)
    • 顯示儀表板(離家前的檢查清單)

    1. alias: 門鈴投放攝影機到電視
    2. triggers:
    3.   - trigger: state
    4.     entity_id: binary_sensor.doorbell
    5.     to: "on"
    6. actions:
    7.   - action: camera.play_stream
    8.     target: {entity_id: camera.front_door}
    9.     data:
    10.       media_player: media_player.living_room_tv
    11.       format: hls
    12.   - delay: "00:00:45"
    13.   - action: media_player.turn_off
    14.     target: {entity_id: media_player.living_room_tv}
    15. mode: single
    複製代碼

    缺點


    • 會中斷正在看的內容
    • HLS 串流有 5-10 秒延遲
    • 結束後不一定會回到原本的內容


    所以我只用在「真的需要看畫面」的情況。

    做法三:把 TTS 播到電視的喇叭

    最簡單,但也最粗暴。
    1. - action: tts.cloud_say
    2.   target: {entity_id: media_player.living_room_tv}
    3.   data:
    4.     message: 洗衣機洗好了
    複製代碼

    問題


    • 會蓋掉正在播的聲音
    • 播完不一定會恢復
    • 音量可能跟電視的音量設定衝突


    我不建議用這個,除非是緊急事件。

    更好的做法是播到獨立的音箱(前面那篇講過)。



    設計原則:五條規則

    規則一:只在電視開著時發
    1. conditions:
    2.   - condition: state
    3.     entity_id: binary_sensor.電視開著
    4.     state: "on"
    複製代碼

    電視關著還發通知是白費工夫。

    規則二:重要的才發

    做一個白名單,而不是把所有通知都轉到電視:
    1. script:
    2.   notify_tv:
    3.     alias: 電視通知
    4.     fields:
    5.       title: {required: true, selector: {text: }}
    6.       message: {required: true, selector: {text: }}
    7.       level:
    8.         default: normal
    9.         selector:
    10.           select:
    11.             options: [urgent, normal]
    12.       image: {selector: {text: }}
    13.     sequence:
    14.       # 電視沒開就跳過
    15.       - condition: state
    16.         entity_id: binary_sensor.電視開著
    17.         state: "on"
    18.       # 一般通知在勿擾模式下不發
    19.       - condition: template
    20.         value_template: >
    21.           {{ level == 'urgent'
    22.              or is_state('input_boolean.勿擾模式','off') }}
    23.       - action: notify.android_tv_living_room
    24.         data:
    25.           title: "{{ title }}"
    26.           message: "{{ message }}"
    27.           data:
    28.             duration: "{{ 30 if level == 'urgent' else 8 }}"
    29.             fontsize: "{{ 'max' if level == 'urgent' else 'large' }}"
    30.             position: "{{ 'center' if level == 'urgent' else 'bottom-right' }}"
    31.             color: "{{ '#d32f2f' if level == 'urgent' else '#1a73e8' }}"
    32.             transparency: "{{ '0%' if level == 'urgent' else '40%' }}"
    33.             image:
    34.               path: "{{ image | default('') }}"
    35.     mode: queued
    36.     max: 5
    複製代碼

    用法
    1. - action: script.notify_tv
    2.   data:
    3.     title: 偵測到瓦斯
    4.     message: 請立即確認廚房
    5.     level: urgent
    複製代碼

    緊急的用紅色、置中、不透明、顯示 30 秒。
    一般的用藍色、角落、半透明、顯示 8 秒。


    規則三:看電影時提高門檻
    1.       - condition: template
    2.         value_template: >
    3.           {{ level == 'urgent'
    4.              or is_state('input_boolean.movie_mode','off') }}
    複製代碼

    看電影時只讓緊急通知通過。

    規則四:不要重複

    同一件事不要在電視上跳十次。
    用一個 input_datetime 記錄上次發送時間:
    1.       - condition: template
    2.         value_template: >
    3.           {{ (now() -
    4.               (states('input_datetime.last_tv_notify')
    5.                | as_datetime | as_local)).total_seconds() > 300 }}
    複製代碼

    規則五:讓家人能關掉

    放一個 input_boolean 在儀表板上:
    1.       - condition: state
    2.         entity_id: input_boolean.電視通知開關
    3.         state: "on"
    複製代碼

    沒有這個開關的話,家人覺得煩就會叫你整套拆掉。

    實際值得發到電視的清單

    我家最後留下的只有五個:


    • 門鈴 / 門口有人(帶攝影機快照)
    • 瓦斯 / 煙霧 / 漏水(緊急)
    • 小孩放學到家(門鎖的 changed_by)
    • 有人離家忘記關東西
    • 洗衣機好了(這個是家人要求加的,我本來覺得不用)


    其他全部走手機推播。

    一個意外的用途:找遙控器
    1. script:
    2.   find_remote:
    3.     sequence:
    4.       - action: notify.android_tv_living_room
    5.         data:
    6.           title: 遙控器
    7.           message: >
    8.             上次使用是
    9.             {{ relative_time(states.sensor.tv_remote_last_used.last_changed) }}
    10.           data:
    11.             duration: 20
    複製代碼

    (這個比較搞笑,但如果你的遙控器有藍牙定位的話真的可以做。)

    ---

    最重要的一句話

    電視通知的價值跟「頻率」成反比。

    一天跳一次,大家會看。
    一天跳十次,大家會要求你關掉。

    我一開始做得太興奮,什麼都往電視上丟,
    兩週後家人就受不了了。

    砍到只剩五個之後,反而每一次跳出來大家都會認真看。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

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

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

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