Dnes z počítače ovládneme lacinou mobilní klimatizaci | Je totiž vybavená Wi-Fi a napojením do systému Tuya | Budeme i zapínat a vypínat v Pythonu

Zatímco jedním z největších spotřebitelských témat v Evropské unii a USA je v posledních letech právo na opravu, my, domácí kutilové, bastlíři a makeři všeho druhu, toužíme možná ještě více po právu na aplikační rozhraní – API.
Prozkoumejte další články ze seriálu Pojďme programovat elektroniku
Kdybychom o světě rozhodovali my, každá chytrá krabička bude povinně nabízet vedle napojení do všemožných systémů chytré domácnosti ještě základní rozhraní pro vývojáře, kteří si chtějí osvětlení, vysavač, lednici a sporák ovládnout po svém.
Nutno podotknout, že i v roce 2022 je to spíše ojedinělý jev a svět komerčního IoT zůstává poměrně uzavřený. Častým argumentem výrobců je bezpečnost, protože API, které nebudou mít plně pod kontrolou, považují jen za další vektor potenciálního kybernetického útoku. Fakt, že si jejich výrobek zakoupila zpravidla dospělá osoba a s vlastní osobní zodpovědností za své činy, je už bohužel tak nezajímá.
Podívejte se na video, jak zapneme klimatizaci z příkazové řádky:
Čínská Tuya dobývá hlavně lacinou elektroniku
Ironií osudu tak svět chytré domácí elektroniky otevírá hlavně kontroverzní Čína a IoT platformy tamních výrobců. Jednou z nich je Tuya, jejíž ekosystém dnes čítá více než 8 400 výrobců. Na seznamu figurují tisíce neznámých asijských značek, stejně tak ale i francouzský Schneider Electric nebo třeba Philips.
Tuya už také prosákla do světa laciných a v Evropě tradičně rozšířených značek jako třeba Sencor a stejně tak tvoří jádro levné chytré domácí elektroniky z Lidlu.
Kompatibilitu s evropskou legislativou, co se ochrany dat týče, zajišťuje hned několik serverů na území Evropské unie. Pokud je zvolíte, nemusíte se alespoň podle výrobce obávat, že vaše informace potečou skrze ústředí Komunistické strany Číny.
Cloudový management chytrých krabiček
Nás kutily nicméně spíše než jednotná mobilní aplikace Tuya Smart pro Android a iOS, pomocí které můžete kompletně ovládat celou chytrou domácnost, zajímá vývojářský portál iot.tuya.com.
Ten totiž neslouží jen pro výrobce, kteří by rádi Tuyu implementovali do své elektroniky, ale účet si zde může vytvořit naprosto každý. Třeba právě kutil, který pak se svým cloudovým projektem spáruje skrze mobilní apku koncová zařízení, získá jejich přístupové klíče a může je ovládat svépomocí.
Slouží k tomu standardní příkazy ve formátu JSON, kterými lze popsat prakticky cokoliv od chytré varné konvice po robotický vysavač, automatické rolety a klimatizaci.
Loni na podzim pak Tuya představila i kompletní SDK pro vývoj v Pythonu, který vlastní integraci elektroniky ještě více zjednoduší a nabízí servis, který bychom u západní konkurence zpravidla hledali jen velmi marně.
Maličká knihovna TinyTuya pro Python
A právě v Pythonu si Tuyu ukážeme i v dnešním článku, namísto oficiálního a košatého SDK nicméně použijeme komunitní knihovnu TinyTuya, která to už podle svého názvu ještě více zjednodušuje. K dispozici je na GitHubu, kde najdete i hromadu příkladů, stejně tak ji ale můžete získat skrze instalátor balíčků pro Python pip.
TinyTuya umožnuje ovládání zařízení v ekosystému Tuya buď skrze cloudové API – tedy přes internet z jakéhokoliv místa na světě –, stejně tak ale nabízí přístup skrze místní síť a UDP. To se hodí pro případy, kdy nebude k dispozici internetové připojení, ale jen LAN.
Kuřáci mě donutili k nákupu klimatizace
Bydlím v pátém patře, všechna okna mám orientovaná směrem na západ a v domě se ke všemu před lety uhnízdilo několik kuřáků, kteří v parném létu obtěžují ostatní obyvatele prakticky nepřetržitým vypouštěním dýmu. Pokud si u nás budete chtít po západu slunce vyvětrat, riskujete zamoření celého bytu nikotinovým kouřem.
Aby toho nebylo málo, dispozice domu není zrovna nejvhodnější pro instalaci klasické dvoudílné klimatizační jednotky, která by problém s chlazením alespoň trošku řešila, a tak jsem loni zašel do nejbližšího hobby marketu a přitáhl domů lacinou 1kW mobilní klimatizaci s chobotem, pro který jsem v panelu vysekal větrací šachtu.
Kdejaké laciné zařízení má Wi-Fi
Lepší kousky s kvalitním odvodem horkého vzduchu sice dokážou malý byt zchladit podobně jako menší nástěnná klima, nicméně za cenu vysokého hluku a tvorby podtlaku v místnosti.
Je to prostě kompromis. Na stranu druhou, zhruba od 5 000,- už velmi často nechybí Wi-Fi, mobilní aplikace a napojení do chytrých ekosystémů od Amazonu, Googlu a Applu. U klasických nástěnných klimatizací je to naopak i nadále spíše výjimka.
Toto ale není recenze mobilních klimatizací, rovnou tedy přejdu k tomu podstatnému. Mozkem klimatizace je mezi kutily oblíbený Wi-Fi čip od Espressifu, čili kdybych jednotku demontoval, mohu na mikrokontroler nahrát vlastní firmware třeba z Arduina, anebo některý z těch komunitních. Třeba ESPhome.
V mém případě to ale není třeba, Sencor totiž použil firmware od Tuyi, a tak se s klimatizací spojím přímo pomocí jejího oficiálního API pro vývojáře.
Svůj projekt spáruji se zařízením pomocí QR
Nainstaloval jsem tedy na mobil apku Tuya Smart a spároval v ní klimatizaci. Poté jsem si vytvořil účet na vývojářském portálu Tuya a založil nový projekt v sekci Cloud. Každý takový projekt má své Access ID/Client ID, což je jedinečný identifikátor, a Access Secret/Client Secret, což je zase přístupový klíč.
Obě hodnoty budu později potřebovat při přístupu k zařízení. Nejprve ale musím nějaké propojit se svým projektem, což provedu v jeho administraci a v sekci Devices. Najdu zde seznam všech svých hraček v ekosystému Tuya, aktuální stav a také tlačítko Add Device. Propojení zařízení s projektem probíhá skrze QR kód.
QR kód mohu samozřejmě předat i někomu jinému a na dálku pak spravovat jeho chytrou elektroniku z jednoho vývojářského pultíku.
Ovládací instrukce v JSON
Vývojářský dashboard toho umí opravdu hodně. Když si otevřu kartu některého ze zařízení, dozvím se základní informace, příslušnost ke konkrétnímu geografickému datacentru, se kterým komunikuje (můj projekt by měl být v tom stejném), nechybějí ale ani podrobné časové logy všech událostí a konečně záložka Device Debugging.
Je to vlastně jakýsi GUI/text terminál pro zasílání JSON příkazů přímo do zařízení skrze cloudové API.
Takže kdybych chtěl svoji klimatizaci zapnout, stačí odeslat instrukci v JSON:
{ “code”: “switch”, “value”: true }
A kdybych ji chtěl zapnout, ale zároveň nastavit také režim na chlazení, teplotu na 18 °C a ventilátor na nejvyšší otáčky, dávku upravím tímto způsobem:
Díky strukturovanému formátu JSON mohu v jedné zprávě kombinovat celou řadu dílčích příkazů.
Spojíme se s klimatizací skrze TinyTuya
Tak, to by na webu stačilo a hurá na ten Python. Nainstaloval jsem knihovnu TinyTuya na své domácí Raspberry Pi, ke kterému jsem se skrze SSH připojil z bezplatného editoru Visual Studio Code a připravil si první ukázku stručného kódu, který jen ověří spojení s klimatizací skrze cloudové API a vypíše konfiguraci zařízení opět ve formátu JSON.
Abych to dokázal, budu potřebovat ony identifikační hodnoty mého projektu (Access ID a Access Secret) a ještě identifikátor zařízení Device ID, který najdu v seznamu spárovaných spotřebičů na webu.
Celý kód bude vypadat takto:
import tinytuya as tt # Přístup pres Tuya Cloud (internet) cloud = tt.Cloud( apiRegion = “eu”, # Geografický region/datacentrum apiKey = “sk8uycg7aqood”, # Access ID projektu apiSecret = “19b1d39c0a784a”, # Access Secret apiDeviceID = “54766874e86″ # Device ID ) # Pole odpovídajících zařízení spotrebice = cloud.getdevices() # Projdu pole for spotrebic in spotrebice: print(f”Název: {spotrebic}”) print(f”ID: {spotrebic}”) # Vypíšu surový obsak stavu zařízení v JSON stav = cloud.getstatus(spotrebic) print(f”n{stav}”)
Funguje to! V terminálu se brzy zobrazí informace o mé klimatizaci. Používám cloudové API, takže to zabere možná pár sekund, spojení totiž probíhá skrze server kdesi v evropském datacentru.
Na stranu druhou, takto se mohu s klimatizací spojit odkudkoliv, i když bude moje chytrá domácnost za NATem routeru a infrastrukturou operátora – i bez veřejné a pevné domácí IP adresy.
Posíláme povely v JSON do klimatizace
Pasivní čtení stavu je ale nuda. Převezmu proto iniciativu a skript výše upravím pro zasílání zpráv. Když přidám terminálový parametr zapni, klimatizace se spustí, no a když vypni, analogicky se zastaví.
Jak už jsme si řekli výše, zprávy se do zařízení zasílají ve formátu JSON a knihovna TinyTuya k tomu má metodu sendcommand(idZařízení, JSON). Upravený kód by proto mohl vypadat třeba takto:
import tinytuya as tt import sys # ID naší klimatizace v systému Tuya Cloud klimatizaceId = “54766874e86” # Instrukce pro zapnutí zapni = { “commands”: } # Instrukce pro vypnutí vypni = { “commands”: } # Přístup Tuya Cloud (internet) cloud = tt.Cloud( apiRegion = “eu”, # Geografický region/datacentrum apiKey = “sk8uycg7aqood”, # Access ID projektu apiSecret = “19b1d39c0a784a”, # Access Secret apiDeviceID = klimatizaceId # Device ID ) # Pole odpovídajících zařízení spotrebice = cloud.getdevices() # Projdu pole for spotrebic in spotrebice: print(f”ID: {spotrebic}”) # Vypíšu surový obsak stavu zařízení v JSON stav = cloud.getstatus(spotrebic) print(f”n{stav}”) print(“”) # Pokud jsem použil parametr zapni, zapnu klimatizaci if “zapni” in sys.argv: print(“*** ZAPÍNÁM KLIMATIZACI ***”) odpoved = cloud.sendcommand(klimatizaceId, zapni) print(f”Odpověď: {odpoved}”) # Pokud jsem použil parametr vypni, vypnu klimatizaci elif “vypni” in sys.argv: print(“*** VYPÍNÁM KLIMATIZACI ***”) odpoved = cloud.sendcommand(klimatizaceId, vypni) print(f”Odpověď: {odpoved}”)
Spouštíme a vypínáme klimu z příkazové řádky
Pokud by se náš skript v Pythonu jmenoval třeba ovladani.py, pro spuštění klimatizace stačí zavolat příkaz:
python3 ovladani.py zapni
No a pro vypnutí:
python3 ovladani.py vypni
Začátečníky v Pythonu pro jistotu upozorním na to, že příkaz výše odpovídá mé konfiguraci interpretu Pythonu. Na vašem počítači se spouštěcí program nemusí jmenovat python3, ale prostě jen python nehledě na jeho verzi.
A když nechceš cloud, můžeš použít LAN a UDP
Stejným způsobem bych mohl klimatizaci předat i jiný a klidně i kombinovaný příkaz, který bude měnit otáčky ventilátoru, cílovou teplotu a další parametry.
A jelikož na platformě Tuya běží i hromada dalších typů elektroniky, analogickým způsobem ovládnu třeba osvětlení, chytré zásuvky a další spotřebiče na identickém protokolu. Jen zvolím adekvátní instrukce v JSON.
A pokud bych chtěl celý Tuya Cloud odstřihnout, v TinyTuya mohu nakonec pracovat i se zmíněným přístupem skrze LAN a UDP bez potřeby internetu. Tento krok vyžaduje další stupeň autorizace a odlišný formát příkazů v JSON. Jak na to, se dozvíte přímo na GitHubu knihovny TinyTuya.
Demokratizace integrace je nezbytná
Co napsat na závěr? Je smutné, že podobný vývojářský servis nenabízejí i západní výrobci a majitel spotřebiče se nemůže do nitra krabičky dostat po své vlastní ose. Snad se situace časem zlepší a ekosystémy se otevřou podobným způsobem jako právě Tuya.
Je to nezbytné pro další úroveň demokratizace IoT v budoucnosti – tedy demokratizace jeho integrace.
Přečtěte si také:
- Jak přečíst platební kartu mobilem a k čemu je to dobré
- Gmail na vlastní doméně nekončí. Musíte ale Googlu říct, že chcete pokračovat. Kdo podlehl, může se vrátit zpět
- Recenze cykloradaru Garmin Varia RCT715. Bílé dodávky, všechny si vás natočím
-
Před 40 lety zmizela ze zastávky, našli ji brutálně ubodnou. Teď případ vyřešili
-
Jak vypadal den průměrného Římana? Línější a snazší život si nelze představit
-
Výlet skončil tragédií: 21letý Lukáš zemřel po pádu ze skály, policie šetří zabití
-
Netopýr u vás doma? Určitě se vás bojí víc než vy jeho
-
Samsung Galaxy Watch 5 zum Tiefpreis kaufen: Die Features und Preise im Überblick
-
Ab 20 Euro: Die 5 besten Haartrockner und Föhne im Praxis-Test
-
Stay on the forefront of coding with this certification bundle
-
How to Share Gmail Folder With Another User Along With Emails Automatically
-
Más de 8.000 menores contagiados y otros tres fallecidos por malaria
-
Unipetrol v posledních letech snížil závislost na ruské ropě pod 50 procent
-
Metro zastavila nehoda: Provoz na lince A stál několik hodin
-
Victoria Beckham swears by this £28 three-in-one skincare product to get photo-ready
-
Musikindustrie: Halbjahreszahlen strahlen in hellen Farben
-
Teleskop zachytil super-Zemi. Vědci na ní předpokládají život