Danke, dank dir weiß ich jetzt wie es bei platform IO funktioniert. Ich möchte in Zukunft eigentlich nur platform IO nutzen, musste aber feststellen das hin und wieder das Wissen fehlt wie man die ini konfiguriert
Geil, ich habe an einem ESP8266 6 Stück DS18B20 angeschlossen, alles funktioniert in der Haussteuerung, und das mit deinem OTA fehlte mir noch, denn immer bei einer Änderung mit dem Notebook in den Keller, und dann umprogramieren wäre echt doof, deshalt DANKE für dieses echt gute Video, super erklärt, und es hat bei mir auf Anhieb funktioniert, DANKE dafür.
Danke Dir für das interessante Video. Ich wusste nicht, dass das OTA mittlerweile so einfach ist. Werd ich sicher zukünftig in alles Neue einbauen just in case.....
man müsste noch irgendwie das aufwachen aus dem deepsleep automatisch abfangen können. habe diverse temp sensoren, die nur all 10 Minuten aufwachen. Aber ansonsten wie immer sehr informativ - Danke dafür!
Für die kannst du Ota http wählen - da sucht der esp auf einem http Server ob dort eine andere Firmware als seine eigene liegt und installiert die selbstständig
Genau. Der ESP ist ja im Deep-Sleep nirgends erreichbar, daher ist Push nicht drin. Hier muss der ESP dann beim Aufwachen aktiv bei einem Server nachschauen, ob dort eine neue Firmware für ihn hinterlegt wurde, und ggf. ein Update starten. Das geht mit eigenem Webserver und ESPhttpUpdate (z.B. www.bakke.online/index.php/2017/06/02/self-updating-ota-firmware-for-esp8266/ ) oder auch über Cloud-Dienste wie IOTAppStory von @Andreas Spiess @UCu7_D0o48KbfhpEohoP7YSQ
Wow echt einfach! Mit PlatformIO muss ich mich endlich beschäftigen, damit ich auch für Arduino endlich eine richtige IDE verwenden kann Edit: Mit PlatformIO hat der OTA Upload genau einmal funktioniert, und dann nicht mehr. Ich glaube dann lohnt sich der Umstieg nicht. Edit 2: Das ESP-01 scheint echt verdammt zickig zu sein. Mit einem D1 Mini geht OTA wunderbar.
Sehr interessant zum Basteln. Ich nutze für einige Gerät bei mir auch die OTA Funktion aber über https. Die Geräte prüfen einfach beim hochfahren, ob eine neue Firmware verfügbar ist. Tatsächlich kannte ich bisher auch nur OTA via http/s
Habe gerade etwas den Code der OTA lib angeschaut, wenn ich das richtig verstehe ist es wirklich nicht sicher. Erstmal wird mit UDP die Auth über ein Challenge Response Verfahren mit MD5 Hashes gemacht. Naja, nicht optimal, aber soweit okay. Wenn die Auth in Ordnung war (oder deaktiviert) geht der ESP in den state OTA_RUNUPDATE über, verbindet sich diesmal mit TCP zum Update Rechner und lädt die Daten runter. Selbst wenn ein Angreifer nicht direkt den Passwort Hash/Challenge knackt, dürfte ihn nichts daran hindern einfach zu warten bis ein echtes OTA Update kommt um die Auth Pakete einfach weiter zu leiten, aber dann stattdessen eine manipulierte Firmware zu senden. Das Update wird ansonsten noch mit MD5 gecheckt, aber das kann ein Angreifer ja auch berechnen und den passenden Wert mitschicken.
Ein Video über ESP-Mesh wär toll :) Und ließe sich ArduinoOTA auch über diesen Layer realisieren? Ist mWn ja kein TCP/IP. Aber sicher bin ich mir da nicht ^^
Wie macht der ESP das, dass er seine Funktion überhaupt aufrecht erhalten kann, also die Verbindung zum Netzwerk und gleichzeitig sein Programm aktualisieren? EDIT. Ok hab nicht bis Ende geschaut. 😄
Super Video. Das versteh sogar ich 😀 Kann man das auch benutzen, dass er regelmäßig auf einem Webserver nachschaut und sich das dann holt oder muss man dann händisch runterladen und selbst "umschalten"?
Stimmt, dazu (wireless debugging) ist das Video von Andreas Spiess ganz hilfreich ua-cam.com/video/1pwqS_NUG7Q/v-deo.html . Die 2 Videos ergänzen sich sehr schön.
Ich habe es versucht mit ArduinoMega und einem Ethernetshield, konnte OTA auf den Mega installieren, aber das OTA-Update ist mir immer fehlgeschlagen. Teilweise wurde das Passwort nicht erkannt oder er hat ein Upload fehler gemeldet.
Prinzipiell gehen auch andere Boards mit ELAN/Ethernet. Eine Liste list im der l Library-Beschreibung. Gerade bei AVR muss man aber bedenken, dass man genügend Platz für das Zwischenspeichern benötigt. Ich weiß jetzt auswendig nicht, wie das dort implementiert ist, aber entweder muss man vermutlich den Sketch auf halbe Größe machen oder ist auf die Größe des RAM limitiert.
Schönes Video. Leider bekomme ich als Anfänger es nicht in mein Gewächshaus Sketch eingebunden. Zudem ich zum Aufspielen auf den ESP32modeNCU immer die 5V/3V Sensoren trennen muss, sowie die Boot Taste am ESP gedrückt halten muss, um einen Sketch per USB hochzuladen. Naja, man lernt dazu, und vielleicht finde ich noch eine Lösung.
Frage: beim "normalen" flashen, muss der Microcontroller hardwaremäßig in den Programmiermodus geschaltet/gejumpert werden und danach wieder aus. Ist das bei OTA unnötig? Hab hier keinen diesbezüglichen Hinweis gefunden oder übersehen.
Hm, meinst du der ESP ist mit einem Handy o.Ä. verbunden, der ein WLAN aufmacht? Prinzipiell ja, allerdings sollte das programmierende Gerät dann auch mit diesem AP verbunden sein. VPN müsste (zumindest mit PIO) auch funktionieren. Von direkter Programmierung über das Internet, also Portweiterleitungen o.Ä., würde ich aber dringend abraten - das dürfte beim Thema Sicherheit nicht lange halten.
Ist zwar schon lange her, aaaaaber: brauche mal Hilfe. Ab 14:30 sagst du, dass wenn man viele esp8266 hat, kann man durch einmal falschen alle Updaten? Oder habe ich das Mißverstanden? Ich kann doch nur einen nach den anderen flashen...auch über WiFi, oder nicht? Wer was weiß bitte mal melden, Danke ;)
Korrekt, man kann eigentlich nur nacheinander Flashen. Was ich damit meinte: Üblicherweise muss man Firmware lokal testen (mit dem Risiko z.B. die WLAN-Config zu zerschießen). Dafür muss man also mit Kabel ans Gerät. Wenn überall HW und SW soweit identisch ist, kann man "den Rest" dann aber ober OTA/WLAN aktualisieren. Das geht mWn. nur nacheinander, man könnte aber über Scripte oder ganze Konfigurationsmanagementsysteme das so automatisieren, dass alle nacheinander abgearbeitet werden.
Bei PlatformIO gibt man die IP an, das geht auch über Netzgrenzen hinweg. Die ArduinoIDE scheint keine Option dafür zu haben, die müsste man entweder die Definitionen ändern oder nach dem Kompilieren (verify) den Upload manuell über die Textkonsole starten: github.com/esp8266/Arduino/issues/2480
hallo, tolles video ota upload geht , ich kann aber nichts auf dem seriellen monitor sehen da kommt die meldung in der IDE "Serieller Monitor auf Netzwerkports wie 192.168.178.29 für null in dieser Version wird nicht unterstützt" habe arduino 1.8.13. Bibliotheken auf dem akuellen stand. was kann das sein ?
Wie auch im Video gesagt: Serieller Port ist über Netzwerk nicht möglich. Man kann im Sketch stattdessen einen Webserver oder einen Telnet-Server (z.B. www.nikolaus-lueneburg.de/2017/09/wifi-telnet-server-auf-dem-esp8266/ ) starten und die Meldungen dort ausgeben.
Im Prinzip ist es - wenn nicht grade ein Upload läuft - nahezu die selbe "Last" wie natives MDNS. Etwas RAM wird es noch belegen. In der Praxis dürfte man das Vernachlässigen können.
Cooles Video ohne Schnickschnack das gefällt mir werde das mal probieren. Gibt es noch was zu beachten bei der Verwendung mit Esp32 und geht sowas auch mit dem esp 01.
Jein. Prinzipiell läuft ArduinoOTA auch mit Shields, allerdings brauch der Mikrocontroller genügend Platz. Am besten mal die Anleitung wälzen: github.com/jandrassy/ArduinoOTA
danke für die Videos über Arduino und ESP. Könntest du mal ein Video über Bedienung von Platform IO machen? das ist alles in englisch und viele (auch ich) kommen damit nicht zurecht. Danke im Voraus.
Hm, das Video in der Infokarte kennst du? Da hatte ich die Grundfunktionen für Arduino-Umsteiger mal erklärt. Ansonsten bin ich vermutlich der Falsche dafür - da ich die meiste Zeit des Tages englisch unterwegs bin merke ich gar nicht, wenn da etwas ohne schwer verständlich ist. Bis eben hätte ich nicht mal gewusst, dass PIO nicht auf Deutsch war ;)
Nun weil es beides nicht fertig gibt. OTA ist eine Funktion, welche man in eigenen Projekten mit einbauen kann. Es funktionieren alle gängigen Boards mit ESP8266 oder ESP32. Ein Beispielcode wird bei den Programmierumgebungen für den jeweiligen IC mitgeliefert und können über das Beispielmenü eingesehen werden, für ESP8266 sieht das z.B. so aus: github.com/esp8266/Arduino/blob/master/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino
Danke, dank dir weiß ich jetzt wie es bei platform IO funktioniert. Ich möchte in Zukunft eigentlich nur platform IO nutzen, musste aber feststellen das hin und wieder das Wissen fehlt wie man die ini konfiguriert
Echt informativ und gut unterteilt
Geil, ich habe an einem ESP8266 6 Stück DS18B20 angeschlossen, alles funktioniert in der Haussteuerung, und das mit deinem OTA fehlte mir noch, denn immer bei einer Änderung mit dem Notebook in den Keller, und dann umprogramieren wäre echt doof, deshalt DANKE für dieses echt gute Video, super erklärt, und es hat bei mir auf Anhieb funktioniert, DANKE dafür.
Danke für das Video!
Danke Dir für das interessante Video. Ich wusste nicht, dass das OTA mittlerweile so einfach ist. Werd ich sicher zukünftig in alles Neue einbauen just in case.....
Danke, hat geklappt und du hast alles recht zum Punkt gebracht und erklärt. Viel Respekt
Danke! Sehr hilfreich!
man müsste noch irgendwie das aufwachen aus dem deepsleep automatisch abfangen können. habe diverse temp sensoren, die nur all 10 Minuten aufwachen.
Aber ansonsten wie immer sehr informativ - Danke dafür!
Für die kannst du Ota http wählen - da sucht der esp auf einem http Server ob dort eine andere Firmware als seine eigene liegt und installiert die selbstständig
Genau. Der ESP ist ja im Deep-Sleep nirgends erreichbar, daher ist Push nicht drin. Hier muss der ESP dann beim Aufwachen aktiv bei einem Server nachschauen, ob dort eine neue Firmware für ihn hinterlegt wurde, und ggf. ein Update starten. Das geht mit eigenem Webserver und ESPhttpUpdate (z.B. www.bakke.online/index.php/2017/06/02/self-updating-ota-firmware-for-esp8266/ ) oder auch über Cloud-Dienste wie IOTAppStory von @Andreas Spiess @UCu7_D0o48KbfhpEohoP7YSQ
@@adlerweb kannst du das vielleicht auch als Video umsetzen? Die Anleitung erscheint mir recht schwierig auf den ersten Blick.
Wow echt einfach! Mit PlatformIO muss ich mich endlich beschäftigen, damit ich auch für Arduino endlich eine richtige IDE verwenden kann
Edit: Mit PlatformIO hat der OTA Upload genau einmal funktioniert, und dann nicht mehr. Ich glaube dann lohnt sich der Umstieg nicht.
Edit 2: Das ESP-01 scheint echt verdammt zickig zu sein. Mit einem D1 Mini geht OTA wunderbar.
Sehr interessant zum Basteln. Ich nutze für einige Gerät bei mir auch die OTA Funktion aber über https. Die Geräte prüfen einfach beim hochfahren, ob eine neue Firmware verfügbar ist. Tatsächlich kannte ich bisher auch nur OTA via http/s
Top, das ist ja richtig cool.
Achtung keine Delay Befehle in die Loop Schleife machen - sonst geht OTA nicht. Am besten ein ESP32 nehmen mit parallel Loop!
Delays funktionieren - auch auf dem ESP8266.
@@andreashobby ab ca 2000ms funktioniert es nicht mehr und mqtt Client geht der OTA auch nicht.
Danke dir !
Kindisch, ich weiß, aber ich freu mich gerade total, dass ich der 9999. Zuschauer bin :D
Nice
Habe gerade etwas den Code der OTA lib angeschaut, wenn ich das richtig verstehe ist es wirklich nicht sicher.
Erstmal wird mit UDP die Auth über ein Challenge Response Verfahren mit MD5 Hashes gemacht. Naja, nicht optimal, aber soweit okay. Wenn die Auth in Ordnung war (oder deaktiviert) geht der ESP in den state OTA_RUNUPDATE über, verbindet sich diesmal mit TCP zum Update Rechner und lädt die Daten runter.
Selbst wenn ein Angreifer nicht direkt den Passwort Hash/Challenge knackt, dürfte ihn nichts daran hindern einfach zu warten bis ein echtes OTA Update kommt um die Auth Pakete einfach weiter zu leiten, aber dann stattdessen eine manipulierte Firmware zu senden. Das Update wird ansonsten noch mit MD5 gecheckt, aber das kann ein Angreifer ja auch berechnen und den passenden Wert mitschicken.
Ein Video über ESP-Mesh wär toll :)
Und ließe sich ArduinoOTA auch über diesen Layer realisieren? Ist mWn ja kein TCP/IP. Aber sicher bin ich mir da nicht ^^
Braucht man den Transitor der auf dem 8266 gelötet ist um OTA zu betreiben oder warum hast du den angelötet.
Nein, das ist ein Temperatursensor, der war nur von einem anderen Projekt noch drauf.
Danke
Ah ein PlatformIO Chad.
Wie macht der ESP das, dass er seine Funktion überhaupt aufrecht erhalten kann, also die Verbindung zum Netzwerk und gleichzeitig sein Programm aktualisieren?
EDIT. Ok hab nicht bis Ende geschaut. 😄
Super Video. Das versteh sogar ich 😀
Kann man das auch benutzen, dass er regelmäßig auf einem Webserver nachschaut und sich das dann holt oder muss man dann händisch runterladen und selbst "umschalten"?
Ja, ist möglich, in den Beispielen sollte passender Code dabei sein.
Tipp zum Debug : geht mit Telnet Protokoll (Befehle sind ähnlich wie Serial) und als Monitor PuTTY.
Stimmt, dazu (wireless debugging) ist das Video von Andreas Spiess ganz hilfreich ua-cam.com/video/1pwqS_NUG7Q/v-deo.html . Die 2 Videos ergänzen sich sehr schön.
Danke fürs Video!
Geht das ganze auch mit anderen Arduinos? z.B Arduino Mega oder Uno in Kombination mit dem Ethernet Shield?
Ich habe es versucht mit ArduinoMega und einem Ethernetshield, konnte OTA auf den Mega installieren, aber das OTA-Update ist mir immer fehlgeschlagen.
Teilweise wurde das Passwort nicht erkannt oder er hat ein Upload fehler gemeldet.
Prinzipiell gehen auch andere Boards mit ELAN/Ethernet. Eine Liste list im der l Library-Beschreibung. Gerade bei AVR muss man aber bedenken, dass man genügend Platz für das Zwischenspeichern benötigt. Ich weiß jetzt auswendig nicht, wie das dort implementiert ist, aber entweder muss man vermutlich den Sketch auf halbe Größe machen oder ist auf die Größe des RAM limitiert.
Wenn nach dem "USB" Upload das Gerät (IP) nicht in der IDE sichtbar ist alles nicht benötige Netzwerk-Karten deaktivieren (z;B VMware NICs)
Schönes Video. Leider bekomme ich als Anfänger es nicht in mein Gewächshaus Sketch eingebunden. Zudem ich zum Aufspielen auf den ESP32modeNCU immer die 5V/3V Sensoren trennen muss, sowie die Boot Taste am ESP gedrückt halten muss, um einen Sketch per USB hochzuladen. Naja, man lernt dazu, und vielleicht finde ich noch eine Lösung.
Kann der Bereich für das OTA auch in einer angeschlossenen SD-Card liegen anstatt im Flash?
Frage: beim "normalen" flashen, muss der Microcontroller hardwaremäßig in den Programmiermodus geschaltet/gejumpert werden und danach wieder aus. Ist das bei OTA unnötig? Hab hier keinen diesbezüglichen Hinweis gefunden oder übersehen.
Die OTA-Software startet den Programmiermodus selbst, man muss also nichts umstecken.
@@adlerweb Vielen Dank für die schnelle Antwort!
Kann man auch OTA verwenden wenn der ESP in einem mobilen hotspot sein soll?
Hm, meinst du der ESP ist mit einem Handy o.Ä. verbunden, der ein WLAN aufmacht? Prinzipiell ja, allerdings sollte das programmierende Gerät dann auch mit diesem AP verbunden sein. VPN müsste (zumindest mit PIO) auch funktionieren. Von direkter Programmierung über das Internet, also Portweiterleitungen o.Ä., würde ich aber dringend abraten - das dürfte beim Thema Sicherheit nicht lange halten.
Ist zwar schon lange her, aaaaaber: brauche mal Hilfe. Ab 14:30 sagst du, dass wenn man viele esp8266 hat, kann man durch einmal falschen alle Updaten? Oder habe ich das Mißverstanden? Ich kann doch nur einen nach den anderen flashen...auch über WiFi, oder nicht? Wer was weiß bitte mal melden, Danke ;)
Korrekt, man kann eigentlich nur nacheinander Flashen. Was ich damit meinte: Üblicherweise muss man Firmware lokal testen (mit dem Risiko z.B. die WLAN-Config zu zerschießen). Dafür muss man also mit Kabel ans Gerät. Wenn überall HW und SW soweit identisch ist, kann man "den Rest" dann aber ober OTA/WLAN aktualisieren. Das geht mWn. nur nacheinander, man könnte aber über Scripte oder ganze Konfigurationsmanagementsysteme das so automatisieren, dass alle nacheinander abgearbeitet werden.
Gibt es auch eine Möglichkeit, OTA zu ermöglichen, wenn der PC nicht im gleichen Netzwerk wie der Microcontroller ist?
Bei PlatformIO gibt man die IP an, das geht auch über Netzgrenzen hinweg. Die ArduinoIDE scheint keine Option dafür zu haben, die müsste man entweder die Definitionen ändern oder nach dem Kompilieren (verify) den Upload manuell über die Textkonsole starten: github.com/esp8266/Arduino/issues/2480
hallo, tolles video ota upload geht , ich kann aber nichts auf dem seriellen monitor sehen
da kommt die meldung in der IDE "Serieller Monitor auf Netzwerkports wie 192.168.178.29 für null in dieser Version wird nicht unterstützt" habe arduino 1.8.13. Bibliotheken auf dem akuellen stand.
was kann das sein ?
Wie auch im Video gesagt: Serieller Port ist über Netzwerk nicht möglich. Man kann im Sketch stattdessen einen Webserver oder einen Telnet-Server (z.B. www.nikolaus-lueneburg.de/2017/09/wifi-telnet-server-auf-dem-esp8266/ ) starten und die Meldungen dort ausgeben.
Danke das habe ich wohl überhört
Wie stark belastet OTA die Leistung des ESP32
Im Prinzip ist es - wenn nicht grade ein Upload läuft - nahezu die selbe "Last" wie natives MDNS. Etwas RAM wird es noch belegen. In der Praxis dürfte man das Vernachlässigen können.
Wenn der OTA Upload nicht funktioniert, dann evtl. die Firewall deaktivieren bzw ESPOTA.exe freigeben/zulassen
Cooles Video ohne Schnickschnack das gefällt mir werde das mal probieren. Gibt es noch was zu beachten bei der Verwendung mit Esp32 und geht sowas auch mit dem esp 01.
ESP32 hatte ich selbst nicht probiert, sollte aber identisch sein. ESP01 funktioniert.
Das heißt ja, dass das auch von überall auf der Welt via VPN gehen müsste, oder?
Unter platformio ja, bei Arduino muss man etwas rum tricksen, da der standardmäßig ja auch die automatische Erkennung und somit mdns aufbaut.
Kann man das auch mit einem ethernet-shield machen
Jein. Prinzipiell läuft ArduinoOTA auch mit Shields, allerdings brauch der Mikrocontroller genügend Platz. Am besten mal die Anleitung wälzen: github.com/jandrassy/ArduinoOTA
danke für die Videos über Arduino und ESP. Könntest du mal ein Video über Bedienung von Platform IO machen? das ist alles in englisch und viele (auch ich) kommen damit nicht zurecht. Danke im Voraus.
Hm, das Video in der Infokarte kennst du? Da hatte ich die Grundfunktionen für Arduino-Umsteiger mal erklärt. Ansonsten bin ich vermutlich der Falsche dafür - da ich die meiste Zeit des Tages englisch unterwegs bin merke ich gar nicht, wenn da etwas ohne schwer verständlich ist. Bis eben hätte ich nicht mal gewusst, dass PIO nicht auf Deutsch war ;)
nicht gut woher bekomme ich den sketch und das board ist auch nicht zu finden :-(
Nun weil es beides nicht fertig gibt. OTA ist eine Funktion, welche man in eigenen Projekten mit einbauen kann. Es funktionieren alle gängigen Boards mit ESP8266 oder ESP32. Ein Beispielcode wird bei den Programmierumgebungen für den jeweiligen IC mitgeliefert und können über das Beispielmenü eingesehen werden, für ESP8266 sieht das z.B. so aus: github.com/esp8266/Arduino/blob/master/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino
Danke für das Video!