Умна кухня част 6 – Хладилник

Здравейте! На вашето внимание е поредната част от поредицата статии „Умна кухня с Home Assistant“. В тази статия ще разгледам подробно всички подобрения, които направих върху моя „не умен“ хладилник, като ще започна от самото начало.

История, увод

В един прекрасен ден старият хладилник сдаде багажа. Така или иначе беше китайска марка, неизвестна дори и за китайците и реших да го сменя директно с нов. След дълго умуване реших, че новият хладилник ще е Side by Side. Причината за избора ми беше породена от това, че първо ще събира доста повече хранителни продукти, и второ – че ще запълни изцяло нишата в кухнята, която е отделена за хладилник. Пространството, в което трябваше да набутам новия хладилник, беше точно 99см на 60см.


Умна кухня Хладилник

След това прекарах доста време в търсене на хладилник с точните размери, за да може да пасне абсолютно точно. В крайна сметка изборът се сведе до два модела. Те бяха единствените, които могат да влязат в определената ниша. От тук изборът беше лесен и след седмица пристигна ето този гардероб Haier HRF-522IG7 NO FROST. Сравнително добро решение между качество и цена, и най-хубавото – с допълнителна гаранция от 6 години. Освен че е с две врати, това е абсолютно обикновен хладилник, няма wifi, няма генератори за лед и т.н., но каквото-такова, на мен ми харесва.


Haier HRF-522IG7
Haier HRF-522IG7


Ако знаех с какво се захващам, може би щях да се откажа. Първо се оказа, че за да влезе уредът в кухнята, е необходимо да сваля касата на вратата. След това се наложи да поизкъртя малко, за да оправя токовете и да прекарам захранване на подходящо място. Накрая, с помощта на още трима човека, успях да набутам хладилника на мястото му и с това хардуерната инсталация на хладилника приключи.


Умна кухня Хладилник
Умна кухня Хладилник
Умна кухня Хладилник

Идеи и цели

Винаги съм искал умен хладилник, но тъй като бюджетът е ограничен, надали скоро ще се сдобия с такъв. Ден-два след като се нарадвах на новата придобивка, реших, че е крайно време за ъпдейт. Планът беше да вкарам елементарни функции в него, които да ми позволят да наблюдавам работата му без да нарушавам гаранционните условия. Около седмица обмислях какво точно мога да направя и какво всъщност ще ми е необходимо, и направих списък на функциите, които трябваше да реализирам. На първо място, за да има смисъл от каквито и да е подобрения по хладилника, всичко което ще инсталирам по него, трябваше да може да се интегрира с Home Assistant. Тъй като имам Sonoff ZigBee Bridge, флашнат с Tasmota и интегриран в Home Assistant, реших да започна от него. Повече за Sonoff ZigBee Bridge и Home Assistant можете да научите тук.
Първия сензор, който реших да инсталирам, бе сензор за температура и влажност. На базата на този сензор ще имам мониторинг на вътрешната температура на хладилника, както и на влажността му. Спрях се на датчика Sonoff SNZB-02. Това е датчик за температура и влажност, работещ с батерия CR2450N и температурен диапазон от -10 до +40 градуса. Това го правеше перфектният избор за монтаж в хладилното отделение, но не и във фризера, защото температурата на фризера е -18 градуса. Не съм особено сигурен защо ми е температурен мониторинг на хладилника, но заводските умни хладилници имат такава опция, за това реших и аз да я реализирам.


Sonoff  SNZB-02

Като следваща стъпка реших да монтирам два датчика Sonoff SNZB-04. Това са датчици за отворени врати и прозорци, работещи в ZigBee мрежа. Датчиците работят с батерии RC2032, които имат изненадващо дълъг живот. Тези датчици ще използвам за реализация на аларма, която ще се активира, ако случайно вратата на хладилника или фризера бъде забравена отворена за повече от 1 или 2 минути. По принцип хладилникът има такава аларма, но тя е твърде тиха и ако не съм в близост до него, няма да я чуя. Използвам датчиците, за да получавам нотификация на телефона, ако алармата се активира. Това е едно от най-полезните подобрения по хладилника, за което се сетих. Аз лично няколко пъти съм имал неприятни случки от забравена отворена врата – малко наводнение, куп изхвърлена храна и най-вече топла бира.


Sonoff SNZB-04

Следващото нещо което исках да добавя към хладилника беше енергиен мониторинг. Исках да следя колко точно ток гори хладилника за месец. Тази опция реших да реализирам със Sonoff POW R-2 реле, флашнато с Tasmota. Sonoff POW R-2 е умно реле с опция за измерване на консумацията, с характеристики 16A и 3500W. Повече за Sonoff POW R-2 можете да прочетете в статията „Sonoff POW R-2 и eweLink“. Как и защо да флашнем Sonoff POW R-2 с Tasmota можете да намерите тук. Ако искате да разберете как да използвате Sonoff POW R-2 с Home Assistant, но без да го флашвате, прочетете тук.


Дотук щях да реализирам енергийния мониторинг с Sonoff POW R-2. На базата на това реле реших, че мога да реализирам функция „Бързо размразяване“. Колко ще е бързо не се знае, но идеята е, че когато релето изключи, ще прекъсне захранването към хладилника и по този начин той ще започне да се размразява.


Sonoff POW R-2

Последното нещо, за което се сетих, беше вдъхновено от умния хладилник на Samsung. Той разполага с 21 инчов дисплей, вграден в една от вратите. Хладилникът на Samsung идва с Android и няколко приложения.


Samsung

Тъй като и аз използвам няколко приложения за следене на наличности, за списъци за пазаруване и готварска книга, се замислих дали не мога да реализирам нещо подобно. Веднага се сетих за стария си таблет, който е 10 инча. Реших, че ще го монтирам на една от вратите на хладилника. Чрез таблета, освен да управлявам осветление и отопление директно от хладилника, ще мога да правя и куп други интересни неща. На първо място ще мога да наблюдавам самия хладилник. Когато готвя, ще мога да си пусна личната готварска книга на него и да следвам стъпките. Когато пазарувам и зареждам хладилника, директно от него ще въвеждам наличностите. Ще мога, веднага след като даден хранителен продукт е свършил, да го добавя в списъка за пазаруване. Мисля, че това ще е най-красивото подобрение по хладилника и ще го направи да изглежда като модерен умен хладилник за 4-5 хиляди лева.
Като обобщение, всички подобрения ще ми осигурят следните функционалности:

– Енергиен мониторинг
– Температурен мониторинг
– Мониторинг на влажността в хладилника
– Функция размразяване
– Доста на брой допълнителни функции, осигурени от вградения таблет

Хардуер и инструменти

Направих поръчка и след няколко дни чакане пристигнаха всички сензори и датчици, от които се нуждаех.
Sonoff POW R-2 – цена 34.99лв.
Sonoff SNZB-04 два броя – цена 15.90лв./бр.
Sonoff SNZB-02 – цена 16.90лв.
Tablet Huawei MediaPad T10 – такъв имах подръка
• Захранване за таблета поне 2.5А – ползвах оригиналното
• Качествен кабел за зареждане на таблета


Умна кухня част 6 – Хладилник

Необходимите инструменти и консумативи за монтажа, които ми бяха необходими са:

• Отвертки
• Моментно лепило – гел
• Двойно залепваща лента, тънка и дебела
• 3D printer
• Около 500гр. Филамент
• Фолио на 3М, черно
• Шприц кит
• Шкурки 80/120/1000/2000
• Спрей боя, черен
• FTDI кабел
• 4 болта 3мм х 20мм
• 10бр кръгли магнита ф10мм х 3мм
• Велкро 10см


Като допълнителни части, които няма от къде да се купят и сам начертах и принтирах на 3D принтера, са:
• Кутия за монтаж на Sonoff POW R-2 с монтаж на контакт. Понеже корпусът на релето е малко нестандартен, реших да направя кутия, в която да побера него заедно с един контакт.


Кутия за монтаж на Sonoff POW R-2
Кутия за монтаж на Sonoff POW R-2

Рамка-панел за монтаж на таблета върху малката врата на хладилника.


Кутия за монтаж таблет

Монтаж

Монтаж – Температурен датчик

Когато събрах всички необходими компоненти и инструменти, толкова ме сърбяха ръцете, че веднага стартирах проекта. Започнах от най-лесното.
Първо тествах температурния датчик, за да се убедя че работи. Необходимо е да махнете задното капаче на датчика и да отстраните бялата подложка от батерията. След това го монтирах, като го залепих с дебела двойно залепваща лепенка, която идва в комплекта, към вътрешната страна на вратата на хладилника.


Умна кухня част 6 – Хладилник
Умна кухня част 6 – Хладилник
Умна кухня част 6 – Хладилник
Умна кухня част 6 – Хладилник

Монтаж на Sonoff SNZB-04 – датчици на вратите

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


Монтаж на Sonoff SNZB-04 – датчици на вратите
Монтаж на Sonoff SNZB-04 – датчици на вратите

След това сглобих датчика и залепих двойно залепващата лепенка която идва в комплекта за самите датчици.


Монтаж на Sonoff SNZB-04 – датчици на вратите

На края монтирах датчиците на вратите. Монтажът стана добър, защото вратата на хладилника е около 2см по-висока от самия хладилник и по този начин датчикът въобще не се вижда.


Монтаж на Sonoff SNZB-04 – датчици на вратите
Монтаж на Sonoff SNZB-04 – датчици на вратите
Монтаж на Sonoff SNZB-04 – датчици на вратите

Монтаж на Sonoff POW R-2 – енергиен мониторинг

За монтажа на релето Sonoff POW R-2 първо ми беше необходима кутията в която да го побера заедно с един контакт. Тъй като хладилникът е в гаранция, не исках да режа кабела му, защото ако го направя, гаранцията му ще отпадне.
Пуснах кутията на 3D принтера и след около 24 часа я получих.


Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг

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


Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг

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


Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг

Дойде време за монтажа и на самото реле. Щяха да са ми необходими две отвертки и захранващ кабел.


Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг

Първо разглобих релето, като отвих болтчето на капачето. След това свързах захранващия кабел към Input L и N, и върнах отново капачето. След това го включих в мрежата за финален тест.


Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг

Изглежда работеше, свърза се успешно с WiFi и засвети синьо.
За монтажа на релето в кутията реших да ползвам велкро. Така, ако се наложи, мога да извадя релето без да чупя кутията или него самото.


Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг

След това свързах контакта с релето на изводи Output L и N.


Монтаж на Sonoff POW R-2 – енергиен мониторинг

На края поставих дъното на кутията и стегнах с винтчетата.


Монтаж на Sonoff POW R-2 – енергиен мониторинг

Получи се голям умен контакт.
Остана само да включа хладилника в него и да проверя изходните данни.


Монтаж на Sonoff POW R-2 – енергиен мониторинг
Монтаж на Sonoff POW R-2 – енергиен мониторинг

Преди монтажа на Sonoff POW R-2, релето е флашнато с Tasmota и е прецизно калибрирано. Повече за флашването и калибрацията може да прочетете тук.


Монтаж таблет

Последния и най-сложен монтаж бе този на таблета. Първото, с което се сблъсках бе, че трябва да разделя панела на две части, за да го принтирам. След около 48 часа детайлите бяха готови. Много се зарадвах, че се получиха от първия път със сравнително добро качество.


Монтаж таблет
Монтаж таблет
Монтаж таблет

Следващата стъпка беше да събера двете парчета заедно, което направих като залепих с моментно лепило двата малки съединителни елемента в предвидените за това жлебове.


Монтаж таблет
Монтаж таблет
Монтаж таблет

Естествено, не се стърпях да наложа и да видя как ще стои таблета, и дали не съм допуснал някаква грешка при чертането.


Монтаж таблет

Всичко беше наред и пристъпих към обработка на детайла. Исках да изглежда перфектно и започнах с шкуренето и нанасянето на шприц кит.


Монтаж таблет

Получи се добре и реших да нанеса основа преди боядисването.


Монтаж таблет
Монтаж таблет

Докато беше бял, детайлът изглеждаше много добре. Реших, че е време за 2-3 ръце черна гланц боя.


Монтаж таблет
Монтаж таблет

Не знам колко си личи на снимките, но ефектът беше катастрофален дори и след 5 ръце боя. Всички дефекти, вдлъбнатинки и шупли се открояваха страшно много. Реших, че в този му вид никога няма да го монтирам върху хладилника. Очевидно е, че не мога да шкуря като тенекиджия и се спрях на варианта да облепя панела с фолио. По една щастлива случайност в месната железария нямаха фолио и отскочих до магазин на 3М. Купих един квадрат фолио, двойно по-скъпо, но нямах друг избор. Когато се прибрах и започнах да облепвам панела, разбрах защо фолиото на 3М е по-скъпо. Разтяга се страшно много, доста по-издръжливо е от останалите, в пъти по-добре прилепва към детайла и позволява множество корекции.
Ето го и крайният ефект след облепването:


Монтаж таблет
Монтаж таблет

За мен просто стана перфектно, по-добре от това нямаше как да стане. Изобщо не съжалявам, че дадох 20лв. за фолио, а може би трябваше още в началото да ги дам и да си спестя два дни шкурене и боядисване.
Преди да го монтирам върху хладилника с моментно лепило, залепих всичките 10 магнита в оставените на гърба на панела улеи. Не исках да лепя нищо по хладилника и затова реших закрепването да става чрез магнити. След като изсъхна лепилото, чрез тънка двойно залепваща лента, залепих таблета към рамката. Прекарах захранването на таблета, което минава от дясната страна в оставен улей под самия панел, за да не се вижда и залепих целия панел върху хладилника. Ето го крайният резултат:


Монтаж таблет
Монтаж таблет
Монтаж таблет
Монтаж таблет
Монтаж таблет
Монтаж таблет

Интеграция с Home Assistant

Също както при монтажа, при изграждането на интеграцията на всички датчици с Home Assistant, започнах от най-лесното. Първо изградих интеграциите като започнах с датчика за температурата. За да интегрирате ZigBee датчици в Home Assistant, ще ви е необходим хъб. Аз ползвам Sonoff ZigBee Bridge, флашнат с Tasmota. Повече за флашването на Sonoff ZigBee Bridge с Tasmota и интеграцията му с Home Assistant можете да прочетете тук.

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


Умна кухня част хладилник с Home Assistant

По този начин вкарваме датчика в режим на сдвояване. След това отваряме конфигурацията на нашия Home Assistant и оттам избираме интеграцията Zigbee Home Automation.


Умна кухня част хладилник с Home Assistant

Ще ни се отвори прозорец с всички налични ZigBee устройства към момента. Кликнете върху бутона „Добавяне на устройство“ в долния десен ъгъл на екрана.


Умна кухня част хладилник с Home Assistant

Ще се стартира процедура по търсене на нови ZigBee устройства.


Умна кухня част хладилник с Home Assistant

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


Умна кухня част хладилник с Home Assistant

След това се връщаме в списъка с наличните ZigBee устройства и можем да видим нашия нов датчик.


Умна кухня част хладилник с Home Assistant

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


Умна кухня част хладилник с Home Assistant

Когато кликнем върху всяка една стойност, се отваря popup прозорче, в което имаме възможност да въведем име на атрибута, да сменим иконката и евентуално да променим id-то на самия атрибут.


Умна кухня част хладилник с Home Assistant
Умна кухня част хладилник с Home Assistant
Умна кухня част хладилник с Home Assistant

С това интеграцията на Sonoff SNZB-02 приключва. Вече можем да осъществяваме температурен мониторинг и мониторинг на влажността на въздуха вътре в самия хладилник.

Интеграция на SNZB-04

Следващата стъпка е интегрирането на датчиците на вратите. Процедурата е идентична като тази при Sonoff SNZB-02. Разликата е в предоставяните атрибути на новите датчици. За да интегрирате Sonoff SNZB-04, първо е необходимо да го вкарате в режим на сдвояване. Това става, като разглобим датчика и задържим за няколко секунди малкия бутон, докато не получим светлинна индикация.


Интеграция на SNZB-04
Интеграция на SNZB-04

След това отваряме конфигурацията на Home Assistant и избираме интеграцията ZigBee Home Automation.


Интеграция на SNZB-04

След като отворим интеграцията, ще видим всички налични ZigBee сензори и датчици. За да добавим нов, кликаме върху бутона в долния десен ъгъл „Добавяне на устройство“.


Интеграция на SNZB-04

По този начин стартираме сканирането за нови ZigBee устройства. Ако сме вкарали нашите сензори в режим на сдвояване, те ще се появят при сканирането.


Интеграция на SNZB-04
Интеграция на SNZB-04

След като нашия сензор е открит, можем да въведем име и зона, в която се намира сензорът.



След това се връщаме в основната страница на интеграцията ZigBee Home Automation и ще видим нашия нов датчик.



Кликаме върху него и ще се отвори страничката с детайлната информация на датчика.



Както се вижда, този датчик има два атрибута. Първият е статус, който ни показва дали вратата на фризера е отворена или затворена, и вторият е нивото на батерията. Ако кликнем върху всеки от тях, имаме възможност да сменим името на атрибута с нещо по-разбираемо.



Същата процедура повтаряме и за втория датчик за вратата на хладилника, и с това интеграцията на вратите на хладилника и фризера с Home Assistant приключва.

Интеграция на POW R-2

За интеграцията на Sonoff POW R-2 се предполага че вече имате флашнато и калибрирано реле. Повече за флашването и калибрирането на Sonoff POW R-2 с Tasmota може да прочетете тук. Единственото, което ни остава, е да свържем релето с Home Assistant.
За интеграцията на Sonoff POW R-2 с Home Assistant първо отворете web интерфейса на Tasmota и от интерфейса изберете „Configuration“.


Интеграция на POW R-2

От новоотворилия се прозорец кликнете „Configure Other“.


Интеграция на POW R-2

Ще ни се отвори нов прозорец, в който може да въведем „Device Name“ и „Friendly Name 1“. Това, което въведем тук, по-късно ще видим в Home Assistant като устройство.


Интеграция на POW R-2

Не забравяйте да поставите отметка на полето MQTT enable, това ще активира MQTT клиента на релето. След това запишете промените с бутона „Save“. След записа, релето ще се рестартира. След рестарта, отидете отново в конфигурацията и от нея изберете „Configure MQTT“.


Интеграция на POW R-2

В новия прозорец, който ще се отвори, е необходимо да въведем данните за нашия MQTT брокер. Това са именно Host, User, Password. Можете също така да промените и темата, но аз използвам tasmota_ ,която е по подразбиране, а и MQTT брокера ми е конфигуриран да слуша за тази тема.


Интеграция на POW R-2

Отново записваме промените с бутона „Save“ и релето ще се рестартира за пореден път.
Последната стъпка, която трябва да направим, е да активираме режима Auto Discovery, за да може Home Assistant да открие релето. За да направим това, отваряме web интерфейса на Tasmota и от основното меню избираме „Console“.
Ще ни се отвори следният прозорец.


Интеграция на POW R-2

В полето въвеждаме командата SetOption19 1 и натискаме Enter. По този начин активираме Auto Discovery режима на релето. Сега, ако отидем в конфигурацията на Home Assistant, ще видим, че нашето реле вече се е добавило автоматично към платформата ми.


Интеграция на POW R-2

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


Интеграция на POW R-2

Това са всички атрибути, които притежава Sonoff POW R-2 с техните моментни стойности. Освен изчитане на стойностите, имаме и опция да включим или изключим релето, което реално ни осигурява функцията „Бързо размразяване“.
И така, това е всичко по интеграцията на всички сензори, които добавих към хладилника с Home Assistant. Сега вече ги виждам в платформата за домашна автоматизация и мога да изчитам стойностите им. Време е да премина към изграждането на по-човечен интерфейс.

Интерфейс

Тъй като вече имах налична интеграция на всички датчици, които монтирах по хладилника в Home Assistant и можеше да чета стойностите, реших, че е време да направя малко по-красив интерфейс за мониторинг на хладилника. Изграждането на единен интерфейс най-вече се налагаше поради това, че е много неудобно да кликам по 10-15 пъти, за да стигна до определен сензор и да видя неговата стойност. Исках да имам едно табло и отваряйки го да получавам всички данни за хладилника. Интерфейсите, които изградих, са два основни. Единият е оптимизиран за телефон, а другият – за таблет. В някакъв бъдещ момент ще направя интерфейс за РС, както и такъв за Smart TV.
Нека започнем с интерфейса за телефон. Той изглежда така:


Умна кухня Интерфейс

От този интерфейс бързо и лесно виждам всички важни показатели на хладилника. Когато кликна върху дадена икона, се отваря pop-up с детайлна информация за показанията на дадения сензор.


Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс

Преди да премина към интерфейса, оптимизиран за таблет, оставям целия код на таблото. Всеки може да го ползва като единствено подмени id-тата на сензорите със свои.

type: custom:mod-card
card:
  type: grid
  cards:
    - type: grid
      cards:
        - type: button
          tap_action:
            action: navigate
            navigation_path: \lovelace-kitchen
          entity: switch.delpx
          show_name: false
          icon_height: 50px
          theme: ios-dark-mode
          icon: hass:arrow-left-thin-circle-outline
        - type: button
          tap_action:
            action: navigate
            navigation_path: /lovelace-begin/living-room
          entity: switch.delpx
          show_name: false
          icon_height: 50px
          theme: ios-dark-mode
          icon: hass:home-outline
      square: false
      columns: 2
    - type: grid
      cards:
        - type: entity
          entity: sensor.ewelink_th01_4a63b423_temperature
          name: Температура
          theme: ios-dark-mode
          state_color: true
        - type: entity
          entity: sensor.ewelink_th01_4a63b423_humidity
          name: Влажност
          theme: ios-dark-mode
          state_color: true
      square: false
      columns: 2
    - type: grid
      cards:
        - type: button
          tap_action:
            action: more-info
          entity: binary_sensor.ewelink_th01_a2037d1b_ias_zone
          theme: ios-dark-mode
          icon: mdi:fridge-top
          icon_height: 80px
          name: Фризер
          show_state: true
        - type: button
          tap_action:
            action: more-info
          entity: binary_sensor.ewelink_ds01_85936522_ias_zone
          theme: ios-dark-mode
          icon: mdi:fridge-top
          icon_height: 80px
          name: Хладилник
          show_state: true
      square: true
      columns: 2
    - type: grid
      cards:
        - type: button
          tap_action:
            action: more-info
          entity: sensor.ewelink_th01_a2037d1b_power
          show_state: true
          show_icon: false
          name: Батерия
        - type: button
          tap_action:
            action: more-info
          entity: sensor.ewelink_ds01_85936522_power
          show_state: true
          show_icon: false
          name: Батерия
      square: false
      columns: 2
    - type: grid
      cards:
        - type: sensor
          entity: sensor.zakhranvane_khladilnik_energy_yesterday
          graph: line
          name: Общо вчера
          unit: kWh
          detail: 2
          theme: ios-dark-mode
        - type: sensor
          entity: sensor.zakhranvane_khladilnik_energy_today
          graph: line
          name: Общо днес
          unit: kWh
          detail: 2
          theme: ios-dark-mode
      columns: 2
      square: true
    - type: grid
      cards:
        - type: sensor
          entity: sensor.zakhranvane_khladilnik_energy_total
          graph: line
          name: Общо за месеца
          unit: kWh
          detail: 2
          theme: ios-dark-mode
        - type: custom:button-card
          entity: switch.zakhranvane_khladilnik
          icon: mdi:snowflake-off
          name: Размразяване
          size: 60%
          lock:
            enabled: true
      columns: 2
      square: false
  square: false
  columns: 1
