-
Notifications
You must be signed in to change notification settings - Fork 67
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
Time Calibration ends in DTU Restart #1438
Comments
@LinuxUnix80 Ich verstehe nicht was das Issue soll ? Event Code 2 Time Calibration ist das Ereignis das der Wechselrichter an die DTU meldet. Die warn_code.json wurde aus der S-Miles Installer App des Herstellers extrahiert. Was dieses Ereignis auslöst wissen wir bis dato nicht. Es tritt immer mal wieder auf und hat evtl etwas mit dem Zeitstempel in den RealTimeRunDebug Abfragen zu tun, dh bei schlechter Verbindungsqualität oder Problemen mit der Stromversorgung des Inverters aus den PV / DC Anschlüssen zB früh morgens / abends aber auch bei max Einspeisung gegen mittag tritt das Ereignis zeitweise häufiger auf. Evtl müssen wir auch alle x Sekunden / Minuten ein bestimmtes Kommando an den Wechselrichter schicken damit er das Gefühl hat immer noch mit der DTU verbunden und die Zeit von DTU und WR im Sync sind ? Früher haben wir es übrigens einfach nur Kommunikationsfehler genannt. Aber wenn Du keine Erklärung / einen Verbesserungsvorschlag hast, weiß ich nicht wo hier ein Problem sein soll bzw wie wir Dir helfen können? |
Hi, erstmal vielen Dank für deine Antwort! Das nervige ist halt, wenn dies abends passiert, der WR kaum noch Strom produziert und die DTU Restartet und keine neuen Werte mehr bekommt, dann alle Zähler auf 0 sind in Home-Assiant. Es gab mal eine Version, von der regulären DTU (muss 2023 gewesen, Release habe ich mir leider nicht gemerkt), da lief die DTU ohne Probleme wochenlang durch. Der Fehler kann ja ruhig auftreten, sollte aber nicht die DTU rebooten. |
@LinuxUnix80 wenn Du ein Reboot Problem hast, dann solltest Du es machen, Die Beschreibung zum USB / Serial Logging findest Du in der offiziellen Anleitung zu OpenDTU. |
@LinuxUnix80 Ist dir bewusst, dass wir hier auf deine Hilfe angewiesen sind? Du musst bitte Logs des Neustarts beischaffen, sonst können wir nichts tun. Bei mir beispielsweise tritt das Problem nicht auf. |
Moin! Ja, ich Versuch es bis zum Wochenende fertig zu machen. Problem ist die Distanz. DTU ist in der Garage (20m weit weg vom PC). |
Absolut verständlich, dass das lästig ist, geht mir genauso. Leider können wir die Backtraces nicht anders einfangen. Danke für deine Mühe! Hoffentlich können wir die Ursache feststellen und abstellen. |
So, ich habe es nun endlich geschafft, dass Seriell Monitoring Log anzufertigen. Es findet ein Core Panic statt: [PowerMeterHttpJson] New total: 370.00
[DPL::announceStatus] waiting for sufficiently recent inverter data
[PowerMeterHttpJson] New total: 398.00
[PowerMeterHttpJson] New total: 346.00
[DPL::announceStatus] waiting for sufficiently recent inverter data
[PowerMeterHttpJson] New total: 368.00
[PowerMeterHttpJson] New total: 382.00
[DPL::announceStatus] waiting for sufficiently recent inverter data
[PowerMeterHttpJson] New total: 364.00
[PowerMeterHttpJson] New total: 371.00
[DPL::announceStatus] waiting for sufficiently recent inverter data
[PowerMeterHttpJson] New total: 361.00
[PowerMeterHttpJson] New total: 362.00
[DPL::announceStatus] waiting for sufficiently recent inverter data
Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1).
Core 1 register dump:
PC : 0x40380baf PS : 0x00060a34 A0 : 0x820b69b2 A1 : 0x3fcebe10
A2 : 0x3fc96140 A3 : 0xb33fffff A4 : 0x0000cdcd A5 : 0x00060a23
A6 : 0x00060a20 A7 : 0x0000abab A8 : 0x0000cdcd A9 : 0xffffffff
A10 : 0x3fca5384 A11 : 0x00000001 A12 : 0x00000006 A13 : 0x00000003
A14 : 0x02c96140 A15 : 0x00ffffff SAR : 0x00000000 EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x40056fc5 LEND : 0x40056fe7 LCOUNT : 0xffffffff
Backtrace: 0x40380bac:0x3fcebe10 0x420b69af:0x3fcebe50 0x4208fa95:0x3fcebe70 0x42077811:0x3fcebeb0 0x42026dc0:0x3fcebef0 0x421520dd:0x3fcebf50 0x4205b8be:0x3fcebf70 0x4205ba39:0x3fcebf90 0x4205ba52:0x3fcebfb0 0x42086fbd:0x3fcebfd0
Core 0 register dump:
PC : 0x420b6712 PS : 0x00060134 A0 : 0x820b69b5 A1 : 0x3fcace60
A2 : 0x00c1903f A3 : 0x01000000 A4 : 0x3fca5384 A5 : 0x00060123
A6 : 0x00060120 A7 : 0x00000001 A8 : 0x60008800 A9 : 0x00000001
A10 : 0x3fcef940 A11 : 0x3fcef904 A12 : 0x00000000 A13 : 0x4215b01c
A14 : 0x02c96140 A15 : 0x00ffffff SAR : 0x00000018 EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x40056f5c LEND : 0x40056f72 LCOUNT : 0xffffffff
Backtrace: 0x420b670f:0x3fcace60 0x420b69b2:0x3fcace80 0x42094575:0x3fcacea0 0x4210e90a:0x3fcacec0 0x4210e7cb:0x3fcacee0 0x4210a33d:0x3fcacf00 0x4210172f:0x3fcacf20 0x4215b01c:0x3fcacf60
ELF file SHA256: e874923d4036bc27
E (17130) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
Rebooting...
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x4209564e
SPIWP:0xee
mode:DOUT, clock div:2
load:0x3fce3808,len:0x4bc
load:0x403c9700,len:0xbd8
load:0x403cc700,len:0x2a0c
SHA-256 comparison failed:
Calculated: ca4adcc736b98868c479048883edac1969cfd9dde0951723205cf1625628f181
Expected: 27accf466d6a3ffbdd2fe4a9dcdf2a85d67a20eb4b1f2dced8b0c8a88771aee2
Attempting to boot anyway...
entry 0x403c98d0
E (513) esp_core_dump_flash: No core dump partition found!
E (513) esp_core_dump_flash: No core dump partition found!
Starting OpenDTU
Initialize FS... done
Reading configuration... Check for default DTU serial... done
done
Reading language pack... done
Reading PinMapping... found valid mapping done
Initialize Network... done
Setting Hostname... Configuring WiFi STA using new credentials... done
[SyslogLogger] Disable
[SyslogLogger] Syslog not enabled
Initialize NTP... done
Initialize SunPosition... done
Initialize MqTT... done
Initialize WebApi... done
Initialize Display... done
Initialize LEDs... done
Initialize Hoymiles interface... NRF: Connection successful
CMT: Connection successful
Setting country mode...
Setting CMT target frequency...
Setting radio PA level...
CMT TX power set to 3 dBm
Setting DTU serial...
Setting poll interval...
Setting verbosity...
Adding inverter: SERIENNNUMMER1 - Garagensolar done
Adding inverter: SERIENNUMMER2 - Garagen-Solar-800W done
done
Initialize Huawei AC charger interface...
Invalid pin config
Switch to WiFi mode
Setting Hostname... done
Configuring WiFi STA using new credentials... done
Configuring WiFi STA static IP... done
[SyslogLogger] Disable
[SyslogLogger] Syslog not enabled
[DPL::calcNextInverterRestart] automatic inverter restart disabled
[DPL::announceStatus] reloading DPL configuration
[ 1001][E][WiFiClient.cpp:249] connect(): connect on fd 49, errno: 118, "Host is unreachable"
[DPL::loop] ******************* ENTER **********************
[DPL::calcHouseholdConsumption] target consumption: -150 W, base load: 100 W
[DPL::calcHouseholdConsumption] power meter value: 0.0 W, power meter valid: no
[DPL::updateInverterLimits] skipping SERIENNUMMER1 as it is not reachable
[DPL::updateInverterLimits] skipping SERIENNUMMER2 as it is not reachable
[DPL::updateInverterLimits] requested: 100 W, producing: 0 W using 0 solar-powered inverters, diff: 100 W, hysteresis: 20 W
[DPL::calcBatteryAllowance] power requested: 100 W
[DPL::calcBatteryAllowance] limited by battery (0 W) and/or solar power (0 W): 0 W
[DPL::updateInverterLimits] requested: 0 W, producing: 0 W using 0 battery-powered inverters, diff: 0 W, hysteresis: 20 W
[DPL::loop] consumption: 100 W, target output: 100 W (limited to 2800 W), solar inverters output: 0 W, battery allowance: 0 W, battery inverters output: 0 W
[DPL::announceStatus] the system is stable, the last power limit is still valid
[PowerMeterHttpJson] Value 1: HTTP Error: connection refused
[DPL::loop] ******************* ENTER **********************
[DPL::calcHouseholdConsumption] target consumption: -150 W, base load: 100 W
[DPL::calcHouseholdConsumption] power meter value: 0.0 W, power meter valid: no
[DPL::updateInverterLimits] skipping SERIENNUMMER1 as it is not reachable
[DPL::updateInverterLimits] skipping SERIENNUMMER2 as it is not reachable
[DPL::updateInverterLimits] requested: 100 W, producing: 0 W using 0 solar-powered inverters, diff: 100 W, hysteresis: 20 W
[DPL::calcBatteryAllowance] power requested: 100 W
[DPL::calcBatteryAllowance] limited by battery (0 W) and/or solar power (0 W): 0 W
[DPL::updateInverterLimits] requested: 0 W, producing: 0 W using 0 battery-powered inverters, diff: 0 W, hysteresis: 20 W
[DPL::loop] consumption: 100 W, target output: 100 W (limited to 2800 W), solar inverters output: 0 W, battery allowance: 0 W, battery inverters output: 0 W
[DPL::loop] ******************* ENTER **********************
[DPL::calcHouseholdConsumption] target consumption: -150 W, base load: 100 W
[DPL::calcHouseholdConsumption] power meter value: 0.0 W, power meter valid: no
[DPL::updateInverterLimits] skipping SERIENNUMMER1 as it is not reachable
[DPL::updateInverterLimits] skipping SERIENNUMMER2 as it is not reachable
[DPL::updateInverterLimits] requested: 100 W, producing: 0 W using 0 solar-powered inverters, diff: 100 W, hysteresis: 20 W
[DPL::calcBatteryAllowance] power requested: 100 W
[DPL::calcBatteryAllowance] limited by battery (0 W) and/or solar power (0 W): 0 W
[DPL::updateInverterLimits] requested: 0 W, producing: 0 W using 0 battery-powered inverters, diff: 0 W, hysteresis: 20 W
[DPL::loop] consumption: 100 W, target output: 100 W (limited to 2800 W), solar inverters output: 0 W, battery allowance: 0 W, battery inverters output: 0 W
[DPL::loop] ******************* ENTER **********************
[DPL::calcHouseholdConsumption] target consumption: -150 W, base load: 100 W
[DPL::calcHouseholdConsumption] power meter value: 0.0 W, power meter valid: no
[DPL::updateInverterLimits] skipping SERIENNUMMER1 as it is not reachable
[DPL::updateInverterLimits] skipping SERIENNUMMER2 as it is not reachable
[DPL::updateInverterLimits] requested: 100 W, producing: 0 W using 0 solar-powered inverters, diff: 100 W, hysteresis: 20 W
[DPL::calcBatteryAllowance] power requested: 100 W
[DPL::calcBatteryAllowance] limited by battery (0 W) and/or solar power (0 W): 0 W
[DPL::updateInverterLimits] requested: 0 W, producing: 0 W using 0 battery-powered inverters, diff: 0 W, hysteresis: 20 W
[DPL::loop] consumption: 100 W, target output: 100 W (limited to 2800 W), solar inverters output: 0 W, battery allowance: 0 W, battery inverters output: 0 W
[DPL::loop] ******************* ENTER **********************
[DPL::calcHouseholdConsumption] target consumption: -150 W, base load: 100 W
[DPL::calcHouseholdConsumption] power meter value: 0.0 W, power meter valid: no
[DPL::updateInverterLimits] skipping SERIENNUMMER1 as it is not reachable
[DPL::updateInverterLimits] skipping SERIENNUMMER2 as it is not reachable
[DPL::updateInverterLimits] requested: 100 W, producing: 0 W using 0 solar-powered inverters, diff: 100 W, hysteresis: 20 W
[DPL::calcBatteryAllowance] power requested: 100 W
[DPL::calcBatteryAllowance] limited by battery (0 W) and/or solar power (0 W): 0 W
[DPL::updateInverterLimits] requested: 0 W, producing: 0 W using 0 battery-powered inverters, diff: 0 W, hysteresis: 20 W
[DPL::loop] consumption: 100 W, target output: 100 W (limited to 2800 W), solar inverters output: 0 W, battery allowance: 0 W, battery inverters output: 0 W
WiFi connected
WiFi got ip: 192.168.178.87
Network connected
Connecting to MQTT...
Connected to MQTT.
[DPL::loop] ******************* ENTER **********************
|
Wunderbar! 💪 Erinnert mich an tbnobody#2456. Ich schau trotzdem noch nach, ob im Backtrace etwas vom AsyncWebserver bzw. async_tcp zu sehen ist. Ist es plausibel, dass du irgendetwas per Web abgerufen hast an der OpenDTU-OnBattery, als das passiert ist? Vielleicht F5 in einem Browser gedrückt oder so? |
Aktiv habe ich zu dieser Zeit nichts getan, allerdings war auf dem Loggin-Host ein Browser-Tab (DTU>System>Info) geöffnet (die ganze Zeit). Ich habe mal alle Fenster geschlossen und Logge weiter. Sobald es ein erneuten Reboot gibt, poste ich das Log wieder. |
Ein zweiter Reboot (gegen Abend als die Inverter nicht mehr produziert haben). Etwas längerer Auszug, zwecks Kontext:
|
I specifically looked at the following part:
I did not spot the |
The other subsequent oddity (and therefor unrelated to the previous crashes) I see in both logs is this
|
Guten Morgen, soeben wieder ein Absturz, nachdem ein (autom.) Zeitabgleich ausgeführt wurde:
|
Dein erster und dritter Log sagen, dass sich irgendetwas beim Auslesen der Temperatur verklemmt hat. Backtrace Absturz 1
Backtrace Absturz 2
Es gibt ein Restrisiko, dass das Nachbauen der ELF-Datei nicht genau reproduziert hat, weshalb vielleicht auch der zweite Backtrace jeweils... verhagelt zu sein scheint. Aber der erste ist jeweils absolut plausibel, weshalb ich davon ausgehe, dass das passt. Es macht auch Sinn: Core 0 hängt in einer Busy-Loop und wartet, dass der Temperatursensor fertig wird. Dabei hat er das Spinlock. Core 1 will die Temperatur auch haben, aber aber Core 0 wird nicht fertig und gibt das Spinlock nicht frei, also gibts einen Watchdog Timeout. Beim mittleren Absturz sieht man nur den Neustart und keine Meldung dazu, was sehr merkwürdig ist. Für mich deutet das auf ein Hardwareproblem hin. Entweder ein Defekt am ESP32-S3 intern, sodass der Temperatursensor nicht fertig wird oder das Bit flippt, oder was banales wie eine schlechte Stromversorgung. Stichpunkt Stromversorgung: Wie ist dein Board mit Strom versorgt? Kannst du mal eine Weile ein anderes Netzteil und ein anderes Kabel verwenden? Gerne 2A Netzteil oder mehr, und ein Kabel dessen Dicke potentiell darauf hindeutet, dass es die 5V auch bei 1A bis zum Fusion-Board transportieren kann? |
What happened?
Hi,
The Time Calibration will let Restart the DTU:
09:16:19 09:16:19 2 Zeitabgleich
09:16:24 09:16:24 2 Zeitabgleich
I dont know, if its happend, because of two Time changes in short time. It happend to fusion board v2.5 and even on a selfmade esp32-s3 setting.
To Reproduce Bug
DTU must trigger (minimun) 2 time Calibration in a short time
Expected Behavior
Maybe delay between time Calibration changes. I expect no Restart for time Calibration.
Install Method
Pre-Compiled binary from GitHub releases
What git-hash/version of OpenDTU-OnBattery?
2024-11-20
What firmware variant (PIO Environment)?
generic_esp32s3_usb
Relevant log/trace output
No response
Anything else?
No response
Please confirm the following
The text was updated successfully, but these errors were encountered: