{"id":33046,"date":"2019-10-31T21:50:27","date_gmt":"2019-10-31T18:50:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vizualnoe-programmirovanie-dlya-sonoff-basic\/"},"modified":"2019-10-31T21:50:27","modified_gmt":"2019-10-31T18:50:27","slug":"vizualnoe-programmirovanie-dlya-sonoff-basic","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","title":{"rendered":"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/0682cb274648d8a8d16b17bced0116d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nCikk arr\u00f3l, hogyan alak\u00edthatunk egy olcs\u00f3 k\u00ednai eszk\u00f6zt programozhat\u00f3 logikai vez\u00e9rl\u0151v\u00e9. Az ilyen eszk\u00f6z\u00f6k alkalmazhat\u00f3ak otthoni automatiz\u00e1l\u00e1sban \u00e9s iskolai informatika gyakorlati \u00f3r\u00e1k sor\u00e1n.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<em>A t\u00e1j\u00e9koztat\u00e1s kedv\u00e9\u00e9rt, alap\u00e9rtelmez\u00e9s szerint a Sonoff Basic program mobilalkalmaz\u00e1son kereszt\u00fcl m\u0171k\u00f6dik egy k\u00ednai felh\u0151szolg\u00e1ltat\u00e1ssal, az aj\u00e1nlott \u00e1talak\u00edt\u00e1s ut\u00e1n minden tov\u00e1bbi interakci\u00f3 ezzel az eszk\u00f6zzel b\u00f6ng\u00e9sz\u0151n kereszt\u00fcl v\u00e1lik lehet\u0151v\u00e9.<\/em> <\/p>\n<h2>I. r\u00e9sz. A Sonoff csatlakoztat\u00e1sa az MGT24 szolg\u00e1ltat\u00e1shoz<\/h2>\n<p><\/p>\n<h3>1. l\u00e9p\u00e9s. Vez\u00e9rl\u0151panel l\u00e9trehoz\u00e1sa<\/h3>\n<p>\nRegisztr\u00e1ljon a k\u00f6vetkez\u0151 weboldalon <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\">mgt24<\/a><\/noindex> (ha m\u00e9g nem regisztr\u00e1lt) \u00e9s l\u00e9pjen be a fi\u00f3kj\u00e1ba.<br \/>\n<b class=\"spoiler_title\">Bejelentkez\u00e9s<\/b><img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/e9b310a7cb7d2da90ac8161407944a8c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA \u00faj eszk\u00f6z vez\u00e9rl\u0151pultj\u00e1nak l\u00e9trehoz\u00e1s\u00e1hoz kattintson a &#171;+&#187; gombra.<br \/>\n<b class=\"spoiler_title\">P\u00e9lda a panel l\u00e9trehoz\u00e1s\u00e1ra<\/b><img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/dc10d7009ea65c72714c2ccd2314ed0b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMiut\u00e1n a panel l\u00e9trej\u00f6tt, megjelenik a paneleinek list\u00e1j\u00e1ban.<\/p>\n<p>A l\u00e9trehozott panel \u201eTelep\u00edt\u00e9s\u201d f\u00fcl\u00e9n tal\u00e1lja az \u201eEszk\u00f6z ID\u201d \u00e9s \u201eHiteles\u00edt\u00e9si kulcs\u201d mez\u0151ket, ezek az inform\u00e1ci\u00f3k sz\u00fcks\u00e9gesek a Sonoff eszk\u00f6z be\u00e1ll\u00edt\u00e1s\u00e1hoz.<br \/>\n<b class=\"spoiler_title\">A f\u00fcl p\u00e9ld\u00e1ja<\/b><img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/f6cc6f1f469c6278c38c4c63288d9ba2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>2. l\u00e9p\u00e9s. Az eszk\u00f6z \u00fajraprogramoz\u00e1sa<\/h3>\n<p>\nAz <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/download\/esp8266-utils\/XTCOM_UTIL.zip\">XTCOM_UTIL<\/a><\/noindex> seg\u00edts\u00e9g\u00e9vel t\u00f6ltse fel a firmware-t <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/firmware\/plc_basic.bin\">Sonoff Basic PLC<\/a><\/noindex> az eszk\u00f6zre, ehhez sz\u00fcks\u00e9ge lesz egy USB-TTL \u00e1talak\u00edt\u00f3ra. Itt <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/esp8266-obnovlenie-proshivki-xtcom_util\/\">utas\u00edt\u00e1s<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/#!sonoff.md#%D0%9F%D0%B5%D1%80%D0%B5%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0_Sonoff_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_\">vide\u00f3 \u00fatmutat\u00f3<\/a><\/noindex>.<\/p>\n<h3>3. l\u00e9p\u00e9s. Az eszk\u00f6z be\u00e1ll\u00edt\u00e1sa<\/h3>\n<p>\nKapcsolja be az eszk\u00f6zt, miut\u00e1n a LED vil\u00e1g\u00edtani kezd, nyomja meg a gombot, \u00e9s tartsa lenyomva, am\u00edg a LED periodikusan egyenletesen villogni nem kezd.<br \/>\nEkkor megjelenik egy \u00faj wi-fi h\u00e1l\u00f3zat, amelynek neve \u201ePLC Sonoff Basic\u201d, csatlakoztassa a sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9t ehhez a h\u00e1l\u00f3zathoz.<br \/>\n<b class=\"spoiler_title\">A LED jelz\u0151f\u00e9ny dek\u00f3dol\u00e1sa<\/b><\/p>\n<p>LED jelz\u0151f\u00e9ny<br \/>\nAz eszk\u00f6z \u00e1llapota<\/p>\n<p>id\u0151szakos dupla villog\u00e1s<br \/>\nnincs kapcsolat a routerrel<\/p>\n<p>folyamatos f\u00e9ny<br \/>\nkapcsolat a routerrel<\/p>\n<p>id\u0151szakos egyenletes villog\u00e1s<br \/>\nwi-fi hozz\u00e1f\u00e9r\u00e9si pont \u00fczemm\u00f3d<\/p>\n<p>lekapcsolva<br \/>\nnincs \u00e1ram<\/p>\n<p>Nyisson meg egy b\u00f6ng\u00e9sz\u0151t, \u00e9s g\u00e9pelje be a c\u00edmsorba a k\u00f6vetkez\u0151 sz\u00f6veget: \u201e192.168.4.1\u201d, l\u00e9pjen a k\u00e9sz\u00fcl\u00e9k h\u00e1l\u00f3zati param\u00e9tereinek be\u00e1ll\u00edt\u00f3 oldal\u00e1ra.<\/p>\n<p>T\u00f6ltse ki a mez\u0151ket a k\u00f6vetkez\u0151k\u00e9ppen:<\/p>\n<ul>\n<li>\u201eH\u00e1l\u00f3zat neve\u201d \u00e9s \u201eJelsz\u00f3\u201d (az eszk\u00f6z otthoni wi-fi routerhez val\u00f3 csatlakoztat\u00e1s\u00e1hoz).<\/li>\n<li>\u201eEszk\u00f6z ID\u201d \u00e9s \u201eHiteles\u00edt\u00e9si kulcs\u201d (az eszk\u00f6z hiteles\u00edt\u00e9s\u00e9hez az MGT24 szolg\u00e1ltat\u00e1sn\u00e1l).<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">A k\u00e9sz\u00fcl\u00e9k h\u00e1l\u00f3zati param\u00e9tereinek be\u00e1ll\u00edt\u00e1s\u00e1nak p\u00e9ld\u00e1ja<\/b><img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/47d02b3883ce3896157da4dcc4fe7f40.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMentse el a be\u00e1ll\u00edt\u00e1sokat, \u00e9s ind\u00edtsa \u00fajra az eszk\u00f6zt.<br \/>\nItt <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/XTzGJI7y7t8?t=376\">vide\u00f3 \u00fatmutat\u00f3<\/a><\/noindex>.<\/p>\n<h3>4. l\u00e9p\u00e9s. Szenzorok csatlakoztat\u00e1sa (opcion\u00e1lis)<\/h3>\n<p>\nA jelenlegi firmware legfeljebb n\u00e9gy ds18b20 h\u0151m\u00e9rs\u00e9klet-szenzort t\u00e1mogat. Itt <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/#!sonoff.md#%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D1%80%D0%BC%D0%BE%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA%D0%B0_ds18b20_%D0%BA_Sonoff,_%D0%BC%D0%BE%D0%BD%D1%82%D0%B0%D0%B6%D0%BD%D1%8B%D0%B5_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B\">vide\u00f3 \u00fatmutat\u00f3<\/a><\/noindex> t\u00e1j\u00e9koztat\u00e1s tal\u00e1lhat\u00f3 a szenzorok telep\u00edt\u00e9s\u00e9r\u0151l. Nyilv\u00e1nval\u00f3, hogy ez a l\u00e9p\u00e9s lesz a legnehezebb, mivel k\u00f6zvetlen k\u00e9z\u00fcgyess\u00e9get \u00e9s forraszt\u00f3p\u00e1ka haszn\u00e1lat\u00e1t ig\u00e9nyli.<\/p>\n<h2>II. r\u00e9sz. Vizu\u00e1lis programoz\u00e1s<\/h2>\n<p><\/p>\n<h3>1. l\u00e9p\u00e9s. Forgat\u00f3k\u00f6nyvek l\u00e9trehoz\u00e1sa<\/h3>\n<p>\nA programoz\u00e1si k\u00f6rnyezet <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/blockly\/\">Blockly<\/a><\/noindex>, a k\u00f6rnyezet k\u00f6nnyen elsaj\u00e1t\u00edthat\u00f3, \u00edgy egyszer\u0171 forgat\u00f3k\u00f6nyvek l\u00e9trehoz\u00e1s\u00e1hoz nem sz\u00fcks\u00e9ges programoz\u00f3nak lenni.<\/p>\n<p>Specializ\u00e1lt blokkokat adtam hozz\u00e1 az eszk\u00f6z param\u00e9tereinek \u00edr\u00e1s\u00e1hoz \u00e9s olvas\u00e1s\u00e1hoz. B\u00e1rmely param\u00e9ter el\u00e9r\u00e9se a nev\u00e9nek megfelel\u0151en t\u00f6rt\u00e9nik. A t\u00e1voli eszk\u00f6z\u00f6k param\u00e9terein\u00e9l \u00f6sszetett neveket haszn\u00e1lunk: \u201eparam\u00e9ter@eszk\u00f6z\u201d.<br \/>\n<b class=\"spoiler_title\">Param\u00e9terek leg\u00f6rd\u00fcl\u0151 list\u00e1ja<\/b><img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/6ba0f789a4d3e0a394f4773d2c401416.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>P\u00e9lda egy ciklikus terhel\u00e9s be- \u00e9s kikapcsol\u00e1s\u00e1ra (1Hz):<br \/>\n<img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/66876fcb1d029b1a06098a8f2118bba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e9lda k\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 eszk\u00f6z munk\u00e1j\u00e1nak szinkroniz\u00e1l\u00e1s\u00e1ra. A c\u00e9leszk\u00f6z rel\u00e9je megism\u00e9tli a t\u00e1voli eszk\u00f6z rel\u00e9j\u00e9nek munk\u00e1j\u00e1t.<br \/>\n<img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/a44e81ce1301c7908ac9fa7437785162.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nForgat\u00f3k\u00f6nyv termoszt\u00e1tra (hister\u00e9zis n\u00e9lk\u00fcl):<br \/>\n<img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/0efa8a8f5e67f5ffd0812af5a2cececa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBonyolultabb forgat\u00f3k\u00f6nyvek l\u00e9trehoz\u00e1s\u00e1hoz v\u00e1ltoz\u00f3kat, ciklusokat, funkci\u00f3kat (argumentumokkal) \u00e9s egy\u00e9b konstrukci\u00f3kat lehet haszn\u00e1lni. Ezt a r\u00e9szletet nem szeretn\u00e9m itt r\u00e9szletezni, az interneten m\u00e1r van el\u00e9g sok <noindex><a rel=\"nofollow\" href=\"http:\/\/blockly.ru\/\">oktat\u00f3 anyag a Blockly-r\u00f3l<\/a><\/noindex>.<\/p>\n<h3>2. l\u00e9p\u00e9s. Forgat\u00f3k\u00f6nyvek v\u00e9grehajt\u00e1si sorrendje<\/h3>\n<p>\nA forgat\u00f3k\u00f6nyv folyamatosan m\u0171k\u00f6dik, \u00e9s amint el\u00e9rte a v\u00e9g\u00e9t, \u00fajraindul. Ebben a folyamatban k\u00e9t blokk van, amely ideiglenesen le tudja \u00e1ll\u00edtani a forgat\u00f3k\u00f6nyv m\u0171k\u00f6d\u00e9s\u00e9t: a \u201edelay\u201d \u00e9s a \u201epause\u201d.<br \/>\nA \u201edelay\u201d blokk milliszekundumos vagy mikrosekundumos k\u00e9sleltet\u00e9sekhez haszn\u00e1lhat\u00f3. Ez a blokk szigor\u00faan betartja az id\u0151intervallumot, blokkolva ezzel az eg\u00e9sz eszk\u00f6z m\u0171k\u00f6d\u00e9s\u00e9t. <br \/>\nA \u201epause\u201d blokk m\u00e1sodperces (vagy kevesebb) k\u00e9sleltet\u00e9sekhez haszn\u00e1lhat\u00f3, \u00e9s nem blokkolja a t\u00f6bbi folyamat v\u00e9grehajt\u00e1s\u00e1t az eszk\u00f6zben.<br \/>\nHa a forgat\u00f3k\u00f6nyv v\u00e9gtelen ciklust tartalmaz, amelyben nincs \u201epause\u201d, az \u00e9rtelmez\u0151 mag\u00e1t\u00f3l ind\u00edt egy kis sz\u00fcnetet.<br \/>\nHa a kiosztott mem\u00f3ria stack kimer\u00fcl, az \u00e9rtelmez\u0151 le\u00e1ll\u00edtja az ilyen er\u0151forr\u00e1st ig\u00e9nyl\u0151 forgat\u00f3k\u00f6nyv v\u00e9grehajt\u00e1s\u00e1t (legyetek \u00f3vatosak a rekurz\u00edv funkci\u00f3kkal).<\/p>\n<h3>3. l\u00e9p\u00e9s. Forgat\u00f3k\u00f6nyvek hibakeres\u00e9se<\/h3>\n<p>\nA m\u00e1r a k\u00e9sz\u00fcl\u00e9kbe bet\u00f6lt\u00f6tt szkriptek hibakeres\u00e9s\u00e9hez l\u00e9p\u00e9sr\u0151l l\u00e9p\u00e9sre t\u00f6rt\u00e9n\u0151 nyomk\u00f6vet\u00e9st ind\u00edthat. Ez rendk\u00edv\u00fcl hasznos lehet, amikor a szkript viselked\u00e9se nem olyan, mint amilyennek a szerz\u0151 elk\u00e9pzelte. Ebben az esetben a nyomk\u00f6vet\u00e9s lehet\u0151v\u00e9 teszi a szerz\u0151 sz\u00e1m\u00e1ra, hogy gyorsan megtal\u00e1lja a hiba forr\u00e1s\u00e1t \u00e9s kijav\u00edtsa a szkriptben a probl\u00e9m\u00e1t.<\/p>\n<p>A faktori\u00e1lis sz\u00e1m\u00edt\u00e1s szkriptje hibakeres\u00e9si m\u00f3dban:<br \/>\n<img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/ea6e23729fd530b79b89c9481e78bd64.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA hibakeres\u0151 eszk\u00f6z nagyon egyszer\u0171 \u00e9s h\u00e1rom f\u0151 gombb\u00f3l \u00e1ll: \u201eind\u00edt\u00e1s\u201d, \u201eegyetlen l\u00e9p\u00e9s el\u0151re\u201d \u00e9s \u201emeg\u00e1ll\u00edt\u00e1s\u201d (ne felejts\u00fck el a hibakeres\u00e9si m\u00f3dba val\u00f3 \u201ebel\u00e9p\u00e9st\u201d \u00e9s \u201ekil\u00e9p\u00e9st\u201d sem). A l\u00e9p\u00e9sr\u0151l l\u00e9p\u00e9sre t\u00f6rt\u00e9n\u0151 nyomk\u00f6vet\u00e9s mellett b\u00e1rmely blokkra be\u00e1ll\u00edthatunk egy t\u00f6r\u00e9spontot (az adott blokkra kattintva).<br \/>\nA monitorra a jelenlegi param\u00e9ter\u00e9rt\u00e9kek (\u00e9rz\u00e9kel\u0151k, rel\u00e9k) ki\u00edr\u00e1s\u00e1hoz haszn\u00e1lja a \u201eprint\u201d blokkot.<br \/>\nItt <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/2mK6gvqe_18\">bevezet\u0151 vide\u00f3<\/a><\/noindex> a hibakeres\u0151r\u0151l.<\/p>\n<h2>R\u00e9sz az \u00e9rdekl\u0151d\u0151knek. Mi rejlik a motorh\u00e1ztet\u0151 alatt?<\/h2>\n<p>\nAhhoz, hogy a szkriptek m\u0171k\u00f6djenek a c\u00e9lk\u00e9sz\u00fcl\u00e9ken, 38 utas\u00edt\u00e1sb\u00f3l \u00e1ll\u00f3 b\u00e1jt-k\u00f3d\u00e9rtelmez\u0151t \u00e9s assembler-t fejlesztettek ki. A blockly forr\u00e1sk\u00f3dj\u00e1ba be\u00e9p\u00edtettek egy speci\u00e1lis k\u00f3dgener\u00e1tort, amely a vizu\u00e1lis blokkokat assembler utas\u00edt\u00e1sokk\u00e1 alak\u00edtja. Ezt k\u00f6vet\u0151en ez az assembler program b\u00e1jt-k\u00f3dd\u00e1 alakul, \u00e9s v\u00e9grehajt\u00e1sra \u00e1tker\u00fcl a k\u00e9sz\u00fcl\u00e9kbe.<br \/>\nEnnek a virtu\u00e1lis g\u00e9pnek az architekt\u00far\u00e1ja meglehet\u0151sen egyszer\u0171, \u00e9s nem \u00e9rdemes k\u00fcl\u00f6n\u00f6sebben le\u00edrni; az interneten sok cikket tal\u00e1l, amelyek az egyszer\u0171 virtu\u00e1lis g\u00e9pek tervez\u00e9s\u00e9r\u0151l sz\u00f3lnak.<br \/>\nA virtu\u00e1lis g\u00e9pem sz\u00e1m\u00e1ra \u00e1ltal\u00e1ban 1000 b\u00e1jtot osztok ki a veremhez, ez b\u0151s\u00e9gesen elegend\u0151. Term\u00e9szetesen a m\u00e9ly rekurzi\u00f3k b\u00e1rmilyen veremet kimer\u00edthetnek, de val\u00f3sz\u00edn\u0171leg nem tal\u00e1lhat\u00f3 sz\u00e1mottev\u0151 gyakorlati alkalmaz\u00e1suk.<\/p>\n<p>A v\u00e9gs\u0151 b\u00e1jt-k\u00f3d meglehet\u0151sen t\u00f6m\u00f6r. P\u00e9ld\u00e1ul az ugyanannak a faktori\u00e1lisnak a b\u00e1jt-k\u00f3dja mind\u00f6ssze 49 b\u00e1jtot tesz ki. \u00cdme a vizu\u00e1lis megjelen\u00edt\u00e9si form\u00e1ja:<br \/>\n<img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/1c6a8b693cbf2131f1f1369d97ad034b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz pedig az assembler programja:<\/p>\n<pre><code class=\"javascript\">shift -1\nldi 10\ncall factorial, 1\nprint\nexit\n:factorial\nld_arg 0\nldi 1\ngt\nje 8\nld_arg 0\nld_arg 0\nldi 1\nsub\ncall factorial, 1\nmul\nret\nldi 1\nret\n<\/code><\/pre>\n<p>Ha az assembler form\u00e1tum nem j\u00e1r gyakorlati el\u0151ny\u00f6kkel, akkor a \u201ejavascript\u201d f\u00fcl \u00e9ppen ellenkez\u0151leg, ismer\u0151s l\u00e1tv\u00e1nyt ny\u00fajt a vizu\u00e1lis blokkok helyett:<\/p>\n<pre><code class=\"javascript\">function factorial(num) {\n  if (num &gt; 1) {\n    return num + factorial(num - 1);\n  }\n  return 1;\n}\n\nwindow.alert(factorial(10));\n<\/code><\/pre>\n<p>Ami a teljes\u00edtm\u00e9nyt illeti. A legegyszer\u0171bb villog\u00f3 szkript futtat\u00e1sakor a oszcilloszk\u00f3p k\u00e9perny\u0151j\u00e9n 47 kHz-es meandert kaptam (80 MHz-es \u00f3rajellel).<br \/>\n<img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/961a50c7ef269265443e078a1a81291a.jpg\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra\" src=\"\/wp-content\/uploads\/2019\/05\/a416044b4cea01121e04e27ae7d1fef2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nJ\u00f3nak tartom az eredm\u00e9nyt, legal\u00e1bbis ez a sebess\u00e9g majdnem t\u00edzszer gyorsabb, mint a <noindex><a rel=\"nofollow\" href=\"http:\/\/esp8266freq.blogspot.com\/2016\/12\/esp-speed-compare-in-lua-micropython.html\">Lua<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/www.espruino.com\/Performance\">Espruino<\/a><\/noindex>.<\/p>\n<h2>Z\u00e1r\u00f3 r\u00e9sz<\/h2>\n<p>\n\u00d6sszegz\u00e9s\u00fcl azt mondom, hogy a szkriptek haszn\u00e1lata lehet\u0151v\u00e9 teszi sz\u00e1munkra, hogy ne csak egyetlen eszk\u00f6z m\u0171k\u00f6d\u00e9s\u00e9nek logik\u00e1j\u00e1t programozzuk, hanem lehet\u0151s\u00e9get ad arra is, hogy t\u00f6bb eszk\u00f6zt \u00f6sszekapcsoljunk egy egys\u00e9ges mechanizmusba, ahol az egyik eszk\u00f6z befoly\u00e1solja a m\u00e1sik m\u0171k\u00f6d\u00e9s\u00e9t. <br \/>\nMegjegyzem tov\u00e1bb\u00e1, hogy a szkriptek t\u00e1rol\u00e1s\u00e1nak kiv\u00e1lasztott m\u00f3dja (k\u00f6zvetlen\u00fcl magukban az eszk\u00f6z\u00f6kben, nem a szerveren) megk\u00f6nny\u00edti a m\u00e1r m\u0171k\u00f6d\u0151 eszk\u00f6z\u00f6k \u00e1tkapcsol\u00e1s\u00e1t egy m\u00e1sik szerverre, p\u00e9ld\u00e1ul a h\u00e1zi Raspberry-re, itt. <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/#!raspberry.md\">utas\u00edt\u00e1s<\/a><\/noindex>.<\/p>\n<p><i>Ezzel v\u00e9ge, \u00f6r\u00f6mmel v\u00e1rom a tan\u00e1csokat \u00e9s a konstrukt\u00edv kritik\u00e1t.<\/i><br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/436272\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u0437 \u0434\u0435\u0448\u0451\u0432\u043e\u0433\u043e \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440. \u0422\u0430\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0430\u0439\u0434\u0451\u0442 \u0441\u0432\u043e\u0451 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u0430\u043a \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043d\u044f\u0442\u0438\u0439 \u043f\u043e \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0435. \u0414\u043b\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0438, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 Sonoff Basic \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u043a\u0438, \u0432\u0441\u0451 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u044d\u0442\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0441\u0442\u0430\u043d\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24803,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0442\u0430\u0442\u044c\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u0437 \u0434\u0435\u0448\u0451\u0432\u043e\u0433\u043e \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f Sonoff Basic | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0442\u0430\u0442\u044c\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u0437 \u0434\u0435\u0448\u0451\u0432\u043e\u0433\u043e \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:50:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:50:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vizualiz\u00e1lt programoz\u00e1s a Sonoff Basic sz\u00e1m\u00e1ra | ProHoster","description":"Cikk arr\u00f3l, hogyan v\u00e1lhat olcs\u00f3 k\u00ednai eszk\u00f6z.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f Sonoff Basic | ProHoster","og:description":"\u0421\u0442\u0430\u0442\u044c\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u0437 \u0434\u0435\u0448\u0451\u0432\u043e\u0433\u043e \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:50:27+00:00","article:modified_time":"2019-10-31T18:50:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33046","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 13:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:47:29","updated":"2026-01-21 13:45:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/33046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=33046"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/33046\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/24803"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=33046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=33046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=33046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}