{"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\/sq\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","title":{"rendered":"Programimi vizual p\u00ebr Sonoff Basic","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/0682cb274648d8a8d16b17bced0116d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNj\u00eb artikull mbi m\u00ebnyr\u00ebn si t\u00eb krijoni nj\u00eb kontrollues logjik programues nga nj\u00eb pajisje t\u00eb lir\u00eb kineze. Nj\u00eb pajisje e till\u00eb do t\u00eb gjej\u00eb aplikim si n\u00eb automatizimin e sht\u00ebpis\u00eb, ashtu edhe si materiale praktike p\u00ebr m\u00ebsimin e informacionit n\u00eb shkoll\u00eb.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<em>P\u00ebr informacion, n\u00eb m\u00ebnyr\u00eb t\u00eb paracaktuar, programi Sonoff Basic punon me aplikacionin mobil p\u00ebrmes nj\u00eb sh\u00ebrbimi Cloud kinez, pas modifikimit t\u00eb propozuar, t\u00eb gjith\u00eb nd\u00ebrveprimi i m\u00ebtejsh\u00ebm me k\u00ebt\u00eb pajisje do t\u00eb jet\u00eb i mundur n\u00ebp\u00ebrmjet shfletuesit.<\/em> <\/p>\n<h2>Kapitulli I. Lidheni Sonoff me sh\u00ebrbimin MGT24<\/h2>\n<p><\/p>\n<h3>Hapi 1. Krijimi i panelit t\u00eb kontrollit<\/h3>\n<p>\nRegjistrohuni n\u00eb faqen e internetit <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\">mgt24<\/a><\/noindex> (n\u00ebse nuk jeni regjistruar ende) dhe hyni n\u00eb sistem me llogarin\u00eb tuaj.<br \/>\n<b class=\"spoiler_title\">Hyni n\u00eb sistem<\/b><img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/e9b310a7cb7d2da90ac8161407944a8c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr t\u00eb krijuar nj\u00eb panel kontrolli p\u00ebr pajisjen e re, klikoni n\u00eb butonin &#171;+&#187;.<br \/>\n<b class=\"spoiler_title\">Shembuj krijimi t\u00eb panelit<\/b><img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/dc10d7009ea65c72714c2ccd2314ed0b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPasi paneli t\u00eb krijohet, ai do t\u00eb shfaqet n\u00eb list\u00ebn e paneleve tuaja.<\/p>\n<p>N\u00eb sked\u00ebn \u00abInstalimi\u00bb, t\u00eb panelit t\u00eb krijuar, gjeni fushat \u00abID pajisjes\u00bb dhe \u00ab\u00c7el\u00ebsi i autorizimit\u00bb, t\u00eb cilat do t\u00eb nevojiten m\u00eb von\u00eb gjat\u00eb konfigurimit t\u00eb pajisjes Sonoff.<br \/>\n<b class=\"spoiler_title\">Shembuj skede<\/b><img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/f6cc6f1f469c6278c38c4c63288d9ba2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Hapi 2. Rindizja e pajisjes<\/h3>\n<p>\nMe ndihm\u00ebn e utilitarit <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/download\/esp8266-utils\/XTCOM_UTIL.zip\">XTCOM_UTIL<\/a><\/noindex> ngarkoni firmuerin <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/firmware\/plc_basic.bin\">PLC Sonoff Basic<\/a><\/noindex> n\u00eb pajisje, p\u00ebr k\u00ebt\u00eb do t'ju nevojitet nj\u00eb konvertues USB-TTL. K\u00ebtu <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/esp8266-obnovlenie-proshivki-xtcom_util\/\">instruksion<\/a><\/noindex> dhe <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_\">udh\u00ebzimi n\u00eb videon<\/a><\/noindex>.<\/p>\n<h3>Hapi 3. Konfigurimi i pajisjes<\/h3>\n<p>\nSiguroni energji p\u00ebr pajisjen, pasi drita LED t\u00eb ndizet, klikoni butonin dhe mbajeni t\u00eb shtypur derisa drita LED t\u00eb filloj\u00eb t\u00eb pulsosh rregullisht.<br \/>\nN\u00eb k\u00ebt\u00eb moment do t\u00eb shfaqet nj\u00eb rrjet wi-fi i quajtur \u00abPLC Sonoff Basic\u00bb, lidheni kompjuterin tuaj me k\u00ebt\u00eb rrjet.<br \/>\n<b class=\"spoiler_title\">Shpjegimi i indikator\u00ebve LED<\/b><\/p>\n<p>Indikator\u00ebt LED<br \/>\nStatusi i pajisjes<\/p>\n<p>p\u00ebrdorimi i shnd\u00ebrrimit t\u00eb dyfisht\u00eb<br \/>\nnuk ka lidhje me routerin<\/p>\n<p>ndri\u00e7on vazhdimisht<br \/>\nlidhja \u00ebsht\u00eb vendosur me routerin<\/p>\n<p>p\u00ebrdorimi i pulsimit t\u00eb rregullt<br \/>\nmodaliteti wi-fi i pik\u00ebs s\u00eb aksesit<\/p>\n<p>e fikur<br \/>\nnuk ka energji<\/p>\n<p>Hapni nj\u00eb shfletues interneti dhe shkruani n\u00eb shiritin e adres\u00ebs tekstin \u00ab192.168.4.1\u00bb, kaloni n\u00eb faqen e konfigurimit t\u00eb parametrave t\u00eb rrjetit t\u00eb pajisjes.<\/p>\n<p>Plot\u00ebsoni fushat si m\u00eb posht\u00eb:<\/p>\n<ul>\n<li>\u00abEmri i rrjetit\u00bb dhe \u00abFjal\u00ebkalimi\u00bb (p\u00ebr t\u00eb lidhur pajisjen me routerin tuaj wi-fi n\u00eb sht\u00ebpi).<\/li>\n<li>\u00abID pajisjes\u00bb dhe \u00ab\u00c7el\u00ebsi i autorizimit\u00bb (p\u00ebr autorizimin e pajisjes n\u00eb sh\u00ebrbimin MGT24).<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Shembuj t\u00eb konfigurimit t\u00eb parametrave t\u00eb rrjetit t\u00eb pajisjes<\/b><img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/47d02b3883ce3896157da4dcc4fe7f40.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRuani parametrat dhe riaktivizoni pajisjen.<br \/>\nK\u00ebtu <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/XTzGJI7y7t8?t=376\">udh\u00ebzimi n\u00eb videon<\/a><\/noindex>.<\/p>\n<h3>Hapi 4. Lidhja e sensor\u00ebve (opcional)<\/h3>\n<p>\nFirmware aktual mb\u00ebshtet deri n\u00eb kat\u00ebr sensor\u00eb temperature ds18b20. K\u00ebtu <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\">udh\u00ebzimi n\u00eb videon<\/a><\/noindex> p\u00ebr montimin e sensor\u00ebve. Duket se ky hap do t\u00eb jet\u00eb m\u00eb i v\u00ebshtir\u00eb, pasi do t'ju k\u00ebrkoj\u00eb duar t\u00eb drejta dhe nj\u00eb saldator.<\/p>\n<h2>Kapitulli II. Programimi vizual<\/h2>\n<p><\/p>\n<h3>Hapi 1. Krijimi i skenar\u00ebve<\/h3>\n<p>\nSi ambient programimi p\u00ebrdoret <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/blockly\/\">Blockly<\/a><\/noindex>, nj\u00eb mjedis i thjesht\u00eb p\u00ebr t\u2019u zot\u00ebruar, k\u00ebshtu q\u00eb p\u00ebr t\u00eb krijuar skenar\u00eb t\u00eb thjesht\u00eb nuk \u00ebsht\u00eb e nevojshme t\u00eb jeni programues.<\/p>\n<p>Kam shtuar blloqe t\u00eb specializuara p\u00ebr regjistrimin dhe leximin e parametrave t\u00eb pajisjes. Qasja n\u00eb \u00e7do paramet\u00ebr b\u00ebhet n\u00ebp\u00ebrmjet emrit. P\u00ebr parametrat e pajisjeve t\u00eb larg\u00ebta p\u00ebrdoren emra t\u00eb p\u00ebrb\u00ebr\u00eb: \"parametri@pajisja\".<br \/>\n<b class=\"spoiler_title\">Lista e r\u00ebnies s\u00eb parametrave<\/b><img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/6ba0f789a4d3e0a394f4773d2c401416.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Shembuj skenari p\u00ebr ndezjen dhe fikjen ciklike t\u00eb ngarkes\u00ebs (1Hz):<br \/>\n<img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/66876fcb1d029b1a06098a8f2118bba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nShembuj skenari q\u00eb sinkronizon pun\u00ebn e dy pajisjeve t\u00eb ve\u00e7anta. K\u00ebshtu, releu i pajisjes s\u00eb synuar p\u00ebrs\u00ebrit pun\u00ebn e releut t\u00eb pajisjes s\u00eb larg\u00ebt.<br \/>\n<img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/a44e81ce1301c7908ac9fa7437785162.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSkenari p\u00ebr termostatin (pa histerezis):<br \/>\n<img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/0efa8a8f5e67f5ffd0812af5a2cececa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr t\u00eb krijuar skenar\u00eb m\u00eb t\u00eb komplikuar, mund t\u00eb p\u00ebrdoren variablat, ciklet, funksionet (me argumente) dhe konstrukte t\u00eb tjera. Nuk do ta zhvilloj n\u00eb detaje k\u00ebtu, n\u00eb internet tashm\u00eb ka shum\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/blockly.ru\/\">materiale m\u00ebsimore mbi Blockly<\/a><\/noindex>.<\/p>\n<h3>Hapi 2. Rendi i ekzekutimit t\u00eb skenar\u00ebve<\/h3>\n<p>\nSkenari punon n\u00eb nj\u00eb regjime t\u00eb vazhduesh\u00ebm, dhe sa her\u00eb q\u00eb arrin n\u00eb fundin e tij, rifillon p\u00ebrs\u00ebri. K\u00ebtu ka dy blloqe q\u00eb mund t\u00eb pezullojn\u00eb p\u00ebrkoh\u00ebsisht pun\u00ebn e skenarit, \"delay\" dhe \"pause\".<br \/>\nBlloku \"delay\" p\u00ebrdoret p\u00ebr vonesa n\u00eb milisekonda ose mikrosekonda. Ky bllok respekton sakt\u00ebsisht intervalin e koh\u00ebs, duke bllokuar pun\u00ebn e gjith\u00eb pajisjes. <br \/>\nBlloku \"pause\" p\u00ebrdoret p\u00ebr vonesa sekondash (mund t\u00eb jet\u00eb edhe m\u00eb e vog\u00ebl), dhe ai nuk bllokon ekzekutimin e proceseve t\u00eb tjera n\u00eb pajisje.<br \/>\nN\u00ebse skenari brenda vetes ka nj\u00eb cik\u00ebl t\u00eb pafund, n\u00eb trupin e t\u00eb cilit nuk ndodhet \"pause\", interpretuese do t\u00eb iniciative nj\u00eb pushim t\u00eb vog\u00ebl.<br \/>\nN\u00eb rast t\u00eb shterimit t\u00eb stacks t\u00eb memorie t\u00eb dedikuar, interpretuese do t\u00eb ndaloj\u00eb ekzekutimin e nj\u00eb skenari aq t\u00eb vorf\u00ebr (kujdes me funksionet rekursive).<\/p>\n<h3>Hapi 3. Debugging i skenar\u00ebve<\/h3>\n<p>\nP\u00ebr t\u00eb shkuar p\u00ebrmes nj\u00eb skenari q\u00eb \u00ebsht\u00eb ngarkuar tashm\u00eb n\u00eb pajisje, mund t\u00eb filloni nj\u00eb ndjekje hap pas hapi. Kjo \u00ebsht\u00eb jasht\u00ebzakonisht e dobishme kur sjellja e skenarit rezulton t\u00eb jet\u00eb ndryshe nga ajo q\u00eb kishte parashikuar autori. N\u00eb k\u00ebt\u00eb rast, ndjekja lejon autorin t\u00eb identifikoj\u00eb shpejt burimin e problemit dhe t\u00eb korrigjoj\u00eb gabimin n\u00eb skenar.<\/p>\n<p>Skenari p\u00ebr llogaritjen e faktorialit n\u00eb modalitetin e debugging:<br \/>\n<img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/ea6e23729fd530b79b89c9481e78bd64.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nInstrumenti i debugging \u00ebsht\u00eb shum\u00eb i thjesht\u00eb dhe p\u00ebrb\u00ebhet nga tre butona kryesor\u00eb: 'fillo', 'nj\u00eb hap p\u00ebrpara' dhe 'ndalo' (po ashtu mos harrojm\u00eb mbi 'hyrje' dhe 'dalje' nga modaliteti i debugging). P\u00ebrve\u00e7 ndjekjes hap pas hapi, mund t\u00eb vendosni nj\u00eb pik\u00eb ndalimi n\u00eb \u00e7do bllok (me nj\u00eb klik t\u00eb mausit mbi bllokun).<br \/>\nP\u00ebr t\u00eb shfaqur n\u00eb monitor vlerat aktuale t\u00eb parametrave (sensor\u00ebt, releet), p\u00ebrdorni bllokun 'print'.<br \/>\nK\u00ebtu <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/2mK6gvqe_18\">video panoramike<\/a><\/noindex> p\u00ebr p\u00ebrdorimin e debugger-it.<\/p>\n<h2>Nj\u00eb seksion p\u00ebr kurioz\u00ebt. \u00c7far\u00eb ka n\u00ebn kapak?<\/h2>\n<p>\nP\u00ebr t\u00eb siguruar q\u00eb skenar\u00ebt t\u00eb punojn\u00eb n\u00eb pajisjen e synuar, \u00ebsht\u00eb zhvilluar nj\u00eb interpretues p\u00ebr kodin \u0431\u0430\u0439\u0442 dhe assembler-in me 38 instruksione. N\u00eb kodin burimor t\u00eb blockly, \u00ebsht\u00eb integruar nj\u00eb gjenerues i specializuar i kodit q\u00eb konverton blloqet vizuale n\u00eb instruksione assembler. Kjo program assembler m\u00eb pas konvertohet n\u00eb kod \u0431\u0430\u0439\u0442 dhe d\u00ebrgohet n\u00eb pajisje p\u00ebr ekzekutim.<br \/>\nArkitektura e k\u00ebsaj makine virtuale \u00ebsht\u00eb mjaft e thjesht\u00eb dhe nuk ka shum\u00eb kuptim ta p\u00ebrshkruajm\u00eb, n\u00eb internet do t\u00eb gjeni shum\u00eb artikuj mbi projektimin e makinave virtuale m\u00eb t\u00eb thjeshta.<br \/>\nP\u00ebr stack-un e makin\u00ebs sime virtuale, zakonisht rezervoj 1000 byte, kjo \u00ebsht\u00eb e mjaftueshme. Sigurisht, rekursionet e thella mund t\u00eb shfryt\u00ebzojn\u00eb \u00e7do stack, por \u00ebsht\u00eb e dyshimt\u00eb se do t\u00eb gjejn\u00eb ndonj\u00eb p\u00ebrdorim praktik.<\/p>\n<p>Kodi p\u00ebrfundimtar \u0431\u0430\u0439\u0442 \u00ebsht\u00eb mjaft kompakt. Si nj\u00eb shembull, kodi \u0431\u0430\u0439\u0442 p\u00ebr llogaritjen e t\u00eb nj\u00ebjtit faktorial p\u00ebrb\u00ebn vet\u00ebm 49 byte. Kjo \u00ebsht\u00eb forma e tij vizuale e paraqitjes:<br \/>\n<img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/1c6a8b693cbf2131f1f1369d97ad034b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDhe kjo \u00ebsht\u00eb programi i tij assembler:<\/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>N\u00ebse forma assembler e paraqitjes nuk ka ndonj\u00eb vler\u00eb praktike, tab-i 'javascrit', nga ana tjet\u00ebr, ofron nj\u00eb pamje m\u00eb t\u00eb njohur sesa blloqet vizuale:<\/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>Sa i p\u00ebrket performanc\u00ebs. Gjat\u00eb ekzekutimit t\u00eb skenarit m\u00eb t\u00eb thjesht\u00eb t\u00eb ndri\u00e7imit, n\u00eb ekranin e osciloskopit mora nj\u00eb meand\u00ebr 47kHz (n\u00eb frekuenc\u00ebn e clock-ut t\u00eb procesorit 80MHz).<br \/>\n<img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/961a50c7ef269265443e078a1a81291a.jpg\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"Programimi vizual p\u00ebr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/a416044b4cea01121e04e27ae7d1fef2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nE konsideroj k\u00ebt\u00eb rezultat t\u00eb k\u00ebnaqsh\u00ebm, t\u00eb pakt\u00ebn, kjo shpejt\u00ebsi \u00ebsht\u00eb pothuajse dhjet\u00eb her\u00eb m\u00eb e shpejt\u00eb se <noindex><a rel=\"nofollow\" href=\"http:\/\/esp8266freq.blogspot.com\/2016\/12\/esp-speed-compare-in-lua-micropython.html\">Lua<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/www.espruino.com\/Performance\">Espruino<\/a><\/noindex>.<\/p>\n<h2>Pjesa p\u00ebrfundimtare<\/h2>\n<p>\nDuke p\u00ebrmbledhur, do t\u00eb them se p\u00ebrdorimi i skenar\u00ebve na lejon jo vet\u00ebm t\u00eb programojm\u00eb logjik\u00ebn e funksionimit t\u00eb nj\u00eb pajisjeje t\u00eb ve\u00e7ant\u00eb, por gjithashtu na ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb lidhur disa pajisje n\u00eb nj\u00eb mekaniz\u00ebm t\u00eb vet\u00ebm, ku disa pajisje ndikojn\u00eb n\u00eb sjelljen e t\u00eb tjerave. <br \/>\nPo ashtu, do t\u00eb theksoj se m\u00ebnyra e zgjedhur e ruajtjes s\u00eb skenar\u00ebve (vet\u00ebm n\u00eb pajisjet e veta, dhe jo n\u00eb server), thjeshton kalimin e pajisjeve q\u00eb funksionojn\u00eb tashm\u00eb n\u00eb nj\u00eb server tjet\u00ebr, p\u00ebr shembull n\u00eb Raspberry-n tuaj sht\u00ebpiak. <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/#!raspberry.md\">instruksion<\/a><\/noindex>.<\/p>\n<p><i>Kaq p\u00ebr k\u00ebt\u00eb, do t\u00eb isha i lumtur t\u00eb d\u00ebgjoj k\u00ebshilla dhe kritika konstruktive.<\/i><br \/>\n<br \/>Burimi: <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.2 - 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\/sq\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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\udd47Programimi vizual p\u00ebr Sonoff Basic | ProHoster","description":"Nj\u00eb artikull mbi se si nga nj\u00eb pajisje kineze t\u00eb lir\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/33046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=33046"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/33046\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/24803"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=33046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=33046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=33046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}