與一次性觸發(fā)器驅(qū)動(dòng)整套家庭自動(dòng)化)
智能家居物聯(lián)網(wǎng)【免費(fèi)下載鏈接】Home-AssistantConfig:house: Home Assistant configuration Documentation for my Smart House. Write-ups, videos, part lists, and links throughout. Be sure to :star: it. Updated FREQUENTLY!項(xiàng)目地址https://gitcode.com/gh_mirrors/ho/Home-AssistantConfig點(diǎn)擊查看免費(fèi)下載導(dǎo)讀本篇文章以 Bear Stone Smart Home即 Home-AssistantConfig 開源倉(cāng)庫(kù)中 config/input_boolean 目錄 的說明文檔為核心系統(tǒng)講解這套成熟智能家居配置中「輸入布爾input_boolean」的設(shè)計(jì)哲學(xué)與實(shí)踐方式如何用guest_mode、alert_mode等模式開關(guān)調(diào)控整體家居行為又如何用good_night、flash、locator等**一次性觸發(fā)器one-shot triggers**讓自動(dòng)化按需執(zhí)行后自動(dòng)復(fù)位。讀完本文你將掌握一套可復(fù)制的「開關(guān) 自動(dòng)化 腳本」解耦架構(gòu)并理解每種布爾量在本倉(cāng)庫(kù)中對(duì)應(yīng)的真實(shí)調(diào)用鏈。一、為什么用 input_boolean 而不是直接寫死在自動(dòng)化里在 Home Assistant 中input_boolean是官方提供的一種「輔助實(shí)體helpers」類型本質(zhì)是一個(gè)可被存儲(chǔ)、可在 UI 翻轉(zhuǎn)、可被自動(dòng)化/腳本/語音助手讀寫的人為布爾開關(guān)。它的價(jià)值在于把決策狀態(tài)與執(zhí)行邏輯解耦自動(dòng)化只負(fù)責(zé)監(jiān)聽開關(guān)變化邏輯集中在automation/目錄下的 YAML 中用戶、Alexa、App 或儀表盤只需要翻轉(zhuǎn)開關(guān)無需觸碰任何配置文件同一開關(guān)可以被多個(gè)自動(dòng)化共享形成全局模式。原文檔將其定位概括為一句話Mode and trigger toggles that drive automations (guest mode, parties, presence overrides, one-shot triggers)——即驅(qū)動(dòng)自動(dòng)化的模式開關(guān)與觸發(fā)器覆蓋客人模式、聚會(huì)、在場(chǎng)狀態(tài)覆蓋與一次性觸發(fā)等場(chǎng)景。本倉(cāng)庫(kù)將所有input_boolean集中放在 config/input_boolean/ 目錄并通過 configuration.yaml 中的input_boolean: !include_dir_merge_named input_boolean以目錄合并命名方式自動(dòng)加載自動(dòng)化同樣通過automation: !include_dir_merge_list automation加載因此新增一個(gè)開關(guān)文件即可全局生效無需改動(dòng)主配置。二、三個(gè)文件的分工模式、觸發(fā)器與后臺(tái)開關(guān)原文檔推薦瀏覽三個(gè)核心文件它們的分工清晰文件定位內(nèi)容home_modes.yaml家庭模式Guest、alert、notification 開關(guān)被大量自動(dòng)化跨文件引用guest_mode、alert_mode、speech_notifications、text_notificationstrigger_booleans.yaml一次性觸發(fā)開關(guān)常作為自動(dòng)化守衛(wèi)guardsgood_night、meal_time、work、flash、color_tornado、guard_dog、locatorhidden_booleans.yaml后臺(tái)開關(guān)從 UI 隱藏僅由自動(dòng)化/腳本內(nèi)部使用home_stats這種按職責(zé)拆文件的做法讓新增功能時(shí)能快速定位改模式去home_modes加一次性觸發(fā)去trigger_booleans加內(nèi)部狀態(tài)去hidden_booleans。三、家庭模式開關(guān)home_modes.yaml全局行為的總閘home_modes.yaml 定義四個(gè)模式開關(guān)全部帶 MDI 圖標(biāo)與明確的初始值guest_mode: name: Guest Mode icon: mdi:account-alert initial: off alert_mode: name: Alert Mode icon: mdi:alert-octagram initial: off speech_notifications: name: Speech Notifications icon: mdi:speaker-wireless initial: on text_notifications: name: Text Notifications icon: mdi:cellphone-wireless initial: on注意一個(gè)細(xì)節(jié)speech_notifications與text_notifications的initial為on即默認(rèn)啟用語音與文本通知而guest_mode與alert_mode默認(rèn)關(guān)閉。這體現(xiàn)了默認(rèn)安全、按需開啟的設(shè)計(jì)取向。3.1 guest_mode客人模式與家庭在場(chǎng)聯(lián)動(dòng)guest_mode是本倉(cāng)庫(kù)引用最廣的開關(guān)之一涉及語音反饋、晚安流程、定時(shí)任務(wù)、廚房燈光等多個(gè)自動(dòng)化。它的核心邏輯在 config/automation/Speech/guest_mode.yaml開啟反饋監(jiān)聽input_boolean.guest_mode從off到on觸發(fā)script.speech_engine播報(bào)Guest Mode has been enabled. Must be a party.并附帶天氣、車庫(kù)與窗戶檢查自動(dòng)復(fù)位當(dāng)group.family從not_home變?yōu)閔ome家人回家且guest_mode仍為on時(shí)調(diào)用input_boolean.turn_off關(guān)閉并播報(bào)Guest Mode has been disabled and normal automations will continue.——客人模式隨著家人歸來自動(dòng)失效無需手動(dòng)復(fù)位。guest_mode還作為條件貫穿多個(gè)自動(dòng)化典型用途是抑制打擾性行為good_night.yaml 在觸發(fā)晚安流程前要求guest_mode為off避免客人到訪時(shí)誤關(guān)燈光Timed_Triggers/2200.yaml 用模板not is_state(input_boolean.guest_mode, on) or is_state(group.bed, on)判斷何時(shí)執(zhí)行夜間任務(wù)Timed_Triggers/night_watchdog.yaml、sunrise_turn_off.yaml、wake_up.yaml、away.yaml 均以guest_mode作為條件燈光側(cè)kitchen_lights_and_accents.yaml 與 kitchen_sink_circadian.yaml 依據(jù)guest_mode決定是否執(zhí)行默認(rèn)場(chǎng)景tv_time_on_and_off.yaml 也在監(jiān)聽它。這形成一條清晰鏈路UI/Alexa 翻轉(zhuǎn)開關(guān) → 狀態(tài)觸發(fā)自動(dòng)化 → 語音播報(bào) → 條件抑制其他自動(dòng)化 → 家人回家自動(dòng)復(fù)位。3.2 alert_mode警報(bào)模式——高風(fēng)險(xiǎn)事件的提升通道alert_mode用于標(biāo)記當(dāng)前處于高風(fēng)險(xiǎn)/警報(bào)狀態(tài)開啟后允許夜間或非常規(guī)時(shí)段執(zhí)行語音播報(bào)。其典型寫入方是 High_Wind_Speed_Check.yaml風(fēng)傳感器sensor.pirateweather_wind_speed分三檔觸發(fā)above: 30/40/60對(duì)應(yīng) advisory / severe / emergency 三級(jí)在發(fā)送notify_engine推送后調(diào)用input_boolean.turn_on input_boolean.alert_mode并讓speech_engine播報(bào)風(fēng)況緊急檔wind_severity emergency還會(huì)調(diào)用script.emergency。alert_mode的消費(fèi)方是 speech_processing.yaml語音播報(bào)的條件之一是非休眠時(shí)段group.bedoff 且 08:00–22:00或alert_mode為 on——也就是說警報(bào)模式下任何時(shí)間都可以播報(bào)播報(bào)完成后第 132-136 行會(huì)input_boolean.turn_off同時(shí)復(fù)位alert_mode與lastmsg。此外 door_opened.yaml 也會(huì)引用它。3.3 speech_notifications / text_notifications語音與文本推送的總開關(guān)這兩個(gè)開關(guān)分別在兩條核心執(zhí)行鏈路上充當(dāng)?shù)谝坏篱l門語音通道script.dog_barkconfig/script/dog_bark.yaml在播放狗叫音頻前要求input_boolean.speech_notifications為on同時(shí)疊加時(shí)間09:00–20:00與group.bed狀態(tài)條件speech_processing.yaml 同樣要求其開啟才執(zhí)行 TTS文本通道script.notify_engineconfig/script/notify_engine.yaml在發(fā)送手機(jī)推送前第一條件就是input_boolean.text_notifications為on。由此住戶可以在不修改任何自動(dòng)化文件的前提下一鍵靜音全屋語音播報(bào)或手機(jī)推送——這正是用開關(guān)替代改代碼的直觀體現(xiàn)。四、一次性觸發(fā)器trigger_booleans.yaml觸發(fā)—執(zhí)行—自動(dòng)復(fù)位trigger_booleans.yaml 中 7 個(gè)開關(guān)全部遵循同一種one-shot 模式自動(dòng)化監(jiān)聽開關(guān)off → on變化并執(zhí)行動(dòng)作隨后立刻turn_off復(fù)位等待下次觸發(fā)。這樣開關(guān)不會(huì)卡在 on再次觸發(fā)也天然有效。good_night: name: Good Night initial: off meal_time: name: Meal Time initial: off work: name: Work initial: off flash: name: Flash initial: off color_tornado: name: Color Tornado! initial: off guard_dog: name: Guard Dog initial: off locator: name: Locator icon: mdi:map-marker-account initial: off逐一對(duì)應(yīng)真實(shí)自動(dòng)化開關(guān)消費(fèi)自動(dòng)化執(zhí)行內(nèi)容good_nightgood_night.yaml觸發(fā)晚安例行程序關(guān)閉戶外季節(jié)性燈光、廚房/主衛(wèi)裝飾燈、運(yùn)動(dòng)檢測(cè)調(diào)用script.interior_off并熄滅告警面板屏幕亮度。注意其觸發(fā)源還包括 SleepIQ 雙人床傳感器to: on即按開關(guān)或上床都能進(jìn)入流程meal_timemealtime.yaml打開餐區(qū)與廚房燈、關(guān)閉客廳燈隨即復(fù)位workwork.yaml關(guān)閉餐區(qū)/廚房/客廳燈打開light.office_lamp復(fù)位——一鍵切換工作環(huán)境flashflash_all.yamllight.turn_on entity_id: all執(zhí)行flash: long并對(duì) 20 個(gè)具體燈光逐一長(zhǎng)閃其中l(wèi)ight.den_lamp被注釋停用完成后復(fù)位——常用于找人或通知color_tornadocolor_tornado.yaml對(duì)light.justin_go開啟 Hue 的effect: colorloop色彩循環(huán)隨即復(fù)位——聚會(huì)助興guard_dogguard_dog.yaml觸發(fā)script.dog_bark播放狗吠音頻守衛(wèi)效果delay 10 分鐘后復(fù)位同時(shí)lock.front_door從locked到unlocked也會(huì)觸發(fā)條件是group.garage_doors處于closedlocatorlocator.yaml觸發(fā)script.speech_engine播報(bào)全家人位置隨后復(fù)位。文件注釋明確說明其設(shè)計(jì)用途配合 Alexa 語音Alexa, turn on locator其中g(shù)uard_dog與good_night展示了一個(gè)進(jìn)階技巧觸發(fā)器布爾可以與真實(shí)傳感器/實(shí)體狀態(tài)或組合成同一觸發(fā)讓人工開關(guān)與物理事實(shí)殊途同歸。而flash、color_tornado則展示了觸發(fā)器作為樂子/演示開關(guān)的玩法——它們本質(zhì)上是把復(fù)雜的多步動(dòng)作封裝成一個(gè)語義清晰的單詞開關(guān)。五、后臺(tái)開關(guān)hidden_booleans.yaml隱藏的內(nèi)部狀態(tài)hidden_booleans.yaml 目前只有一個(gè)成員home_stats: name: Home Stats initial: off它服務(wù)于 config/automation/Speech/home_stats.yaml自動(dòng)化監(jiān)聽group.family從not_home變?yōu)閔ome持續(xù) 3 分鐘或input_boolean.home_stats從off到on隨后先wait_template等待group.garage_doors全部closed超時(shí) 5:30再調(diào)用speech_engine播報(bào)室內(nèi)外天氣、垃圾日、車庫(kù)與窗戶檢查——即家人進(jìn)門后的歸家簡(jiǎn)報(bào)。它被歸類為 hidden 是因?yàn)樗ǔ2槐皇謩?dòng)操作家人歸來自動(dòng)觸發(fā)才是主路徑開關(guān)只是提供一條手動(dòng)補(bǔ)充通道例如按下一個(gè)實(shí)體按鈕立即播報(bào)。把這類偶發(fā)手動(dòng)、常態(tài)自動(dòng)的狀態(tài)放到隱藏文件能避免 UI 上出現(xiàn)過多無關(guān)開關(guān)。六、命名與組織技巧原文檔的兩條實(shí)戰(zhàn)建議原文檔末尾給出兩條 Tips與倉(cāng)庫(kù)實(shí)踐完全吻合在 UI 或通過腳本翻轉(zhuǎn)布爾值來引導(dǎo)自動(dòng)化避免改配置文件。本倉(cāng)庫(kù)中開關(guān)的翻轉(zhuǎn)既可以來自 UI 實(shí)體、儀表盤按鈕如 dashboards/overview 下的卡片也可以來自自動(dòng)化自身的input_boolean.turn_off/turn_on如 guest_mode 的自動(dòng)復(fù)位、one-shot 的自動(dòng)復(fù)位還可以來自 Alexa 語音locator的設(shè)計(jì)即為此。這套機(jī)制讓改行為從改 YAML降級(jí)為撥開關(guān)。給實(shí)驗(yàn)性開關(guān)加上功能名前綴保持組織清晰。觀察trigger_booleans.yamlgood_night、meal_time、work、flash都是動(dòng)作語義命名一眼可知其用途而color_tornado、guard_dog、locator則是特色功能命名。結(jié)合按文件home_modes / trigger / hidden分組的結(jié)構(gòu)整個(gè)input_boolean空間不需要額外文檔也能自解釋。七、如何接入自己的配置要復(fù)用這套模式只需三步創(chuàng)建開關(guān)文件在config/input_boolean/下新建或編輯 YAML按模式 / 觸發(fā)器 / 隱藏分類存放每個(gè)開關(guān)提供name、icon可選、initial掛載配置確認(rèn)主配置 configuration.yaml 含input_boolean: !include_dir_merge_named input_boolean自動(dòng)化用automation: !include_dir_merge_list automation加載編寫自動(dòng)化用platform: state監(jiān)聽input_boolean.xxx的from: off/to: on執(zhí)行動(dòng)作后在 action 末尾input_boolean.turn_off復(fù)位one-shot 模式或在條件中引用開關(guān)模式/守衛(wèi)模式。本倉(cāng)庫(kù)的自動(dòng)化還大量使用mode: single/mode: restart與max_exceeded: silent如 good_night.yaml避免開關(guān)高頻翻轉(zhuǎn)造成重復(fù)執(zhí)行這一點(diǎn)在自建 one-shot 時(shí)同樣值得照搬。八、小結(jié)一套狀態(tài)與邏輯解耦的完整樣板回顧整個(gè) input_boolean 體系可以看到 Bear Stone Smart Home 的核心設(shè)計(jì)脈絡(luò)模式開關(guān)home_modes定義當(dāng)前處于什么狀態(tài)——是否待客、是否警報(bào)、是否靜音——被眾多自動(dòng)化作為條件引用形成全局行為總閘觸發(fā)器開關(guān)trigger_booleans定義現(xiàn)在執(zhí)行一次什么動(dòng)作——晚安、用餐、工作、閃燈、派對(duì)、守衛(wèi)、找人——由 UI/Alexa 觸發(fā)后由自動(dòng)化消費(fèi)并自動(dòng)復(fù)位隱藏開關(guān)hidden_booleans承載純內(nèi)部狀態(tài)保持 UI 整潔三者在 configuration.yaml 的統(tǒng)一掛載下配合 automation 與 script 目錄構(gòu)成可維護(hù)、可語音控制、可漸進(jìn)擴(kuò)展的自動(dòng)化骨架。對(duì)任何希望少改配置、多控行為的 Home Assistant 玩家來說這套 input_boolean 組織方式是現(xiàn)成的、經(jīng)過真實(shí)家居環(huán)境驗(yàn)證的參考樣板給新功能加一個(gè)語義清晰的開關(guān)遠(yuǎn)比在多個(gè)自動(dòng)化里反復(fù)堆疊條件更容易長(zhǎng)期維護(hù)。贊分享智能家居物聯(lián)網(wǎng)【免費(fèi)下載鏈接】Home-AssistantConfig:house: Home Assistant configuration Documentation for my Smart House. Write-ups, videos, part lists, and links throughout. Be sure to :star: it. Updated FREQUENTLY!項(xiàng)目地址https://gitcode.com/gh_mirrors/ho/Home-AssistantConfig點(diǎn)擊查看免費(fèi)下載相關(guān)推薦智能家居自動(dòng)化入門Home-AssistantConfig中的10個(gè)實(shí)用技巧智能家居自動(dòng)化入門Home AssistantConfig中的10個(gè)實(shí)用技巧 想要打造真正的智能家居體驗(yàn)嗎Home Assistant作為最強(qiáng)大的開源智能家智能家居物聯(lián)網(wǎng)如何在華為昇騰NPU上部署RapidOCR5步快速入門如何在華為昇騰NPU上部署RapidOCR5步快速入門 想要在華為昇騰NPU上體驗(yàn) RapidOCR 的極致性能加速嗎本文將為您提供一個(gè)完整的 華為昇騰NP智能家居時(shí)間觸發(fā)自動(dòng)化Home-AssistantConfig如何實(shí)現(xiàn)日出日落智能控制智能家居時(shí)間觸發(fā)自動(dòng)化Home AssistantConfig如何實(shí)現(xiàn)日出日落智能控制 想要讓您的智能家居系統(tǒng)自動(dòng)跟隨自然節(jié)律運(yùn)行嗎Home Assista智能家居物聯(lián)網(wǎng)上一篇如何在3分鐘內(nèi)給React項(xiàng)目嵌入Web終端wterm快速上手教程下一篇tgrep安裝教程Homebrew、Cargo源碼構(gòu)建與預(yù)編譯二進(jìn)制3種方式任選其一創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考