Master's Thesis

Cloud-Based System for Data Collection and Management of a Smart Home

Final Thesis 2.68 MB Appendix 2.98 MB

Author of thesis: Bc. Lukáš Varanai

Acad. year: 2025/2026

Supervisor: doc. Ing. Václav Kaczmarczyk, Ph.D.

Reviewer: Ing. Matěj Turinský

Abstract:

The aim of this thesis is to design and implement a modular smart home system. The resulting system is intended to aggregate data received from devices in the home and ensure that it can be processed for later use within the system. The system utilizes communication via the MQTT and HTTP protocols. The thesis also includes the design of the system architecture and data model, as well as the implementation of backend services. A mobile application has been developed to enable user interaction with the system. The resulting solution is intended for further development.

Keywords:

Modular system, smart home, IoT, data aggregation, two-way communication, MQTTs, BLE, cloud platform, security, STRIDE model, Flutter, Azure

Date of defence

10.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student obhájil diplomovou práci. Komise neměla žádné námitky k řešené práci. V průběhu odborné rozpravy student odpověděl na dotazy: Co si představujete pod pojmem autentizace uživatele? Jsou jednotlivým uživatelům přiřazena různá práva?

Language of thesis

Slovak

Faculty

Department

Study programme

Cybernetics, Control and Measurements (MPC-KAM)

Composition of Committee

prof. Ing. Rudolf Jalovecký, CSc. (předseda)
doc. Ing. Václav Kaczmarczyk, Ph.D. (místopředseda)
Ing. Jakub Dokoupil, Ph.D. (člen)
Ing. Zdeněk Havránek, Ph.D. (člen)
Ing. Karel Horák, Ph.D. (člen)
doc. Ing. Miroslav Jirgl, Ph.D. (člen)

V rámci své diplomové práce se student zabýval návrhem a realizací cloudového systému pro sběr dat a řízení chytré domácnosti. Práce zahrnuje analýzu existujících přístupů, návrh architektury systému, návrh datových modelů, implementaci backendových služeb, obousměrné komunikace se zařízeními a mobilní aplikace. Zadání hodnotím jako poměrně široké a technicky náročné, neboť kombinuje oblast IoT, databází, cloudových služeb, bezpečnosti i mobilního vývoje.

Student pracoval samostatně, přiměřeně využíval konzultací a připomínky vedoucího průběžně zapracovával. Pozitivně hodnotím zejména komplexnost výsledného řešení, vhodně zvolenou modulární architekturu, propojení více technologií do funkčního celku a praktické ověření systému včetně nasazení do cloudového prostředí. Dobře jsou provedeny zejména návrh databázové vrstvy pro práci s časovými řadami, backendu, využití komunikace MQTT a HTTP a vytvoření mobilní aplikace pro interakci se systémem.

Za nejdůležitější nedostatky považuji slabší úroveň některých analytických a teoretických pasáží, místy opakování informací, nižší oporu některých tvrzení v relevantní literatuře a dílčí formální nedostatky. Konkrétně jde zejména o méně přesné formulace v některých teoretických částech, občas nevhodně strukturovaný text, problematické či hůře dohledatelné zdroje a dílčí nesoulady mezi textem a obrazovou dokumentací. Přes uvedené výhrady považuji práci za přínosnou a zadání za splněné.

Práci doporučuji k obhajobě a hodnotím ji známkou B, 83 bodů Points proposed by supervisor: 83

Grade proposed by supervisor: B

Reviewer’s report
Ing. Matěj Turinský

Práce se zabývá návrhem a realizací cloudové platformy umožňující agregaci dat v rámci inteligentní domácnosti a její správu a řízení.
První kapitola se zaměřuje na seznámení se s problematikou inteligentních domácností a obecněji pak IoT (Internet of Things). Zde student opakovaně popisuje, co je to inteligentní domácnost (kapitoly 1, 1.1 a 1.1.1), jaké jsou její základní principy a stručnou historii vývoje. Následuje výčet běžně používaných komunikačních technologií jako například Wi-Fi, BLE a jiné, protokolu MQTT a srovnání cloudové a lokální architektury systému inteligentní domácnosti. Po obecném úvodu práce popisuje konkrétní existující řešení s dělením na komerční (Amazon Alexa, Google Home, Apple HomeKit) a open-source platformy (Home Assistant, OpenHAB, Node-RED), dále pak bezpečnostní rizika spojené s ochranou dat v rámci IoT a dostupné prostředky pro realizaci inteligentní domácnosti. Konkrétně používané programovací jazyky (Golang, Python, Java/TypeScript), databázové řešení (MySQL, PostgreSQL a TimescaleDB) a HW prostředky napříč inteligentní domácností. V rámci této části práce také obsahuje podkapitolu 1.5.2 Frameworky a nástroje, která neobratně spojuje popis runtime prostředí Node.js, MQTT brokera a nástrojů Git a Docker.
Druhá kapitola navazuje na předchozí obecné seznámení s analýzou toho, jaké řešení bude použito pro implementaci v rámci diplomové práce. Nejprve kapitola obsahuje popis hodnotících kritérií. Následuje zopakování rozdílů mezi komerčními a open-source platformami shrnutých Tabulkou 1. Závěrem analýzy je výběr vlastní implementace nezávislé na žádné z dříve uvedených platforem. Stejným způsobem je navázáno na první kapitolu v popisu bezpečnostních rizik s použitím metodiky STRIDE, kdy popis částí Spoofing a Repudiation není plně přesný, dále v popisu principů komunikace v IoT, kde se práce vrací k obecnému popisu schéma komunikace a bezpečnosti a doplňuje protokol HTTP (REST API) a nakonec rozdíl mezi relační a analytickou databází. V závěru této kapitoly se vyskytuje popis konfigurace vývojového prostředí, který by byl vhodnější přesunout do následující kapitoly zaměřené na samotnou implementaci.
Obecným nedostatkem úvodních kapitol je nedostatek literatury, která by podporovala autorovi tvrzení týkající se analýzy aktuálních řešení jako například popularity používaných programovacích jazyků či komunikačních technologií.
V následujících kapitolách se již práce zaměřuje na návrh architektury systému (viz. Obrázek 5). Jednotlivé části jsou následně v souladu se zadáním podrobeny analýze bezpečnostních hrozeb za pomocí metodiky STRIDE, se zaměřením primárně na Spoofing útoky. Další text popisuje datové modely relační (OLTP) a analytické (OLAP) části databáze, jejichž diagramy jsou součástí elektronické přílohy. Dle těchto přiložených diagramů lze usuzovat, že datový model databáze je vhodný pro systém inteligentní domácnosti. Pro samotnou implementaci byl zvolen databázový systém PostgreSQL s nadstavbou TimescaleDB pro optimalizaci práce s časovými řadami v rámci analytické část. Přístup a správu databáze zajišťuje backend implementovaný v jazyce GO (Golang). Samotný kód je dobře strukturovaný a implementace počítá i s optimalizací zápisu do databáze pomocí tzv. ingest bufferu a synchronizací dat mezi MQTT brokerem zajišťujícím sběr dat, mobilní uživatelskou aplikací komunikující skrze HTTP REST API a vnitřní řídící Python skript zajišťující například regulaci osvětlení či generování alarmů. Celý tento systém byl dle autora otestován jak na lokálním zařízení a následně i na cloudové platformě Microsoft Azure ve formě Docker kontejnerů obsahující implementovaný systém.
Navzdory délce práce (63 stran úvod-závěr) je text práce po formální stránce spíše průměrný. Důvodem je primárně již zmíněný nedostatek literatury v rámci rešerše aktuálních řešení a také způsob citování (např. kapitola 2.1.2 a 2.1.3). Zároveň se v práci opakují stejné myšlenky nebo dokonce celé odstavce (např kapitola 9.3.1), číslování obrázků neodpovídá odkazům v textu (např. diagramy v kapitolách 5.1.3 a 5.1.4) a některé literární zdroje nelze dohledat nebo nejsou relevantní (např. [16], [24] nebo [18]).
I přes uvedené nedostatky se student prokázal znalosti v široké oblasti v rámci implementace navrženého řešení. Do obhajoby doporučuji zahrnout krátkou ukázku funkčnosti cloudového systému.
Celkově práci doporučuji k obhajobě a navrhuji hodnocení 79 bodů (C). Topics for thesis defence:
  1. 1) V práci uvádíte jako jednu z výhod cloudového nasazení možnost přístupu k systému i mimo lokální síť. Neexistují i jiné způsoby jak se připojit vzdáleně k lokální sítě?
  2. 2) Mohl byste rozvést důvody pro použití programovacího jazyku GO (jeho výhody/nevýhody oproti například C# s .NET běžný pro MS Azure) a volby vlastní implementace namísto využití open-source platforem?
  3. 3) Pro optimalizaci zápisu do databáze používáte “Ingest buffer”, co se s ním stane v případě výpadku? Je tento buffer nějak zálohovaný?
  4. 4) Při popisu implementace analytické (OLAP) databáze uvádíte, že transformací do hyper-tabulek dojde k efektivnějšímu ukládání dat. Jaký význam má zde efektivnější ukládání dat (menší paměťová náročnost, …)?
Points proposed by reviewer: 79

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová