{"id":4664,"date":"2019-09-07T09:03:06","date_gmt":"2019-09-07T09:03:06","guid":{"rendered":"http:\/\/fambach.net\/?p=4664"},"modified":"2026-10-03T20:29:24","modified_gmt":"2026-10-03T20:29:24","slug":"ota-esp32fota-test-2","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/","title":{"rendered":"OTA - ESP32fota Test"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 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-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Anwendungsbereiche\" >Areas of application<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Benotigte_Komponenten\" >Ben\u00f6tigte Komponenten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Versuchsaufbau\" >Experimental setup<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Webserver\" >Web server<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Installation\" >Installation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Konfiguration\" >Configuration<\/a><\/li><\/ul><\/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\/ota-esp32fota-test-2\/#ESP_Programmierung\" >ESP Programmierung<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Bibliotheken\" >Libraries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Testprogramm\" >Test programme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Binary_mit_neuer_Version_erstellen\" >Binary mit neuer Version erstellen<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Probleme\" >Problems<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Jsonbin_Datei_wird_nicht_gefunden\" >Json\/bin Datei wird nicht gefunden<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Fazit\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Verwandte_Beitrage\" >Related Posts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/#Quellen\" >Sources<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">OTA (Update over the Air) ist ein Konzept zum Aktualisieren der Firmware \u00fcber ein Netzwerk. Ich habe mir die<span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/chrisjoyce911\/esp32FOTA\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ub-content-link__anchor\"> Esp32FOTA<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> Bibliothek hier mal genauer angesehen.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alle von mir verwendeten Dateien befinden sich in folgendem Github Verzeichnis:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--broken ub-content-link--status-after is-broken\"><a href=\"https:\/\/github.com\/sfambach\/esp32\/tree\/master\/test\/ESP32fota\" class=\"ub-content-link__anchor\" title=\"This link appears to be broken.\">https:\/\/github.com\/sfambach\/esp32\/tree\/master\/test\/ESP32fota<\/a><span class=\"ub-status ub-status--broken\" title=\"Link status: Broken\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Broken<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sollte etwas nicht funktionieren, lieber die Github Dateien verwenden, diese sind aktueller als der Beitrag. Bei Problemen lasst einen Kommentar da.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"anwendungsbereiche\"><span class=\"ez-toc-section\" id=\"Anwendungsbereiche\"><\/span>Areas of application<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>F\u00fcr ESP32, vielleicht auch f\u00fcr ESP8266 (noch zu testen) und andere, die \u00fcber einen Netzwerkzugang verf\u00fcgen<\/li><li>Bietet die M\u00f6glichkeit der Aktualisierung mehrerer Clients ohne direkten  Zugang<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"benoetigte-komponenten\"><span class=\"ez-toc-section\" id=\"Benotigte_Komponenten\"><\/span>Ben\u00f6tigte Komponenten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>ESP32<\/li><li>Webserver (in meinem Fall ein Raspberry PI)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"versuchsaufbau\"><span class=\"ez-toc-section\" id=\"Versuchsaufbau\"><\/span>Experimental setup<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Der ESP wird initial mit einer Firmware bespielt.<\/li><li>Auf einem Webserver wird eine JSON Datei mit Update-Informationen abgelegt.<\/li><li>Gibt es eine neue Firmware, wird die JSON Datei aktualisiert und der neue Code in einem Verzeichnis auf dem Webserver abgelegt.<\/li><li>Der ESP schaut jede Runde in seiner Loop Funktion, ob eine neue Version vorhanden ist. Ist dies der Fall, l\u00e4dt er diese herunter und aktualisiert sich.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"webserver\"><span class=\"ez-toc-section\" id=\"Webserver\"><\/span>Web server<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"installation\"><span class=\"ez-toc-section\" id=\"Installation\"><\/span>Installation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe bereits einen PI als Webserver und werde hier nicht mehr auf die Installation eingehen. Folgender Link k\u00f6nnte aber dabei helfen:<\/p>\n\n\n\n<figure class=\"wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-stefan-039-s-webblog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"tuoOZMQl80\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/www.fambach.net\/en\/raspberry-pi-3\/\" class=\"ub-content-link__anchor\">Raspberry Pi 3<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u201eRaspberry PI 3\u201c \u2014 Stefan's WebBlog\" src=\"https:\/\/www.fambach.net\/raspberry-pi-3\/embed\/#?secret=tuoOZMQl80\" data-secret=\"tuoOZMQl80\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"konfiguration\"><span class=\"ez-toc-section\" id=\"Konfiguration\"><\/span>Configuration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr das Projekt habe ich ein neues Verzeichnis mit einer leeren JSON Datei auf dem Webserver angelegt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/html\/\nsudo mkdir espupdate\ncd espupdate\ntouch update.json<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In die Datei schreibe ich den folgenden Code (sudo nano update.jason).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"type\": \"esp32-heltec-kit-32\",\n    \"version\": 4,\n    \"host\": \"pi1\",\n    \"port\": 80,\n    \"bin\": \"\/espupdate\/esp32-heltec-kit-32-4.bin\"\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Noch allen Lese-\/Ausf\u00fchrungsrechte einr\u00e4umen<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chmod 755 ..\/espupdate\/ -R<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp-programmierung\"><span class=\"ez-toc-section\" id=\"ESP_Programmierung\"><\/span>ESP Programmierung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bibliotheken\"><span class=\"ez-toc-section\" id=\"Bibliotheken\"><\/span>Libraries<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ben\u00f6tigt wird die esp32Fota Bibliothek:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/chrisjoyce911\/esp32FOTA\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Diese verwendet wiederum die ArduinoJson Bibliothek.  Normalerweise kopiere ich die Bibliotheken mit in das Projektverzeichnis, damit ich immer eine lauff\u00e4hige Version habe, die unabh\u00e4ngig davon ist, welche Bibliotheksversion in der Arduino GUI installiert ist. <br>Leider habe ich die ArduinoJson Bibliothek im Projektordner nicht zum Laufen bekommen (Pfadprobleme). Somit muss diese bitte \u00fcber den LibManager der Arduino Gui installiert werden. <\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/bblanchon\/ArduinoJson\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The integration of libraries in general is described under the following link, and I will not go into further detail here.<br><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/www.fambach.net\/en\/arduino-ide\/#Bibliotheken\" class=\"ub-content-link__anchor\">https:\/\/fambach.net\/arduino-ide#Bibliotheken<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span> <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"testprogramm\"><span class=\"ez-toc-section\" id=\"Testprogramm\"><\/span>Test programme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das Testprogramm kann, wenn nicht schon geschehen, \u00fcber folgenden Link heruntergeladen werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--broken ub-content-link--status-after is-broken\"><a href=\"https:\/\/github.com\/sfambach\/esp32\/tree\/master\/test\/ESP32fota\" class=\"ub-content-link__anchor\" title=\"This link appears to be broken.\">https:\/\/github.com\/sfambach\/esp32\/tree\/master\/test\/ESP32fota<\/a><span class=\"ub-status ub-status--broken\" title=\"Link status: Broken\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Broken<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bitte die WLAN Daten und ggf. die Serverdaten in der Datei  <strong>P32fota.ino<\/strong> anpassen. Diese compilieren und auf den ESP spielen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"binary-mit-neuer-version-erstellen\"><span class=\"ez-toc-section\" id=\"Binary_mit_neuer_Version_erstellen\"><\/span>Binary mit neuer Version erstellen<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In der Datei <strong>ESP32fota.ino<\/strong> die Version erh\u00f6hen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#define VERSION 5 \/\/ hier die version um eins erh\u00f6hen\nesp32FOTA esp32FOTA(\"esp32-heltec-kit-32\", VERSION);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Danach \u00fcber die Arduino Gui ein Binary erzeugen:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"328\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/09\/image-6.png\" alt=\"\" class=\"wp-image-4674\"><figcaption>Arduino Gui \u2013 Binary exportieren<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Im Projektordner findet sich dann eine .BIN Datei. Diese gleich benennen wie in der JSON Datei (hier esp32-heltec-kit-32-4.bin)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und sie ins gleiche Verzeichnis wie die JSON Datei legen. Das folgende Video zeigt, wie der Versionswechsel aussehen kann. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(Der Dateiname ist nicht so wichtig, wichtiger ist die Version.)<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1042\" style=\"aspect-ratio: 734 \/ 1042;\" width=\"734\" controls src=\"https:\/\/fambach.net\/wp-content\/uploads\/2019\/09\/esp32fotaTest.mp4\"><\/video><figcaption>esp32fota update Firmware von Version 4 auf 5<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"probleme\"><span class=\"ez-toc-section\" id=\"Probleme\"><\/span>Problems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"json-bin-datei-wird-nicht-gefunden\"><span class=\"ez-toc-section\" id=\"Jsonbin_Datei_wird_nicht_gefunden\"><\/span>Json\/bin Datei wird nicht gefunden<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Den Pfad und die Zugriffsrechte \u00fcberpr\u00fcfen (sudo chmod 755)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit\"><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Installation gestaltet sich einfach. Ein sehr n\u00fctzliches Tool, besonders wenn man mehrere Knotentypen und unterschiedliche Versionen betreibt. Durch die Verwendung der ArduinoJson Bibliothek geht sehr viel Speicher schon f\u00fcr das OTA verloren. Der ESP32 verf\u00fcgt zwar \u00fcber gen\u00fcgend Speicher, die Verwendung sollte jedoch gut \u00fcberlegt sein.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"verwandte-beitraege\"><span class=\"ez-toc-section\" id=\"Verwandte_Beitrage\"><\/span>Related Posts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quellen\"><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Sources<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/bblanchon\/ArduinoJson\" target=\"_blank\" class=\"ub-content-link__anchor\">Arduino JSon<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--broken ub-content-link--status-after is-broken\"><a href=\"https:\/\/github.com\/sfambach\/esp32\/tree\/master\/test\/ESP32fota\" class=\"ub-content-link__anchor\" title=\"This link appears to be broken.\">ESP32FOta<\/a><span class=\"ub-status ub-status--broken\" title=\"Link status: Broken\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Broken<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a href=\"https:\/\/www.az-delivery.de\/blogs\/azdelivery-blog-fur-arduino-und-raspberry-pi\/ota-over-the-air-esp-programmieren-uber-wlan-entwurf?ls=de&amp;cache=false\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ub-content-link__anchor\">AZ-Delivery Projekt<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>OTA (Update over the Air) ist ein Konzept zum Aktualisieren der Firmware \u00fcber ein Netzwerk. Ich habe mir die Esp32FOTA\u25cfLink status: OK Bibliothek hier mal genauer angesehen. Alle von mir verwendeten Dateien befinden sich in folgendem Github Verzeichnis: https:\/\/github.com\/sfambach\/esp32\/tree\/master\/test\/ESP32fota\u25cfLink status: Broken Sollte etwas nicht funktionieren, lieber die Github Dateien verwenden, diese sind aktueller als der &#8230;<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/ota-esp32fota-test-2\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"OTA &#8211; ESP32fota Test\"<\/span> <span class=\"meta-nav\">\u2192<\/span><\/a>","protected":false},"author":1,"featured_media":4681,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[189],"tags":[33,148,150,149],"class_list":["post-4664","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp-projekte","tag-esp","tag-esp32","tag-netzwerk","tag-ota","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4664","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=4664"}],"version-history":[{"count":19,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4664\/revisions"}],"predecessor-version":[{"id":17282,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/4664\/revisions\/17282"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/4681"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=4664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=4664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=4664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}