{"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\/de\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","title":{"rendered":"Visuelle Programmierung f\u00fcr Sonoff Basic","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/0682cb274648d8a8d16b17bced0116d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEin Artikel dar\u00fcber, wie man aus einem g\u00fcnstigen chinesischen Ger\u00e4t einen programmierbaren logischen Controller erstellen kann. Ein solches Ger\u00e4t findet Anwendung sowohl in der Hausautomatisierung als auch als praktisches Projekt im Informatikunterricht der Schule.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<em>Zur Information: standardm\u00e4\u00dfig arbeitet das Programm Sonoff Basic \u00fcber eine mobile App mit einem chinesischen Cloud-Service. Nach der vorgeschlagenen Umr\u00fcstung wird die gesamte weitere Interaktion mit diesem Ger\u00e4t im Browser m\u00f6glich sein.<\/em> <\/p>\n<h2>Abschnitt I. Anschluss von Sonoff an den MGT24-Dienst<\/h2>\n<p><\/p>\n<h3>Schritt 1. Erstellung eines Dashboards<\/h3>\n<p>\nRegistrieren Sie sich auf der Website <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\">mgt24<\/a><\/noindex> (wenn Sie noch nicht registriert sind) und melden Sie sich mit Ihrem Konto an.<br \/>\n<b class=\"spoiler_title\">Anmeldung<\/b><img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/e9b310a7cb7d2da90ac8161407944a8c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUm ein Dashboard f\u00fcr ein neues Ger\u00e4t zu erstellen, klicken Sie auf die Schaltfl\u00e4che &#171;+&#187;.<br \/>\n<b class=\"spoiler_title\">Beispiel f\u00fcr die Erstellung eines Dashboards<\/b><img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/dc10d7009ea65c72714c2ccd2314ed0b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSobald das Dashboard erstellt ist, wird es in der Liste Ihrer Dashboards angezeigt.<\/p>\n<p>Im Tab \u201eInstallation\u201c des erstellten Dashboards finden Sie die Felder \u201eGer\u00e4te-ID\u201c und \u201eAutorisierungsschl\u00fcssel\u201c. Diese Informationen sind sp\u00e4ter zur Konfiguration des Sonoff-Ger\u00e4ts erforderlich.<br \/>\n<b class=\"spoiler_title\">Beispiel-Tab<\/b><img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/f6cc6f1f469c6278c38c4c63288d9ba2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Schritt 2. Firmware des Ger\u00e4ts<\/h3>\n<p>\nLaden Sie mit dem Tool <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/download\/esp8266-utils\/XTCOM_UTIL.zip\">XTCOM_UTIL<\/a><\/noindex> die Firmware <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/firmware\/plc_basic.bin\">des Sonoff Basic PLC<\/a><\/noindex> auf das Ger\u00e4t. Daf\u00fcr ben\u00f6tigen Sie einen USB-TTL-Converter. Hier ist <noindex><a rel=\"nofollow\" href=\"https:\/\/esp8266.ru\/esp8266-obnovlenie-proshivki-xtcom_util\/\">Anleitung<\/a><\/noindex> und <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_\">eine Videoanleitung.<\/a><\/noindex>.<\/p>\n<h3>Schritt 3. Ger\u00e4teeinrichtung<\/h3>\n<p>\nVersorgen Sie das Ger\u00e4t mit Strom. Sobald die LED aufleuchtet, dr\u00fccken Sie die Taste und halten Sie sie gedr\u00fcckt, bis die LED gleichm\u00e4\u00dfig zu blinken beginnt.<br \/>\nIn diesem Moment erscheint ein neues WLAN-Netzwerk mit dem Namen \u201ePLC Sonoff Basic\u201c. Verbinden Sie Ihren Computer mit diesem Netzwerk.<br \/>\n<b class=\"spoiler_title\">Entschl\u00fcsselung der LED-Anzeige<\/b><\/p>\n<p>LED-Anzeige<br \/>\nGer\u00e4tezustand<\/p>\n<p>periodisches doppeltes Blinken<br \/>\nkeine Verbindung zum Router<\/p>\n<p>leuchtet kontinuierlich<br \/>\nVerbindung zum Router hergestellt<\/p>\n<p>periodisches gleichm\u00e4\u00dfiges Blinken<br \/>\nWLAN-Access-Point-Modus<\/p>\n<p>ausgeschaltet<br \/>\nkeine Stromversorgung<\/p>\n<p>\u00d6ffnen Sie Ihren Internetbrowser und geben Sie in die Adresszeile \u201e192.168.4.1\u201c ein. Gehen Sie zu den Einstellungen des Ger\u00e4tes.<\/p>\n<p>F\u00fcllen Sie die Felder wie folgt aus:<\/p>\n<ul>\n<li>\u201eNetzwerkname\u201c und \u201ePasswort\u201c (zur Verbindung des Ger\u00e4ts mit Ihrem heimischen WLAN-Router).<\/li>\n<li>\u201eGer\u00e4te-ID\u201c und \u201eAutorisierungsschl\u00fcssel\u201c (zur Autorisierung des Ger\u00e4ts beim MGT24-Dienst).<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Beispiel f\u00fcr die Netzwerkeinstellungen des Ger\u00e4ts<\/b><img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/47d02b3883ce3896157da4dcc4fe7f40.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSpeichern Sie die Einstellungen und starten Sie das Ger\u00e4t neu.<br \/>\nHier <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/XTzGJI7y7t8?t=376\">eine Videoanleitung.<\/a><\/noindex>.<\/p>\n<h3>Schritt 4. Anschluss der Sensoren (optional)<\/h3>\n<p>\nDie aktuelle Firmware unterst\u00fctzt bis zu vier Temperatursensoren ds18b20. Hier <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\">eine Videoanleitung.<\/a><\/noindex> ist die Montage der Sensoren. Offensichtlich wird dies der komplizierteste Schritt sein, da er von Ihnen geschickte H\u00e4nde und einen L\u00f6tkolben erfordert.<\/p>\n<h2>Abschnitt II. Visuelle Programmierung<\/h2>\n<p><\/p>\n<h3>Schritt 1. Erstellung von Skripten<\/h3>\n<p>\nAls Programmiersprache wird <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.google.com\/blockly\/\">Blockly<\/a><\/noindex>verwendet, diese Umgebung ist einfach zu erlernen, sodass Sie keine Programmiererfahrung ben\u00f6tigen, um einfache Skripte zu erstellen.<\/p>\n<p>Ich habe spezielle Bl\u00f6cke f\u00fcr das Schreiben und Lesen von Ger\u00e4teparametern hinzugef\u00fcgt. Der Zugriff auf jeden Parameter erfolgt \u00fcber den Namen. F\u00fcr die Parameter ferner Ger\u00e4te werden zusammengesetzte Namen verwendet: \u201eparameter@ger\u00e4t\u201c.<br \/>\n<b class=\"spoiler_title\">Dropdown-Liste der Parameter<\/b><img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/6ba0f789a4d3e0a394f4773d2c401416.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Beispiel eines Skripts f\u00fcr zyklisches Ein- und Ausschalten einer Last (1Hz):<br \/>\n<img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/66876fcb1d029b1a06098a8f2118bba7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBeispiel eines Skripts, das die Arbeit zweier separater Ger\u00e4te synchronisiert. Insbesondere wiederholt das Relais des Zielger\u00e4ts das Verhalten des Relais des entfernten Ger\u00e4ts.<br \/>\n<img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/a44e81ce1301c7908ac9fa7437785162.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSkript f\u00fcr den Thermostat (ohne Hysterese):<br \/>\n<img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/0efa8a8f5e67f5ffd0812af5a2cececa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUm komplexere Skripte zu erstellen, k\u00f6nnen Variablen, Schleifen, Funktionen (mit Argumenten) und andere Konstrukte verwendet werden. Ich werde hier nicht alles detailliert aufschreiben, im Internet gibt es bereits recht viele <noindex><a rel=\"nofollow\" href=\"http:\/\/blockly.ru\/\">Lernmaterialien zu Blockly<\/a><\/noindex>.<\/p>\n<h3>Schritt 2. Ausf\u00fchrungsreihenfolge der Skripte<\/h3>\n<p>\nDas Skript l\u00e4uft im kontinuierlichen Modus, und sobald es sein Ende erreicht, wird es erneut gestartet. Dabei gibt es zwei Bl\u00f6cke, die die Ausf\u00fchrung des Skripts vor\u00fcbergehend anhalten k\u00f6nnen: \u201edelay\u201c und \u201epause.\u201c<br \/>\nDer Block \u201edelay\u201c wird f\u00fcr Millisekunden- oder Mikrosekundeverz\u00f6gerungen verwendet. Dieser Block h\u00e4lt den Zeitintervall strikt ein und blockiert die Operation des gesamten Ger\u00e4ts. <br \/>\nDer Block \u201epause\u201c wird f\u00fcr Sekundenverz\u00f6gerungen (auch k\u00fcrzer) verwendet und blockiert nicht die Ausf\u00fchrung anderer Prozesse im Ger\u00e4t.<br \/>\nWenn das Skript eine Endlosschleife enth\u00e4lt, in deren K\u00f6rper kein \u201epause\u201c steht, initiiert der Interpreter selbstst\u00e4ndig eine kurze Pause.<br \/>\nIm Falle eines Ersch\u00f6pfens des zugewiesenen Stapels wird der Interpreter die Ausf\u00fchrung eines solchen speicherhungrigen Skripts stoppen (seien Sie vorsichtig mit rekursiven Funktionen).<\/p>\n<h3>Schritt 3. Fehlersuche bei Skripten<\/h3>\n<p>\nZur Fehlersuche eines bereits auf das Ger\u00e4t geladenen Skripts kann die Programmverfolgung Schritt f\u00fcr Schritt gestartet werden. Dies ist \u00e4u\u00dferst n\u00fctzlich, wenn sich das Verhalten des Skripts als nicht so herausstellt, wie es der Autor beabsichtigt hat. In diesem Fall erm\u00f6glicht die Verfolgung dem Autor, schnell die Fehlerquelle zu finden und den Fehler im Skript zu beheben.<\/p>\n<p>Skript zur Berechnung der Fakult\u00e4t im Debugging-Modus:<br \/>\n<img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/ea6e23729fd530b79b89c9481e78bd64.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Debugging-Tool ist sehr einfach und besteht aus drei Haupttasten: \u201eStart\u201c, \u201eEin Schritt vorw\u00e4rts\u201c und \u201eStopp\u201c (vergessen wir nicht die \u201eEingabe\u201c und \u201eAusgabe\u201c aus dem Debugging-Modus). Neben der schrittweisen Verfolgung kann an jedem Block ein Haltepunkt gesetzt werden (Durch Klicken mit der Maus auf den Block).<br \/>\nUm die aktuellen Parameterwerte (Sensoren, Relais) auf dem Monitor anzuzeigen, verwenden Sie den Block \u201eprint\u201c.<br \/>\nHier <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/2mK6gvqe_18\">\u00dcberblicksvideo<\/a><\/noindex> \u00fcber die Verwendung des Debuggers.<\/p>\n<h2>Bereich f\u00fcr Neugierige. Was steckt darunter?<\/h2>\n<p>\nDamit die Skripte auf dem Zielger\u00e4t funktionieren, wurde ein Bytecode-Interpreter und ein Assembler mit 38 Instruktionen entwickelt. In den Quellcode von blockly wurde ein spezialisierter Codegenerator eingebaut, der visuelle Bl\u00f6cke in Assemblieranweisungen umwandelt. Diese Assemblersprache wird dann in Bytecode umgewandelt und zur Ausf\u00fchrung an das Ger\u00e4t \u00fcbertragen.<br \/>\nDie Architektur dieser virtuellen Maschine ist recht einfach, und es macht wenig Sinn, sie zu beschreiben. Im Internet finden Sie viele Artikel \u00fcber das Design von einfachsten virtuellen Maschinen.<br \/>\nF\u00fcr den Stack meiner virtuellen Maschine reserviere ich normalerweise 1000 Byte, das reicht dicke aus. Nat\u00fcrlich k\u00f6nnen tiefe Rekursionen jeden Stack ersch\u00f6pfen, aber es ist unwahrscheinlich, dass sie ein praktisches Anwendungsgebiet finden.<\/p>\n<p>Der endg\u00fcltige Bytecode ist ziemlich kompakt. Zum Beispiel betr\u00e4gt der Bytecode zur Berechnung der gleichen Fakult\u00e4t nur 49 Byte. Dies ist seine visuelle Darstellungsform:<br \/>\n<img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/1c6a8b693cbf2131f1f1369d97ad034b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnd das ist sein Assemblerprogramm:<\/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>Wenn die assemblerm\u00e4\u00dfige Darstellungsform keinen praktischen Wert hat, bietet die Registerkarte \u201ejavascrit\u201c im Gegensatz dazu eine vertrautere Ansicht als visuelle Bl\u00f6cke:<\/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>Was die Leistung betrifft. Beim Start eines einfachen Szenarios f\u00fcr den Blinkgeber erhielt ich auf dem Oszilloskop-Bildschirm einen Rechtecksignal von 47 kHz (bei einer Taktfrequenz des Prozessors von 80 MHz).<br \/>\n<img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/961a50c7ef269265443e078a1a81291a.jpg\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"Visuelle Programmierung f\u00fcr Sonoff Basic\" src=\"\/wp-content\/uploads\/2019\/05\/a416044b4cea01121e04e27ae7d1fef2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIch halte das f\u00fcr ein gutes Ergebnis, immerhin ist diese Geschwindigkeit fast zehnmal schneller als die von <noindex><a rel=\"nofollow\" href=\"http:\/\/esp8266freq.blogspot.com\/2016\/12\/esp-speed-compare-in-lua-micropython.html\">Lua<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/www.espruino.com\/Performance\">Espruino<\/a><\/noindex>.<\/p>\n<h2>Der abschlie\u00dfende Teil<\/h2>\n<p>\nZusammenfassend m\u00f6chte ich sagen, dass die Verwendung von Szenarien uns nicht nur erm\u00f6glicht, die Logik eines einzelnen Ger\u00e4ts zu programmieren, sondern auch die Verbindung mehrerer Ger\u00e4te zu einem gemeinsamen Mechanismus, wo einige Ger\u00e4te das Verhalten anderer beeinflussen. <br \/>\nIch m\u00f6chte auch anmerken, dass die gew\u00e4hlte Methode zur Speicherung der Szenarien (direkt in den Ger\u00e4ten und nicht auf dem Server) das Umschalten bereits funktionierender Ger\u00e4te auf einen anderen Server, beispielsweise auf einen Heim-Raspberry, erleichtert; hier <noindex><a rel=\"nofollow\" href=\"http:\/\/mgt24.ru\/en\/docs\/#!raspberry.md\">Anleitung<\/a><\/noindex>.<\/p>\n<p><i>Das ist alles, ich freue mich auf Ratschl\u00e4ge und konstruktive Kritik.<\/i><br \/>\n<br \/>Quelle: <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.1.1 - 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\/de\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Visuelles Programmieren f\u00fcr Sonoff Basic | ProHoster","description":"Ein Artikel dar\u00fcber, wie man aus einem billigen chinesischen Ger\u00e4t.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/vizualnoe-programmirovanie-dlya-sonoff-basic","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/33046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=33046"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/33046\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/24803"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=33046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=33046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=33046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}