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

    每天自動拍一張,一年變成一段影片:HA 縮時攝影從拍到合成

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 11:47:42 | 顯示全部樓層 |閱讀模式
    讓 Home Assistant 每天固定拍一張陽台的照片,一年之後把 365 張合成一段影片。
    陽台的植物長大、季節的光線移動、對面工地一層一層蓋上去,全部會出現在那 30 秒裡面。

    這篇從「確認你的攝影機拍得出照片」開始,到「手上拿到一個 mp4 檔」結束,中間不用開第二篇。

    出現在那 30 秒裡面。 這篇從「確認你的攝影機拍得出照片」開始,到「手上拿到一個 mp4 檔」結束,中間不用開第二篇。

    你需要什麼


    • 一台已經接進 HA、在 HA 裡看得到畫面的攝影機(任何廠牌都可以)
    • 一台可以跑 ffmpeg 的電腦(Windows / Mac / Linux 都行,年底合成時用)
    • 不需要買任何東西


    步驟 1:確認 HA 真的能從這台攝影機存下一張圖

    先不要寫自動化。到 設定 → 工具 → 動作(舊版叫「開發者工具 → 服務」),
    右上角切成 YAML 模式,貼這段,把 `camera.balcony` 換成你自己的攝影機實體:
    1. action: camera.snapshot
    2. target:
    3.   entity_id: camera.balcony
    4. data:
    5.   filename: /media/timelapse/balcony/test.jpg
    複製代碼

    按「執行動作」。

    你會看到什麼:左下角出現一個綠色的勾,然後到側邊欄的 媒體 →
    我的媒體 → `timelapse` → `balcony`,裡面會有一張 `test.jpg`,點下去看得到畫面。

    看不到而且跳紅字,對照這三種:


    • `not allowed to access` —— 路徑不對。`/media` 和 `/config/www` 這兩個位置
      預設就已經是允許的,不用去 configuration.yaml 加 `allowlist_external_dirs`。
      會噴這個代表你寫成別的路徑(例如 `/share` 或 `/root`)
    • `Error on requesting data` —— 攝影機當下取不到影像。先回儀表板確認畫面還在
    • 綠勾出現但媒體瀏覽器裡沒有檔案 —— 目錄不存在時 HA 會自己建,
      但如果你裝的是 Container 版而 `/media` 沒有掛載進去,寫進去的是容器內部、重開就消失。
      HA OS 使用者不會遇到這個


    這一步過了,後面才有意義。確認完把 `test.jpg` 刪掉。

    步驟 2:算出你家的太陽仰角門檻(這步很多人做錯)

    觸發時機有兩種選擇:


    • 固定時鐘時間(每天 12:00)—— 簡單,但夏天中午太陽在頭頂、冬天斜射,
      影片會忽亮忽暗、影子方向一直變
    • 固定太陽仰角 —— 太陽在天空的同一個高度時才拍,光線角度一致,影片順很多


    固定仰角比較好,但門檻不能亂填。

    一年之中太陽最低的那天(冬至,12/21 前後)正午的高度,決定了你的門檻上限。
    公式是 `90 - 你的緯度 - 23.44`。

    到 設定 → 工具 → 範本,把左邊清空,貼這一行:
    1. {{ (90 - state_attr('zone.home','latitude') - 23.44) | round(1) }}
    複製代碼

    你會看到什麼:右邊立刻出現一個數字。台北大約是 41.5,
    台中約 43.0,高雄約 43.9。

    這就是你家全年正午太陽最高只到的那個度數。
    門檻要明顯低於它 —— 我用「算出來的數字減 8」,台北就是 33,取整數寫 33。

    為什麼要強調這件事:網路上(包含這篇的舊版)很多人寫 `above: 45`。
    台灣沒有任何一個地方冬天正午到得了 45 度,
    所以每年 11 月到 1 月底那支自動化一次都不會觸發,而且完全不會報錯 ——
    你要等到隔年春天翻資料夾才發現少了兩個月。

    步驟 3:建立一個 input_datetime 輔助工具

    用來記「今天拍過了沒」。

    設定 → 裝置與服務 → 輔助工具 → 右下角「建立輔助工具」 → 選 日期與時間:


    • 名稱:`last timelapse`
    • 兩個開關(日期、時間)都要打開
    • 建立


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

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

    本版積分規則

    延伸閱讀

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

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

    GMT+8, 2026-11-10 00:36 , Processed in 0.125387 second(s), 25 queries .

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