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

    養寵物的自動化:溫濕度看門狗,與自己做一個會量水量的水碗

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 02:49:17 | 顯示全部樓層 |閱讀模式
    家裡有貓狗的話,有兩件事值得花力氣做:夏天不在家時的溫濕度看門狗,以及知道牠到底有沒有喝水。這篇把兩件事都做完 —— 看門狗的判準會解釋為什麼「只看溫度」在台灣是不夠的,水碗的部分是從買零件、接線、校正到完整設定檔的 DIY。

    家裡有貓狗的話,有兩件事值得花力氣做:夏天不在家時的溫濕度看門狗,以及知道牠到底有沒有喝水。這篇把兩件事都做完 —— 看門狗的判準會解釋為什

    這篇做完你會得到什麼


    • 一個會依溫度加濕度判斷風險的看門狗,而且是「一定執行」不是只推播
    • 看門狗執行之後還會回頭確認冷氣真的有變涼,沒有的話再通知一次
    • 一個自己做的水碗,會回報公克數,可以看出牠今天喝了多少
    • 水量太低、太久沒喝水的提醒
    • 一個正確的「家裡有沒有人」判斷,不會被寵物走過去弄壞


    ⚠ 先講一個一定要更正的判準:只看溫度是不夠的

    舊文(包括這篇的舊版)寫的是「室內溫度超過 30 度就開冷氣」。這在台灣會系統性低估風險,原因在生理:

    貓狗身上沒有汗腺(只有腳掌有極少量),牠們散熱主要靠喘氣 —— 也就是讓口腔和呼吸道的水分蒸發帶走熱量,另外再靠周邊血管擴張和趴在涼的地板上。

    蒸發散熱的效率直接取決於空氣的濕度。濕度高的時候喘氣幾乎沒有用,體溫降不下來;體溫上升又使代謝率升高,產生更多熱 —— 這是一個惡性循環。獸醫與動保團體的衛教資料明白指出:有時候高濕度比高溫還要危險。

    台灣夏天的室內濕度常年在 70% 以上。所以「28 度 + 85% 濕度」對一隻狗來說,可能比「31 度 + 50% 濕度」更危險,而只看溫度的自動化會放過前者。

    (下面用到的溫度與行為建議,來源是獸醫師與動保團體的衛教資料,不是政府法規。自家寵物的品種、年齡、健康狀況差異很大,數字請當成起點而不是標準答案,特別是短鼻品種和長毛動物 —— 那些衛教資料對牠們的建議是室內維持在 23 度或以下。)

    步驟 1:把溫濕度感測器裝在牠實際待的高度

    這一步決定後面所有判斷的正確性。

    一般教學說溫濕度感測器要放離地 1~1.5 公尺(人的呼吸高度)。對寵物來說那是錯的高度 —— 貓狗大部分時間貼著地板。


    • 放在離地 30~50 公分,靠近牠平常趴的位置
    • 避開:冷氣出風口、陽光直射的地板、電器旁邊、門邊
    • 不要放在牠碰得到的地方。裝在附近的牆面或櫃子側面,用 3M 無痕膠


    想知道高度差多少:把兩顆感測器分別放在 30 公分和 150 公分,放一整天,到 HA 的歷史紀錄把兩條曲線疊在一起。

    你會看到:夏天下午通常差 1~3 度(熱空氣往上),而且低處的曲線比較平緩。差距超過 3 度的話,高處那顆多半被陽光或廢熱影響了。

    步驟 2:建立風險判斷

    加到 configuration.yaml 的最外層。已經有 `template:` 的話接在既有清單後面,不要寫第二個(同一個最外層鍵出現兩次時,後面那個會安靜地蓋掉前面那個,而且不報錯):
    1. template:
    2.   - sensor:
    3.       - name: "寵物熱風險等級"
    4.         unique_id: pet_heat_risk
    5.         icon: mdi:dog-side
    6.         availability: >
    7.           {{ has_value('sensor.di_ban_wen_du')
    8.              and has_value('sensor.di_ban_shi_du') }}
    9.         state: >
    10.           {% set t = states('sensor.di_ban_wen_du') | float %}
    11.           {% set rh = states('sensor.di_ban_shi_du') | float %}
    12.           {% if t >= 32 or (t >= 29 and rh >= 75) %}
    13.             高
    14.           {% elif t >= 29 or (t >= 27 and rh >= 80) %}
    15.             中
    16.           {% else %}
    17.             低
    18.           {% endif %}
    19.         attributes:
    20.           說明: >
    21.             {% set t = states('sensor.di_ban_wen_du') | float %}
    22.             {% set rh = states('sensor.di_ban_shi_du') | float %}
    23.             {{ t | round(1) }} 度 / 濕度 {{ rh | round(0) }}%
    24.             {%- if rh >= 75 %}(濕度偏高,喘氣散熱效率差){% endif %}
    25.   - binary_sensor:
    26.       - name: "寵物有熱危險"
    27.         unique_id: pet_heat_danger
    28.         device_class: heat
    29.         delay_on: "00:10:00"
    30.         state: >
    31.           {{ is_state('sensor.chong_wu_re_feng_xian_deng_ji', '高') }}
    複製代碼

    三個設計重點


    • 兩條路徑都會判成「高」:單純的高溫(32 度以上),或是中等溫度加上高濕度(29 度 + 75%)。這就是前面講的複合判準
    • `delay_on: "00:10:00"` —— 條件要連續成立十分鐘。開門的瞬間、陽光短暫照進來都會讓數值跳一下,沒有這個緩衝會一直誤觸發
    • `availability:` —— 感測器離線時這個實體變成「不可用」,而不是「低風險」。感測器壞掉被當成一切正常,是最糟的失敗方向


    門檻要按你家的狀況調:短鼻品種(法鬥、巴哥、波斯貓)或長毛動物,把上面每個溫度數字各減 2 到 3 度。

    驗證:存檔後 設定 → 系統 → 重新啟動。到 開發者工具 → 範本,把 `state:` 底下那幾行貼進去,然後手動把 t 和 rh 改成不同的組合試:
    1. {% set t = 28.0 %}
    2. {% set rh = 85.0 %}
    3. {% if t >= 32 or (t >= 29 and rh >= 75) %}高
    4. {% elif t >= 29 or (t >= 27 and rh >= 80) %}中
    5. {% else %}低{% endif %}
    複製代碼

    你會看到右邊顯示 `中`。把 `t` 改成 `29.5` 會變成 `高`。這是驗證分支邏輯最快的方法 —— 不用等真的變熱。

    步驟 3:溫度看門狗(一定執行,不是只推播)

    這一條要設成「一定會執行動作」而不是只推播,因為收到通知時你可能在開會、在飛機上、在沒有訊號的地方。

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

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

    本版積分規則

    延伸閱讀

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

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

    GMT+8, 2026-11-10 01:01 , Processed in 0.121861 second(s), 25 queries .

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