{"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\/sl\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","title":{"rendered":"Vizualno programiranje za Sonoff Basic","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/0682cb274648d8a8d16b17bced0116d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u010clanek o tem, kako iz poceni kitajske naprave narediti programabilni logi\u010dni krmilnik. Tak\u0161na naprava bo na\u0161la svojo uporabo tako v doma\u010di avtomatizaciji kot tudi pri prakti\u010dnih vajah na \u0161olskem ra\u010dunalni\u0161tvu.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<em>Za informacijo, privzeto program Sonoff Basic deluje z mobilno aplikacijo prek kitajske obla\u010dne storitve, po predlagani predelavi pa bo mo\u017eno vse nadaljnje interakcije s to napravo opraviti v brskalniku.<\/em> <\/p>\n<h2>Oddelek I. Povezovanje Sonoff z MGT24 storitvijo<\/h2>\n<p><\/p>\n<h3>Korak 1. Ustvarjanje nadzorne plo\u0161\u010de<\/h3>\n<p>\nRegistrirajte se na spletni strani <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\">mgt24<\/a><\/noindex> (\u010de \u0161e niste registrirani) in se prijavite s svojim ra\u010dunom.<br \/>\n<b class=\"spoiler_title\">Prijava<\/b><img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/e9b310a7cb7d2da90ac8161407944a8c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 &#171;+&#187;.<br \/>\n<b class=\"spoiler_title\">Primer ustvarjanja nadzorne plo\u0161\u010de<\/b><img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/dc10d7009ea65c72714c2ccd2314ed0b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKo bo nadzorna plo\u0161\u010da ustvarjena, se bo pojavila na seznamu va\u0161ih nadzornih plo\u0161\u010d.<\/p>\n<p>Na zaviheku \u201eNamestitev\u201c ustvarjene nadzorne plo\u0161\u010de poi\u0161\u010dite polja \u201eID naprave\u201c in \u201eKlju\u010d avtorizacije\u201c, ta informacija bo potrebna pri nastavitvi naprave Sonoff.<br \/>\n<b class=\"spoiler_title\">Primer zavihka<\/b><img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/f6cc6f1f469c6278c38c4c63288d9ba2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Korak 2. Predelava naprave<\/h3>\n<p>\nZ orodjem <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/download\/esp8266-utils\/XTCOM_UTIL.zip\">XTCOM_UTIL<\/a><\/noindex> nalo\u017eite programsko opremo <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/firmware\/plc_basic.bin\">PLC Sonoff Basic<\/a><\/noindex> na napravo, za to boste potrebovali USB-TTL pretvornik. Tukaj <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/esp8266-obnovlenie-proshivki-xtcom_util\/\">navodilo<\/a><\/noindex> in <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_\">video navodilo<\/a><\/noindex>.<\/p>\n<h3>Korak 3. Nastavitev naprave<\/h3>\n<p>\nPove\u017eite napravo s napajanjem, ko se pri\u017ege LED, pritisnite gumb in ga dr\u017eite pritisnjenega, dokler LED ne za\u010dne enakomerno bliskati.<br \/>\nV tem trenutku se bo pojavila nova wi-fi mre\u017ea z imenom \u201ePLC Sonoff Basic\u201c, pove\u017eite svoj ra\u010dunalnik s to mre\u017eo.<br \/>\n<b class=\"spoiler_title\">Razlaga LED indikacije<\/b><\/p>\n<p>LED indikacija<br \/>\nStanje naprave<\/p>\n<p>ob\u010dasno dvojno bliskanje<br \/>\nni povezave z usmerjevalnikom<\/p>\n<p>stalno sveti<br \/>\npovezava z usmerjevalnikom je vzpostavljena<\/p>\n<p>ob\u010dasno enakomerno bliskanje<br \/>\npristopna to\u010dka wi-fi<\/p>\n<p>ugasnjena<br \/>\nni napajanja<\/p>\n<p>Odprite internetni brskalnik in v naslovno vrstico vpi\u0161ite \u201e192.168.4.1\u201c, preklopite na stran nastavitev omre\u017enih parametrov naprave.<\/p>\n<p>Izpolnite polja na naslednji na\u010din:<\/p>\n<ul>\n<li>\u201eIme omre\u017eja\u201c in \u201eGeslo\u201c (za povezavo naprave z doma\u010dim wi-fi usmerjevalnikom).<\/li>\n<li>\u201eID naprave\u201c in \u201eKlju\u010d avtorizacije\u201c (za avtorizacijo naprave na MGT24 storitvi).<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Primer nastavitve omre\u017enih parametrov naprave<\/b><img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/47d02b3883ce3896157da4dcc4fe7f40.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nShrani nastavitve in znova za\u017eeni napravo.<br \/>\nTukaj <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/XTzGJI7y7t8?t=376\">video navodilo<\/a><\/noindex>.<\/p>\n<h3>Korak 4. Povezivanje senzora (opcijski)<\/h3>\n<p>\nTrenutni firmver podr\u017eava do \u010detiri temperaturna senzora ds18b20. Ovdje <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\">video navodilo<\/a><\/noindex> su informacije o instalaciji senzora. Ovo \u0107e o\u010digledno biti najizazovniji korak, jer \u0107e zahtijevati va\u0161e vje\u0161te ruke i lemilicu.<\/p>\n<h2>Poglavlje II. Vizualno programiranje<\/h2>\n<p><\/p>\n<h3>Korak 1. Kreiranje skripti<\/h3>\n<p>\nKao okru\u017eenje za programiranje koristi se <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/blockly\/\">Blockly<\/a><\/noindex>, okru\u017eenje je jednostavno za u\u010denje, tako da ne morate biti programer da biste kreirali jednostavne skripte.<\/p>\n<p>Dodao sam specijalizirane blokove za zapisivanje i \u010ditanje parametara ure\u0111aja. Pristup bilo kojem parametru se ostvaruje po imenu. Za parametre udaljenih ure\u0111aja koriste se sastavljena imena: \u201eparametar@ure\u0111aj\u201d.<br \/>\n<b class=\"spoiler_title\">Spisak parametara<\/b><img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/6ba0f789a4d3e0a394f4773d2c401416.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Primjer skripte cikli\u010dnog uklju\u010divanja i isklju\u010divanja optere\u0107enja (1Hz):<br \/>\n<img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/66876fcb1d029b1a06098a8f2118bba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrimjer skripte koja sinkronizira rad dva odvojena ure\u0111aja. Ta\u010dnije, relej ciljnog ure\u0111aja ponavlja rad releja udaljenog ure\u0111aja.<br \/>\n<img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/a44e81ce1301c7908ac9fa7437785162.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSkripta za termostat (bez histereze):<br \/>\n<img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/0efa8a8f5e67f5ffd0812af5a2cececa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZa kreiranje slo\u017eenijih skripti mo\u017eete koristiti varijable, petlje, funkcije (sa argumentima) i druge konstrukcije. Ne\u0107u ovdje detaljno obja\u0161njavati, ve\u0107 postoji prili\u010dno mnogo <noindex><a rel=\"nofollow\" href=\"http:\/\/blockly.ru\/\">materijala za u\u010denje o Blockly<\/a><\/noindex>.<\/p>\n<h3>Korak 2. Redoslijed izvr\u0161avanja skripti<\/h3>\n<p>\nSkripta radi u neprestanom re\u017eimu, a \u010dim do\u0111e do svog kraja, ponovno se pokre\u0107e. Pri tome postoje dva bloka koja mogu privremeno obustaviti rad skripte, \u201edelay\u201d i \u201epause\u201d.<br \/>\nBlok \u201edelay\u201d se koristi za milisekundne ili mikrosekundne odgode. Ovaj blok strogo dr\u017ei vremenski interval, blokiraju\u0107i rad cijelog ure\u0111aja. <br \/>\nBlok \u201epause\u201d se koristi za odgode u sekundama (mo\u017ee i manje), i ne blokira izvr\u0161avanje drugih procesa u ure\u0111aju.<br \/>\nAko skripta unutar sebe sadr\u017ei beskona\u010dnu petlju, u kojoj se ne nalazi \u201epause\u201d, interpretator samoinicijativno pokre\u0107e malu pauzu.<br \/>\nU slu\u010daju preoptere\u0107enja dodijeljene memorije, interpretator \u0107e zaustaviti izvr\u0161avanje takve 'pro\u017edrljive' skripte (budite oprezni s rekurzivnim funkcijama).<\/p>\n<h3>Korak 3. Debagiranje skripti<\/h3>\n<p>\nZa odpravo te\u017eav z \u017ee nalo\u017eenim scenarijem na napravi lahko za\u017eenete sledenje programa po korakih. To je izjemno koristno, kadar se je obna\u0161anje scenarija izkazalo za druga\u010dno od tistega, ki ga je avtor zami\u0161ljal. V tem primeru sledenje omogo\u010da avtorju hitro najti vir te\u017eave in popraviti napako v scenariju.<\/p>\n<p>Scenarij za izra\u010dun faktoriela v na\u010dinu odpravljanja napak:<br \/>\n<img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/ea6e23729fd530b79b89c9481e78bd64.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOrodje za odpravljanje napak je zelo preprosto in sestavlja ga tri glavne gumbe: \u00bbza\u010detek\u00ab, \u00bbkorak naprej\u00ab in \u00bbustavi\u00ab (prav tako ne pozabite na \u00bbvstop\u00ab in \u00bbizstop\u00ab iz na\u010dina odpravljanja napak). Poleg korak po koraku sledenja lahko postavite tudi to\u010dko prekinitev na katerikoli blok (s klikom z mi\u0161ko nad blokom).<br \/>\nZa izpis trenutnih vrednosti parametrov (senzorji, releji) uporabite blok \u00bbprint\u00ab.<br \/>\nTukaj <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/2mK6gvqe_18\">posnetek videa<\/a><\/noindex> o uporabi razhro\u0161\u010devalnika.<\/p>\n<h2>Oddelek za radovedne. Kaj se dogaja pod pokrovom?<\/h2>\n<p>\nZa delovanje scenarijev na ciljni napravi je bil razvit interpretator bajtnega kode in assembler na 38 ukazov. V izvorno kodo blockly je bil vgrajen specializiran generator kode, ki pretvarja vizualne bloke v assemblerne ukaze. V nadaljevanju se ta assemblerni program pretvori v bajtno kodo in prenese v napravo za izvajanje.<br \/>\nArhitektura te virtualne naprave je precej preprosta in nima posebnega smisla, da jo opisujemo; na spletu lahko najdete \u0161tevilne \u010dlanke o oblikovanju najpreprostej\u0161ih virtualnih naprav.<br \/>\nZa sklad svoje virtualne naprave obi\u010dajno dodelim 1000 bajtov, kar je dovolj. Seveda lahko globoke rekurzije porabijo katerikoli sklad, a malo verjetno je, da bi jim na\u0161li prakti\u010dno uporabo.<\/p>\n<p>Kon\u010dna bajtna koda je precej kompaktna. Kot primer, bajtna koda za izra\u010dun istega faktoriela obsega le 49 bajtov. To je njena vizualna oblika:<br \/>\n<img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/1c6a8b693cbf2131f1f1369d97ad034b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn to je njen assemblerni program:<\/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>\u010ce forma assemblerne predstavitve nima prakti\u010dne vrednosti, pa zavihek \u00bbjavascrit\u00ab nasprotno ponuja bolj znan videz kot vizualni bloki:<\/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>Kar zadeva zmogljivost. Ko sem zagnal najpreprostej\u0161o migajo\u010do skripto, sem na osciloskopskem zaslonu prejel meander 47 kHz (pri taktu 80 MHz procesorja).<br \/>\n<img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/961a50c7ef269265443e078a1a81291a.jpg\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"Vizualno programiranje za Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/a416044b4cea01121e04e27ae7d1fef2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMenim, da je to odli\u010den rezultat, vsaj ta hitrost je skoraj desetkrat hitrej\u0161a kot pri <noindex><a rel=\"nofollow\" href=\"http:\/\/esp8266freq.blogspot.com\/2016\/12\/esp-speed-compare-in-lua-micropython.html\">Lua<\/a><\/noindex> in <noindex><a rel=\"nofollow\" href=\"https:\/\/www.espruino.com\/Performance\">Espruino<\/a><\/noindex>.<\/p>\n<h2>Zaklju\u010dni del<\/h2>\n<p>\nPrav tako bi rekel, da nam uporaba skript omogo\u010da ne le programiranje logike delovanja posameznega naprave, ampak tudi povezovanje ve\u010d naprav v enoten mehanizem, kjer ene naprave vplivajo na vedenje drugih. <br \/>\nPrav tako bi poudaril, da izbrani na\u010din shranjevanja skript (takoj v napravah, ne na stre\u017eniku) poenostavi preklop \u017ee delujo\u010dih naprav na drug stre\u017enik, na primer na doma\u010di Raspberry, tukaj. <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/#!raspberry.md\">navodilo<\/a><\/noindex>.<\/p>\n<p><i>To je vse, vesel bom, da sli\u0161im nasvete in konstruktivno kritiko.<\/i><br \/>\n<br \/>Izvor: <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.4 - 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\/sl\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47Vizualno programiranje za Sonoff Basic | ProHoster","description":"\u010clanek o tem, kako iz poceni kitajske naprave.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/33046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=33046"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/33046\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/24803"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=33046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=33046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=33046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}