-
-
Notifications
You must be signed in to change notification settings - Fork 225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ständiger Neustart mit 0.8.49 #1345
Comments
Bei mir mit .48 und ESP32 seit der Installation einen Tag und 22 Stunden stabil ohne Neustart |
Ein Serial Debug wäre jetzt hilfreich. |
kann mir vorstellen, dass z.B. eine der LEDs auf einem nicht PWM Pin konfiguriert wurde - ich weiß nicht was dann passiert. |
hier gibt es ähnliche Probleme #1342 |
Das ist sehr gut möglich 😱 |
Aus der Web Konsole kommt maximal so ein Block, dann erfolgt immer der Reboot. Welcome to AHOY! point your browser to http://192.168.178.25 (Station)
|
Bei mir läuft die 0.8.49 seit 24 Std ohne Neustart... 2 WR der HM Serie und ESP32 mit 1,3Zoll Display |
dann bräuchten wir jetzt ein USB Log, soweit sieht alles richtig aus. |
Nach dem Umstellen der Settings und Save war die DTU tot 😢 Sie machte zwar noch einen AP auf, aber man kam nicht mehr rein 😩 Das Ding hängt sich irgendwo beim Lesen der Settings auf. Also habe ich die letzten 2 Stunden damit verbracht ganz von Vorne anzufangen. Erase, Flash über die IDF, Neueinrichtung … Und ja, ich mußte zurück bis zur 47 um meine Settings wieder zu speichern. Die beiden Issues sind gerechtfertigt, er zerschießt offenbar wieder die JSON-Settings oder liest sie nicht mehr korrekt ein. Denke aber ersteres ist der Fall, ansonsten wäre die DTU ja nicht beim Speichern abgekackt. |
Können bitte alle, bei denen so ein zyklischer Neustart auftritt bitte dazu angeben, ob sie ein Display aktiviert haben oder nicht. |
Bei mir hängt ein ePaper dran, wie schon seit jeher 😉 |
Ich habe ein 1.3Zoll SSH1106. Interessanter Ansatz! |
Keine Reboots : SSD1306 Display |
Hast du auch die reboots? |
Nein, erst nach dem die Settings in die Hose gingen. Dann rebootete die DTU und kam nicht mal mehr in den AP. Hat sich aber offenbar geklärt. Ich habe wohl die Settings zu schnell hintereinander gespeichert. |
Hab mal was versucht, falls es mit dem neuen display graph zu tun haben sollte: #1347 |
Leider hilft die 0.8.51 auch nicht. Nach dem Aufspielen hatte ich den Eindruck, es läuft. Einmal in den Einstellungen was verändert und wieder in der Reboot Schleife. Display aus, und alles läuft wie gewohnt. |
also, ich habe diese probleme nicht. ich habe zwei AhoyDTU gleichzeitig die einen HM-700 abfragen. beide ESP32, einer mit einem SH1106 OLED, der andere mit einem ePaper. beide habe ich die letzten tage jeweils seit der .46 bis heute zur 0.8.51 hochgezogen (EN version). der OLED liefert auch noch MQTT daten. bis dato alles stabil. |
Kannst bitte Mal versuchen das Display einzuschalten, aber die Graph Ratio auf 0 zu setzen? |
Ich bin soeben von der 0.8.50 auf die 0.8.51 und meine ahoyDTU startet seither im Sekundentakt neu. Ich komme immer ganz kurz aufs webfrontend, aber dann startet sie auch schon wieder neu. Mist - wie bekomme ich sie möglichst simpel wieder auf die 0.8.50? |
Woran erkennst du, dass die DTU im Sekundentakt neu startet? Hast du ein Display? Oder über USB Serielle? Webserial? |
Ja, ich habe eine fertige AhoyDTU mit Case und Display gekauft gehabt. Dort sehe ich, dass sie neustartet und auch über das Verhalten des Webfrontends - immer kurz da, dann nicht mehr - ebenfalls habe ich im Smarthome einen Verfügbarkeitscheck per Ping. Die DTU geht im Sekundentakt hoch und runter. Es sind aber keine Verbindungsprobleme (deshalb vmtl die Frage nach dem Display) Ich musste sie nun komplett vom Strom nehmen. Bekomme ich die wieder ans Leben? Das Webfrontend ist immer für ca. 5 Sekunden da und reagiert auch. Nur für ein Downgrade reicht die Zeit nicht. |
K
Der Webinstaller unter https://ahoydtu.de/getting_started/ "Firmware flashen" / Connect müsste die DTU eigentlich wieder einfangen können (DTU über USB anhängen!). |
@You69Man Danke dir für den Hinweis! Ist sie dadurch komplett resettet, sprich ich muss sie wieder komplett neu einrichten oder sollte sich das Flashen so verhalten, wie wenn ich die .bin über das Update-Feld eingespielt habe? |
tatsächlich hatte ich mal das verhalten mit dem ständigen reboot, fällt mir gerade ein. aber das war noch vor einer 0.8.4x soweit ich mich erinnere. |
bei mir ebenso. 8.51 war ca.10 Min erreichbar, jetzt "scheintot" Webserial geht noch, der Rest ist verschwunden.... |
Nachtrag, die 0.8.50 läuft einwandfrei auf ESP32 mit SH1106 (1,3 Zoll) Display und 2 WR der HM Serie. Die 08.51 ließ sich installieren bekam aber keine gültige Zeit und somit keine Verbindung zum WR. Zurück auf die 0.8.50 ging leider nicht mehr, nach reboot war die Ahoy nicht mehr per IP zu erreichen. Auch nicht über AP WLAN ahoydtu. Habe es per USB Kabel dann über ahoydtu.de neu geflasht mit löschen, Update auf 0.8.50, config wieder eingespielt und läuft seitdem wieder. Auch die Nulleinspeisung von reserve85 läuft problemlos und regelt fein. |
Hilft leider nicht, bringt mich wieder in die Reboot Schleife. |
Du hast gemeint, ohne Display läuft es bei dir, richtig? Kannst du dann bitte Mal versuchen, die Konfiguration auf Werkseinstellungen zu setzen, und nach Reboot noch einmal alles probieren? |
Richtig. Sobald Display auf "aus" steht, läuft es normal. Weder Reset AhoyDTU, noch Reset auf Werkseinstellungen (nicht WIFI) hilft. Alle Daten wurden nochmals händisch eingetragen (WLAN Daten, Wechselrichter ect.) |
Und was passiert wenn du das Display nun wieder einschaltest? Ich würde vermuten, dass es dann wieder normal mit der DTU läuft. Mehr Gefühl sagt mir es liegt irgendwie an den Einstellungen die nach dem Update korrupt sind. Nach einem erase, Neuinstallation und manuellem eintragen der settings läuft es bei mir wieder super mit den Displays. |
Leider nicht! Versucht habe ich jetzt noch WebInstaller mit Erase Device auf 0.8.36. Dann auf 0.8.51 gleiches Problem. |
hilft das weiter??? |
@You69Man das habe ich in Log gesehen |
Die Graph Skalierung hätte in Sonderfällen durchaus das Potential für DivByZero, aber eigentlich hätte ich geschaut, alle abzufangen. Vielleicht hab ich was übersehen. Ich kann mir morgen Vormittag mal etwas Zeit nehmen, falls du nicht schon vorher was entdeckst. Danke! |
@lumapu: |
|
ich hab das beim ESP32 nicht nicht gemacht, am besten ging es, wenn der Fehler direkt bei mir auftrat, da der Decoder direkt in VScode drin ist |
Kannst du diesen Fehler (reboot loop) denn bei dir reproduzieren? Ich hab ihn bei mir noch nie gesehen, weder auf ESP8266 noch auf ESP32, weder mit noch ohne Display... |
Kannst du auch zu .47 und .48 was sagen? Ab welcher Version tritt der Fehler genau auf? Danke! |
@You69Man ich habe einige Divisonen jetzt noch abgesichert, kommt mit der diff --git a/src/plugins/Display/Display_Mono.h b/src/plugins/Display/Display_Mono.h
index 008f737..cb1ecee 100644
--- a/src/plugins/Display/Display_Mono.h
+++ b/src/plugins/Display/Display_Mono.h
@@ -166,7 +166,10 @@ class DisplayMono {
}
uint8_t sss2pgpos(uint seconds_since_start) {
- return(seconds_since_start * (mPgWidth - 1) / (mDisplayData->pGraphEndTime - mDisplayData->pGraphStartTime));
+ uint32_t diff = (mDisplayData->pGraphEndTime - mDisplayData->pGraphStartTime);
+ if(diff)
+ return (seconds_since_start * (mPgWidth - 1) / diff);
+ return 0
}
void calcPowerGraphValues() {
@@ -175,6 +178,8 @@ class DisplayMono {
mPgTimeOfDay = (mDisplayData->utcTs > mDisplayData->pGraphStartTime) ? mDisplayData->utcTs - mDisplayData->pGraphStartTime : 0; // current time of day with respect to current sunrise time
if (oldTimeOfDay > mPgTimeOfDay) // new day -> reset old data
resetPowerGraph();
+ if(0 == mPgPeriod)
+ mPgPeriod = 1;
mPgLastPos = std::min((uint8_t) (mPgTimeOfDay * (mPgWidth - 1) / mPgPeriod), (uint8_t) (mPgWidth - 1)); // current datapoint based on currenct time of day
}
@@ -190,15 +195,13 @@ class DisplayMono {
uint8_t getPowerGraphXpos(uint8_t p) {
if ((p <= mPgLastPos) && (mPgLastPos > 0))
return((p * (mPgWidth - 1)) / mPgLastPos); // scaling of x-axis
- else
- return(0);
+ return 0;
}
uint8_t getPowerGraphYpos(uint8_t p) {
- if (p < mPgWidth)
+ if ((p < mPgWidth) && (mPgMaxPwr > 0))
return((mPgData[p] * (uint32_t) mPgHeight / mPgMaxPwr)); // scaling of data to graph height
- else
- return(0);
+ return 0;
}
void plotPowerGraph(uint8_t xoff, uint8_t yoff) {
diff --git a/src/plugins/Display/Display_Mono_128X32.h b/src/plugins/Display/Display_Mono_128X32.h
index 6ab21a6..e904769 100644
--- a/src/plugins/Display/Display_Mono_128X32.h
+++ b/src/plugins/Display/Display_Mono_128X32.h
@@ -1,5 +1,5 @@
//-----------------------------------------------------------------------------
-// 2023 Ahoy, https://ahoydtu.de
+// 2024 Ahoy, https://ahoydtu.de
// Creative Commons - https://creativecommons.org/licenses/by-nc-sa/4.0/deed
//-----------------------------------------------------------------------------
@@ -107,7 +107,7 @@ class DisplayMono128X32 : public DisplayMono {
void printText(const char *text, uint8_t line) {
setFont(line);
- uint8_t dispX = mLineXOffsets[line] + pixelShiftRange / 2 + mPixelshift;
+ uint8_t dispX = mLineXOffsets[line] + (pixelShiftRange / 2) + mPixelshift;
if (isTwoRowLine(line)) {
String stringText = String(text);
diff --git a/src/plugins/Display/Display_Mono_128X64.h b/src/plugins/Display/Display_Mono_128X64.h
index 2d5c13c..34f3583 100644
--- a/src/plugins/Display/Display_Mono_128X64.h
+++ b/src/plugins/Display/Display_Mono_128X64.h
@@ -193,13 +193,13 @@ class DisplayMono128X64 : public DisplayMono {
mDisplay->setFont(u8g2_font_ncenB10_symbols10_ahoy);
char sym[]=" ";
sym[0] = mDisplayData->RadioSymbol?'A':'E'; // NRF
- mDisplay->drawStr(widthShrink / 2 + mPixelshift, mLineYOffsets[l_RSSI], sym);
+ mDisplay->drawStr((widthShrink / 2) + mPixelshift, mLineYOffsets[l_RSSI], sym);
if (mDisplayData->MQTTSymbol)
sym[0] = 'J'; // MQTT
else
sym[0] = mDisplayData->WifiSymbol?'B':'F'; // Wifi
- mDisplay->drawStr(mDispWidth - mDisplay->getStrWidth(sym) - widthShrink / 2 + mPixelshift, mLineYOffsets[l_RSSI], sym);
+ mDisplay->drawStr(mDispWidth - mDisplay->getStrWidth(sym) - (widthShrink / 2) + mPixelshift, mLineYOffsets[l_RSSI], sym);
mDisplay->sendBuffer();
mExtra++;
@@ -241,8 +241,8 @@ class DisplayMono128X64 : public DisplayMono {
mLineYOffsets[i] = yOff;
dsc = mDisplay->getDescent();
yOff -= dsc;
- if (l_Time == i) // prevent time and status line to touch
- yOff++; // -> one pixels space
+ if (l_Time == i) // prevent time and status line to touch
+ yOff++; // -> one pixels space
i++;
} while(l_MAX_LINES>i);
}
diff --git a/src/plugins/Display/Display_Mono_64X48.h b/src/plugins/Display/Display_Mono_64X48.h
index 68aa3cc..a4ddc6a 100644
--- a/src/plugins/Display/Display_Mono_64X48.h
+++ b/src/plugins/Display/Display_Mono_64X48.h
@@ -96,7 +96,7 @@ class DisplayMono64X48 : public DisplayMono {
}
void printText(const char *text, uint8_t line) {
- uint8_t dispX = mLineXOffsets[line] + pixelShiftRange/2 + mPixelshift;
+ uint8_t dispX = mLineXOffsets[line] + pixelShiftRange / 2 + mPixelshift;
setFont(line);
mDisplay->drawStr(dispX, mLineYOffsets[line], text);
diff --git a/src/plugins/Display/Display_Mono_84X48.h b/src/plugins/Display/Display_Mono_84X48.h
index d9f1d98..175fa17 100644
--- a/src/plugins/Display/Display_Mono_84X48.h
+++ b/src/plugins/Display/Display_Mono_84X48.h
@@ -1,5 +1,5 @@
//-----------------------------------------------------------------------------
-// 2023 Ahoy, https://ahoydtu.de
+// 2024 Ahoy, https://ahoydtu.de
// Creative Commons - https://creativecommons.org/licenses/by-nc-sa/4.0/deed
//----------------------------------------------------------------------------- |
nein, das glaube ich nicht, ich finde das sehr gut und konsquent wie du es geändert hast - du bist auch einer der Contributoren, deren Code man (fast) ohne Änderungen übernehmen kann - sehr cool 😊 |
Ich glaube, mit der .47 ging es los. Habe nun die neue .52 drauf, und........... es läuft!!! Ihr seid meine Helden! |
Hat der Buffer overflow noch etwas zu sagen??? |
Super, wenn es jetzt läuft! @lumapu ist der Held! Bei mir ging heute früh überhaupt nichts mehr, nur Alarme, keine Leistung am Display, und ich dachte natürlich gleich wieder an Ahoy Softwarefehler. Dabei war's ganz was anderes: In die Außensteckdose ist Feuchtigkeit geraten und der FI ist gefallen! Die Ahoy hat ganz korrekterweise Frequenz-Alarme angezeigt, und nach Entfeuchtung der Steckdose funktioniert auch wieder alles wie gewohnt :) |
Kann eure Begeisterung leider nur bedingt teilen, bei mir startet sich mit 8.52 die DTU alle 10 Min. neu, somit Zugriff auf Daten nur sehr beschränkt möglich. Mit 8.45 lief sie tagelang störungsfrei |
Leider gehts mir wie Gubi2023. Die 8.46 läuft bei mir. Vielleicht stimmt auch was mit der Zeitsync nicht. Sobald ich mit NTP synce kommt "synced at: 1970-01-01, 01:00:11, difference: 1705067180ms" oder die DTU bootet neu. |
Ich habe seit über 8 Stunden keinen Reboot mehr gehabt. Also für mich läuft es. Soll ich das Issue schließen und Gubi2023 öffnet ein neues oder lassen wir es hier laufen? |
Ich glaub es gibt schon einen neuen, der ganz ähnlich klingt: #1354 |
Hat der Buffer overflow noch etwas zu sagen??? Nein, das sagt nur das die serielle Ausgabe wegen zu vieler Daten übergelaufen ist. Du ballerst ja auch alle Informationen raus 😉 |
hier bitte wie @Gubi2023 es schon richtig gemacht hat angeben, ob man einen ESP8266 oder ESP32 hat. Ich denke wir haben hier ein Speicherproblem beim ESP8266 - hatten wir schon lange nicht mehr |
Platform
ESP32
Assembly
I did the assebly by myself
nRF24L01+ Module
nRF24L01+ plus
Antenna
external antenna
Power Stabilization
nothing
Connection picture
Version
0.8.49
Github Hash
3aa4751
Build & Flash Method
AhoyDTU Webinstaller
Setup
Intervall 15sec
Debug Serial Log output
No response
Error description
Hallo zusammen,
ich habe ein Problem sowohl mit der 0.8.49 als auch .48
Sobald ich diese Versionen installiere, startet die DTU immer neu nach etwa 3-5 Sekunden.
Getestet habe ich sowohl Original, als auch de und prometheus.
Lösche ich die WR alle (2x HM 800) oder schalte das nRF24 ab, dann läuft alles, es kommen nur verständlicher Weise keine Daten.
Ein Rückfall auf 0.8.45 lässt alles wie gewohnt laufen.
The text was updated successfully, but these errors were encountered: