Hallo, ist es möglich einen ESP mit OTA über WLan zu restarten?
Wenn ja: Wie denn?
Danke schon mal!
Hallo, und ja das geht.
Sieh dir dazu die Seite von Fips an. Im Admin Sketch findest du die Lösung.
Ansonsten kannst Du auch meine Debug-Lib über Telnet benutzen.
Direkt mit OTA kannst Du das nicht steuern, es sei denn Du spielst einen neuen Sketch auf, danach wird auch rebootet.
Gruß Tommy
Stimmt, so kann man das auch verstehen.
Ich habe da OTA als Bestandteil des ESP gesehen und der Reset wird per WLan ausgelöst. Was bei fips ja noch eine Webserver benötigt.
Aber evtl. geht das ja dann auch ohne den WebServer.
OTA restartet nach einem Upload.
Für mich stellt sich eher die Frage, weswegen brauchst du einen restart bzw. wodurch möchtest du diesen auslösen?
Restart über eine Webseite wurde ja schon erwähnt.
Du kannst auch "jedes" andere Service (UDP, TCP ...) verwenden.
Frage ist halt was du genau möchtest.
Wenn man länger darüber nachdenkt, ist diese Frage durchaus berechtigt.
@ansim
Hat der ESP ein Problem und er arbeitet nicht mehr, wird auch ein Reset über WLan nicht funktionieren.
Da heißt es dann, das Problem suchen und beseitigen. Ein Watchdog wäre ein schlechte Alternative. Somit ist der Reset nach einem OTA-Update wohl die gängigste Lösung. Halt eben nur dann, wenn alles noch funktioniert.
Oder du baust einen 2. ESP dran, über den du den ersten resettest. Aber was, wenn der 2. es nicht mehr macht ?
Ok, das hatten wir auch schon.
Achja, man könnte ja den 2. mit dem ersten resetten. Ok
Mein ESP misst den Wasserstand in meiner Zisterne und dabei gleich noch mit einem BME280 Temperatur, Luftdruck und Feuchte. Die Daten sendet er an einen MQTT-Server (IOBroker). OTA ist installiert. Leider steigt der ESP manchmal aus und sendet dann nur noch den Wasserstand. Dann muss ich in den Keller gehen und den ESP von Hand resetten oder eben den Sketch neu aufspielen. Ich dachte, es geht auch einfacher. Den Post von Tommy56 (debug.lib) hatte ich schjon gefunden. Aber extra zusätzlich einen telnet-Server aufsetzen ist etwas übertrieben.
Na dann gehts eben weiter so wie bisher... Vielen Dank für eure Mithilfe!!!
Oder du überarbeitest dein Programm.
Oder ein täglicher Reset im Code wäre eine Option, wenn man den Bug softwareseitig nicht beheben kann.
Dennoch würde ich auf die Suche gehen, warum dein Bug auftritt.
Das sieht mir nach einem Fehler im I2C-Bus aus. Dadurch steigt der Sensor aus und der Rest läuft weiter.
Genau diese Anordnung verwende ich au in meinem Gartenhaus mit eimem zusätzlichen DS18B20 für die Außentemperatur. Und das schon einige Jahre ohne Probleme.
Allerdings ohne MQTT sondern mit einem WebServer auf dem ESP8266.
Du solltest also deine Problem im Sketch beheben.
Und wenn der ESP deiner Aussage nach weiter funktioniert, kannst du doch per OTA diesen neu installieren und er macht einen Reset.
Es gibt 2 Adressen auf dem Bus: Der Drucksensor für die Wassertiefe und der BME280.
Wie sieht die Fehlersuche am Besten aus? Geräte einzeln abklemmen?
Wurde andere BME280 nehmen zum testen.
Ja, genau.
Die Sensoren einzeln laufen lassen und am seriellen Monitor dokumentieren. Bzw. In eine Logdatei im FileSystem schreiben. Da ich einen Webserver drauf habe, kann ich alles leicht und schnell überwachen und per LittleFS.
Evtl. kannst ja mal schreiben, welchen ESP, welche Sensoren (Link bitte) du verwendest. Und wie die verkabelt sind, Kabellänge und Pullupwiderstände des I2C-Bus bitte auch nennen.
wie lang sind die Leitungen zu den zwei Sensoren / wie weit sind die Sensoren vom ESP entfernt?
Eigentlich solltest du ja erkennen wenn der BMP sich nicht mehr meldet - und dann kannst du einen Reset auslösen. Dauerlösung ist das aber auch nicht. Vermutlich ist deine Verkabelung fehlerhaft / nicht spezifikationskonform.
Die Leitung zum Drucksensor sind nur ein paar cm aber zum BME280 sind es ca 3m, abgeschirmt. Aber da kommt mir ein Gedanke...
Ich nutze den (Micropress. Sensor. Der hat wenn ich mich richtig erinnere Pullupwiderstände eingebaut. Der sitzt aber nicht am Ende des Bus.
Ich prüfe das mal und melde mich wieder. Vielen Dank soweit!
I2C ist Kurzstrecken Bus.
Die 3m machen dir Probleme.
Habe Mall mit zwei P82B715 gemacht hat 1a funktioniert
das ist zu lang für einen I2C (Inter-Integrated Circuit) Bus.
I2C ist ein On-Board-Kommunikationsprotokoll - nicht gedacht um über Kabel geführt zu werden.
Ja, der Drucksensor hat 2k2 Pullups und der BME vermutlich auch.
Ich vermisse noch den Link zum BME und zum ESP.
Beim BME gibt es welche, die nur für 5 Volt sind. Also mit Spannungsregler. Da sind dann die 3,3V zu wenig.
Wenn der BME auch Pullups hat, kann das schon eine Fehlerquelle sein, da dann der Widerstand schnell zu klein wird.
Und ja, deine 3 m Kabellänge sind def. zu lang und können auch ein Problem werden.
Die 5V BME tun auch bei 3,3v wenigstens meine
Ja, wenn der richtige Regler drauf ist.
Ich hatte schon einen der nur mit 5 Volt arbeitet. War aber ein Einzelfall.
Na dann liegt es höchstwahrscheinlich am 3m-Kabel.
Was haltet ihr davon die Busgeschwindigkeit herabzusetzen: https://www.raspberry-pi-geek.de/ausgaben/rpg/2017/02/i2c-reichweite-steigern-mit-dem-p82b715/2/#article_l6