{"id":7765,"date":"2021-09-11T08:19:14","date_gmt":"2021-09-11T08:19:14","guid":{"rendered":"https:\/\/www.fambach.net\/?p=7765"},"modified":"2021-09-11T08:19:16","modified_gmt":"2021-09-11T08:19:16","slug":"esp8266-rtos-sdk","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/esp8266-rtos-sdk\/","title":{"rendered":"ESP8266 RTOS SDK"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Contents\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Fakten\" >Facts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Anwendungsbereiche\" >Areas of application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Ansichten\" >Views<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Programmierung\" >Programming<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Bibliotheken\" >Libraries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Testprogramm\" >Test programme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Alexa\" >Alexa<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Probleme\" >Problems<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Gerat_erkannt_funktioniert_aber_nicht\" >Ger&auml;t erkannt funktioniert aber nicht<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Sonstiges\" >Miscellaneous<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Einbinden_mit_dem_Handy\" >Einbinden mit dem Handy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#ESPHome\" >ESPHome<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Fazit\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Verwandte_Beitrage\" >Verwandte Beitr&auml;ge<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/#Quellen\" >Sources<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">Das RTOS SDK is die Espressif eigenen Programmierumgebung f&uuml;r den ESP8266. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Facts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Auch das Arduino SDK kapselt die Funktionalit&auml;ten dieses SDKs. Jetzt k&ouml;nnte man sich fragen warum f&uuml;r ESP8266 spezialisierten Code schreiben indem man direkt das SDK verwendet. Die Anwort ist nicht ganz einfach aber hier ein paar Argumente:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Das Framework bietet erweiterte Funktionalit&auml;ten die in der Arduino IDE nicht gekapselt sind<\/li><li>Es gibt bestehende Programme f&uuml;r IOT die auf dem Framework basieren<\/li><li>It was always more up-to-date than the Arduino IDE in the past (it's no longer being developed).<\/li><li>Errors will be eliminated here first.<\/li><li>The Espressif AT Framework is based on it<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Gen&uuml;gend Speicher auf der Festplatte &gt; 2GB<\/li><li>Working Python environment<\/li><li>Wissen &uuml;ber die Windows Console (CMD)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Areas of application<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>AT-Firmware<\/li><li>Embedded programming<\/li><li>Usage of the RTOS's own OS functions<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Windows<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The current version is not working properly for me!!! <\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Install toolchain<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>WICHTIG Verwendet keine Pfade mit Leerzeichen, das f&uuml;hrt nur zu Problemen.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.espressif.com\/projects\/esp8266-rtos-sdk\/en\/v3.4\/get-started\/windows-setup.html\">https:\/\/docs.espressif.com\/projects\/esp8266-rtos-sdk\/en\/v3.4\/get-started\/windows-setup.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To install the utilities (toolchain), download the complete package at:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/dl.espressif.com\/dl\/esp32_win32_msys2_environment_and_toolchain-20181001.zip\">https:\/\/dl.espressif.com\/dl\/esp32_win32_msys2_environment_and_toolchain-20181001.zip<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I am unzipping the package to C:\/Devel<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"577\" src=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2021-09-04-07_06_19.jpg\" alt=\"\" class=\"wp-image-7766\"><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Install RTOS Framework<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Nun wird noch das Programmierframework ben&ouml;tigt, dieses gibt &uuml;ber <a rel=\"noreferrer noopener\" href=\"https:\/\/git-scm.com\/downloads\" target=\"_blank\">git<\/a>: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone -b v3.4 --recursive https:\/\/github.com\/espressif\/ESP8266_RTOS_SDK.git<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">IDF pfad setzen. Ich mache das manuell weil ich auch noch die IDF f&uuml;r den ESP32 installiert haben.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set IDF_PATH=C:\\Devel\\ESP8266_RTOS_SDK<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Install Python packages<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install --user -r $IDF_PATH\/requirements.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das sollte es erstmal gewesen sein und wenn sp&auml;ter bei der Programmierung keine Fehler auftreten hat es auch vollst&auml;ndig funktioniert ;). Bei mir bem&auml;ngelt er aktuell noch ein paar Sourcen die ich nicht aufl&ouml;sen kann. Es gibt auch noch die M&ouml;glichkeit die Installation in der MINGW Umgebung vorzunehmen, was mir wegen der begrenzten Console aber auf die Nerven ging. Deshalb habe ich mich entschieden das Framework auf einem Raspberry Pi zu installieren habe. Dies ging ohne gr&ouml;ssere Komplikationen von sich, siehe das folgede Kapitel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Linux (on PI)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create directory esp under user PI:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\/\nmkdir .\/esp\ncd esp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This directory is where everything happens.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Ben&ouml;tigten Pakete installieren<\/h4>\n\n\n\n<pre id=\"block-372f3fb0-14b7-4245-825a-e7b1b1ea7a18\" class=\"wp-block-code\"><code>sudo apt-get update\nsudo apt-get upgrade\nsudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">F&uuml;r 64-bit Linux:\n<a href=\"https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz\">https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz<\/a>\nF&uuml;r 32-bit Linux:\n<a href=\"https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz\">https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz<\/a>\n<strong>F&uuml;r den PI<\/strong>\nhttps:\/\/<a href=\"https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz\">https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz<\/a><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Install toolchain<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Download the toolchain using:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unpacking toolchain:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tar -xzf .\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz  <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set path  im Editor deiner Wahl die Datei  ~\/.profile &ouml;ffnen und die folgende Zeile ans Ende eintragen. (Nur wenns auch nach dem Neustart der Console wieder Vorhanden sein soll)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export PATH=&quot;$PATH:$HOME\/esp\/xtensa-lx106-elf\/bin&quot;\" <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Entweder aus- und wieder einloggen oder die Zeile einfach nochmal auf der Console ausf&uuml;hren. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">RTOS Framework<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Dieses kann mit git geholt werden, die Release v2.2.0.0 ist die letzte die den ESP8266 unterst&uuml;tzt<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone --recursive https:\/\/github.com\/espressif\/ESP8266_RTOS_SDK.git<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">add the path to the ~\/.profile file as well (only if it should also be available again after restarting the console)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Set IDF_PATH export IDF_PATH=&quot;$HOME\/esp\/ESP8266_RTOS_SDK&quot;\"<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Install Python module<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>python -m pip install --user -r $IDF_PATH\/requirements.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If pip is missing <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install python-pip<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Phyton Programmverzeichnis noch dem Pfad hinzuf&uuml;gen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export PATH=&quot;$PATH:\/home\/pi\/.local\/bin&quot;\"<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Programming<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Copy and compile the example program:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cp -r $IDF_PATH\/examples\/get-started\/hello_world \ncd hello_world\nmake menuconfig\nmake  \nmake flash<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mit menuconfig alle Einstellungen vornehmen hier waren es bei mir genau 0. Mit make die Bin&auml;rdatei erstellen und mit flash die Datei auf den ESP schreiben. Mit dem verwendeten ESP8266 Modul hat da flashen, was unter Windows ohne Probleme m&ouml;glich ist, leider nicht funktioniert :(.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problems<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">The information on the Espressif site is incorrect<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die Angaben auf der Espressif Seite sind mit Vorsicht zu verwenden. Manche Angaben stimmen nicht mehr andere sind f&uuml;r einer Windows Umgebung nicht geeignet. Auch sind die Angaben nicht sehr Versionsstabil also immer auf die Version achten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Miscellaneous<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Windows scheint eher nicht unterst&uuml;tzt zu werden zumindest ist es der Horror die Umgebung hier zum Laufen zu bringen. Unter Linux klappt es schnell und einfach, auch passt die Doku besser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Verwandte Beitr&auml;ge<\/h2>\n\n\n<ul class=\"display-posts-listing\">\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp-web-serial-bibliothek\/\">ESP WEB Serial Library<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp32-c3-seeed-studio-xiao\/\">ESP32-C3 Seeed Studio XIAO<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp32-c3-super-mini-board\/\">ESP32-C3 Super Mini Board<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/preview-luatos-esp32-c3-board\/\">Preview \u2013 LuatOS ESP32-C3 Board<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp32-bluetooth-gamepad-2\/\">ESP32 Bluetooth Gamepad<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp01-relay-platinen-2\/\">ESP01 \u2013 DHT11 Temperature and Humidity Sensor Boards<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp01-relay-platinen\/\">ESP01 Relay Boards<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/esp8266-32-wifi-manager\/\">ESP8266\/32 WiFi Manager.<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/d1-mini-shield-prototyp-platine\/\">D1 Mini Shield \u2013 Prototype PCB<\/a><\/li>\n<li class=\"listing-item\"><a class=\"title\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/\">ESP01 \u2013 Relay Board<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Sources<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-4e16917b-f215-4782-b4e4-71df30b47883\"><a rel=\"noreferrer noopener\" href=\"https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz\" target=\"_blank\">https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz<\/a> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-4e16917b-f215-4782-b4e4-71df30b47883\"><a href=\"https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz <\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-4e16917b-f215-4782-b4e4-71df30b47883\"><a href=\"https:\/\/https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/https:\/\/dl.espressif.com\/dl\/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.espressif.com\/projects\/esp8266-rtos-sdk\/en\/latest\/get-started\/get-started-devkitc.html\">https:\/\/docs.espressif.com\/projects\/esp8266-rtos-sdk\/en\/latest\/get-started\/get-started-devkitc.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/git-scm.com\/downloads\">https:\/\/git-scm.com\/downloads<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.espressif.com\/projects\/esp8266-rtos-sdk\/en\/v3.4\/get-started\/windows-setup.html\">https:\/\/docs.espressif.com\/projects\/esp8266-rtos-sdk\/en\/v3.4\/get-started\/windows-setup.html<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Das RTOS SDK is die Espressif eigenen Programmierumgebung f&uuml;r den ESP8266. Fakten Auch das Arduino SDK kapselt die Funktionalit&auml;ten dieses SDKs. Jetzt k&ouml;nnte man sich fragen warum f&uuml;r ESP8266 spezialisierten Code schreiben indem man direkt das SDK verwendet. Die Anwort ist nicht ganz einfach aber hier ein paar Argumente: Das Framework bietet erweiterte Funktionalit&auml;ten die &#8230;<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/esp01-neopixel-ring\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"ESP01 &#8211; neoPixel Ring\"<\/span> <span class=\"meta-nav\">\u2192<\/span><\/a>","protected":false},"author":1,"featured_media":7791,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[157,187,190,523],"tags":[33,477,23,520,521,522],"class_list":["post-7765","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-atnrob","category-esp","category-esp8266","category-free-rtos","tag-esp","tag-esp-idf","tag-esp8266","tag-free-rtos","tag-rtos","tag-toolchain","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=7765"}],"version-history":[{"count":9,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7765\/revisions"}],"predecessor-version":[{"id":7790,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/7765\/revisions\/7790"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/7791"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=7765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=7765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=7765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}