Hlavní navigace

Senzory Martina Malého: Týden kapitána Zjevného

Martin Malý 31. 8. 2016

Každý má jiné priority a co je důležité pro jednoho, může být podružné pro druhého. Třeba pro mne je MQTT první volbou, pokud stavím něco s internetem věcí.

Tento týden se budu věnovat věcem, které jsou pro některé z vás obnošená vesta a dávno už je znáte, takže se můžete rovnou přesunout do komentářů a napsat něco jako “Malý zase objevil Ameriku”, ale já s docela velkou jistotou vím, že nejsem úplně poslední, kdo je ještě neznal, a že pro některé budou třeba dobrým tipem.

Jeden ze čtenářů se mě ptal, co je tak úžasného a skvělého na MQTT. Princip fungování jsem nastínil na sesterském Rootu, ale je pravda, že otázka “proč MQTT?” mohla zůstat nezodpovězena.

Každý má samozřejmě jiné priority a co je důležité pro jednoho, může být podružné pro druhého, a obráceně. Navíc žádná technologie, i když to někteří evangelizátoři neradi slyší, není zlaté kladivo, které funguje vždy a za všech okolností, ani stříbrná střela, která vyřeší všechny problémy. Každá má svá pro a proti, a to, jestli je pro vás “skvělá a úžasná”, bude nakonec záviset především na vašich potřebách a zvyklostech. Přesto si zkusme vyjmenovat pár důvodů:

MQTT je standardizované řešení, je tedy pravděpodobné, že naleznete software či službu, která bude s touto technologií kompatibilní. Rozhodně pravděpodobnější, než když si uděláte vlastní proprietární protokol.

MQTT je zároveň dostatečně obecné, takže jím přenesete “cokoli” (což berte s rezervou).

MQTT řeší a implementuje některé věci, na které návrháři snadno zapomenou (QoS, testament apod.) a které jsou přitom ve světě IoT docela důležité. Je navržené tak, aby bralo v potaz některé specifické vlastnosti prostředí (třeba úzké přenosové pásmo nebo nestabilní spojení).

Implementuje architekturu Publisher / Subscriber, která je pro heterogenní sítě, složené z jednoduchých senzorů, aktuátorů a řídicích prvků, výhodná – není třeba se neustále ptát “tady žárovka, vypínači, nejsi zmáčknutý?” Místo toho se žárovka ohlásí: “Jsem žárovka 42, řekněte mi, kdy se mám rozsvítit”. Ani vypínač se nestará o to, komu má dát vědět, že je stisknutý. Někde mezi jsou jednoduché softwarové nástroje, které vědí, že zpráva “zapnuto” od vypínače 26 má vyústit do zprávy “rozsviť se!” pro žárovku 42. Celý systém je tak velmi flexibilní.

Zprávy se posílají v takzvaných “topics” – tématech, která mají hierarchickou strukturu, takže je možné odebírat zprávy konkrétní, nebo naopak obecné, přičemž úroveň abstrakce není pevně dána, je na návrháři systému.

MQTT není překomplikované a je velmi snadné jej implementovat. Jediné, co budete potřebovat “navíc”, je nějaký server, kde poběží MQTT broker, tedy ten software, který se stará o příjem a předávání zpráv. De facto standardem je MQTT broker Mosquitto.

Díky výše zmíněným vlastnostem je třeba pro mne MQTT první volbou, pokud stavím něco s internetem věcí. Existují implementace pro obrovské množství platforem, takže si nemusím lámat hlavu s tím, jak budu posílat data a jak zajistím přenos atd. Jediné, co potřebuju, je spustit MQTT broker a rozmyslet se, jak se budou jmenovat jednotlivé “topicy” – témata, podle kterých se zprávy sdružují a posílají.

A jako druhý krok, když už tedy mám ten server, kde mi běží MQTT broker, udělám to, že nainstaluju Node-RED. Ano, je to známý software a používá ho spousta lidí, a já jsem ho objevil až teď, přesněji minulou sobotu, hanba mi! Připadá mi naprosto perfektní na rychlé prototypování datových toků: z jedné strany tečou data, třeba z MQTT, ze sériového portu, ale klidně i přes HTTP, Websockets, nebo z Twitteru, vy si v jednoduchém grafickém editoru poskládáte moduly a nastavíte si tok dat, jak potřebujete, a z druhé strany posíláte data tam, kam mají jít – zase přes MQTT, HTTP, Websockets, do logu, do databáze, mailem, na Twitter… S Node-RED nepotřebujete (téměř) ani gram programování na to, abyste nechali proudit data tak, jak potřebujete.

Možná postupem času zjistíte, že potřebujete ještě něco navíc, že máte speciální požadavky, možná i na ten vlastní přenosový protokol dojde, ale vězte, že MQTT je dobrý začátek (a Node-RED užitečný pomocník), který vám umožní rychle se odpíchnout od technikálií k tomu, co chcete opravdu dělat.

Našli jste v článku chybu?

1. 9. 2016 0:42

tewy (neregistrovaný)

Ale to by znamenalo podporu 2+ serveru na obou koncich = obtizne proveditelne a nasobne zvysujici komnplexnost. Vzheldem k tomu, ze je mqtt bezi nad tcp/ip tak to urcite pujde resit tim, ze broker pobezi na HA clusteru.

Vitalia.cz: Pravda o přibírání na zimu

Pravda o přibírání na zimu

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

DigiZone.cz: Mňam TV splnila slib a odešla z DVB-T

Mňam TV splnila slib a odešla z DVB-T

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

120na80.cz: 5 poporodních problémů a jejich řešení

5 poporodních problémů a jejich řešení

Vitalia.cz: Naučí vás péct kváskový chléb bez lepku i s lepkem

Naučí vás péct kváskový chléb bez lepku i s lepkem

Měšec.cz: Platby do zahraničí: pozor na tučné poplatky

Platby do zahraničí: pozor na tučné poplatky

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Podnikatel.cz: Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

DigiZone.cz: Digi CZ výrazně zlevnila balíček HBO

Digi CZ výrazně zlevnila balíček HBO