Sonoff és a myIO

Sok esetben jól jön egy WIFI-s relé, vagy egy Wifis kapcsoló. Például, ha elfelejtettünk bevezetékezni valamit, de a burkoló, már végzett és a festő is távozott. Esetleg túl messzire kellene behúzni a vezérlő szálat, például egy távoli kapuhoz. Vagy már kész a ház, hagyományos módon vezetékezve, de azért szeretne néhány dolgot okosítani. Ezekre remek megoldás lehet például a Sonoff termékcsalád. Ezek a termékek igen olcsón beszerezhetőek itthon is, de kínából még olcsóbban. Egyetlen probléma velük, hogy a szoftverük eléggé korlátolt, nagy mértékű kiszolgáltatottságot jelent az egész házra nézve. Kizárólag internet kapcsolattal érhetők el és ebből adódóan biztonsági kockázatot is jelentenek a belső hálózatunkra.
Ezeknek a remek termékeknek kihasználhatjuk az adottságait, csak a programjukat kell felülírni.
A következő projektben megmutatjuk, miként lehet felhasználni ezeket az eszközöket a myIO Server-hez.
sonoff_touch

Sok felesleges szenvedéstől kímélhetjük meg magunkat, ha leteszteljük a vásárolt eszközöket még a gyári szoftverükkel. Kipróbálhatjuk, hogy minden hardware működik rendesen és megtudhatjuk a firmware-jük verziószámát is. Figyelem! Az applikáció felajánlhatja a firmware frissítését, ezt véletlenül sem kell elfogadni egyenlőre!!! Előfordulhat ugyanis, hogy frissebb verzióknál megszüntetik a lehetőségét annak, hogy szétszerelés, forrasztás nélkül tudjuk programunkat feltölteni az eszközre.

eWeLink

Regisztráció
  1. Töltsük le a hivatalos eWeLink nevü alkalmazást telefonunkra az appStore-ból, vagy a PlayStore-ból
  2. Amennyiben még nincs regisztrációnk, úgy regisztráljuk a jobb alsó ‘Register’ gomb megnyomásával
  3. Válasszuk ki az országot és nyomjuk meg a ‘Next’ gombot.
  4. Adjuk meg az e-mail címünket, majd nyomjunk a ‘Next’ gombra.
  5. Ekkor kiküld a rendszerük egy e-mail-t a megadott e-mail címre, amiben egy négyjegyű ellenörző kód található. Ezt a négyjegyű kódot következő oldalon a legfelső sorba (…verification code…) kell beírni, majd meg kell adnunk kétszer a saját (legalább 8 jegyű) jelszavunkat.

Ha kész vagyunk jelentkezzünk be az e-amil címünk és a jelszavunk használatával.

Párosítás
  1. Sonoff eszközünket kapcsoljuk be és legyen annak a routernek a hatósugarában, amelyiken alkalmazni szeretnénk.
  2. Telefonunkkal csatlakozzunk arra a wifi hálózatra, amelyiken majd az eszközünket alkalmazni szeretnénk.
  3. eWeLink applikációnkon nyomjuk meg a ‘+’ ikont középen alul
  4. ‘Quick Pairing mode’ legyen kiválasztva, majd nyomjuk meg az eszközünkön a ‘párosítás gombot’ (wifi ikonnal van jelölve) és tartsuk lenyomva addig, amíg az eszközön található led kétszern nem villan, majd folyamatos villogásba nem kezd (körülbelül 5 másodperc)
  5. Nyomjuk meg a ‘Next’ gombot.
  6. Az aktuális wifi neve fog megjelenni a Wifi name mezőben, amennyiben megfelel, adjuk meg a wifi jelszavát És nyomjuk meg a ‘Next gombot’.
  7. Amennyiben sikeresen megtalálta az applikáció az eszközt, úgy kérni fogja, hogy nevezzük el, majd nyomjuk meg a ‘Complete’ gombot.
Tesztelés

Ha a párosítással végeztünk megjelenik az eszközünk az eWeLink applikáció kezdőoldalán, rákkatintva arra a sorra mellyet tesztelni szeretnénk megjelennek az eszközhöz tartozó elemek. Teszteljük le, hogy működik-e minden. A jobb felső sarokban található ‘…’ ikon kidob egy kis menüt, mellyből a ‘Setting’-et választva megtudhatunk minden információt az eszközünkről. Ezeket célszerű lementeni, akár képernyő fotóként, akár lejegyzetelni.

Miután leteszteltük a Sonoff eszközünket, ki kell cserélnünk benne a működtető szoftvert. A legegyszerűbb módja a Sonoff eszközök firmware-ének kicserélésére, ha a wifi-n keresztül végre tudjuk hajtani (OTA- Over The Air). Ha ez a lehetőség valamiért nem működik (például áramszünet frissítés közben, vagy túl magas firmware verzió szám a terméken), akkor a soros porti felprogramozás minden képpen eredménnyel járhat (erre késöbb térünk ki).

PIP

Firmware

OTA (Over The Air)

Ezen leírás alapjául szolgáló leírások itt és itt találhatóak meg angol nyelven. Ahhoz, hogy wifi-n keresztül fel tudjunk tölteni programot a Sonoff termékünkre, szükségünk lesz egy wifi-s számítógépre és néhány segédprogramra:

  1. python – innen letölthető a hivatalos verzió. Le kell tölteni, fel kell telepíteni.
  2. pip – ez a python csomagkezelője, 3.4-es verzió felett már alapból feltetelpül a python-nal együtt, egyébként innen tölthető le.
  3. Természetesen a firmware-re, amit fel szeretnénk tölteni az eszközünkre. Ennek az eszközünkhöz megfelelőnek kell lennie. A myIO Sonoff firmware itt található.
  4. SonOTA – Ezzel a programmal tudjuk feltölteni az új firmware-t a Sonoff termékünkre. Windows-hoz innen tölthető le exe formátumban (tartalmazza a myIO sonoff firmware-t is). Egyébként telepítsük a következő képen:

SonOTA (OSX,Unix)

Nyissunk egy terminál ablakot és a következő $ előjellel rendelkező sorok begépelésével telepítsük a SonOTA-t.

$ mkdir -p ~/src/
$ cd ~/src/
$ git clone https://github.com/mirko/SonOTA.git
Cloning into 'SonOTA'...
remote: Counting objects: 284, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 284 (delta 2), reused 0 (delta 0), pack-reused 278
Receiving objects: 100% (284/284), 1.29 MiB | 1.63 MiB/s, done.
Resolving deltas: 100% (160/160), done.
$ cd SonOTA
$ pip3 install -r requirements.txt
Downloading httplib2-0.10.3.tar.gz (204kB)
100% |████████████████████████████████| 204kB 2.4MB/s
Collecting netifaces>=0.10.6 (from -r requirements.txt (line 2))
Downloading netifaces-0.10.6.tar.gz
Collecting tornado>=4.5.1 (from -r requirements.txt (line 3))
Downloading tornado-4.5.3.tar.gz (484kB)
100% |████████████████████████████████| 491kB 1.8MB/s
Building wheels for collected packages: httplib2, netifaces, tornado
Running setup.py bdist_wheel for httplib2 ... done
[...]

Amennyiben probléma támadna, kapcsoljuk ki a tűzfalat.

myIO Sonoff image

Töltsük le a myIO Sonoff firmware-t a /SonOTA/static könyvtárába felülírva az image_arduino.bin -fájlt.

$ cd ~/src/SonOTA/static
$ curl -fsSL https://github.com/SmarthomeNinja/Sonoff/releases/download/0.6/sonoff_touch_0_6.ino.esp8285.bin -o image_arduino.bin

Amennyiben probléma támadna, kapcsoljuk ki a tűzfalat.

 

Firmware feltöltésének menete

Ha idáig eljutottunk, fel van telepítve a SonOTA, a SonOTA/static könyvtárban található a felülírt image_arduino.bin (ez a myIO Sonoff firmware).
Kapcsoljuk be SonOFF eszközünket és indítsuk el  a sonota.py (vagy windows alatt a sonota.exe) programot.

$ cd ~/src/SonOTA/
$ ./sonota.py

Current IPs: ['192.168.1.203']Select IP address of the WiFi interface:
0: 192.168.1.203
Select IP address [0]:

Itt a saját IP címünket ajánlja fel a program, itt általában egy lehetőség jelenik meg, ha nem, akkor azt a lehetőséget kell választani, emelyikhez tartozó IP cím ahhoz a wifi routerünkhöz tartozik, amelyikkel majd a Sonoff termékünket használni kívánjuk. Írjuk be a számát (jelen esetben ‘0’) és nyomjunk egy enter billenytűt.

WiFi SSID:

Ez után a program a wifi-nk SSID-jét kéri. Írjuk be a wifi-nk nevét és nyomjunk egy enter billentyűt.

WiFi Password:

Adjuk meg a wifi-nkhez tartozó jelszót (password), majd nyomjunk egy enter billentyűt.

Using the following configuration:
Server IP Address: 192.168.1.203
WiFi SSID: MikroTik-B3FF96
WiFi Password: ********
Platform: darwin
** Now connect via WiFi to your Sonoff device.
** Please change into the ITEAD WiFi network (ITEAD-100001XXXX). The default password is 12345678.
To reset the Sonoff to defaults, press the button for 7 seconds and the light will start flashing rapidly.
** This application should be kept running and will wait until connected to the Sonoff...

Most a Sonoff eszközünket “pairing mode”-ba  kell tenni. Ezt általában az eszközön található gombbal, vagy érintőgombbal lehet elérni. A gomb 5-7 másodpercig tartó nyomásával az eszköz párosító módba vált, ezt általában fény és hangjelzés kíséri. Előfordúlhat, hogy a gomb mégegyszeri 5-7 másodpercig tartó nyomására kerül igazából párosító módba. Ezt úgy tudjuk ellenőrizni, hogy sikerült-e, hogy a számítógépünk wifi hálózatok keresésekor megjelenik egy ITEAD-100001XXXX nevü SSID.
Ha megvan kapcsolódjuk hozzá a laptoppal, használjuk az 12345678 jelszót.

Current IPs: []..Current IPs: ['10.10.7.2']~~ Connection attempt
>> HTTP GET /10.10.7.1/device
<< { "deviceid": "100020f47c", "apikey": "a0e98183-88a0-4275-afb9-255dcc5f3fb5", "accept": "post" } >> HTTP POST /10.10.7.1/ap
>> {
"version": 4,
"ssid": "MikroTik-B3FF96",
"password": "***********",
"serverName": "192.168.1.203",
"port": 8443
}
<< {
"error": 0
}
~~ Provisioning completed
Starting stage2...
** The IP address of (192.168.1.203) is not assigned to any interface on this machine.
** Please change WiFi network to MikroTik-B3FF96 and make sure 192.168.1.203 is being assigned to your WiFi interface.
** This application should be kept running and will wait until connected to the WiFi...
..

Ezek után amikor a számítógépünk lelép a wifi hálózatról, csatlakozzunk fel arra a wifi-s hálózatra, amelyiket fentebb megadtunk.

Current IPs: ['192.168.1.203']~~ Starting web server (HTTP port: 8080, HTTPS port 8443)
Using selector: KqueueSelector
~~ Waiting for device to connect


*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.
.....

Ekkor beindul az első feltöltés. Néhány másodpercig tart, majd a végén a következő felirat jelenik meg:

~~~ device acknowledged our action request (seq 1555512958426) with error code 0
..................
*** IMPORTANT! ***
** AFTER the first download is COMPLETE, with in a minute or so you should connect to the new SSID "FinalStage" to finish the process.
** ONLY disconnect when the new "FinalStage" SSID is visible as an available WiFi network.
This server should automatically be allocated the IP address: 192.168.4.2.
If you have successfully connected to "FinalStage" and this is not the IP Address you were allocated, please ensure no other device has connected, and reboot your Sonoff.

Ekkor a wifi hálózatok között egy ‘FinalStage’ SSID lesz található, mellyhez kapcsolódva beindúl a második része a feltöltésnek.
..Current IPs: []....Sending file: /ota/image_arduino.bin
.Current IPs: ['192.168.4.2']


The "FinalStage" SSID will disappear when the device has been fully flashed and image_arduino.bin has been installed.
If there is no "Sending file: /ota/image_arduino.bin" log entry, ensure all firewalls have been COMPLETELY disabled on your system.
......200 GET /ota/image_arduino.bin (192.168.4.1) 14110.14ms
.......Current IPs: []No longer on "FinalStage" SSID, all done! Now connect to the sonoff-#### SSID and configure for your WiFi (it will not be configured).

