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 program 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, esetleg 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:
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..
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ű.
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
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.
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! :)

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.
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.
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.
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)
Amit kihagytam a fentiekből még az Advanced pont, ahol további beállítások várnak ránk:
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:
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
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 2017.12.14. 13:54:56
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 2017.12.17. 19:01:30
eNeS 2017.12.17. 21:40:45
eNeS 2017.12.26. 10:46:03
Bulerias 2017.12.26. 13:31:04
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
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 2018.07.27. 08:34:10
Elektro_atmel 2019.01.10. 09:22:32
eNeS 2019.01.10. 18:41:28
Elektro_atmel 2019.01.16. 13:12:14
- 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
eNeS 2019.01.16. 18:39:17
Elektro_atmel 2019.02.01. 14:14:53
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
eNeS 2019.02.02. 10:09:38
Takimobil 2019.02.02. 13:00:17
eNeS 2019.02.02. 18:15:12
fecus 2019.02.02. 18:51:46
Ha jól értem onnan már tudnám OTA frissíteni a minimál verziókat!?
eNeS 2019.02.03. 09:53:43
Elektro_atmel 2019.02.03. 20:49:32
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
eNeS 2019.02.03. 22:51:23
fecus 2019.02.04. 09:22:56
Elektro_atmel 2019.02.04. 16:53:37
Gazso75 2019.02.26. 09:10:03
- Ha mozgás van és a lux<5 akkor kapcsoljon be 30secre a relay.
on PIR#Switch=1 do
if [LUX#Lux]<5
gpio,13,1
endif
endon
on Rules#Timer=1 do
timerSet,1,30
GPIO,13,0
Endon
nem akarja az igazságot :(
ki/be kapcsolgat
eNeS 2019.02.26. 18:13:18
on System#Boot do
gpio,13,0
endon
on PIR#Switch do
if [PIR#Switch]>0 and [LUX#Lux]<5
gpio,13,1
timerSet,1,30
endif
endon
on Rules#Timer=1 do
gpio,13,0
endon
Gazso75 2019.02.26. 20:34:31
eNeS 2019.02.27. 07:05:20
Vagy ha nem ez a baj, de a relé 5V-os, az mindent megmagyaráz.
bitekmindenhol.blog.hu/2018/03/13/elektronikus_kapcsolo_jelfogo_rele
Gazso75 2019.02.27. 10:30:21
eNeS 2019.02.27. 18:45:59
Gazso75 2019.02.28. 09:06:23
karolyia 2019.12.29. 18:50:10
kaphatok egy lua példát arra, hogy tudom beszúrni X eszközből a hőmérsékletadatot egy url végére? plusz még szeretném, ha 10sec intervallumban ismételné is.
nagyon nem megy a lua :(
addig jutottam, hogy bekapcsoláskor már tudok küldeni url parancsot. nem értem, hogy tudok beszúrni az url-be stringet. :((((
ennyi a tudományom:
commandArray = {}
if (devicechanged['LCD'] == 'On') then
os.execute ('curl -s "http://192.168.1.252/control?cmd=LCD,1,1,LCD:ON!!"')
end
return commandArray
eNeS 2019.12.29. 19:56:40
termcurl = 'http://192.168.1.100/control?cmd=event,exttemp='
sTemp, sHum = otherdevices_svalues['Eloszoba_homero']:match("([^;]+);([^;]+)")
commandArray['OpenURL'] = termcurl .. 'event,exttemp=' .. tostring(sTemp)
eNeS 2019.12.29. 19:57:19
sTemp, sHum = otherdevices_svalues['Eloszoba_homero']:match("([^;]+);([^;]+)")
commandArray['OpenURL'] = termcurl .. tostring(sTemp)
karolyia 2019.12.29. 20:35:12
termcurl = 'http://192.168.1.252/control?cmd=LCD,1,14,'
sTemp = otherdevices_svalues['Puffertartály_hőmérséklet']:match("([^;]+)")
commandArray['OpenURL'] = termcurl .. tostring(sTemp)
karolyia 2019.12.29. 20:41:27
Error: EventSystem: in Script #2: [string "termcurl = 'http://192.168.1.252/control?cmd=..."]:2: attempt to index field 'Puffertartaly_homerseklet' (a nil value)
eNeS 2019.12.29. 20:50:26
sTemp = otherdevices_svalues['Puffertartály_hőmérséklet']:match("([^;]+)")
Ahogy én írtam, két paraméterrel, úgy működik, ha egy Temp+Humidity típusú eszközből kell kinyernie a hőmérsékletet és a páratartalmat. Ha csak egy paramétere van, mert Temp típusú az eszköz, akkor felesleges a mókolás, úgysincs ; a végén. Másrészt lehet hogy nem ez a neve az eszközödnek, azért ad vissza nil értéket... Print -el érdemes kiíratni a változók értékét, ha vaktában lövöldözöl és nem tudod mi nem megy.
karolyia 2019.12.29. 21:42:46
itt tartok, de még mindig üres:
commandArray = {}
if devicechanged['Puffertartály hőmerséklet'] then
termcurl = 'http://192.168.1.252/control?cmd=LCD,1,1,'
sTemp = otherdevices_svalues['Puffertartály hőmerséklet']:match("[^]")
print ("Puffer:", sTemp)
commandArray['OpenURL'] = termcurl .. tostring(sTemp)
end
return commandArray
karolyia 2019.12.29. 21:54:42
karolyia 2019.12.29. 23:02:00
sTemp = otherdevices_svalues['Puffertartály hőmérséklet']:match("[^]")
print ("Puffer:", sTemp)
commandArray['OpenURL'] = termcurl .. tostring(sTemp)
az eszköz nevét próbáltam ékezet nélkül, alsóvonással szóköz helyett, de semmi :(
eNeS 2019.12.31. 09:42:06
sTemp = otherdevices_svalues['Puffertartály hőmerséklet']
karolyia 2020.01.02. 17:18:56
Kodmen 2020.01.04. 09:12:30
Így adom át a kijelzőnek a hőmérsékletet a Nextion eszköz lapján:
page0.vHo.txt="[Status#Hom_0]"
És így venném vissza:
Status#Hom_1="page0.vHoc0.val"
A Hoc0 numerikus érték (mivel növelni csökkenteni kell a gombokkal), lehet, hogy ezzel van a baj? Convertálnom kellene előbb txt-be? Vagy az átadási metódus nem jó? Milyen paranccsal kellene próbálkozzam? Nem találtam ilyen leírást angolul sem eddig.
Köszönöm & BUÉK!
eNeS 2020.01.04. 10:15:14
Kodmen 2020.01.04. 10:39:44
Nagy előnye lenne ennek a Nextionos megoldásnak, hogy laikus számára (édesanyámék) is könnyen kezelhető lenne, és nem vesznének el a menüben.
Ha betölt az oldal, látni fogod, hogy miről szól a leírás: domoticz-ra kötött kijelző, amin a fűtésszabályozás mellett látszik a termelt napenergia mennyisége és egyéb dolgok is. Mivel nincs ott a teljes kód, fájlok, így persze akár kamu is lehet, csak szépen mutat, de nem is működik. Itt szépen működik:
www.youtube.com/watch?v=CjZeMiXYrWU
Sajnos nem ESPEasy-vel, hanem arduino IDE-vel. Kezdem azt érezni, hogy nem nyerek annyit az ESPEasy könnyebb webes elérésével, mint amennyit bukok azzal, hogy nincs a Nextion-hoz jó leírás. Persze azért jó, hogy egy csomó kódot nem kell megírni, beilleszteni, testre szabni, de azért vannak korlátai, főleg, ha a plugin nem kellően dokuemtált. De lehet, hogy én várok sokat, mivel Testing pluginről van szó... Megnézem a fórumot, hátha találok infót.
Ha van még ötleted, szívesen fogadom, az eddigieket pedig köszönöm!
lt1977 2020.05.20. 15:30:02
kipróbálnám az ESPEasy firmware-t viszont még nem látok mindent tisztán először is a plugin rész az a program egy olyan része ami módosítható tehát nem egy külön (utólag) cserélhető része hanem a programot vissza kell fordítani forrásra és azon belül változtatni a plugint majd azt ismét bin-re fordítva feltölteni jól gondolom ? A másik ami még nem tiszta a firmware mérete, ha egy 4megás modulom van, csak a 4 megás méretűt tölthetem rá vagy az 1megás is rá mehet és nem lesz működésbeli problémája, mert méretileg nem látok különbséget a file-k között ?
Ami még érdekelne hogy ha ezt egy PLC-vel akarnám összekötni lehetséges a soros kommunikáción keresztül egy szintillesztővel, tudnám olvasni a plc-ből az adatokat és wifin keresztül figyelni ?
köszi előre is
eNeS 2020.05.20. 19:02:39
lt1977 2020.05.26. 12:59:28
Kommentezéshez lépj be, vagy regisztrálj! ‐ Belépés Facebookkal