ESPEasy firmware
2017. november 27. írta: eNeS

ESPEasy firmware

Ha röviden jellemeznem kellene, a firmware-ek svájcibicskája névvel illetném, segítségével programozói tudás nélkül, hosszas fejlesztgetés nélkül tudunk sokféle szenzort néhány kattintással életre kelteni.
Az első feltöltése persze kíván némi gyakorlatot... ám meglátásom szerint egy ESPEasy beállítása nem sokkal bonyolultabb, mint egy WiFi router beállítása. 

A firmware vagy mikroprogram olyan mely a hardver alapszintű funkcióit teszi elérhetővé magasabb szinten álló programok vagy driverek számára. Gyakorlatilag a hardver szükséges, beágyazott része, ami azonban a későbbiekben frissíthető, ezzel jó esetben új funkciókat, illetve a régi funkciók működésének javulását érhetjük el, illetve az intelligens, hálózatra kötött eszközök esetében a biztonsági hiányosságok foltozását.

Az ESPEasy az okoskütyükben méltán népszerű ESP8266 WIFI chipekre készült, gyakorlatilag bármelyikre feltölthetjük, egyesekben könnyebben, másokban nehezebben hozzáférhetőek a feltöltéshez szükséges RX/TX és tápfeszültséget szolgáltató csatlakozók. De természetesen ESP modulokat saját magunk is rendelhetünk, pl könnyen programozható, USB csatlakozóval szerelt fejlesztői panelként, amiből saját szenzorokat építhetünk.

A működőképes ESPEasy böngészőből elérhető felületet biztosít, ezen keresztül lehet mindent beállítani, valahogy így néz ki:

espeasy0.jpg

De haladjunk sorban, első körben letöltjük a szükséges binárist. (vagy a forrást, ha az Arduino fordítóval tudunk bánni)

A legutolsó stabil kiadás az 1.2, több mint egy éves:
http://www.letscontrolit.com/downloads/ESPEasy_R120.zip

Három bináris található benne, különböző méretű Flash memóriával szerelt ESP modulokhoz, meg a feltöltést segítő Windowson futó esptool.exe.
Képekkel segített bemutató van a letscontrolit honlapon, ami szemlélteti milyen kinézetű modulok, jellemzően mennyi memóriával szoktak árulni.
https://www.letscontrolit.com/wiki/index.php/Tutorial_ESPEasy_Firmware_Upload#Flash_size

Én azt javasolnám, ha lehetőségünk van vásárláskor választani 1MB alattit sose vegyünk, 1MB-osat is csak akkor, ha feltétlenül indokolt. (Vásárlási tipp: szoktak trükközni a bitekkel és bájtokkal 512KB=4Mbit, 1MB=8Mbit,4MB=32Mbit)
A 4MB-ossal könnyebb az élet, és a későbbi OTA (On-The-Air) frissítés, WiFi-n/böngészőn keresztül. De a lényeg most az, hogy a fájlnévben jelölik melyik bináris melyik méretűhöz való.

Az 1MB-os modulokkal is meg lehet oldani, de két lépésben, először az alábbi kis méretű firmware-t kell rátölteni, ami aztán be tudja húzni a nagyobbikat a helyére a következő lépésben:
https://www.letscontrolit.com/wiki/index.php/ESPEasy#2.0.2B_firmware_on_1MB_modules

A legújabb 2.x verzió még nem "stabil" kiadás, de azért ennek használatát javaslom, mivel nagyon sok javítás van benne az előző stabil kiadáshoz képest:
https://github.com/letscontrolit/ESPEasy/releases

Jelenleg az ESPEasy_v2.0.0-dev12.zip a legújabb, ezt kicsomagolva már többféle dolgot láthatunk, a 8285 végű bináris az ESP8266 kissebbik verziójához az ESP8285-höz való, ami pl a Sonoff Touch-ban, valamint az újabb Sonoff S20-akban is megtalálható. (Az S20-ak régebbi szériája 8266-os)
Ezen kívül 1MB (1024) és 4MB (4096) típusokhoz található kész bináris és mindezen verziókból van Normal/Test/Development verzió. A Normal a legkisebb csak egy alap plugin készlettel rendelkezik a Test-ben van pár működő, de még nem széleskörűen tesztelt plugin, a Dev-ben pedig vannak kísérleti, még alig tesztelt pluginok. Ezen felül szintén megtalálhatóak benne a Windows alatti flasheléshez szükséges alkalmazások.

Plugin: olyan programrész, mely az eredeti program nélkül nem működőképes, annak működését bővíti valamely új elemmel, esetünkben valamilyen új szenzor támogatása szerepel bennük. Ezt a plugint vagy az eredeti fejlesztőgárda, vagy nyílt forrású projekt lévén bárki készíthette.

Nem vagyok Windows hívő, szerencsére az esptool-t bármikor telepíthetném a Linuxom alatt is egy tárolóból, de a sokkal barátibb PyFlasher-t szoktam választani. (egyébként ez is elérhető Windowsra is) Jó hír, hogy immár az ESP8285-ök számára létfontosságú DOUT módot is támogatja! (Megjegyzés: Feltöltés előtt a GPIO0 lábat GND-re kell kötni.)
Az alábbi képen még a régi látható. Használata pofonegyszerű, kitallózzuk a letöltött firmware fájlt, kiválasztjuk az USB-soros csatlakozónkat a Serial port-nál, egy szimpatikus feltöltési sebességet választva (a 115200 általában jó) a Flash mode a 4MB-al szerelteknél általában "dio", ESP8285-nél mindig "dout" (pl S20!), kivéve ha más szerepel a chipen. Az "Erase flash" segítségével az eszközön levő korábbi konfigurációtól tudunk megszabadulni, pl Wifi jelszó, admin jelszó, stb..

nodemcu2.jpg

Feltöltés után újra kell indítani az eszközt, illetve ha USB csatlakozós NodeMCU rendszerű, akkor meg kell győződni róla, hogy nem adatkábellel vagy nem gazdaUSB-re van kötve, hanem 5V dugasztápra.

Ha mindent jól csináltunk meg fog jelenni egy ESP_Easy_0 nevű WiFi AP, a jelszava configesp.
Csatlakozzunk ehhez és böngészővel látogassuk meg a 192.168.4.1 weboldalt. Az alábbihoz hasonló listából válassszuk ki rajta a saját WiFi-nket és adjuk meg a jelszavunkat. (az eszközökön levő felhős gyári kínai firmware-ekkel ellentétben ez nyílt forrású, így meggyőződhetünk róla, hogy valóban nem gyűjti és továbbítja a jelszavainkat)
Fél percenként ellenőrzi, van-e élő WiFi kapcsolat, ha nincs, akkor megpróbálja a másodlagosként megadott AP-t elérni, ha ez sem megy, akkor visszaáll AP üzemmódba, ahol a fentihez hasonló módon érhető el, és állítható be újra. (Az alapértelmezett AP jelszót ezért érdemes átállítani!)

Gépünkkel újracsatlakozunk saját WiFi hálózatunkhoz és a routeren megkeressük a kiosztott DHCP IP címek listáján az új ESP eszközt.. majd ennek IP címét beütve a böngészőbe máris kezdhetjük a beállítását.

Az első menüpont a Main, ez töltődik be nyitóoldalként, és a cikk elején már bemutatott információkat jeleníti meg.

Config menü

Itt adható meg az eszköz neve, ami bármi lehet, de célszerű olyasmit választani, hogy később tudjuk azonosítani mi ez. :)

Fontos! A Unit Number értéke mindig egy 0-tól nagyobb (1-31), és a hálózatban egyedi szám legyen.. pl két 1-es számú ESP ugyanazon a hálózaton furcsa MQTT hibákat fog okozni.

Megadható egy elsődleges WiFi AP, illetve ha erre nem tud csatlakozni, egy másodlagos is, valamint ezek jelszava. Az AP mode key akkor fog kelleni, ha hosszabb időre elveszti mindkét AP-val a kapcsolatot, akkor az eszköz maga lép AP módba, amire ezzel a jelszóval tudunk rácsatlakozni, hogy konfiguráljuk. Ez alapbeállításban "configesp". Beállítható fix IP cím is, ami nagyban gyorsítja az indulási sebességet, illetve a DeepSleep mód, aminek bekapcsolásától óva intek mindenkit, aki most kezd ismerkedni az eszközzel, mivel ha nincs rendesen bekötve a szükséges csatlakozó, az eszköz bekapcsolás után pár másodperccel elérhetetlenné válik. Egyébként hozzáértők számára nagyon praktikusan csökkenti az energiafelvételt, akkumulátoros üzemhez nagyszerű.

espeasy_config.jpg

Controllers menü

Itt adható meg, milyen szerverek felé továbbítsa a begyűjtött adatokat. Egy időben háromfélét lehet felvenni az alábbiak közül:

  • Domoticz HTTP
  • Domoticz MQTT
  • ThingSpeak
  • OpenHAB MQTT
  • PiDome MQTT
  • EmonCMS
  • Generic HTTP
  • FHEM HTTP
  • Generic UDP

espeasy_cont.jpg

 

Hardware menü

Itt adható meg az egyes csatlakozók használati módja, pl mit használjon I2C kommunikációra, engedélyezzük-e az SPI-t, illetve hogy melyik csatlakozó milyen állapotban legyen bootoláskor. A PIN Led-et csak akkor válasszuk ki, ha konkrétan tudjuk, hogy egy LED van rákötve az adott GPIO-ra, mert ha rossz pint választunk lehet vehetjük elő ismét a kábeleket a flasheléshez.

espeasy_hw.jpg

Devices menü

Ez a legfontosabb rész, itt állíthatjuk be, hogy milyen eszközeink hová vannak kötve, és milyen gyakorisággal jelentsék az állapotukat. Az ESP korlátozott memóriája miatt 12-ben maximálták (4-es csoportokban 3 külön oldalon, a fent látható balra-jobbra nyilakkal lehet váltani köztük) a használható eszközök számát, ami forrásból történő fordítással növelhető egyébként. De most őszintén, 64 ezer bájtnyi műveleti és 96 ezer bájtnyi adattároló memóriával szemben ne legyenek túlzott elvárásaink, gondolom a kevéssé hozzáértőek is érzik, hogy egy DVD kapacitásához képest milyen kevés is ez. És mégis, a kütyü működik. Bármely kellőképpen fejlett technológia megkülönböztethetetlen a varázslattól! :)

espeasy_dev.jpg

A táblázatban láthatóak a legutóbb mért értékek is, de ez csak tájékoztató jellegű, csak kézzel lehet frissíteni, a végleges felhasználásuk valamely, Controllers részben megadott szerveren történik.

A támogatott eszközök sokfélék és egyre csak bővül a körük, a hivatalos lista itt található:
https://www.letscontrolit.com/wiki/index.php/Devices

Ám a letscontrolit fórumán nagyon sok új eszközzel kapcsolatban is találhatunk információkat, továbbá a PluginPlayground-ban több lelkes amatőr - többek között jómagam is - hozzájárul egyedi pluginokkal, további eszközök, funkciók elérésére.

Az eszközök beállításáról külön könyvet lehetne írni, de különösebben nem bonyult az eljárás, nézzünk két egyszerű példát, melyek talán a legnépszerűbbek:

DHT22 hőmérséklet-szenzor

A típus kiválasztása után meg kell adnunk a nevét az Enabled-et bepipálni, megadni melyik GPIO-ra kötöttük, az altípust is ki ki kell választani (DHT11/12/22), majd a Domoticz IDX-et, ami azonosítja a hőmérsékletmérőt a felvett MQTT eszközök között. Amennyiben a Controllers menüben be van állítva az MQTT szerver, van WiFi kapcsolat, akkor a Send to controller bepipálása után az ez alatt levő Delay rubrikában megadott másodpercenkénti gyakorisággal közli a szerverrel a mért értékeket.
A legalul levő két érték a hőmérséklet és páratartalom, melyhez társíthatunk nevet is, mellyel későbbi szabályokban hivatkozhatunk ezekre, illetve képlettel át lehet számolni, korrigálni, valamint meghatározni, hány tizedes pontossággal adja vissza a mért értéket. Legvégül a Submit menti el az eszközt. Látható, hogy különösebb programozói tudást a feladat nem igényel.

espeasy_dht.jpg

Mozgásérzékelő/kapcsoló/relé

Elsőre furcsának tűnhet, de mindezeket egy közös "Switch input" nevű plugin kezel, nevével ellentétben nemcsak bemenet, hanem kimenet is lehet. Gyakorlatilag minden kétállású eszközre jó lehet, ami egy adott GPIO állapotával vezérelhető, vagy arra adja vissza a státuszát. Pl a mozgásérzékelő logikai 1-et ad vissza, ha mozgás van, 0-át ha nyugalomba került. A kapcsolót logikai 1-el kapcsoljuk be, 0-val ki, stb, stb... (nyilván a mozgásérzékelőt nem akarjuk kimenetként használni azért)

Alább látható egy példa, egy mozgásérzékelővel, az előzőhoz hasonló módon megadjuk a nevét, a GPIO-t, amire az eszköz jelzi a státuszát. A típusa lehet dimmer, amivel egycsatornás többállású dimmert, vagy alapesetben kétállású kapcsolót készíthetünk. A gomb típusa normál kapcsolós, 0-ra aktív, vagy 1-re aktív lehet. A send boot state elküldi bekapcsoláskor az aktuális állapotát, ami praktikus.

espeasy_sw.jpg

A Send to Controllert is be kell pipálni, ha szeretnénk, hogy az IDX azonosítóval elküldje, ha mozgást észlel, majd a mozgás megszűnését is, egy alkalommal. (Nálam a képen azért nincs, mert egyéb szabályokkal történő feldolgozás után másképpen továbbítom az információt)
A Delay itt 0-án hagyható, ami azt jelenti, azonnal küldi az észlelést, nem bizonyos időközönként, mint a normál szenzorok esetén. További feldolgozáshoz nevet is adhatunk a változónak, majd Submit-al mentünk.

Notifications menü

Két egyszerű módon történő értesítés van implementálva jelenleg, egy GPIO-ra kötött csipogó-buzzer, vagy SMTP szerver megadása után e-mail küldésére van lehetőség. Igazából ezek a pluginok között voltak, azért lettek átemelve külön menübe, hogy ne foglalják a 12 db eszközhelyet.. no meg remélhetőleg, idővel több kommunikációs forma is rendelkezésre fog itt állni.

espeasy_not.jpg

Tools menü

Itt található több beállítás és diagnosztikát segítő menüpont. A reboot praktikus, ha a tápfeszültség elvétele nem annyira könnyen kivitelezhető (pl falba épített villanykapcsoló), de valamely beállítás érvényesítéséhez kellene. (pl Unit No szám módosítás)

A Log-ban megtekinthető a legutóbbi pár esemény, az Info egy összesítőt ad jelen állapotokról a Show JSON/Pin state buffer segítségével lekérhető a csatlakozók aktuális állapota, menedzselhető a Wifi is..
Az I2C Scan nagyon praktikus, ha engedélyeztük az I2C pineket a Hardware menüben és szeretnénk ellenőrizni, hogy a rá kötött eszközök működnek-e, vagy valamit elkötöttünk, kihagytunk egy felhúzó ellenállást, stb..
Elmenthetőek és visszatölthetőek a beállítások, a Flash memóriában létrehozott fájlrendszerbe is másolhatunk szükség esetén, de a legfontosabb a Firmware Load segítségével tudunk más firmware-t betölteni. (nemcsak ESPEasy-t, de akár Tasmotát vagy ESPurnát is)

espeasy_tool.jpg

Amit kihagytam a fentiekből még az Advanced pont, ahol további beállítások várnak ránk:

espeasy_adv.jpg

A legfontosabb a legelső "Rules", amit érdemes engedélyezni, ekkor jelenik meg a fenti menüben a Rules menü, ahol egyedi eseményvezérelt szabályokat írhatunk.
Ha az "Enable serial port" lehetőséget letiltjuk, a soros port számára fenntartott két csatlakozót más célra is ki tudjuk osztani az eszközöknél, ez is igen praktikus, ha egyébként nem használunk soros kommunikációt.

Rules menü

Egy elég szűkre szabott (új verzióban 4x) 2048 bájtnyi kód beírásával (itt jön képbe a korábban bemutatott eszközök és adatsoraik elnevezése, érdemes rövid nevet adni az eszközöknek, hogy több kód férjen) tudjuk saját szánk íze szerint alakítani az ESPEasy működését, a visszaadott értékeket további feldolgozásnak vethetjük alá, használhatunk időzítőket, más ESPEasy modulokkal kommunikálhatunk, több feltételtől függő eredményeket továbbíthatunk az MQTT szerver felé.. aránylag sok lehetőség közül választunk, és még mindig kevesebb munkával jutunk működő eszközhöz, mintha mindent saját magunknak kellene leprogramoznunk, hiszen egy működő keretrendszerbe dolgozunk.

A szabályok készítésére rengeteg példát találhatunk a neten, az alapsúgó:
https://www.letscontrolit.com/wiki/index.php/Tutorial_Rules

És egy konkrét példa, a Sonoff Touch szabályokkal történő kezelésére:
https://www.letscontrolit.com/wiki/index.php/Sonoff_Touch#ESP_Easy

A bejegyzés trackback címe:

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

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.

Bulerias 2017.12.13. 23:21:39

Szia!
Le tudom tíltani, hogy ne menjen AP módba ha tartósan elvesztette a Wifi-vel a kapcsolatot? Éjszakára kikapcsolom a wifi routert, de a local rule-ok persze dolgoznának továbbra is offline-ban, viszont nem szeretnék a feléledő AP móddal felesleges electrosmogot.
Nagyon jó a blog, csak így tovább! :)

eNeS 2017.12.14. 08:14:57

@Bulerias: Szervusz! Köszönöm, igyekszem! Az ESPEasy alapvetően aktív hálózati kapcsolatot feltételez, így 30 másodpercenként próbálkozik a kapcsolódással, ezt csak a forráskód átírásával lehet kikapcsolni, ami egy sor előre nem látható egyéb szövődményt okozhat. Írtam egy WifiMan nevű plugint egyébként, amivel rule-ból kikapcsolható a WIFI (így kevesebbet is fogyaszt) majd bekapcsolható rule-ból. Az AP módot is kiiktatja elvileg (erősen kísérleti még), a 4/1M bináris és a plugin forrás is elérhető itt: www.letscontrolit.com/forum/viewtopic.php?f=6&t=2846#p21151

Bulerias 2017.12.14. 13:54:56

Ki fogom próbálni az 1M-st, egy sima sonoff-ba lesz. Tudsz abban segíteni, hogy nézzen ki az a rule, ami ha elveszti a routert, akkor "modemsleep,1" mondjuk 1 percre. Utána ellenőrzi, hogy tud-e már csatlakozni, ha nem akkor alszik megint.
Az AP módot meg longpressel vagy reboottal lehetne kierőltetni, ha mégis szükség van rá.

eNeS 2017.12.14. 18:04:45

@Bulerias: jeleneleg semmi ilyesmi event nincs, amivel hasonlót tudnál csinálni. Annyit tudsz tenni, hogy ha éjszakára kikapcsolod a wifi routert, akkor egyúttal a modemsleepet is bekapcsolod, és a rule-ban tudsz pl reggel 6-ra állítani modemsleep,0-t. Hacsak valaki nem fejleszt ilyen plugint is. :) Kéne egy háttérben futó folyamat, ami figyelné a wifi állapotát és generálna egy event-et, ha elvész...

Bulerias 2017.12.17. 19:01:30

Az 1M-s binárishoz tudsz adni elérést? A fenti linken csak a 4M-s találtam.

eNeS 2017.12.17. 21:40:45

@Bulerias: Jogos, csak 4M-st fordítottam. Feltöltöttem egy 1M/128k SPIFFS verziót is. Van ötletem arra, hogyan lehetne a plugint bővíteni azzal, hogy generáljon egy Rule-ban érzékelhető eseményt is, de az AP mód kikapcsolására, úgy hogy közben kliensként próbáljon kapcsolódni néha, még nincs konkrét ötletem. www.letscontrolit.com/forum/download/file.php?id=1786

Bulerias 2017.12.26. 13:31:04

Szuper ez a 2 új lehetőség: KillAP,Wifistate. Számomra ezzel az espeasy tud egy teljesen egyedi módot, képes a rule-okkal offline eldolgolzni és wifi-ről konfigurálható marad.
A mostani update-d előtt úgy oldottam meg az AP mód elnyomást, hogy az IP cim 3. értékét figyeltem eventtel, ha elváltott "1" -ről, akkor AP módba ment, amit egy idő múlva modemslep-pel kilőttem. De ez mostantól még kifinomultabban kezelhető. Köszi!

csonkat 2018.07.26. 14:14:53

Készítettem egy r120-as binárist a saját WiFi azonosítómmal (Arduino IDE 1.8.5). Működik is rendesen. Viszont ha beleteszem az _R166_WifiMan.ino-t (github.com/letscontrolit/ESPEasyPluginPlayground) akkor a következő hibaüzeneteket kapom fordításkor:

Arduino: 1.8.5 (Windows 7), Alaplap:"Generic ESP8266 Module, 80 MHz, 40MHz, DOUT, 115200, 1M (128K SPIFFS), ck, Disabled, None"

C:\Users\csonkat\Desktop\ESPEasy\_P166_WiFiMan.ino: In function 'boolean Plugin_166(byte, EventStruct*, String&)':
_P166_WiFiMan:96: error: 'WifiIsAP' was not declared in this scope
if (WifiIsAP(WiFi.getMode())) {
^
_P166_WiFiMan:97: error: 'setAP' was not declared in this scope
setAP(false); // setWifiState(WifiDisableAP); // WifiAPMode(false);
^
C:\Users\csonkat\Desktop\ESPEasy\_P166_WiFiMan.ino: In function 'void setmodemsleep(byte)':
_P166_WiFiMan:214: error: 'tryConnectWiFi' was not declared in this scope
tryConnectWiFi(); // WiFiConnectRelaxed();
^
exit status 1
'WifiIsAP' was not declared in this scope

Mi lehet a hiba?

eNeS 2018.07.26. 19:29:19

@csonkat: Az, hogy a P166 az aktuális (2018. május) fejlesztői Mega változathoz készült. R120-ban nincs ilyen nevű funkció. De szerintem a többi sincs még benne, pl a tryconnectwifi() és az eggyel előbbi Wificonnectrelaxed() sem, ami valamikor év elején került az ESPEasy forrásba, majd ki onnan. Talán a legelső változat a pluginból még lefordul az ősi R120-on is: github.com/letscontrolit/ESPEasyPluginPlayground/commit/3a55e29f9536fb15106e4304fb1d2219180a1318#diff-0483b6c8b223915173dc69418faaa3c2

csonkat 2018.07.27. 08:34:10

@eNeS: Köszönöm. A Mega változattal sikeres lett a fordítás.

Elektro_atmel 2019.01.10. 09:22:32

Sziasztok! Ismerkedem az ESPEasy-vel, azt megfigyeltem, hogy a 2.0-ban a GPIO nem jól működik, ezt a készítőknek többen jelezték. De valami egyszerű leírás nincs arról, hogy hogy lehet összeszedni egy saját ESPEasy verziót, kihagyva azokat, ami nem kell? Nézegettem az angol leírásokat, de van még egy-két fehér folt. Köszi.

eNeS 2019.01.10. 18:41:28

@Elektro_atmel: szerintem nem a 2.0-ás verzióra gondolsz kompletten, csak a 2018 december 1 utáni development verzióra. Láttam én is, hogy átszervezik a GPIO kezelést, így nem frissítek, amíg azt nem véglegesítik. Nálam 2018. szeptemberi binárisok futnak és semmi baja. Arduinoval szoktam fordítani forrásból néha, a _Pxxx kezdetű pluginokból kitörlöm, amit nem használok, így kisebb lesz a bináris, legegyszerűbb módszer. De ha visszamész a githubon a tavalyi releasek közé, a 2018. szeptember környéki kész binárisokat minden további nélkül tudod használni szerintem...

Elektro_atmel 2019.01.16. 13:12:14

@eNeS: Köszi, most megnéztem a 20181214-est pl., abban a GPIO jónak néz ki. Arduino alól nem próbáltam fordítani, de kérdés:
- kicsomagolod egy mappába, és a _Pxx fájlokat egyszerűen törlöd? Meg a mappát átnevezed ESPEasy-re, és fordítás?
Köszi a segítséget

Elektro_atmel 2019.01.16. 13:31:37

Tehát, pl. nekem nem kell a 10-es, fényérzékelő, akkor a _P010...io fájlt törlöm a mappából és fordítom a "Lefordított bináris exportálása" ponttal? Vagy a _PPlugin.ino-t szerkesztem? Köszi

eNeS 2019.01.16. 18:39:17

@Elektro_atmel: Én át szoktam helyezni a nem kívánt pluginokat egy másik mappába, de a törlés is megteszi. :) Egyébként van egy pluginsets fájl, ahol be lehet állítani saját "szetteket", hogy melyik controller és melyik plugin kell, de egyszerűbbnek találtam a törléses megoldást. :)

Elektro_atmel 2019.02.01. 14:14:53

@eNeS: Én többször megpróbáltam , főleg ez alapján: www.letscontrolit.com/wiki/index.php/Tutorial_Arduino_Firmware_Upload , de csak nem akar összejönni. Nincs egy cicafarknyi leírás lépésről-lépésre, mert most mindig valami hibát dob.
Most pl. ilyeneket:
sketch\Commands/Common.h:28:27: error: 'IPAddress' has not been declared IPAddress dhcpIP,
^
sketch\Commands/Common.h: In function 'String Command_GetORSetIP(EventStruct*, const __FlashStringHelper*, const char*, byte*, int, int)':

sketch\Commands/Common.h:36:39: error: 'GetArgv' was not declared in this scope if (GetArgv(Line, TmpStr1, arg + 1)) {
^
sketch\Commands/Common.h:39:38: error: 'str2ip' was not declared in this scope if (!str2ip(TmpStr1.c_str(), IP)) {
^
és még egy csomó ilyet. Egyelőre csak egy teljesen alap fordítását akartam kipróbálni, de nem akar összejönni. Tudna valaki egy kicsit segíteni? Előre is köszi

Elektro_atmel 2019.02.02. 09:51:11

Vagy az is lehet, hogy nem a legújabb Arduino fejlesztőt kell használni? De ezek a hibaüzik deklarációs hibára utalnak, kellene még valami fájl?

eNeS 2019.02.02. 10:09:38

@Elektro_atmel: Nekem nem volt ilyen problémám a tavaly szeptemberi forráskód fordításával... lehet az ESP8266 core for Arduino nem megfelelő verzió hozzá, amit használsz, van béta 2.5 belőle meg a régi 2.4.1 amit én használok, meg a sok hibával rendelkező 2.4.2, és a régi stabil 2.3... aki instabil fejlesztői verzióval dolgozik, fel kell készülnie, hogy sok munka lesz a lefordítással. Az is lehet, hogy a napi build-ben van hiba, ezért szoktam régebbit használni...

Takimobil 2019.02.02. 13:00:17

Szia! Tudnál segíteni nekem, hogy lehet egyedi pluginokat feltölteni? Köszi

eNeS 2019.02.02. 18:15:12

@Takimobil: ha a kérdés az, hogy lehet egyedi pluginokat csatolni az ESPEasy-be, akkor úgy, be kell másolni az ESPEasy forrásai közé és újra kell fordítani. A platformio-t ajánlják fordításra: www.letscontrolit.com/wiki/index.php/Tutorial_building_and_uploading_with_platformio

fecus 2019.02.02. 18:51:46

Valaki tud megoldást a falban lévő sonoff kapcsoló R148 fw-ről "ESP_Easy_mega-20190116_minimal_ESP8266_1024_OTA.bin" verzióra frissítésre kiszerelés nélkül?
Ha jól értem onnan már tudnám OTA frissíteni a minimál verziókat!?

eNeS 2019.02.03. 09:53:43

@fecus: Van egy "ESPEasyUploaderMega" nevű bináris, ami elvileg erre való (két lépcsős frissítés 1MB eszközök számára), de mivel a régi stabil és a fejlesztői változat másképp kezeli a SPIFFS tárhelyet, elképzelhető, hogy feltöltés után megáll és nem fog AP módba lépni.. én kétszer is így jártam, azóta kizárólag Tasmotát teszek falba szerelt 1MB flashel rendelkező eszközökre.

Elektro_atmel 2019.02.03. 20:49:32

@eNeS: Szia, nem nagyon akarlak zavargatni a problémámmal, de vagy 6 verziót kipróbáltam, és mindnél szinte ugyanazok a hibák:
Pl.: In file included from C:\Users\User\Documents\Arduino\EspEasy\Command.ino:2:0:
sketch\Commands/Common.h:28:27: error: 'IPAddress' has not been declared
IPAddress dhcpIP,
^
sketch\Commands/Common.h: In function 'String Command_GetORSetIP(EventStruct*, const __FlashStringHelper*, const char*, byte*, int, int)':
sketch\Commands/Common.h:36:39: error: 'GetArgv' was not declared in this scope
if (GetArgv(Line, TmpStr1, arg + 1)) {
^
sketch\Commands/Common.h:39:38: error: 'str2ip' was not declared in this scope
if (!str2ip(TmpStr1.c_str(), IP)) {
^
és így tovább...

Szóval csináltam egy friss, üres Arduinot, leszedtem a 2018...mega.zip-et (többet is). A lib tartalmát bemásoltam az Arduino library mappájába, előtte mindent kitöröltem. Aztán az src könyvtárat a sketchek közé raktam, és átneveztem EspEasy-re. Majd az EspEasy.ino-ra álltam és "Lefordított bináris exportálása" menüpontot választottam. Előtte beállítottam az alaplapot Wemos D1 Mini-re, 115200, 4M (1M sniff), port, amire kell, és egy kis fordítás után ezek a hibák jönnek elő. Már megőrülök tőle, de akárhány változatot fordítottam, a hibák szinte ugyanazok.
Szeretnék kérni egy alap lib és src állományt, ami nálad lefordul, az Arduino verziószámával együtt, hogy nálam lefordul-e. De csak ha nem nagy kérés. Előre is köszönöm.
Itt is az IPaddress-t hiányolja, melyik definíciós fájl(ok) hiányozhatnak pl.?
Vagy a mega csomagból be kell még valamit másolni valahová?
Köszi előre is...

eNeS 2019.02.03. 22:50:06

@Elektro_atmel: Akárhogy olvasom amit írtál, nem látom benne, hogy feltetted volna a 2.4.1-es ESP alaplapot az Arduino alá, amit írtam pár napja. Az IPAddress abban van definiálva. Ha nem megy, amit szintén írtam Platformio-t kicsit feljebb, a feloldja a fordításnál a függőségeket...

fecus 2019.02.04. 09:22:56

@eNeS: Igen, akkor én is így jártam Arra jutottam, hogy a ESPEasyUploaderMega csak a 2-es verzió miniről-minire frissítést támogatja. Köszönöm. Akkor csavarhúzó.

Elektro_atmel 2019.02.04. 16:53:37

@eNeS: Szia! Az alaplap-kezelőben eltávolítottam a 2.5.0-béta-t, és feltelepítettem a 2.4.1-et, csak nem írtam, de megvolt. Azzal kezdtem.