Avtor: dr. Simon Vavpotič
YouTube: youtube.com/@pcusbprojects
Spletna stran: www.pcusbprojects.com
Vsestranska aplikacija za upravljanje doma omogoča veliko funkcionalnosti, za katere bi potrebovali dneve načrtovanja in programiranja. Omogoča ne le priklop številnih senzorjev, ampak tudi obdelavo in hrambo podatkov ter nadzor in upravljanje doma prek spletnega oblaka.
V preteklem delu smo spoznali, kaj omogoča naslednik Tasmote, ESPHome, spoznali Raspberry Pi Piko W in Piko 2 W, ki sta poceni in zelo zmogljivi alternativi ESP32 modulom in programirali v razvojnih okoljih Arduino IDE, Visual Studio Code in Thonny. Na osnovi Raspberry Pi Pico 2 smo zgradili periferno napravo, kot Docker strežnik pa smo uporabili Orange Pi 5 Max.
Ta vsebina je samo za naročnike
Tokrat nam se lotimo kompleksne avtomatizacije, v kateri si bomo prikazali samogradnjo grafičnega uporabniškega vmesnika.
Samogradnja namizja
Začetek kompleksne avtomatizacije doma ni vedno lahek, še posebej, če se je lotevamo prvič. Na spletnem portalu demo.home-assistant.io je objavljenih več interaktivnih primerov inovativnih uporabniških namizij, ki jih lahko interaktivno preizkusimo brez nameščanja Home Assistanta, le sprememb ne moremo shraniti.
Pri tem lahko uporabimo vmesnik s številnim vizualizacijami, ali pa takega z zgoščenim pregledom podatkov in upravljavskih funkcij, ki ne zahteva veliko brskanja. Velik poudarek je na porabi energije in zagotavljanju varnosti doma. Iz grafičnega vmesnika lahko na primer vidimo prižgane in ugasnjene luči v prostorih stanovanja, lahko pa se tudi sprehodimo po živih slikah iz varnostnih kamer. Home Assistant omogoča tudi detekcijo oseb v slikah, s čemer lahko varnostne kamere samodejno zazna tudi sumljivo potikanje okoli našega domovanja.



Za manjša stanovanja so še posebej zanimive interaktivne grafične predstavitve prostorov, prek katerih lahko električne porabnike tudi upravljamo. Denimo, prek grafične predstavitve lahko s klikom na ikono odpremo ali zapremo garažna vrata, prižgemo ali ugasnemo luč ali pa s klikom na izbrano varnostno kamero spremljamo živo sliko z nje. V prostorih, kjer so nameščeni ustrezni senzorji lahko spremljamo tudi temperaturo, vlago, zračni pritisk, osvetljenost itn. S pritiskom na posamezno tipalo se odpre tudi zgodovina meritev. Tako lahko vidimo, na primer kako v različnih časih dneva niha temperatura v izbranem prostoru; kar je lahko še posebej pomembno v neogrevanih prostorih, kjer imamo shranjeno ozimnico. Slednjo lahko na primer ob nevarnosti zmrzovanja začasno umaknemo v drug prostor.
Samodejno upravljanje
S samodejnim upravljanjem ogrevanja in hlajenja lahko veliko prihranimo, še posebej v nočnem času in takrat, ko smo zdoma. Vsi primeri namizij na spletni strani demo.home-assistant.io vključujejo tudi sledenje lokaciji dveh namišljenih stanovalcev, ki se z doma odpravita v mesto na delo ali po opravkih.
Na namizju Home Assistanta lahko (oddaljeno) spremljamo tudi predviden čas do vrnitve posameznih stanovalcev, kar omogoča načrtovanje ogrevanja in hlajenja. Ogrevanje ali hlajenje je lahko manj intenzivno, ko sta stanovalca z doma, pri čemer Home Assistant samodejno ponovno vzpostavi nam prijetno temperaturo preden se vrnemo domov.
Sprotno merjenje temperature v prostorih in v okolici doma in osončenosti omogoča tudi samodejno spuščanje in dviganje zastorov, s čemer prav tako lahko prihranimo veliko energije, še posebej ponoči (boljša termoizolacija, če so zastrti) ali poleti, ko svetlobi s spustitvijo zastorov preprečijo ustvarjenje učinka tople grede, ko stanovalcev ni doma.
Home Assistantov Lovelace grafični vmesnik s karticami lastnosti, krmilnimi elementi za avtomatizacijo in prikazom podatkov v realnem času je zelo prilagodljiv in deluje prek vsakega novejšega spletnega brskalnika na pametnih telefonih, namiznih računalnikih in tablicah, vključno z namensko Pixlovo tablico Pixel Tablet Smart Home Dashboard.
Ostala elektronika
Home Assistant omogoča tudi upravljanje avdio in video naprav, kot sta: radijski sprejemnik in TV. Samodejno ugašanje in prižiganje TV-sprejemnika in uravnavanje glasnosti in nastavitev slike ali izbira kanalov so lahko uporabni tudi takrat, ko nimamo pri roki daljinskega upravljalnika pa tudi, ko smo zdoma in želimo ustvariti občutek prisotnosti za mimoidoče v naselju.
Mogoče je tudi upravljanje, oziroma spremljanje funkcij hibridnega oziroma električnega avtomobila. Tako lahko sproti spremljamo stanje njegove baterije.
Home Assistant je združljiv z veliko strojne opreme različnih proizvajalcev, vseeno pa velja preveriti združljivost izbrane naprave, na primer tipala za temperaturo, vlago in pritisk ali krmilnika ogrevalne naprave. Pri domači izdelavi tipal moramo preveriti združljivosti programskih knjižnic, oziroma programske opreme, ki jo bomo vgradili.
Domača izdelava interaktivnega namizja
Prvi korak je izris načrta stavbe, v katerega vrišemo vse električne naprave, ki jih bomo krmilili in vsa tipala, ki jih bomo vgradili v pametni dom. Za lažjo predstavo možnosti avtomatizacije si pomagamo s primeri prej omenjene demo spletne strani. Pri vzpostavitvi zaresne avtomatizacije moramo s pomočjo Home Assistanta povezati veliko naprav, pri čemer je pomembna enostavnost integracije. Doma narejene naprave z vgrajeno programsko opremo Tasmota pri tem ne bi smele bit izjema.
V naslednjem koraku moramo prenesti shemo doma v Home Assistant. Najprej v stranskem meniju Settings kliknemo na rubriko Dashboards, s čemer odpremo pregled obstoječih namizij. Novo namizje lahko dodamo z gumbom Add dashboard v spodnjem desnem kotu okna.
V različici Home Assistanta 25.11 je na voljo šest možnosti: gradnja namizja od začetka (New dashboard from scratch), pregledno namizje (Overview), eksperimentalno področno namizje (Areas), v katerem vidimo prikaz naprav v vsakem področju, eksperimentalno domsko namizje (Home), ki omogoča globalni pregled stanovanja, zemljevid (Map), ki prikaže ljudi in naprave (npr. avto in članke gospodinjstva) na zemljevidu mesta, in spletna stran (Webpage), ki omogoča integracijo spletne strani spletnem strežniku kot namizja.
Uporaba predloge pri gradnji namizja se nekoliko bolj izkušenim uporabnikom nemalokrat ne izplača, saj morajo v vsakem primeru vanj prenesti tudi že definirane naprave prek menija Settings, ki jih morajo tudi pravilno umestiti. Če začnejo s prazno predlogo (…from scratch), lahko natančneje opredelijo vse elemente namizja, ki jih lahko urejajo s klikom na pisalo v desnem zgornjem kotu vsakega elementa namizja.


V osnovi je namizje sestavljeno iz glave in sekcij, ki jih lahko poljubno dodajamo. V vsaki sekciji lahko določimo širino in z določitvijo pogojev omejimo njeno vidnost. Denimo, če je temperatura dnevne sobe nad 22 st. C, ne prikažemo menija za upravljanje ogrevanja na sekciji za upravljanje dnevne sobe.
V vsako sekcijo lahko s klikom na gumb »+« dodajmo kartice in entitete. Denimo, temperaturni senzor dodamo kot entiteto, medtem ko načrt stanovanja dodamo kot kartico s sliko načrta). Nato lahko (na sliko) dodajamo različne entitete, med katerimi so tudi take, ki lahko spreminjajo stanje, denimo luč. Luč lahko nato dejansko prižgemo s klikom na njeno vizualizacijo na sliki.
Delovanje, kakor tudi potrebno programsko kodo v jeziku YAML lahko vidimo tudi v primeru na spletni strani demo.home-assistant.io. Dodajmo le še to, da lahko programsko kodo celo interaktivno spreminjamo, vendar se spremembe ne shranijo. Seveda to ni ovira, da demonstracij ne bi mogli prenesti v svojo namestitev Home Assistanta, a vendarle je zato potrebujemo bistveno več časa.
Dodajanje oseb in sledenje njihovi lokaciji
Home Assistant se lažje prilagodi potrebam stanovalcev s poznavanjem njihovih potreb in njihove trenutne lokacije. Osebe lahko dodamo iz menija Settings, če kliknemo na People, pri čemer lahko vsak stanovalec postane tudi uporabnik Home Assistanta, v katerem smo morali ob namestitvi definirati vsaj administratorja. Ob premiku stikala Allow login osebi dodamo tudi geslo in določimo njeno vlogo v aplikaciji, ki je lahko administrator ali navaden uporabnik brez administratorskih pravic. Obenem lahko dovolimo vsakršno prijavo, ali pa le prijavo iz lokalnega omrežja.
Naslednji korak je vzpostavitev sledenja osebam gospodinjstva, ki ga Home Assistant potrebuje za zagotavljanje nižje porabe energije in varovanje doma. V ta namen potrebujemo ustrezne integracije pametnih telefonov, ki prek interneta sporočajo lokacije stanovalcev, ki so hkrati njihovi uporabniki.
Mogoča je tudi integracija osebnih vozil, če to omogočajo njihovi proizvajalci. Ob kliku na povezavo …integrations iz zavihka z nastavitvami uporabnika se odpre nabor aplikacijskih vmesnikov različnih proizvajalcev strojne in programske opreme.
Kompleksna avtomatizacija
Celovito in učinkovito povezovanje naprav, senzorjev in kamer je mogoče le s kompleksno integracijo ali z vgradnimi moduli za Home Assistant, kar zahteva pisanje skript v grafiki ali v tekstovni obliki. Je pa res, da je vklop posameznih naprav in senzorjev v Home Assistant sorazmerno enostaven, saj lahko prek upravljavskega panela že takoj po vklopu upravljamo njihove osnovne funkcionalnosti pa tudi zajemamo vrednosti s senzorjev. Zgodovina meritev, denimo vremenskih senzorjev (temperatura, vlaga, pritisk), se samodejno beleži in si jo lahko ogledamo s klikom na senzor.
Za konec
Čeprav Home Assistant izkušenemu programerju – avtomatiku na prvi pogled morda res daje vtis, da bi bilo lažje celotno avtomatizacijo doma sprogramirati v programskem jeziku C++, pri čemer bi uporabil aplikacijske programske vmesnike in morebitne pripadajoče programske knjižnice proizvajalcev naprav in senzorjev, šele natančnejši pregled rešitve pokaže njeno pravo vrednost. Dodajanje novih naprav je enostavno in učinkovito kljub rabi dokaj kompleksnih komunikacijskih protokolov, kot je MQTT. Programiranje v opisnem jeziku YAML ali z grafično predstavitvijo ukazov je hitrejše in veliko manj zahtevno od programiranja v programskem jeziku C++ ali podobnem, v katerem se moramo ukvarjati s kompleksnimi programskimi strukturami in rezervacijami pomnilnika zanje.
Home Assistant omogoča hiter začetek, če uporabljamo združljivo strojno opremo, kot sta Raspberry Pi 4 in 5, za katera so na voljo celo slike sistemskih pogonov. Nameščanje Home Assistanta nanju je zelo enostavno, saj lahko sliko sistemskega pogona iz interneta preprosto prenesemo na kartico SD, ki jo nato vtaknemo v računalnik. Namesto tega si lahko omislimo tudi namenski centralni mini računalnik za Home Assistant, ki je že pripravljen za uporabo.
Dodajanje združljivih komercialnih senzorjev in naprav je enostavno, saj so vanje že vgrajeni ustrezni komunikacijski protokoli, ki omogočajo takojšnji priklop in uporabo brez programiranja. Če se lotimo enostavne avtomatizacije doma, ki nam prek krmilne plošče omogoči skoraj vse funkcije upravljanja, je dovolj, da naprave povežemo računalnikom. Po drugi strani, moramo za kompleksnejše avtomatizacije z veliko umetno-inteligenčnimi funkcijami in velik vgrajene logike, vložiti veliko več truda in časa, a smo nato nagrajeni z večjim udobjem…
