Hlavní navigace

BigClown: často kladené otázky

27. 7. 2016
Doba čtení: 4 minuty

Sdílet

V posledních týdnech jsme představili koncept BigClown naživo mnoha lidem z oboru. Bavili jsme se s odborníky na IoT, s odborníky na bezpečnost i s vývojáři hardware. Díky tomu jsme získali cennou zpětnou vazbu.

V tomto posledním článku naší série odpovíme na nejčastěji kladené otázky.

Zatím jsme se nijak blíž nevěnovali tomu, co je „za hardware“. Tedy různým cloudovým službám a nadstavbám, co hrají v IoT roli toho velkého I. Bylo to i trošku záměrně. My se totiž rozhodli, že nebudeme tříštit naši pozornost; že nebudeme, jak se říká, střílet na mnoho zajíců najednou, protože to je téměř jistá cesta do pekel (kde takové týmy čeká nekonečné vyvíjení všeho možného a nulový výsledný produkt). Namísto toho jsme se rozhodli zaměřit na jednu specifickou oblast – totiž na hardware pro lokální instalace (domácí systémy například) a bezpečnou komunikaci.

Nestavíme se do role firmy, která vyvíjí IoT produkty od A do Z. To není náš cíl. Nechceme dodávat „systém domácí automatizace“ nebo něco podobného. To je, když dovolíte, „vaše věc“. My jsme o jeden krok níž – firmám, které chtějí takové systémy rychle vyvinout a nabídnout, nebo domácím kutilům, kteří si rádi staví systémy sami, dodáme hotový a odladěný hardware formou modulární stavebnice.

Hardware lze snadno napojit na vlastní nebo cizí softwarovou nadstavbu, a tím si rychle postavit třeba svůj systém domácí automatizace. Stejně tak si mohou firmy nad naším řešením rychle vyvinout vlastní IoT produkt, a to klidně za jedno dopoledne (a odpoledne jej předvést potencionálním zákazníkům). Jak kutilové, tak firmy navíc mohou využít pro dosažení svých cílů naší nadstandardní záruky a podpory.

Důvod takového rozhodnutí je prostý: zatímco existuje spousta lidí, kteří dokáží vymyslet, postavit a prodat skvělý produkt nad nějakým hardware, lidí, kteří jsou schopni takový hardware dobře navrhnout, vyrobit a dodat je řádově míň. Spousta firem a startupů má nápady, jak by mělo jejich zařízení fungovat, ale narazí právě na tuto hranici – sami si zařízení nenavrhnou a nevyrobí. O to se postaráme my.

Nechceme rozhodně vytvářet komplexní cloudové služby, namísto toho pracujeme na integraci s těmi nejčastějšími a nejpoužívanějšími – Azure, AWS, Blynk, IFTTT, Domoticz, Home Assistant a podobnými. Ostatně se můžete přijít podívat sami – 9. srpna budeme demonstrovat propojení BigClown s Azure IoT.

Jak jsme se zmiňovali v minulém dílu, od BigClown do cloudu vedou standardní protokoly – MQTT over TLS, WebSocket over TLS, REST atd., takže integrace je poměrně přímočará a díky široké podpoře těchto protokolů i snadná.

Pro programátory bude jistě zajímavá část okolo Hubu. Jak jsme si v minulých dílech říkali, Hub je softwarová komponenta, která běží na linuxovém serveru (primárně Raspberry Pi a Turris, ale obecně jakýkoli). Hub je centrálním bodem, přes který procházejí veškeré zprávy, co v systému vznikají. Hub se stará o jejich tok v systému, předává je mezi zařízeními a MQTT brokerem, a díky konceptu Hub Packů je rozšiřitelný o funkce softwarového agenta, jak jsme si ji popisovali v kapitole o MQTT.

Hub Pack je program, napsaný v libovolném jazyce (Python, Go, JavaScript, …) a spustitelný v linuxovém prostředí. Musí implementovat MQTT protokol verze 3.1.1. Hub tento program spustí s dvěma parametry – první je připojení k MQTT brokeru, druhý je subtopic. Výstupy stdout a stderr jsou Hubem brány jako log, resp. chybový log (jedna zpráva na řádek). Hub Pack komunikuje s okolím právě přes MQTT protokol; samotný Hub nabízí přes tento protokol nějaké vlastní funkce, typicky přístup ke konfiguraci, k jednoduché databázi typu klíč-hodnota a k dalším funkcím (hodiny apod.) Hub zároveň spravuje registrované HubPacky a stará se o jejich „životní cyklus“ – o jejich spouštění, znovuspouštění v případě pádů apod.

Výhodou Hub Packů je standardizované řešení, co se týče práce s daty – vše se odehrává v rámci MQTT topiců a JSON payloadu. Hub Pack může data přijímat a zpracovávat, může je opět odesílat, může je dokonce generovat, a na druhou stranu není nijak omezen tím, co smí dělat – klidně může fungovat jako jednoduchý schodišťový automat, nebo nabídnout komplexní servis, třeba webové rozhraní pro uživatele.

Hub komunikuje s Gateway (připomeňme si: Gateway komunikuje rádiově s jednotlivými Nody a předává data po USB CDC Hubu) prostřednictvím sériové linky. Pro tento účel jsme navrhli protokol Red Nose, který nám umožňuje předávat MQTT zprávy po sériové lince. Technicky se jedná o jejich zabalení do JSON (a samozřejmě nezbytná sanitizace znaků, které mají v JSON vlastní význam) a přidání některých servisních informací (například směrování nebo stavové informace).

CS24_early

V této sérii článků jsme vás, čtenáře Roota, obrazně řečeno nechali nakouknout do kuchyně v době, kdy se začíná péct. Za několik týdnů přijde ostré spuštění, a teď tedy ze všech sil finišujeme, ustalují se protokoly, algoritmy, vzniká dokumentace, datasheety, upravujeme detaily… Chtěli jsme vám přiblížit tento dynamický proces a kvas a opět vás zveme: chcete-li přispět k technické diskusi nad dokumentací (specifikace, schémata, diagramy, …), napište nám (support@bigclown.com).

Těšíme se na vás i při ostrém spuštění.

Byl pro vás článek přínosný?

Autor článku

Martin Malý je autorem serveru Bloguje, mikroblogu Teidu či služby pro zkracování odkazů Jdem.cz. Vedl také magazín Zdroják.