- SHTF Bulgaria - https://shtf.bg/ -

HOME ASSISTANT — ЧАСТ 6

HOME ASSISTANT — ЧАСТ 6

⚙️ Къщата започва да реагира

В Част 5 [1] направихме една доста важна промяна.

Спряхме да гледаме на Home Assistant като на:

„Онова нещо, дето ми включва лампите.“

😂

И започнахме да го използваме като:

👁️ MONITORING SYSTEM.

Научихме къщата да наблюдава:

🌡️ температура;
💧 течове;
🧊 хладилник и фризер;
🔥 дим;
☠️ CO;
🌫️ качество на въздуха;
⚡ електрическата мрежа;
🔋 UPS;
🌐 Internet и локалната мрежа;
🔋 състоянието на самите sensors.

И стигнахме до една много проста идея:

КАЖИ МИ КОЕ ВЕЧЕ НЕ Е НОРМАЛНО.

Чудесно.

Само че сега идва логичният следващ въпрос:

Добре…

И КАКВО ЩЕ НАПРАВИМ ПО ВЪПРОСА? 😁


👁️ ДА ВИДИШ ПРОБЛЕМА Е САМО ПЪРВАТА СТЪПКА

Да се върнем отново към нашия алгоритъм:

👁️ ВЪЗПРИЕМИ

↓

🧠 ОЦЕНИ

↓

🎯 ПРИОРИТИЗИРАЙ

↓

⚙️ ДЕЙСТВАЙ

↓

🔄 ПРЕОЦЕНИ

↓

🧩 АДАПТИРАЙ СЕ

Дотук Home Assistant беше много добър в първата стъпка.

👁️ ВЪЗПРИЕМИ.

Sensor-ът казва:

💧 WATER DETECTED

или:

🧊 FREEZER TEMPERATURE RISING

или:

⚡ GRID OFFLINE

или:

🌫️ AIR QUALITY POOR

Сега започваме да стигаме до:

⚙️ ДЕЙСТВАЙ.

И тук нещата стават едновременно много по-интересни…

и много по-опасни.


🤖 ЗАЩО?

Защото има огромна разлика между:

„Включи лампата.“

и:

„Спри водата на цялата къща.“

😂

При първото, ако automation-ът сгреши, най-много някой да се ядоса.

При второто може да спрем вода към:

🚿 баня;

🚰 кухня;

🔥 отоплителна система;

💧 бойлер;

🌱 напояване;

или нещо друго, което не сме обмислили.

Тоест вече не говорим просто за:

удобство.

Говорим за:

АВТОМАТИЗИРАНА РЕАКЦИЯ ВЪРХУ РЕАЛНИЯ СВЯТ.

И затова трябва малко повече мислене.


🧠 ПРЕДИ ACTION ТРЯБВА ДА ИМА ОЦЕНКА

В Част 2 [2] използвахме:

КОГАТО → АКО → НАПРАВИ

Сега ще го разширим малко:

👁️ ЗАСЕЧИ → 🧠 ПОТВЪРДИ → ⚙️ РЕАГИРАЙ → 🔄 ПРОВЕРИ

Това е доста по-добър модел за неща, които имат реални последствия.

Например:

💧 leak sensor казва WET.

Не е задължително първата ни реакция да бъде:

„СПРИ ВОДАТА ЦЕНТРАЛНО!!!“

😂

Може първо да проверим:

Кой sensor?

Къде?

От колко време?

Има ли flow?

Има ли втори sensor?

Някой вкъщи ли е?

Вентилът достъпен ли е?

Самият sensor Unavailable ли е?

Това вече е:

🧠 ОЦЕНИ.


💧 НЕКА ЗАПОЧНЕМ С ТЕЧА

Представете си:

под бойлера имаме leak sensor.

99.99% от времето:

🟢 DRY

И една прекрасна сряда в 15:17:

🔴 WET

Какво можем да направим?

Най-простият вариант:

📱 изпращаме:

🚨 ЗАСЕЧЕНА Е ВОДА ПОД БОЙЛЕРА

Това вече го можем от Част 5.

Но ако имаме подходящ моторизиран кран за водата…

Home Assistant може да има и valve entity. Официалният Valve building block поддържа състояния като open, opening, closed, closing, stopped, unavailable и unknown, както и действия за отваряне, затваряне, задаване на позиция и спиране на движението.

Тогава вече можем да направим:

👁️ КОГАТО:

Leak sensor под бойлера → WET

🧠 АКО:

Главният воден вентил → OPEN

⚙️ НАПРАВИ:

затвори крана за вода.

Home Assistant има отделно действие valve.close_valve, а valve entity може да се използва и като условие дали кранът действително е отворен или затворен.

И после:

📱

🚨 Засечен теч под бойлера.
Кранът за вода е затворен.

Ето това вече е интересно.


⚠️ НО ИМА ЕДНА МНОГО ВАЖНА ДУМА:

ПОТВЪРЖДЕНИЕ.

Home Assistant е изпратил команда:

CLOSE.

Чудесно.

Но кранът затвори ли се?

Това са две различни неща.

Моторът може да е блокирал.

Механизмът може да е повреден.

Устройството може да е Unavailable.

Връзката може да е прекъснала.

Някои устройства могат да върнат реално състояние, други имат по-ограничена обратна връзка. Home Assistant сам по себе си различава състояния като closing и closed, когато конкретната интеграция и устройство предоставят такава информация.

Затова добрата логика не е:

„Изпратих командата. Значи проблемът е решен.“

А:

КОМАНДА → ПРОВЕРКА → РЕЗУЛТАТ.


🔄 ТОВА Е НАШЕТО „ПРЕОЦЕНИ“

Leak detected.

↓

Valve close command.

↓

След малко проверяваме:

VALVE = CLOSED?

Ако:

🟢 YES

можем да кажем:

💧 Течът е засечен.
🚰 Водата е спряна.

Ако:

🔴 NO

съобщението трябва да е съвсем различно:

🚨 ТЕЧ ПОД БОЙЛЕРА.

⚠️ АВТОМАТИЧНОТО СПИРАНЕ НА ВОДАТА НЕ Е ПОТВЪРДЕНО.

Необходима е проверка.

Това е много по-полезно от:

„Automation executed successfully.“ 😂


🧠 А ТРЯБВА ЛИ ИЗОБЩО ДА СПИРАМЕ ВОДАТА АВТОМАТИЧНО?

Ето това е правилният въпрос.

Не:

„Може ли Home Assistant да го направи?“

А:

„ИМА ЛИ СМИСЪЛ ДА ГО НАПРАВИ В МОЯТА СИСТЕМА?“

Защото различните къщи имат различна ВиК и отоплителна инфраструктура.

Може да имате:

бойлер;

котел;

термопомпа;

хидрофор;

пожарогасителна система;

поливна система;

други консуматори или процеси, зависещи от водоснабдяването.

Затварянето на главния кран трябва да бъде обмислено спрямо конкретната инсталация.

И моторизираният кран трябва да е подходящ за конкретното приложение.

Home Assistant може да изпрати командата.

Това не означава, че Home Assistant може да проектира ВиК системата вместо нас.


🧪 И ТУК СТИГАМЕ ДО ТЕСТВАНЕТО

Монтираме кран.

Правим automation.

Dashboard-ът е зелен.

И чакаме истински теч?

НЕ. 😂

Правим контролиран тест.

Активираме leak sensor.

Проверяваме:

📱 получаваме ли alert;

🚰 получава ли кранът команда;

⚙️ започва ли да се движи;

🔒 затваря ли реално;

🏠 Home Assistant отчита ли CLOSED;

📱 получаваме ли потвърждение;

🖐️ можем ли да го управляваме ръчно, ако Home Assistant не работи.

Защото пак стигаме до любимото ми:

НЕТЕСТВАНАТА АВТОМАТИЗАЦИЯ Е ПРЕДПОЛОЖЕНИЕ.


⚡ А BLACKOUT MODE?

В Част 4 [3] направихме концепцията:

⚫ BLACKOUT MODE.

Тогава беше:

„Токът спря. Home Assistant разбра.“

Сега вече можем да кажем:

Добре. Реагирай.

Например:

КОГАТО:

UPS → ON BATTERY

АКО:

състоянието се задържи достатъчно, за да не реагираме на кратко премигване

НАПРАВИ:

активирай BLACKOUT MODE.

След това различни automation-и могат да използват това състояние.


💡 ОСВЕТЛЕНИЕТО СЕ ПРОМЕНЯ

NORMAL MODE:

💡 движение → 80%.

BLACKOUT MODE:

💡 движение → 20%.

И може би:

само коридор;

баня;

стълбище;

важни помещения.

Декоративното осветление?

Лека нощ. 😁


🖥️ НЕКРИТИЧНИТЕ СИСТЕМИ МОГАТ ДА СЕ СПРАТ

Например при продължително прекъсване:

📺 мултимедия;

🖥️ определени компютри;

🔌 некритични smart plugs;

💡 декоративно осветление;

могат да бъдат изключени, ако конкретните устройства позволяват това безопасно.

А оставяме:

🏠 Home Assistant;

🌐 router;

🔀 switch;

📡 Wi-Fi;

🐝 coordinator;

🔋 monitoring;

📱 комуникации.

Тоест:

LOAD SHEDDING.

Не пазим всичко.

Пазим важното.


🔋 И РЕАКЦИЯТА МОЖЕ ДА ИМА НИВА

Например:

🟡 STAGE 1

Токът спря.

📱 известие;

💡 ограничено осветление;

❌ декоративни товари OFF.


🟠 STAGE 2

Прекъсването продължава.

🔋 резервът намалява;

❌ още некритични товари OFF;

🖥️ подготвяме определени системи за shutdown.


🔴 STAGE 3

Резервът е критичен.

🖥️ безопасно спиране на NAS/сървъри;

📡 оставяме минималната комуникационна инфраструктура;

🔋 пазим последния ресурс за най-важното.

Не ви давам магически проценти.

Защото няма такива.

Вашата система трябва да бъде измерена и тествана.


🧊 А ФРИЗЕРЪТ?

Тук реакцията е различна.

Представете си:

Freezer: −18°C

После:

−16°C

−14°C

−12°C

Температурата се покачва.

Home Assistant го вижда.

Но какво точно може да направи?

Да включи фризера по-силно?

Може би не.

Да поправи компресора?

Определено не. 😂

Тук най-разумната реакция може да бъде:

ДА НИ ИНФОРМИРА НАВРЕМЕ.

Например:

🧊 Температурата във фризера се покачва.

Current: −12°C
Trend: ↑
Power: ON
Door: CLOSED

Това вече ни дава много повече информация.


🧠 ЗАЩО „POWER: ON“ Е ИНТЕРЕСНО?

Защото:

фризерът се затопля + няма ток

е една ситуация.

Но:

фризерът се затопля + има ток

е друга.

Може да имаме:

отворена врата;

проблем с уплътнение;

повреда;

неработещ компресор;

друг технически проблем.

Home Assistant не е диагностицирал автоматично причината.

Но е събрал достатъчно информация, за да можем да кажем:

„ХМ. ТОВА НЕ Е НОРМАЛНО.“


🚪 А АКО ВРАТАТА Е ОТВОРЕНА?

Тогава реакцията може да бъде още по-проста:

КОГАТО:

вратата на хладилника остане отворена

ЗА:

например определено време

НАПРАВИ:

изпрати reminder.

Не всяка реакция трябва да включва мотор, клапан и сирена.

Понякога най-добрата automation е просто:

„Ей… затвори хладилника.“ 😂


🌫️ КАЧЕСТВОТО НА ВЪЗДУХА

Тук също можем да преминем от monitoring към response.

Имаме sensor.

Например Home Assistant вижда, че определен показател се влошава.

Какво можем да направим?

Ако имаме интегриран пречиствател:

увеличаваме степента.

Ако имаме подходяща механична вентилация:

променяме режима.

Ако имаме controllable fan:

включваме го.

Home Assistant fan entity може да поддържа включване/изключване, процент на скоростта, preset режими и други функции според възможностите на конкретното устройство. Не всяко устройство поддържа всички действия.

Но пак:

трябва да разбираме какъв е проблемът.


⚠️ „ЛОШ ВЪЗДУХ → ОТВОРИ ПРОЗОРЕЦА“

Звучи логично.

Но…

Навън може да има:

🔥 пожар;

🌫️ дим;

🏭 замърсяване;

❄️ много ниска температура;

🌡️ много висока температура.

😂

Следователно:

едно измерване рядко разказва цялата история.

Може вътре CO₂ да е висок…

но външният въздух да е ужасен.

Тогава:

„Отвори прозореца!“

може да бъде доста глупава automation.

И тук отново се връщаме към:

👁️ ВЪЗПРИЕМИ → 🧠 ОЦЕНИ → ⚙️ ДЕЙСТВАЙ

Не:

SENSOR → ПАНИКА → RELAY. 😂


🔥 А ДИМЪТ И CO?

Тук правилото от Част 5 остава.

Сертифицираните smoke/CO detectors са първият слой.

Техните локални аларми трябва да изпълняват предназначението си независимо от Home Assistant.

Home Assistant е:

допълнителният слой.

Може да:

📱 изпрати известия;

💡 включи осветление;

📹 активира определен изглед от камерите;

🔔 задейства допълнителни сигнали;

или да изпълни други предварително обмислени и безопасни действия.

Но не бих разчитал на сложна верига от automation-и като заместител на основната сертифицирана защита.


🏠 А АКО НЯМА НИКОЙ ВКЪЩИ?

Ето тук presence information става доста интересна.

Представете си:

💧 теч под бойлера;

🏠 никой не е вкъщи.

Реакцията може да бъде различна от:

💧 теч под бойлера;

👨‍👩‍👧 някой е вкъщи.

В първия случай може да искаме:

📱 много агресивно известяване;

🚰 автоматично спиране на водата, ако системата е проектирана за това;

📷 проверка на налични камери в подходящи помещения;

📞 допълнителен начин за известяване.

Във втория:

може би човекът вкъщи може просто да отиде и да види какво става.

Контекстът променя реакцията.


🚨 ИЗВЕСТИЕТО СЪЩО Е ACTION

Това често се подценява.

Когато кажем:

„Home Assistant да реагира“

не означава задължително:

🤖 нещо физически да се задвижи.

Много често най-разумната реакция е:

📱 КАЖИ НА ЧОВЕКА.

Home Assistant Alert е предназначен именно за проблемни състояния като течове или low-battery ситуации и може да повтаря известия през зададени интервали, докато проблемът бъде изчистен или alert-ът бъде acknowledged.

Това означава:

💧 WATER LEAK

09:31 — detected
09:36 — still active
09:41 — still active

докато някой не каже:

„Видях го.“

Това е реакция.

И понякога е точно правилната.


🧠 ЧОВЕКЪТ МОЖЕ ДА ОСТАНЕ В ЦИКЪЛА

Това е концепция, която много харесвам:

HUMAN IN THE LOOP.

Вместо Home Assistant винаги да решава сам:

„Има проблем → направи X“

може да бъде:

„Има проблем → информирай човека → предложи действие.“

Например:

🚨 ТЕЧ ПОД БОЙЛЕРА

[СПРИ ВОДАТА]

[ИГНОРИРАЙ ЗА 10 МИН]

[ОТВОРИ DASHBOARD]

При някои ситуации това е много по-разумно от напълно автоматична реакция.


🤖 КОГА БИХ ОСТАВИЛ СИСТЕМАТА ДА РЕАГИРА САМА?

Когато:

действието е добре разбрано;

последствията от грешка са приемливи;

sensor-ът е надежден;

имаме достатъчно контекст;

можем да потвърдим резултата;

имаме ръчен fallback;

и сме тествали сценария.

Колкото по-сериозно е действието…

толкова по-висока трябва да е летвата.


💡 ЕДНА ЛАМПА МОЖЕ ДА Е „СМЕЛА“ AUTOMATION

Motion detected?

Включи.

Сгрешила е?

Е…

лампата светна. 😂


🚰 ГЛАВНИЯТ КРАН ЗА ВОДАТА НЕ Е ЛАМПА

Там вече искам:

✔ надежден sensor;

✔ ясна логика;

✔ обратна връзка;

✔ manual override;

✔ тестване;

✔ известие;

✔ проверка на резултата.

Защото последствията са други.


🧠 МОЖЕМ ДА МИСЛИМ ЗА AUTOMATIONS КАТО ЗА НИВА НА ДОВЕРИЕ

Например:

🟢 НИСКОРИСКОВИ

💡 осветление;

🎵 музика;

🪟 щори;

други удобства.

Можем да бъдем сравнително смели.


🟡 СРЕДЕН РИСК

🌡️ климатизация;

🌫️ пречиствател;

🔌 някои товари;

🖥️ определени IT системи.

Повече условия и проверки.


🔴 ВИСОК РИСК

🚰 централно водоснабдяване;

🔥 отоплителни системи;

⚡ електрически товари с потенциални последствия;

☠️ safety-critical функции.

Тук:

автоматизацията трябва да бъде много по-консервативна.


🔁 А КАКВО СТАВА, АКО AUTOMATION-ЪТ СЕ ЗАДЕЙСТВА ПАК?

Това също е важно.

Представете си sensor, който променя състоянието си няколко пъти, докато automation-ът още работи.

Home Assistant има различни automation run modes: single, restart, queued и parallel. Те определят дали нов trigger ще бъде игнориран, ще рестартира текущото изпълнение, ще бъде нареден на опашка или ще стартира паралелно.

Няма да правим курс по YAML тук.

Но има важен принцип:

ТРЯБВА ДА ЗНАЕМ КАКВО СТАВА, АКО ЕДНО СЪБИТИЕ СЕ ПОВТОРИ.

За лампата — почти няма значение.

За моторизиран кран?

Вече има.


🛑 ИМА И ОЩЕ ЕДНО НЕЩО, КОЕТО ИСКАМ

STOP.

Automation-ът не трябва да бъде влак без спирачки.

😂

Искам начин човекът да може:

да го спре;

да го override-не;

да върне системата в normal mode;

да управлява физически устройството;

да разбере защо нещо се е случило.

Това е особено важно, когато автоматизацията започва да управлява инфраструктура.


📝 И ИСКАМ ДА ЗНАМ КАКВО Е НАПРАВИЛА

Представете си:

Прибирате се.

Водата е спряна.

😂

Добре…

ЗАЩО?

Не искам да гадая.

Искам да видя:

03:17 — leak sensor boiler → WET
03:17 — leak confirmed
03:18 — main valve close command
03:18 — main valve → CLOSED
03:18 — critical alert sent

Ето това е полезна система.


🧠 ЗАЩО?

Защото автоматизацията не трябва просто да:

ДЕЙСТВА.

Тя трябва да ни позволява после да:

🔄 ПРЕОЦЕНИМ.

Какво стана?

Правилно ли реагира?

Имаше ли false alarm?

Реакцията беше ли достатъчно бърза?

Трябва ли да променим логиката?

И после:

🧩 АДАПТИРАЙ СЕ.

Точно както в нашия алгоритъм.


🏠 ДОБРАТА SMART HOME СИСТЕМА НЕ СЕ ОПИТВА ДА БЪДЕ „ПО-УМНА“ ОТ ЧОВЕКА

Това е капанът.

Започваме с:

„Ще автоматизирам това.“

После:

„Ами ако стане това?“

После добавяме condition.

После още един.

После template.

После helper.

После script.

После 17 exceptions.

И след шест месеца:

никой не знае защо водата спира всеки вторник в 14:37. 😂

K.I.S.S.

Помните ли?

KEEP IT SIMPLE.

Колкото по-критична е системата…

толкова повече ми харесват:

ясни правила;

малко зависимости;

предвидимо поведение;

добра обратна връзка;

ръчно управление.


🔥 И ЕТО КЪДЕ ВЕЧЕ СМЕ

Започнахме тази серия с:

💡 ЛАМПА.

После:

🤖 AUTOMATION.

После:

🏠 LOCAL.

После:

⚡ RESILIENCE.

После:

👁️ MONITORING.

А сега вече сме на:

⚙️ RESPONSE.

Къщата вече не просто вижда:

„Има проблем.“

Може да направи нещо по въпроса.

Но само когато сме решили предварително:

КАКВО?

КОГА?

ПРИ КАКВИ УСЛОВИЯ?

И КАКВО СТАВА, АКО НЕ СРАБОТИ?


😏 И СЕГА ЩЕ ИЗЛЕЗЕМ ИЗВЪН КЪЩАТА

Дотук почти всичко, което наблюдавахме, беше вътре:

🌡️ температура;

💧 вода;

🔥 дим;

☠️ CO;

⚡ ток;

🌐 мрежа.

Само че много от проблемите, които могат да ни засегнат…

започват отвън.

И понякога имаме време между:

„НЕЩО СЕ СЛУЧВА“

и

„НЕЩОТО СТИГНА ДО МЕН.“

А това време може да бъде много ценно.


👉 В ЧАСТ 7:

⛈️ БУРЯТА ОЩЕ НЕ Е ДОШЛА. HOME ASSISTANT ВЕЧЕ ЗНАЕ.

Ще си поиграем с нещо, което лично много харесвам:

⚡ LIGHTNING DATA.

Ще видим как можем да използваме Home Assistant и данни за мълнии, за да следим:

⚡ има ли регистрирани мълнии около нас;

📍 на какво разстояние;

⏱️ колко скоро са били;

📈 увеличава ли се активността;

🚨 кога информацията вече заслужава вниманието ни.

Ще погледнем и:

⛈️ официални предупреждения;

🌧️ валежи;

🌬️ други weather data;

и как да превърнем Home Assistant от система, която наблюдава къщата…

в система, която започва да наблюдава и:

🌍 КАКВО СЕ СЛУЧВА ОКОЛО НЕЯ.

Защото колкото по-рано възприемем промяната…

толкова повече време имаме да решим какво да правим.

👁️ ВЪЗПРИЕМИ.
🧠 ОЦЕНИ.
⚙️ ДЕЙСТВАЙ.
🔄 ПРЕОЦЕНИ.

И пак отначало. 😁

SHTF.BG
Оцелявай умно, а не трудно.