Amint ezzel végzett a fenti felirat jelenik meg. Ezzel a myIO Sonoff firmware felkerült a Sonoff eszközünkre. Úgy ellenőrízhetjük, hogy sikerült-e, hogy ezek után megjelenik a wifi-s hálózatok között egy MYIO_AP-xxxxxxx SSID-jű hálózat. Ha valamilyen hibába futottunk, kapcsoljuk ki a tűzfalat és próbáljuk újra.

myIO Sonoff Web-file-ok

Most fel kell töltenünk még a webes megjelenítéshez szükséges file-okat a Sonoff termékünk SPIFFS tárhelyére. Ehhez fel kell csatlakoznunk a MYIO_AP-xxxxxxx SSID-vel jelzett wifi hálózatra az 12345678-as jelszóval, majd a következő parancssorok segítségével fel kell töltenünk a file-okat.

A parancssorok ‘–user’ paramétere után a felhasználónév – jelszó párost kell megadni, ami alapbeállításként admin:a, majd a feltöltendő file elérési útvonala következik (ezeket akár le is tölthetjük innen), majd a Sonoff termékünk IP címe következik.

$ curl --user admin:a https://raw.githubusercontent.com/SmarthomeNinja/Sonoff/0.6/myIO_Sonoff_ENG/config.htm http://192.168.8.1/
$ curl --user admin:a https://raw.githubusercontent.com/SmarthomeNinja/Sonoff/0.6/myIO_Sonoff_ENG/favicon.ico http://192.168.8.1/
$ curl --user admin:a https://raw.githubusercontent.com/SmarthomeNinja/Sonoff/0.6/myIO_Sonoff_ENG/style.css http://192.168.8.1/
$ curl --user admin:a https://raw.githubusercontent.com/SmarthomeNinja/Sonoff/0.6/myIO_Sonoff_ENG/setup.htm http://192.168.8.1/

myIO Sonoff Konfigurálás

Csatlakozzunk a MYIO_AP-xxxxxxx SSID-jű wifi hálózathoz az 12345678-as jelszóval és lépjünk be az eszközünkbe a böngészőnk segítségével a 192.168.8.1-es IP címen. Itt meg kell említeni, hogy az eszköznek alapbeállítása a Smarthome.ninja SSID-jű hálózathoz történő csatlakozás ‘password’ jelszóval. Ha létrehozunk egy ilyet, akkor ahoz kapcsolódva a 192.168.1.162-es IP címen érhető el az eszköz.

Ekkor a szoftver kérni fogja, hogy állítsunk be egy felhasználónév-jelszó párost, mellyhez a további belépésekkor lesz szükségünk. Ezt jegyezzük fel, mert későbbi konfiguráláskor szükség lehet rá, ha elveszik körülményes újratelepíteni az eszközt.

Amennyiben később meg szeretnénk változtatni a felhasználónév – jelszó párostunkat, úgy belépés után az eszközünk IP címe/config (pl 192.168.8.1/config) URL böngészőbe történő írásával megtehetjük.

Most már konfigurálhatjuk az eszközünket a belépési IP címen (192.168.8.1).

WIFI

A Wifi résznél kell beállítani azt a wifi hálózatot, amelyikhez a Sonoff rendszerünket csatlakoztatni kívánjuk. Addjuk meg az SSID-jelszó párost, majd adjunk meg az eszközünknek egy használaton kívüli IP címet, abban a tartományban, amit használunk. Ez általában 192.168.1-el kezdődik, de a routerünk IP címéből kiderül. A Wifi Gateway-hez adjuk meg a routerünk IP címét, ez általában 192.168.1.1. A Subnet mask-ot nem kell állítani. Az ‘OTA disabled’-et kipipálhatjuk, ha le akarjuk tíltani az eszközünk wifi-n keresztül történő firmware frissítését. Ezt biztonsági okokból javasolt kipipálni, a későbbi frissítéskor majd be lehet kapcsolni.

Ha ezzel megvagyunk a ‘Restart’ gombbal indítsuk újra Sonoff eszközünket (kb 30 másodperc). És csatlakozzunk fel a saját hálózatunkra. próbáljuk ki, hogy a megadott IP címen bejelentkezik-e az eszközünk.

AP

Az AP résznél lehet az eszközünk AccesPoint beállításait menedzselni. A ‘Hidden AP SSID’ kipipálásával elrejti, kikapcsolja  az AccesPoint SSID-jének a sugárzását, így nem lesz zavaró, illetve kiváncsi szemek nem látják. Átnevezhető, de célszerű feljegyezni, mivel, ha elrejtjük, csak az ismeretében lehet felcsatlakozni rá később. Adhatunk neki új jelszót is. Illetve IP címet, de azt nem javasolt, legfeljebb biztonsági szempontokból. 

 

REPEATER

Amennyiben több myIO firmwarrel rendelkező wifi-s eszközünk van, úgy megtehetjük, hogy az eszközt átjátszóként (repeater) is használjuk. Ezt úgy kell beállítani, hogy a távoli eszközünk (amely már nem látja a wifi-nket, de látja még az egyik myIO firmware-rel rendelkező wifi-s eszközünket-továbbiakban ‘repeater’) Wifi-jét a repeater AP-jére kell állítani, mind az SSID-t, mind a Password-jét. Ilyenkor az eszköz úgy csatlakozik a repeater-hez, mintha a routerhez csatlakozna. Ne felejtsük el beállítani a WIFI IP címét is az AP tartományába (pl. 192.168.8.2). És a Gateway-t is beállítani aaz AP IP címére (192.168.8.1). Továbbá szükséges az AP IP (192.168.8.1) címét felvenni egy IO-Valet IP címéhez. Erre azért van szükség, mert az eszköz csak hitelesített IP címekről fogad el parancsokat, így megnehezítve az esetleges támadók dolgát.

 

Relék

A ‘Relay’ résznél tudjuk beállítani, a Sonoff eszközünkön, hogy melyik relé, melyik myIO szerver, melyik reléje legyen. Ehez először is teszteljük le a Pulse gombbal, hogy fizikailag, melyik relét állítjuk. Amennyiben a Sonoff eszközünk kevesebb, mint négy relével rendelkezik, úgy a többi relé beállítás nem funkcionál. A ‘Pulse’ gomb megnyomásával hallhatjuk a Sonoff eszközünkben egy pillanatra behúzó relé kattogását, a Sonoff touch-on egyik led felvillanását. Ezek után nincs más dolgunk, mint az első rublikába beírni a myIO szerverünk IP címét, a második rublikába pedig annak a relének az ID-jét (1-64), amelyik kimenethez szeretnénk hozzácsatolni az adott relét.

Ne felejtsük el a myIO szerverünk általános beállításainál bekapcsolni a broadcast funkciót.

Teszteljük le a myIO szerverünkön a relé bekapcsolásával, hogy működik-e a Sonoff eszközünk relé kimenete. Innentől kezdve, olyan mintha be lenne vezetékelve a relé a myIO rendszerünkbe, használhatjuk minden funkcióját, kapcsolhatjuk bármely bemenetről, automatizálhatjuk, vagy vezérelhetjük szenzorral is, illetve a szokásos módon használhatjuk az applikációs felületről is.

 

 

IO-Valet

Amennyiben gomb is található a Sonoff eszközünkön, úgy használhatjuk a gombo(ka)t a myIO szerver bemeneteként. Ilyenkor meg kell adnunk a gombhoz tartozó myIO szerver IP címét, a szerverhez tartozó felhasználónév és jelszó párost. Akár minden gomb más-más szerver vezérlése is megoldható, ilyenkor minden vezérelni kívánt szerver paramétereit meg kell adni.
Biztonsági okokból célszerű a myIO szerveren létrehozni egy külön felhasználót (pl.Sonoff) és ennek a felhasználónak csak azon bemenetekhez adni jogot, amit vezérelni fognak az eszközök, így ha feltörik vagy ellopják az eszközünket legfeljebb az ehez a felhasználóhoz férhetnek hozzá a hackerek.
Ennél a résznél lehet még hozzáadni IP címeket (nem kell a felhasználónév-jelszó párost megadni), ezek az IP címek lesznek hitelesítve az eszköz számára, más IP címekről érkező információkkal nem fog törődni. Viszont repeater üzemhez mindenképpen szükség van erre az opcióra.

Input

A Sonoff eszközökön lévő gombok beállításaira szolgál ez a rész.

Az IO-Valet részben megadott szerver ID-je kerül az első rublikába, ezzel megadva, hogy a gomb melyik szervert fogja vezérelni. A második részbe a myIO szerverünk, azon a bemenetének ID-jét kell írni, amelyik bemenetként szeretnénk használni.

Innentől kezdve a myIO szerverünkön állíthatjuk, hogy mit csináljon a bemenet.

 

Shopping Basket