Tasmota firmware – Sonoff

Elsősorban Sonoff eszközök vezérlésére fejlesztett, gyártófüggetlen alternatív mikroprogram. (firmware)
A támogatott eszközök részletes listája a tudásbázisában fellelhető:

https://github.com/arendst/Sonoff-Tasmota/wiki

Első feltöltése a legtöbb ESP8266-al szerelt eszközhöz hasonlóan soros-USB átalakítóval oldható meg, a Sonoff Touch érintős villanykapcsolónál már bemutattam egy példát a Tasmota első feltöltésére. Illetve a gyári firmware cseréje már megoldható a speciális SonOTA program használhatával, soros segédeszköz és bontás nélkül, melyet szintén bemutattam.

Aki szeret mindent személyre szabni, letöltheti a forráskódját és lefordíthatja, viszont mivel van kész bináris, én inkább ezt töltöttem le: sonoff.bin 
Innen: https://github.com/arendst/Sonoff-Tasmota/releases

UPDATE: Az 5.13-as verzió óta magyar nyelvű menüvel fordított változat is elérhető a fent írt helyen a sonoff-HU.bin (+lokális időzítő funkciókkal), viszont mivel túl nagy, ezért előbb a sonoff-minimal.bin-t kell feltölteni, és csak ezen keresztül tudjuk WiFi-n OTA (On-The-Air) módszerrel  feltölteni az 500K-nál nagyobb firmware-eket Sonoff eszközökre, amik mind 1MB flash-el szereltek! Aki maradna az egykörös frissítésnél, a sonoff-classic.bin-t kell letöltenie – igaz ez marad angol nyelvű, és nincsenek benne az új időzítő funkciók sem.

Amennyiben a SonOTA segítségével végeztük a feltöltést, a Wifi hálózatunkhoz már csatlakozott az eszköz, ha soros vonalon, általános binárist töltöttünk fel az eszközre, akkor még hátravan a Wifi adatok megadása, ami nem olyan egyszerű, mint pl az ESPEasy esetében.

Háromféleképpen közelíthetjük meg a problémát:

  1. Eleve beleírjuk a firmware forrásába a saját wifink nevét és jelszavát, lefordítjuk, majd ezt töltjük fel soros vonalon (haladó, nem túl könnyű módszer)
  2. Hozzunk létre egy „indebuurt1” nevű WiFi AP-t „VnsqrtnrsddbrN” jelszóval, ami elvileg a gyári alapértelmezés (nem túl bonyolult, de további eszközt igényel)
  3. Ha van az eszközön nyomógomb, akkor a tápfeszültség alá helyezése után négy alkalommal röviden meg kell nyomni, ekkor átáll AP módba, egy „sonoff_xxx” nevű fog megjelenni, (jelszó nélkül) majd a 192.168.4.1 IP címre kell csatlakozni, ahol megadhatjuk saját WiFi-nk nevét és jelszavát, amire a legközelebbi újraindításkor csatlakozni fog. Indítsuk is újra, ha ez nem történne meg automatikusan. (aránylag egyszerű megoldás, de érintős panelen nehéz időzíteni a négy rövid lenyomást)

Miután a modul sikeresen csatlakozott a WiFi hálózatunkhoz, kapott egy IP címet, amit a routerünkön a DHCP leases-nél tudunk megnézni.

tasmota_w01.jpg

 Az egység IP címét beütve a böngészőbe az alábbi főmenübe jutunk:
A példában szereplő eszköz egy egyszerű kapcsoló, a Toggle gombra kattintva tudjuk be-illetve kikapcsolni webes felületről. Nagyon jó játék, de hamar rá lehet unni.. szerintem nem ez az elsődleges felhasználás, hanem egy MQTT szerveren keresztüli, akár automatizált vezérlés. („A hogyan tudjuk okostelefonról könnyen vezérelni?” kérdésre a válasz egy saját Domoticz szerver, és annak mobiltelefonos alkalmazása)

Configuration menüpont alatt egy rakat beállítási lehetőséggel találkozhatunk, úgy mint:

tasmota_w02.jpg

Érdemes fentről lefelé haladva beállítani minden szükséges dolgot, az első rögtön az eszköz típusa: (Configure Module)

tasmota_w03.jpg

Itt lehet választani a támogatott eszközök listájából – látható, hogy a Sonoff eszközök minden fajtáját lefedi a spektrum. Jelenleg 32 eszköz van a listán, és a Sonoffon kívül van még 1-2 fajta relé, okosizzó, stb, illetve a szabadon levő GPIO csatlakozókra is be lehet állítani pár eszközt, de azért kevesebb fajtát támogat és kevésbé lehet személyre szabni, mint az ESPEasy esetében. Ennek ellenére azt kell mondjam, egy egyszerű Sonoff eszközhöz, mint pl a Sonoff Touch, kívánni sem lehet jobb és egyszerűbben használható firmware-t, mint a Tasmota.

A következő pont is fontos lehet, a Configure WiFi:

tasmota_w04.jpg

Itt lehet keresni, beállítani a WiFi AP-ket, amihez az egység megpróbál csatlakozni, érdemes beállítani egy másodlagosat is, ha rendelkezünk ilyennel, vagy az eszközt átvisszük egy olyan helyre, ahol más WiFi hálózatról akarjuk elérni.

Configure MQTT részben tudjuk beállítani milyen című MQTT szerverre csatlakozzon, ami segítségével tudjuk vezérelni az eszközt.

FIGYELEM! A Topic tartalma nem érdekes Domoticz esetén, annak inkább Home Assitant-nál vehetjük hasznát, ám állítsuk be minden egységen egymástól eltérőre, ha nem akarjuk, hogy egymást is ki-be kapcsolják!

tasmota_w05.jpg

Configure Domoticz alatt lehet beállítani, hogy milyen IDX-el azonosítsa magát az eszköz a Domoticz felé. (MQTT-n keresztül, persze a fenti MQTT-t előbb be kell állítani) Itt a legfelső IDX van használatban, illetve ha kötünk rá más eszközt, azoknak is meg lehet adni külön számot. (Természetesen az IDX-eknek is különbözőeknek kell lenniük, hacsak nem direkt párhuzamosan akarjuk kapcsolgatni ezeket)

tasmota_w11.jpg

Az Update timer segítségével megadható, hogy x másodpercenként lejelentse a státuszát az eszköz az MQTT szerver számára (életjel), ha 0-ra van állítva, csak változáskor, gyakorlatilag kapcsoláskor küldi a státuszát.

Configure Logging:

A Serial log levelt nyugodtan lekapcsolhatjuk, ha nem akarjuk soros vonalon figyelni a naplót, a web log levelt is le lehet venni, viszont ez utóbbi hatására a kiadott parancsokról nem kapunk visszajelzést a webes felületen.

tasmota_w06.jpg

A Telemetry azon túl, hogy feleslegesen terheli a wifi hálózatot csomagokkal, számomra nem bír sok értékkel, így 0-ra véve letiltottam.

Configure Other

tasmota_w07.jpg

Itt erősen javasolt a  Web admin jelszót módosítani, az MQTT külön is tiltható, illetve a Friendly Name néven fogja magát az eszköz azonosítani.
Az Emulation-ban beállítható, hogy egy Belkin Wemo kapcsolóként mutatkozzon be az eszköz a hálózaton, így lehetővé téve az Alexa rendszerbe történő integrálását, és ezzel az egyszerű hangvezérlést.
A Hue Bridge emulációval is be lehet integrálni az Alexába az eszközt, de ez utóbbival több relé is felvehető. (A WeMo módban csak 1 db-ot lehet eszközönként)

A többi beállítás egyértelmű: Reset Configuration alapértelmezettre állít minden beállítást (a WiFi jelszót is), a Backup elmenti a Restore visszaállítja.

Az Information pontban a különböző működési paraméterekről, hálózati címekről, bekapcsolás óta eltelt időről stb tájékozódhatunk.

tasmota_w08.jpg

Firmware Upgrade:

tasmota_w09.jpg

Akár online, akár számítógépre mentett bináris állományból tudjuk az eszköz mikroprogramját frissíteni, és nem csak Tasmotára.

Console:

tasmota_w10.jpg

Különböző parancsokkal tudjuk személyre szabni az egység működését, egy hosszú lista megtalálható ezekről itt:
https://github.com/arendst/Sonoff-Tasmota/wiki/Commands

A parancsok kiadhatóak ebben a menüpontban, MQTT-n keresztül, URL-be írva böngészővel, vagy soros porton át is.

Különösen hasznos parancsok:

Fogyasztás csökkentés: (minden ciklusban 50 milliszekundum „pihenés”)
Sleep 50

Ne használja az eszköz visszajelző LED-jét:
LedState 0

Akkor világítson a LED, ha aktív az eszköz: (kivéve a Touch-nál, ahol ez invertált, vagyis irányfénynek jó)
LedState 1

Akkor villanjon fel a LED, ha MQTT üzenetet küld vagy érkezik (gyakorlatilag mikor kapcsolják)
LedState 6

Ne kapcsolja fel a reléket induláskor (így áramingadozáskor nem kattog minden relé és villog minden lámpa)
PowerOnState 0

Induláskor a relé legutóbbi állapotába tér vissza (gyak: áramszünet után felkapcsol a kapcsoló, ha előtte be volt kapcsolva, ha nem, nem)
PowerOnState 3

Csak 60 másodpercenként próbálkozzon újracsatlakozni az MQTT szerverhez, ha elvész a kapcsolat (ez alapértelmezetten 10másodperc)
MqttRetry 60

Időszerverek beállítása, érdemes lokális helyi NTP szerver IP-t megadni, pl a routerünket, a többit letiltani:
BackLog NtpServer1 192.168.1.1;NtpServer2 0;NtpServer3 0

Csak kézzel mentse a beállításokat, ne automatán:
SaveData 0

Ne „szemetelje” tele a hálózatot telemetria-adatokkal folyamatosan:
TelePeriod 0

Az így beállított értékeket elmenti a flash tárterületre, így áramtalanításkor is megmaradnak.

És végül a Restart az eszköz újraindítására szolgál.

Szerintem még ez is hasznos parancs lehet, pl ha nincs gpio0-ra kötve gomb:
Backlog SSID1 ssid1; Password1 passw1; SSID2 ssid2; Password2 passw2;