YADLOUSKI, P. Automatizace nástroje Home Assistant v prostředí NetDaemon [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024.
Student se zdatně zhostil všech cílů zadání. Provedl důkladný průzkum, navrhl a implementoval efektivní řešení automatizací pomocí NetDaemon, které minimalizuje množství konfigurace potřebné od uživatele a zajišťuje vysokou použitelnost a rozšiřitelnost. Práce má praktickou hodnotu a přispívá k zlepšení automatizací v rámci platformy Home Assistant. Navrhuji práci hodnotit stupněm B jako velmi dobrou.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Informace k zadání | Práce si klade za cíl nastudovat možnosti, které poskytuje platforma pro ovládání chytré domácnosti Home Assistant v rámci automatizací. Student měl identifikovat jak interní možnosti této platformy, tak externí rozšíření. Dále měl srovnat jednotlivé přístupy a zaměřit se na automatizace pomocí nástroje NetDaemon. | ||
Práce s literaturou | Student samostatně vyhledal relevantní literární prameny a provedl průzkum dostupných zdrojů, jako jsou fóra a diskusní platformy související s Home Assistant. | ||
Aktivita během řešení, konzultace, komunikace | Student byl aktivní během celého řešení práce. Konzultace probíhaly pravidelně, přibližně jednou za dva týdny. Student byl vždy velmi dobře připraven a diskuze byly konstruktivní a efektivní. | ||
Aktivita při dokončování | Praktická implementace byla dokončena s předstihem. Student provedl testování navrženého řešení na laboratorním i domácím nasazení nástroje Home Assistant. | ||
Publikační činnost, ocenění | Výsledky práce byly zveřejněny a dostupné uživatelům. Student svou práci prezentoval na oficiálních fórech a diskusních platformách Home Assistant a také na konferenci Excel@FIT. Nad rámec práce student provedl několik úprav do prostředí NetDaemon formou "pull request" do oficiálního repozitáře na platformě GitHub, které byly správci přijaty. |
Technickým výsledkom práce je knižnica ktorá rieši identifikované problémy v oblasti domácej automatizácie s veľkým potenciálom pre praktické využitie komunitou. Vzhľadom na značné nedostatky textovej časti práce vo všetkých smeroch však nemôžem navrhnúť lepšie hodnotenie ako C (dobre).
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Náročnost zadání | Zadanie je primárne implementačného charakteru stavajúcom na existujúcich nástrojoch a technológiách. | ||
Rozsah splnění požadavků zadání | Zadanie splnené bez výhrad. | ||
Rozsah technické zprávy | Rozsah práce je kratší ako je bežné. | ||
Prezentační úroveň technické zprávy | 60 | V práci sú použité termíny špecifické pre Home Assistant (napr. entity) ktoré nie sú v práci nikde popísané alebo definované. Práca je štruktúrovaná logicky a kapitoly na seba nadväzujú. Výhrady mám k analýze nástrojov a vyvodeným záverom. Autor mieša nesúvisiace koncepty (napr. strana 22 - výhodou C# oproti Pythonu je podpora dependency inject [sic], čo však nie je vlastnosť jazyka ale programovací prístup ktorý je rovnako možný v Pythone. Zároveň nie je vysvetlené a podložené prečo je dependency injection žiaduce alebo dôležité.), prezentuje vlastnosti C# ktoré má aj Python ako výhody toho prvého (extension methods, rovnako strana 22), alebo vyvodzuje závery ktoré sú v konflikte s prezentovanými informáciami ("výhodou" C# je statický typový systém, no celá sekcia 3.4 je venovaná nutnosti rozšíriť upstream projekt NetDaemon o statické typové informácie (interface) aby bolo možné jednnoducho pracovať s rôznymi typmi smart zariadení (Home Assistant entitami). V kritizovanom Pythonovom riešení je toto predsa jednoducho riešiteľné dynamickým duck typingom.). | |
Formální úprava technické zprávy | 55 | Práca obsahuje veľké množstvo základných jazykových chýb - množné čísla s apostrofom (nespočetne, ale napr. názov sekcie 4.5), zlé použité časy alebo slová, často celé vety ("The order of steps meters and they steps include", strana 38). Umiestnenie obrázkov je rušivé, napr. Listing 4. na strane 39 rozsekáva poslednú vetu odseku na polovicu. Strana 49 obsahuje červene zvýraznenú nevyplnenú citáciu. Figure 4.5 (strana 41) obsahuje konečný stavový automat bez počiatočného stavu. Referencie na obrázky sú často násilne zasadené do vety (napr. strana 34). | |
Práce s literaturou | 50 | Sekcia bibliografie obsahuje 20 záznamov, no v skutočnosti sa jedná o 9 zdrojov, keďže u niekoľkých z nich sú citované rozdielne stránky na tej istej doméne. Prehľad citovaných zdrojov: Alexa AppDaemon (3) ESPHome Home Assistant (8) HomeKit (2) NetDaemon (2) NodeRed Odroid Magazine Wikipedia Všetky citované zdroje sú webové stránky, primárne dokumentácie jednotlivých nástrojov, čo je vzhľadom na zadanie pochopiteľné. Súčasťou analýzy a porovnania dostupných nástrojov (sekcia 2.4.4) sú však veľmi odvážne tvrdenia ako "Python is not a type-safe language" ktoré nie sú ničím podložené. Zdroje nie sú citované podľa normy, väčsina obsauje iba názov a url, občas autora. Chýba informácia kedy bolo k zdrojom pristupované, a napr. [17] aktuálne obsahuje iba "Page Not Found". | |
Realizační výstup | 90 | Technickým výstupom je nadstavba nad nástrojom NetDaemon ktorá umožňuje jednoduchšie a prívetivejšie programovanie a konfiguráciu komplexných automatizácií pre systém Home Assistant. Riešenie je navrhnuté tak aby umožňovalo deklaratívnu konfiguráciu rovnakých automatizácií pre rôzne skupiny zariadení/miestnosti a bolo robustné z pohľadu výpadkov zariadení alebo komunikačných kanálov. Využitie stavových automatov ktorých stav je serializovateľný umožňuje zotavenie sa z nečakaných udalostí do konzistentného stavu všetkých častí automatizácie. Výhrady mám k testovaniu a validácii, ktorá prebehla nasadením doma u autora. Z návrhu systému, a práve použitia statických typových rozhraní by malo byť možné vytvoriť automatizované testovacie scenáre ktoré by testovali rôzne sekvencie udalostí. | |
Využitelnost výsledků | Práca rieši existujúci problém v oblasti domácej automatizácie a súčasťou práce bola kolaborácia s open source projektom ktorý autor úspešne rozšíril. Akceptované zmeny do nástroja NetDaemon sú užitočné aj pre užívateľov ktorý sa vytvorenú knižnicu NetEntityAutomation rozhodnú nepoužiť. Výsledok má teda veľký potenciál pre praktické použitie. |
eVSKP id 154309