card_mod:
  style: |
    ha-card {
      padding: 10px;
      background-color: rgb(0 0 0 / 54%);
      box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
      border: 1px solid rgb(0 0 0 / 54%);  
      margin: 10px;
      margin-top: 5px;

По принцип телефонът е нещо като продължение на ръката ми и никъде не ходя без него, но вкъщи ми е по-удобно да се движа и да си управлявам къщата с таблет. За това си направих следния интерфейс за таблета:


Умна кухня Интерфейс

И тук, както при телефона, ако се кликне на някоя иконка, се появява pop-up прозорче с детайлна информация за конкретния сензор.


Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс
Умна кухня Интерфейс

Оставям кода на цялото табло за интерфейса, оптимизиран за таблет.

type: grid
cards:
- type: grid
cards:
- type: grid
cards:
- type: custom:mod-card
card:
type: grid
cards:
- type: grid
cards:
- type: custom:text-divider-row
text: Основни функции
square: false
columns: 1
- type: grid
cards:
- type: button
tap_action:
action: call-service
service: script.all_off_kitchen
entity: switch.delpx
name: Изк. всичко
theme: ios-dark-mode
icon: hass:power-plug-off
icon_height: 55px
- type: button
tap_action:
action: more-info
entity: alarm_control_panel.alarm
name: Аларма
theme: ios-dark-mode
icon: hass:shield-star-outline
icon_height: 55px
- type: button
tap_action:
action: toggle
entity: switch.ventilation_diningroom
name: Провет.
theme: ios-dark-mode
icon: hass:fan
icon_height: 55px
- type: button
tap_action:
action: call-service
service: script.night_mode_kitchen
entity: switch.delpx
name: Нощ
theme: ios-dark-mode
icon: hass:power-sleep
icon_height: 55px
- type: button
tap_action:
action: call-service
service: script.day_mode_kitchen
entity: switch.delpx
name: Ден
theme: ios-dark-mode
icon: hass:white-balance-sunny
icon_height: 55px
- type: button
tap_action:
action: navigate
navigation_path: >-
/lovelace-refrigerator-tablet/refrigerator-settings-tablet
entity: switch.delpx
name: Настройки
theme: ios-dark-mode
icon: hass:cog-outline
icon_height: 55px
square: true
columns: 1
square: false
card_mod:
style: |
ha-card {
padding: 14px;
background-color: rgb(0 0 0 / 54%);
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
border: 1px solid rgb(0 0 0 / 54%); 
margin-left: 8px;
margin-top: 18px; 
}
- type: custom:mod-card
card:
type: grid
cards:
- type: grid
cards:
- type: custom:text-divider-row
text: Осветление
square: false
columns: 1
- type: grid
cards:
- type: button
tap_action:
action: toggle
entity: switch.basic_light_kitchen
icon: hass:ceiling-light
icon_height: 55px
name: Основно
show_state: true
- type: button
tap_action:
action: toggle
entity: light.led_osvetlenie_kukhnia
icon: hass:desk-lamp
icon_height: 55px
name: Скрито
show_state: true
- type: button
tap_action:
action: navigate
navigation_path: >-
/lovelace-refrigerator-tablet/refrigerator-tablet-rgb-light
entity: switch.delpx
name: RGB
show_state: true
icon: hass:led-on
icon_height: 55px
square: false
columns: 3
columns: 1
square: false
card_mod:
style: |
ha-card {
padding: 14px;
background-color: rgb(0 0 0 / 54%);
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
border: 1px solid rgb(0 0 0 / 54%);  
margin-left: 8px;
margin-top: 10px; 
}
- type: custom:mod-card
card:
type: grid
cards:
- type: grid
cards:
- type: custom:text-divider-row
text: Охрана
square: false
columns: 1
- type: grid
cards:
- type: button
tap_action:
action: more-info
entity: camera.diningroom
icon: hass:cctv
icon_height: 55px
name: Камера
theme: ios-dark-mode
show_state: true
- type: button
tap_action:
action: more-info
entity: binary_sensor.cam_diningroom
icon: hass:motion-sensor
icon_height: 55px
theme: ios-dark-mode
name: Движение
show_state: true
- type: button
tap_action:
action: more-info
name: Прозорец
theme: ios-dark-mode
icon: hass:window-closed-variant
icon_height: 55px
entity: binary_sensor.ewelink_ds01_2b07ff22_ias_zone
show_state: true
columns: 1
square: false
card_mod:
style: |
ha-card {
padding: 14px;
background-color: rgb(0 0 0 / 54%);
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
border: 1px solid rgb(0 0 0 / 54%); 
margin-left: 8px;
margin-top: 10px;
}
square: false
columns: 1
- type: custom:mod-card
card:
type: grid
cards:
- type: custom:text-divider-row
text: Климатизация
- type: grid
cards:
- type: custom:flex-horseshoe-card
entities:
- entity: sensor.zhimi_airpurifier_mb3_temperature_4
attribute: temperature
decimals: 1
name: температура
area: трапезария
unit: °C
- entity: sensor.zhimi_airpurifier_mb3_humidity_4
attribute: humidity
decimals: 0
unit: '%'
- entity: sensor.zhimi_airpurifier_mb3_pm2_5_4
attribute: pressure
decimals: 0
unit: μg/m³
show:
horseshoe_style: lineargradient
layout:
hlines:
- id: 0
xpos: 50
ypos: 48
length: 40
styles:
- stroke: var(--primary-text-color);
- stroke-width: 2;
- opacity: 0.5;
- id: 1
xpos: 50
ypos: 20
length: 40
styles:
- stroke: var(--primary-text-color);
- stroke-width: 2;
- opacity: 0.5;
circles:
- xpos: 50
ypos: 69
radius: 5
styles:
- fill: var(--primary-text-color);
- opacity: 0.5;
states:
- id: 0
entity_index: 0
xpos: 50
ypos: 40
styles:
- font-size: 3em;
- id: 1
entity_index: 1
xpos: 46
ypos: 64
styles:
- text-anchor: end;
- font-size: 1.6em;
- id: 2
entity_index: 2
xpos: 54
ypos: 64
styles:
- text-anchor: start;
- font-size: 1.6em;
names:
- id: 0
entity_index: 0
xpos: 50
ypos: 95
areas:
- id: 0
entity_index: 0
xpos: 50
ypos: 80
horseshoe_scale:
min: 10
max: 14
ticksize: 1
color_stops:
'16': '#FFF6E3'
'17': '#FFE9B9'
'18': '#FFDA8A'
'19': '#FFCB5B'
'20': '#FFBF37'
'21': '#ffb414'
'22': '#FFAD12'
'23': '#FFA40E'
'24': '#FF9C0B'
'25': '#FF8C06'
- type: grid
cards:
- type: button
tap_action:
action: navigate
navigation_path: >-
/lovelace-refrigerator-tablet/refrigerator-tablet-air-conditioning
entity: switch.delpx
icon_height: 77px
theme: ios-dark-mode
icon: hass:air-conditioner
name: Климатик
show_state: false
- type: button
tap_action:
action: navigate
navigation_path: >-
/lovelace-refrigerator-tablet/refrigerator-tablet-purifier
entity: switch.delpx
icon_height: 76px
theme: ios-dark-mode
name: Пречиствател
icon: hass:air-purifier
show_state: false
columns: 1
square: false
columns: 1
square: false
square: false
columns: 1
card_mod:
style: |
ha-card {
padding: 14px;
padding-bottom: 18px;
background-color: rgb(0 0 0 / 54%);
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
border: 1px solid rgb(0 0 0 / 54%);  
margin-top: 18px; 
margin-right: 8px;
margin-left: 8px;
}
- type: grid
cards:
- type: custom:mod-card
card:
type: grid
cards:
- type: grid
cards:
- type: custom:text-divider-row
text: Електроуреди
square: false
columns: 1
- type: grid
cards:
- type: custom:button-card
color_type: icon
entity: sensor.sdomiialna
name: Миялна
icon: hass:dishwasher
size: 43%
tap_action:
action: navigate
navigation_path: >-
/lovelace-refrigerator-tablet/refrigerator-tablet-dishwasher
label: |
[[[
var bri = states['sensor.sdomiialna_remain_time'].state;
return bri;
]]]
show_label: false
styles:
card:
- height: 100px
custom_fields:
notification:
- background-color: |
[[[
return "red";
]]]
- border-radius: 50%
- position: absolute
- left: 60%
- top: 10%
- height: 30px
- width: 30px
- font-size: 10px
- line-height: 38px
custom_fields:
notification: >
[[[ return
(states['sensor.sdomiialna_remain_time'].state) ]]]
- type: custom:button-card
color_type: icon
entity: binary_sensor.ewelink_ds01_85936522_ias_zone
name: Хладилник
tap_action:
action: navigate
navigation_path: >-
/lovelace-refrigerator-tablet/refrigerator-tablet-refrigerator
icon: hass:fridge-top
size: 43%
label: |
[[[
var bri = states['sensor.ewelink_ds01_85936522_power'].state;
return 'Battery: ' + (bri ? bri : '0') + '%';
]]]
show_label: false
styles:
card:
- height: 100px
custom_fields:
battery_door:
- background-color: |
[[[
if (states['sensor.ewelink_ds01_85936522_power'].state > 50)
return "green";
return "red";
]]]
- border-radius: 50%
- position: absolute
- left: 60%
- top: 10%
- height: 30px
- width: 30px
- font-size: 10px
- line-height: 38px
temp:
- background-color: |
[[[
if (states['sensor.zhimi_airpurifier_mb3_temperature_3'].state > 10)
return "red";
return "blue";
]]]
- border-radius: 50%
- position: absolute
- left: 13%
- top: 10%
- height: 30px
- width: 30px
- font-size: 10px
- line-height: 38px
custom_fields:
battery_door: >
[[[ return
Math.floor(states['sensor.ewelink_ds01_85936522_power'].state)+
'%' ]]]
temp: >
[[[ return
Math.floor(states['sensor.zhimi_airpurifier_mb3_temperature_3'].state)+
'°C' ]]]
- type: custom:button-card
color_type: icon
entity: binary_sensor.ewelink_ds01_85936522_ias_zone
name: Фризер
tap_action:
action: navigate
navigation_path: >-
/lovelace-refrigerator-tablet/refrigerator-tablet-refrigerator
icon: hass:fridge-top
size: 43%
label: |
[[[
var bri = states['sensor.ewelink_ds01_85936522_power'].state;
return 'Battery: ' + (bri ? bri : '0') + '%';
]]]
show_label: false
styles:
card:
- height: 100px
custom_fields:
battery_door:
- background-color: |
[[[
if (states['sensor.ewelink_ds01_85936522_power'].state > 50)
return "green";
return "red";
]]]
- border-radius: 50%
- position: absolute
- left: 60%
- top: 10%
- height: 30px
- width: 30px
- font-size: 10px
- line-height: 38px
custom_fields:
battery_door: >
[[[ return
Math.floor(states['sensor.ewelink_ds01_85936522_power'].state)+
'%' ]]]
- type: button
tap_action:
action: more-info
entity: switch.delpx
icon: hass:coffee-maker
name: Кафе авт.
show_state: true
theme: ios-dark-mode
style: |
ha-card {
background-color: #555;
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
}
- type: button
tap_action:
action: more-info
entity: switch.delpx
icon: hass:toaster-oven
name: Фурна
show_state: true
theme: ios-dark-mode
style: |
ha-card {
background-color: #555;
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
}
- type: button
tap_action:
action: more-info
entity: switch.delpx
icon: hass:stove
name: Котлони
show_state: true
theme: ios-dark-mode
style: |
ha-card {
background-color: #555;
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
}
- type: button
tap_action:
action: more-info
entity: switch.delpx
icon: hass:grill-outline
name: Скара
show_state: true
theme: ios-dark-mode
style: |
ha-card {
background-color: #555;
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
}
- type: button
tap_action:
action: more-info
entity: switch.delpx
icon: hass:toaster
name: Тостер
show_state: true
theme: ios-dark-mode
style: |
ha-card {
background-color: #555;
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
}
- type: button
tap_action:
action: more-info
entity: switch.delpx
icon: hass:toaster-oven
name: Партигрил
show_state: true
theme: ios-dark-mode
style: |
ha-card {
background-color: #555;
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
}
columns: 1
square: false
card_mod:
style: |
ha-card {
padding: 14px;
padding-bottom: 11px;
background-color: rgb(0 0 0 / 54%);
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
border: 1px solid rgb(0 0 0 / 54%);  
margin-top: 18px; 
margin-right: 8px;
margin-left: 8px;
}
- type: custom:mod-card
card:
type: grid
cards:
- type: button
tap_action:
action: url
url_path: app://br.com.ridsoftware.shoppinglist
entity: switch.delpx
show_icon: true
icon: mdi:basket-check
icon_height: 50px
theme: ios-dark-mode
name: Пазаруване и наличностти
- type: button
tap_action:
action: url
url_path: app://fr.cookbook
entity: switch.delpx
icon: mdi:chef-hat
icon_height: 50px
name: Готвене
square: false
columns: 1
card_mod:
style: |
ha-card {
padding: 14px;
background-color: rgb(0 0 0 / 54%);
box-shadow: rgb(0 0 0 / 87%) 0px 0.0625em 0.0625em, rgb(0 0 0 / 87%) 0px 0.125em 0.5em, rgb(0 0 0 / 0%) 0px 0px 0px 1px inset;
border: 1px solid rgb(0 0 0 / 54%);  
margin-right: 8px;
margin-left: 8px;
margin-top: 11px;
}
square: false
columns: 1
square: false
square: false
columns: 1

Този интерфейс използвах първоначално за таблета, който монтирах върху хладилника. В статията „Умна кухня част 7 – Общ интерфейс“ ще можете да видите и прочетете цялостния интерфейс за управление и мониторинг на кухнята ми. Това тук е само част от общия интерфейс.

Автоматизации

Последното нещо, с което се захванах, бе да изградя базови автоматизации за всички сензор, които монтирах по хладилника. Първото нещо, от което имах нужда, е да знам кога батерията на някой сензор е под 20%, така ще имам поне няколко дни аванс, за да купя нова и да я подменя.
За целта направих следните автоматизации, които са общо взето аналогични. Те използват шаблона (плана) – Battery Level Notification, който можете да намерите и инсталирате от тук. След като имате инсталиран плана, просто отидете в конфигурацията на Home Assistant и отворете секция „Планове“. Намерете плана Battery Level Notification и кликнете върху бутона „Създаване на автоматизация“.


Умна кухня Автоматизации

Ще се отвори страничка за създаване на автоматизация според избрания план. В тази страничка първо въведете името на автоматизацията, като е добре да си водите и някакви бележки, за да знаете за какво е и какво прави. След това в полето „Обект“ изберете сензора, отчитащ нивото на батерията. В полето Battery Lebel чрез плъзгача изберете стойност под колко процента на батерията да получавате нотификация. Накрая в полето „Устройство“ избирате устройството, което трябва да получи нотификацията, а в полето „Message“ – самото съобщение.


Умна кухня Автоматизации

Същото направих и за датчика за вратата на хладилника и за температурния сензор. Така вече ще знам навреме кога е необходимо да подменям батериите на датчиците.
Последната автоматизация, която направих, беше алармата за отворена врата. Направих две такива автоматизации, една за хладилника и една за фризера. По принцип автоматизацията би могла да се конфигурира чрез потребителския интерфейс, но аз предпочитам да я пиша, по ясно ми е. Ето го и кодът:

alias: Вратата на хладилника е забравена отворена                                      # Име на автоматизацията
description: ''										
trigger:
- platform: state
entity_id: binary_sensor.ewelink_ds01_85936522_ias_zone                            # Сензор за врати и прозорци който следим
to: 'on'
for:
hours: 0
minutes: 1                                                                       # Определя времето при което ако вратата е отворена ще изпълни автоматизацията
seconds: 0
condition: []
action:
- service: notify.mobile_app_mi_9													   # Изпраща нотификация на мобилния ми телефон Mi9
data:
message: Вратата на хладилника е отворена , моля затворете я.                    # Съобщение което се изпраща
title: Вратата на хладилника е забравена отворена!                               # Заглавие на нотификацията
- service: notify.mobile_app_refrigerator_tablet									   # Изплаща втора нотификация към таблета монтиран на хладилника
data:
message: TTS																	   # Определя че съобщението ще е TTS т.е. ще се изговори
title: Вратата на хладилника е забравена отворена! Моля затворете я!	       # Заглавие на нотификацията. Реално този текст ще се изчете.
mode: single

Идеята на автоматизацията е да ми изпрати нотификация на телефона, ако вратата на хладилника остане отворена за повече от 1 минута. Отделно таблетът, монтиран на хладилника, също ще получи нотификация, но тя ще е TTS, т.е. таблетът ще изговори подаденото му съобщение, за да ме подсети да я затворя.


И така, след тази дълга статия, мисля, че това е всичко, което мога да ви разкажа за моя хладилник и как успях да го направя една идея по-умен. Надявам се статията да ви е била интересна и полезна! Ще се радвам да коментирате или ако имате въпроси, да ги задавате в коментарите. Ще се опитам да отговоря на всички.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван.