Rád se podělím o zkušenosti se zásuvkou Shelly Plug S Gen3 a to z "lokálního" pohledu: žádný Shelly Cloud, žádná oficiální Shelly aplikace.
Celé ovládání běží čistě lokálně – přes BLE a přes lokální HTTP RPC v domácí Wi-Fi síti. Tenhle první příspěvek bude spíš přehledový, další budou navazovat konkrétními detaily a problémy, které jsme spolu s AI řešili a (některé) vyřešili.
Bez cloudu?
Shelly Cloud je fajn, pokud vám nevadí účet u výrobce a závislost na jeho serverech. Jakmile ale chcete zásuvku sdílet mezi víc lidmi bez cloudového účtu, nebo prostě chcete mít jistotu, že vám zásuvka půjde ovládat i bez internetu, dává smysl jít lokální cestou. Shelly to naštěstí umožňuje – zařízení má plnohodnotné lokální RPC rozhraní, které nepotřebuje jejich aplikaci ani cloud.
HW v kostce
- řídicí čip ESP32
- relé pro spínání zátěže
- RGB LED indikace, samostatně nastavitelná barva/jas pro stav zapnuto/vypnuto
- jedno fyzické tlačítko s více funkcemi – krátký stisk přepíná výstup, podržení 5 s znovu otevře BLE párovací okno, podržení 10 s = tovární reset
SW v kostce – lokální RPC
Celé zařízení se ovládá přes JSON-RPC rozhraní, dostupné dvěma cestami:
- lokálně po HTTP (v rámci domácí Wi-Fi, žádný cloud)
- přes BLE (Bluetooth Low Energy), bez nutnosti použít Wi-Fi
Metody jsou rozdělené do komponent – namátkou Switch (ovládání výstupu, Switch.Set, Switch.GetStatus), Sys (systémové info a config), WiFi, Cloud (dá se explicitně vypnout), BLE, Script (uživatelské skripty) a PLUGS_UI (nastavení LED). Užitečný detail: Switch.Set má rovnou parametr toggle_after (v sekundách) – zásuvka se sama vrátí do opačného stavu bez nutnosti posílat druhý příkaz.
skriptování (mJS)
Shelly umí interně uložit a spustit vlastní skripty přímo na zařízení (jazyk mJS, odlehčený JavaScript). Skript se nahraje buď přes její rozhraní v prohlížeči nebo vzdáleně přes Script.Create a Script.PutCode (po částech), a pomocí Script.SetConfig se dá nastavit, aby se spouštěl automaticky při startu zařízení. Výhoda je zásadní – takový skript běží přímo na ESP32 v zásuvce; funguje i v situaci, kdy telefon není k zásuvce vůbec připojen Typické využití je třeba časované zapnutí/vypnutí bez závislosti na klientovi.
nastavení LED
Barvy i jas LED se dají nastavit zvlášť pro režim zásuvky ON/OFF.
komunikace přes BLE
Zásuvka po zapnutí (nebo po podržení tlačítka 5 s) otevře 15minutové párovací okno, ve kterém se dá spárovat s mobilem či tabletem (přes BLE). Podporováno je až 20 současně spárovaných klientů. Přes BLE se posílá stejné JSON-RPC jako po HTTP, jen zabalené do BLE charakteristik.
Už toho mám zprovozněno víc než jen zapnutí/vypnutí, které ovládám jak z mobilu, tak i z notebooku.
Shelly Plug S Gen3, chytrá zásuvka pro bastlíře
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti