Wifi-s érintős villanykapcsoló
2017. június 20. írta: eNeS

Wifi-s érintős villanykapcsoló

WiFi-s cuccokat böngészve akadtam a következő gyöngyszemre az ebayen:

ws_00.png

"WiFi Touch Wall Switch Compatible Work with Alexa"

 

Megtalálható 1-2-3 gombos kivitelben, fekete és fehér színben. Cirka 4ezer forintot kell érte leszurkolni, ami soknak tűnik, amíg szét nem néz az ember a hazai Livolo kapcsolók piacán, amik kétszer ilyen árnál indulnak, és nem is WiFi 2.4Ghz, hanem 433Mhz RF-en kommunikálnak, ami azt jelenti, hogy kell egy köztes aktív elem, amivel WiFi-n lehet vezérelni őket. Nem árt résen lenni az ebayen sem, mert az olcsóbb kategóriások mind RF-esek. Ez a modell nem igényel ilyesmit, bele van építve a WiFi vezérlője.

 

 

Az sajnos máris látszik, hogy a 64x57mm méretű, falba süllyeszthető (?) hátoldala sem a Magyarországon elterjedt 65mm, sem a 80mm átmérőjű fali kötődobozba nem igazán fog beférni, illetve a kapcsolóknál szokásos fekete be-fekete ki (fázis) mellett a kék színű nullvezetékre is szükség van, ami némi villanyszerelési munkát vetít előre. Akit ezek visszariasztanak inkább ne is olvasson tovább, vegyen RF rendszerűt, azok általában nem igénylik a nullvezetéket. :)

ws_01.png

Megjegyzés: RF rendszerű kapcsolót nem láttam még, ami két irányban kommunikálna, csak parancsokat fogadnak, de ha kézzel felkapcsolja valaki, a központi automatizálási szoftvernek erről nem lesz tudomása, míg a WiFi rendszerűek visszajelzik a státuszukat is.

 

Nosza, beüzemeltem, van egy frappáns Yewelink nevű szoftvere okostelefonra, amit feltelepítve máris megkezdte a kapcsoló aktiválását, méghozzá interneten keresztül. Miután meggyőződtem róla, hogy működik, és aránylag gyorsan lehet mobiltelefonról kapcsolgatni a világítást, valamint azt is láttam, hogy a kézzel történő felkapcsolást is látom a mobilalkalmazáson keresztül, gondoltam megvizsgálom a működését is.

A WireShark segítségével lehallgattam a hálózati forgalmat, amit az eszköz generált különböző eseményekkor. Bekapcsolást követően bejelentkezik a kínai gyártó taobao.com-on üzemelő bérelt szerverére, ahova elküldi a gyári számát, erre kap egy kódot, amivel beregisztrálja magát az Amazon Felhőbe, és innentől már a felhőn keresztül lehet vezérelni. Akinek ez elegendő, most hagyja abba az olvasást.

 

Felmerül a kérdés, hogy nekem ez miért nem elég? Erre a kérdésre válasz helyett több más kérdés jut eszembe:

  1. Mi van akkor, ha a gyártó cég csődbe megy, megszűnik a bérelt szerverük, így nem lesz, ami továbblökje az eszközt az Amazon felhőbe?
  2. Mi van akkor, ha a gyártó cég többé nem támogatja az adott eszköz típust?
  3. Mi van, ha éppen nem megy az internet?
  4. Mi van akkor, ha én nem szeretném, hogy Kínában és Amerikában is tudják, hogy éppen felkapcsoltam a mellékhelyiségben a villanyt?
  5. Mi van akkor, ha én azt mondom, köszönöm szépen, de van saját szerverem, ami majd úgy működik, ahogy én szeretném?

Ne is ragozzuk tovább, a lényeg a lényeghez, hogy pár másodperc alatt szétkaptam az eszközt, látom ám, hogy egy ESP8266 hálózati vezérlő van benne, aminek utánaolvasva nagyon megörültem, mert szépen lehet rajta programot cserélni. Szereztem hozzá egy CP2102 USB-soros konvertert (szintén ebay), és némi multiméteres kalandozás, valamint az ESP lábkiosztásának vizsgálata után megtaláltam a szükséges lábakat. (képen jobb fent JP1 2x7 tüske)

ws_23.png

  GND
  2.6V VDD
   
TX  
RX  
   
   

 

 A GND-t a konverterhez mellékelt kábellel gyerekjáték volt rákötni a jobb felső tüskére, a bal oszlopban fentről negyedik és ötödik TX és RX-re pedig fordítva a konverter RX és TX lábait. Probléma csak az volt, hog a VDD láb nem 3.3V-os, így tovább kerestem, és a képen látható narancs színű kábel pontosan oda csatlakozik. 

Miután csatlakoztatva lettek mindezek, az USB véget csatlakoztattam a laptopomhoz és esptool segítségével már kezdődhetett is a firmware feltöltés... kivéve, hogy a firmware feltöltéshez a panel másik oldalán levő ESP8266 GROUND és GPIO0 lábát össze kell kötni egy vezetékkel indításkor, majd meg kell szakítani, ezzel jelezzük neki, hogy firmwaret szeretnénk feltölteni. Vérprofik erre a célra ideiglenesen egy kapcsolót szoktak odaforrasztani. Kövezzetek meg, de én egy darab vezetéket és némi Bluetack-et használtam.

esp-12-pinout.png

Akinek a parancssori esptool nem nyeri el a tetszését, a NodeMCU PyFlasher is használható. Flashelés előtti hasznos parancs:

sudo ./esptool.py --port /dev/ttyUSB0 --baud 57600 flash_id
Ebből megtudható mennyi memóriája van a csatlakoztatott eszköznek.

A fenti parancs nekem kiugratta az ESP-t a flash üzemmódból, így újra kellett indítanom, ismét a GPIO0-GND kábellel játszva, hogy végre fel tudjam tenni az új programot rá.. ami egyébként az ESPEasy névre hallgat, az ESP eszköz memóriájától függő méretben tölthető le innen:

https://sourceforge.net/projects/espeasy/

Ez az eszköz 4MB-s így az "ESPEasy_R120_4096.bin" vezió látszott a legmegfelelőbbnek, szóval némi utánaolvasás és morfondírozás után kiadtam a parancsot:

sudo ./esptool.py --port /dev/ttyUSB0 --baud 57600 write_flash -fm dio 0x00000 ESPEasy_R120_4096.bin

Aztán persze eszembe jutott, hogy a read_flash paranccsal lementhettem volna az eredeti progamját, de úgyse szándékoztam használni felhő módban, így nem aggasztott nagyon a dolog. Kicsit szöszmötölt, majd miután végzett, lekapcsoltam a soros konverterről, vissza tápra és hamarosan felugrott egy ESP_0 nevű WIFI AP, ahol alap configesp jelszóval belépve a 192.168.4.1 IP címen be tudtam állítani a legfontosabb dolgokat mobiltelefonnal, pl hogy milyen WiFi-re csatlakozzon legközelebb. Jó hír, hogy sikeres firmware frissítés után már nem lesz szükség a soros konverterre, mert WiFi-n keresztül is lehet frissíteni a későbbiekben.
Az ESPEasy beállításairól majd egy más alkalommal írok bővebben, amire viszont hamar rájöttem, hogy sajnos ebben a WiFi kapcsolóban az ESP8266 egyik lábára sincs rákötve egyik relé sem, így tervem majdnem kudarcba fulladt.. de nem adtam fel, az ESPeasy ugyanis bővíthető pluginokkal.
Az ESP modul az érintőkapcsoló mellett levő PIC16F1829 MCU-val van összekötve, és ez végez gyakorlatilag mindent. A Yewelink android alkalmazás tanulmányozásával rájöttem, hogy a Tuya API-t licenszelte a Yewelink, és a Tuya volt olyan kedves, hogy a soros kommunikációs protokollját közzétette a weboldalán. Sajnos csak kínai nyelven, de a Google Translate sokat segített... Az ESPEasy Ser2Net plugin segítségével sikerült tesztelnem a soros parancsokat, majd elkészítettem a saját pluginom, amivel már Domoticz segítségével lehet kapcsolgatni wifin távolról a kapcsolót, akár automatizáltan is, valamint a Domoticz szerver megkapja az aktuális státuszát akkor is, ha valaki kézzel kapcsolja fel a világítást. (leírva milyen egyszerűnek és gyorsnak tűnik, ugye?)

Azok számára, akik haladók, mellékelem a plugin forrását is, illetve egy bináris fájlt középhaladók számára, a komplett ESPEasy 2.0 dev lefordított verziójával, ami tartalmazza a pluginomat is, ami "Serial MCU controlled switch" névre hallgat, és némi gyatra angol nyelvű leírást is próbáltam összehozni hozzá.

kiemelokeret_t.jpg

Letöltések:

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr4212607329

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.