-
Notifications
You must be signed in to change notification settings - Fork 66
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
Fix: use battery when in full solar-passthrough #1424
Conversation
@Snoopy-HSS Care to cherry-pick or merge this and tell me if full solar-passthrough now works as expected? Can you even tell given the weather? |
Does not look good. DPL is stuck at VE-Direct minus self consumation. If you need access to my System to test (100V 2A Powersupply @ Victron), you can get a login. Log``` Middle missing 22:51:35.176 > Request retransmit: 2 22:51:35.259 > Middle missing 22:51:35.310 > Request retransmit: 2 22:51:35.366 > Success 22:51:36.437 > [PowerMeterUdpSmaHomeManager] Leistung = 408.1 (timestamp 1699674304) 22:51:36.600 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 141.9 (timestamp 1699674304) 22:51:36.660 > [PowerMeterUdpSmaHomeManager] Leistung L2 = 417.7 (timestamp 1699674304) 22:51:36.708 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -151.4 (timestamp 1699674304) 22:51:36.760 > [DPL::loop] ******************* ENTER ********************** 22:51:36.811 > [DPL::loop] battery interface enabled, SoC: 66.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 22:51:36.862 > [DPL::getBatteryVoltage] BMS: 55.63 V, MPPT: 55.11 V, inverter 114184617285: 55.00 V, returning: 55.63V 22:51:36.911 > [DPL::loop] dcVoltage: 55.63 V, loadCorrectedVoltage: 55.84 V, StartTH: 52.00 V, StopTH: 47.00 V 22:51:36.964 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 22:51:37.010 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 22:51:37.061 > [DPL::calcHouseholdConsumption] power meter value: 408.1 W, power meter valid: yes 22:51:37.115 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 204 W 22:51:37.162 > [DPL::updateInverterLimits] requested: 642 W, producing: 0 W using 0 solar-powered inverters, diff: 642 W, hysteresis: 20 W 22:51:37.257 > [DPL::calcBusPowerUsage] power requested: 642 W 22:51:38.441 > [DPL::calcBusPowerUsage] will produce 193 W due to full solar-passthrough 22:51:38.494 > [DPL::updateInverterLimits] requested: 193 W, producing: 204 W using 1 battery-powered inverter, diff: -11 W, hysteresis: 20 W 22:51:38.545 > [DPL::loop] consumption: 642 W, target output: 642 W (limited to 800 W), solar inverters output: 0 W, bus power usage: 193 W, battery inverters output: 204 W 22:51:38.594 > Websocket: [/livedata][1] disconnect 22:51:38.644 > Websocket: [/vedirectlivedata][1] disconnect 22:51:38.695 > Websocket: [/batterylivedata][1] disconnect 22:51:38.747 > Last missing 22:51:38.793 > Request retransmit: 9 22:51:38.845 > Last missing 22:51:38.893 > Request retransmit: 10 22:51:38.949 > Middle missing 22:51:39.012 > Request retransmit: 2 22:51:39.062 > Middle missing 22:51:39.110 > Request retransmit: 4 22:51:39.160 > Middle missing 22:51:39.210 > Request retransmit: 5 22:51:39.262 > Middle missing 22:51:39.310 > Retransmit timeout 22:51:39.362 > [PowerMeterUdpSmaHomeManager] Skipped unknown measurement: 116 1 241 37 22:51:39.409 > [DPL::loop] ******************* ENTER ********************** 22:51:39.458 > [DPL::loop] battery interface enabled, SoC: 66.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 22:51:39.509 > [DPL::getBatteryVoltage] BMS: 55.63 V, MPPT: 55.11 V, inverter 114184617285: 55.00 V, returning: 55.63V 22:51:39.563 > [DPL::loop] dcVoltage: 55.63 V, loadCorrectedVoltage: 55.84 V, StartTH: 52.00 V, StopTH: 47.00 V 22:51:39.609 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 22:51:39.676 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 22:51:40.303 > [DPL::calcHouseholdConsumption] power meter value: 408.1 W, power meter valid: yes 22:51:40.366 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 204 W 22:51:40.417 > [DPL::updateInverterLimits] requested: 642 W, producing: 0 W using 0 solar-powered inverters, diff: 642 W, hysteresis: 20 W 22:51:40.589 > [DPL::calcBusPowerUsage] power requested: 642 W 22:51:40.643 > [DPL::calcBusPowerUsage] will produce 193 W due to full solar-passthrough 22:51:40.694 > [DPL::updateInverterLimits] requested: 193 W, producing: 204 W using 1 battery-powered inverter, diff: -11 W, hysteresis: 20 W 22:51:40.743 > [DPL::loop] consumption: 642 W, target output: 642 W (limited to 800 W), solar inverters output: 0 W, bus power usage: 193 W, battery inverters output: 204 W 22:51:40.794 > [ShellyACPlug] GET HTTP Error: connection refused 22:51:40.845 > Last missing 22:51:40.896 > Request retransmit: 8 22:51:40.944 > Last missing 22:51:40.995 > Request retransmit: 8 22:51:41.043 > Last missing 22:51:41.098 > Request retransmit: 8 22:51:41.145 > Last missing 22:51:41.201 > Request retransmit: 8 22:51:41.261 > [PowerMeterUdpSmaHomeManager] Leistung = 379.9 (timestamp 1699676304) 22:51:41.310 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 141.5 (timestamp 1699676304) 22:51:41.361 > [PowerMeterUdpSmaHomeManager] Leistung L2 = 390.7 (timestamp 1699676304) 22:51:41.410 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -152.2 (timestamp 1699676304) 22:51:41.461 > Last missing 22:51:41.515 > Request retransmit: 8 22:51:41.561 > Last missing 22:51:41.612 > Retransmit timeout 22:51:41.660 > Fetch inverter: 114184617285 22:51:41.712 > [DPL::loop] ******************* ENTER ********************** 22:51:41.761 > [DPL::loop] battery interface enabled, SoC: 66.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 22:51:42.123 > [DPL::getBatteryVoltage] BMS: 55.77 V, MPPT: 55.12 V, inverter 114184617285: 55.00 V, returning: 55.77V 22:51:42.177 > [DPL::loop] dcVoltage: 55.77 V, loadCorrectedVoltage: 55.97 V, StartTH: 52.00 V, StopTH: 47.00 V 22:51:42.228 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 22:51:42.277 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 22:51:42.331 > [DPL::calcHouseholdConsumption] power meter value: 379.9 W, power meter valid: yes 22:51:42.377 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 204 W 22:51:42.429 > [DPL::updateInverterLimits] requested: 614 W, producing: 0 W using 0 solar-powered inverters, diff: 614 W, hysteresis: 20 W 22:51:42.477 > [DPL::calcBusPowerUsage] power requested: 614 W 22:51:43.046 > [DPL::calcBusPowerUsage] will produce 193 W due to full solar-passthrough 22:51:43.094 > [DPL::updateInverterLimits] requested: 193 W, producing: 204 W using 1 battery-powered inverter, diff: -11 W, hysteresis: 20 W 22:51:43.146 > [DPL::loop] consumption: 614 W, target output: 614 W (limited to 800 W), solar inverters output: 0 W, bus power usage: 193 W, battery inverters output: 204 W 22:51:43.194 > Middle missing 22:51:43.261 > Request retransmit: 2 22:51:43.313 > Success 22:51:43.381 > [PowerMeterUdpSmaHomeManager] Leistung = 397.1 (timestamp 1699677309) 22:51:43.428 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 141.6 (timestamp 1699677309) 22:51:43.477 > [PowerMeterUdpSmaHomeManager] Leistung L2 = 407.8 (timestamp 1699677309) 22:51:43.530 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -152.3 (timestamp 1699677309) 22:51:43.576 > Last missing 22:51:43.628 > Request retransmit: 10 22:51:43.677 > [DPL::announceStatus] the system is stable, the last power limit is still valid 22:51:43.728 > [DPL::loop] ******************* ENTER ********************** 22:51:43.775 > [DPL::loop] battery interface enabled, SoC: 66.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 22:51:43.828 > [DPL::getBatteryVoltage] BMS: 55.94 V, MPPT: 55.12 V, inverter 114184617285: 55.00 V, returning: 55.94V 22:51:43.877 > [DPL::loop] dcVoltage: 55.94 V, loadCorrectedVoltage: 56.14 V, StartTH: 52.00 V, StopTH: 47.00 V 22:51:43.927 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 22:51:43.977 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 22:51:44.027 > [DPL::calcHouseholdConsumption] power meter value: 397.1 W, power meter valid: yes 22:51:44.079 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 204 W 22:51:44.128 > [DPL::updateInverterLimits] requested: 631 W, producing: 0 W using 0 solar-powered inverters, diff: 631 W, hysteresis: 20 W 22:51:44.179 > [DPL::calcBusPowerUsage] power requested: 631 W 22:51:44.229 > [DPL::calcBusPowerUsage] will produce 198 W due to full solar-passthrough 22:51:44.278 > [DPL::updateInverterLimits] requested: 198 W, producing: 204 W using 1 battery-powered inverter, diff: -6 W, hysteresis: 20 W 22:51:44.329 > [DPL::loop] consumption: 631 W, target output: 631 W (limited to 800 W), solar inverters output: 0 W, bus power usage: 198 W, battery inverters output: 204 W 22:51:44.378 > Middle missing 22:51:44.429 > Request retransmit: 1 22:51:44.478 > Middle missing 22:51:44.528 > Request retransmit: 1 22:51:44.579 > Middle missing 22:51:44.627 > Request retransmit: 1 22:51:44.683 > [PowerMeterUdpSmaHomeManager] Leistung = 378.2 (timestamp 1699678304) 22:51:44.730 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 140.7 (timestamp 1699678304) 22:51:44.784 > [PowerMeterUdpSmaHomeManager] Leistung L2 = 390.3 (timestamp 1699678304) 22:51:44.830 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -152.8 (timestamp 1699678304) 22:51:45.263 > Middle missing 22:51:45.312 > Request retransmit: 1 22:51:45.361 > Middle missing 22:51:45.412 > Retransmit timeout 22:51:45.460 > Middle missing 22:51:45.511 > Request retransmit: 2 22:51:45.574 > [DPL::loop] ******************* ENTER ********************** 22:51:45.625 > [DPL::loop] battery interface enabled, SoC: 66.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 22:51:45.680 > [DPL::getBatteryVoltage] BMS: 55.63 V, MPPT: 55.12 V, inverter 114184617285: 55.00 V, returning: 55.63V 22:51:45.727 > [DPL::loop] dcVoltage: 55.63 V, loadCorrectedVoltage: 55.84 V, StartTH: 52.00 V, StopTH: 47.00 V 22:51:45.783 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 22:51:45.843 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 22:51:45.912 > [DPL::calcHouseholdConsumption] power meter value: 378.2 W, power meter valid: yes 22:51:45.962 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 204 W 22:51:46.013 > [DPL::updateInverterLimits] requested: 612 W, producing: 0 W using 0 solar-powered inverters, diff: 612 W, hysteresis: 20 W 22:51:46.062 > [DPL::calcBusPowerUsage] power requested: 612 W 22:51:46.448 > [DPL::calcBusPowerUsage] will produce 198 W due to full solar-passthrough 22:51:46.495 > [DPL::updateInverterLimits] requested: 198 W, producing: 204 W using 1 battery-powered inverter, diff: -6 W, hysteresis: 20 W 22:51:46.544 > [DPL::loop] consumption: 612 W, target output: 612 W (limited to 800 W), solar inverters output: 0 W, bus power usage: 198 W, battery inverters output: 204 W 22:51:46.594 > Middle missing 22:51:46.644 > Request retransmit: 2 22:51:47.038 > Middle missing 22:51:47.097 > Request retransmit: 2 22:51:47.144 > [PowerMeterUdpSmaHomeManager] Leistung = 379.6 (timestamp 1699679309) 22:51:47.196 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 140.4 (timestamp 1699679309) 22:51:47.245 > [PowerMeterUdpSmaHomeManager] Leistung L2 = 392.0 (timestamp 1699679309) 22:51:47.295 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -152.8 (timestamp 1699679309) 22:51:47.344 > Middle missing ``` |
re-using the unconditional full solar-passthrough implementation does not work if the battery is full (full solar-passthrough active) while the grid consumption is higher than the solar output. we then only produce as much power as is available from the charge controllers, where we actually should match the grid cosumption by also using the battery's power. notice that this makes "uncondictional full solar-passthrough" (the DPL mode of operation set through MQTT) something different than just "full solar-passthrough", as was before #1216 (support for multiple DPL inverters) was merged.
8908002
to
8602bed
Compare
Thanks for giving feedback this quickly. So I changed the code such that when full solar passthrough is active we would not use the implementation for unconditional full solar-passthrough, and I did adjust the function calculating how much power the battery-powered inverters shall produce, but I did not catch the case which was your original problem, i.e., the solar power is less than the required power to meet the household consumption. Sorry about that. If you are still happy to test, please do. Otherwise I will setup my test rig such that I will be able to test this, which is doable. |
I can do further tests, or you can use my test environment. If you need any assitance, feel free to contact me. |
Oh, yes, I remember, I wanted to thank you for offering it to me, which I think is very kind 💪 However, since I have a test rig that should suffice to do the tests, I will prefer that, as I know my way around it already. |
Don't know why. And looks that DPL forces 100% to the inverter Log``` 16:25:54.916 > abort() was called at PC 0x401edfa3 on core 1 16:25:54.916 > 16:25:54.916 > 16:25:54.916 > Backtrace: 0x400840ed:0x3ffb1ee0 0x4008fb61:0x3ffb1f00 0x40095f31:0x3ffb1f20 0x401edfa3:0x3ffb1fa0 0x401edfea:0x3ffb1fc0 0x401edf4b:0x3ffb1fe0 0x401ee37a:0x3ffb2000 0x40133f89:0x3ffb2020 0x40133fcd:0x3ffb2040 0x40133fed:0x3ffb2080 0x40134031:0x3ffb20b0 0x4012a275:0x3ffb20d0 0x4012b521:0x3ffb2160 0x4022d619:0x3ffb2210 0x4012d962:0x3ffb2230 0x4012dadd:0x3ffb2250 0x4012daf6:0x3ffb2270 0x401586b1:0x3ffb2290 16:25:54.916 > #0 0x400840ed in panic_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/panic.c:408 16:25:54.916 > #1 0x4008fb61 in esp_system_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/esp_system.c:137 16:25:54.916 > #2 0x40095f31 in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/newlib/abort.c:46 16:25:54.916 > #3 0x401edfa3 in __cxxabiv1::__terminate(void (*)()) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:47 16:25:54.916 > #4 0x401edfea in std::terminate() at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:57 16:25:54.916 > #5 0x401edf4b in __cxa_throw at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:95 16:25:54.916 > #6 0x401ee37a in operator new(unsigned int) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/new_op.cc:54 16:25:54.916 > #7 0x40133f89 in __gnu_cxx::new_allocator::allocate(unsigned int, void const*) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\ext/new_allocator.h:111 16:25:54.916 > (inlined by) std::allocator_traits >::allocate(std::allocator&, unsigned int) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/alloc_traits.h:436 16:25:54.916 > (inlined by) std::_Vector_base >::_M_allocate(unsigned int) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_vector.h:296 16:25:54.916 > (inlined by) std::_Vector_base >::_M_create_storage(unsigned int) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_vector.h:311 16:25:54.916 > (inlined by) std::_Vector_base >::_Vector_base(unsigned int, std::allocator const&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_vector.h:260 16:25:54.916 > (inlined by) std::vector >::vector(unsigned int, std::allocator const&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_vector.h:416 16:25:54.916 > (inlined by) void __gnu_cxx::new_allocator > >::construct >, unsigned int&>(std::vector >*, unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\ext/new_allocator.h:136 16:25:54.916 > (inlined by) void std::allocator_traits > > >::construct >, unsigned int&>(std::allocator > >&, std::vector >*, unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/alloc_traits.h:475 16:25:54.916 > (inlined by) std::_Sp_counted_ptr_inplace >, std::allocator > >, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace(std::allocator > >, unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr_base.h:545 16:25:54.916 > (inlined by) std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count >, std::allocator > >, unsigned int&>(std::vector >*&, std::_Sp_alloc_shared_tag > > >, unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr_base.h:677 16:25:54.916 > #8 0x40133fcd in std::__shared_ptr >, (__gnu_cxx::_Lock_policy)2>::__shared_ptr > >, unsigned int&>(std::_Sp_alloc_shared_tag > > >, unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr_base.h:1342 16:25:54.916 > (inlined by) std::shared_ptr > >::shared_ptr > >, unsigned int&>(std::_Sp_alloc_shared_tag > > >, unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr.h:359 16:25:54.916 > (inlined by) std::shared_ptr > > std::allocate_shared >, std::allocator > >, unsigned int&>(std::allocator > > const&, unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr.h:706 16:25:54.916 > (inlined by) std::shared_ptr > > std::make_shared >, unsigned int&>(unsigned int&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr.h:722 16:25:54.916 > (inlined by) makeSharedBuffer at .pio/libdeps/generic_esp32_16mb/ESPAsyncWebServer/src/AsyncWebSocket.cpp:647 16:25:54.916 > #9 0x40133fed in AsyncWebSocket::textAll(unsigned char const*, unsigned int) at .pio/libdeps/generic_esp32_16mb/ESPAsyncWebServer/src/AsyncWebSocket.cpp:890 16:25:54.916 > #10 0x40134031 in AsyncWebSocket::textAll(char const*, unsigned int) at .pio/libdeps/generic_esp32_16mb/ESPAsyncWebServer/src/AsyncWebSocket.cpp:893 16:25:54.916 > (inlined by) AsyncWebSocket::textAll(String const&) at .pio/libdeps/generic_esp32_16mb/ESPAsyncWebServer/src/AsyncWebSocket.cpp:899 16:25:54.916 > #11 0x4012a275 in WebApiWsLiveClass::sendOnBatteryStats() at src/WebApi_ws_live.cpp:166 16:25:54.916 > #12 0x4012b521 in WebApiWsLiveClass::sendDataTaskCb() at src/WebApi_ws_live.cpp:177 16:25:54.916 > #13 0x4022d619 in void std::__invoke_impl(std::__invoke_memfun_deref, void (WebApiWsLiveClass::*&)(), WebApiWsLiveClass*&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/invoke.h:73 16:25:54.916 > (inlined by) std::__invoke_result::type std::__invoke(void (WebApiWsLiveClass::*&)(), WebApiWsLiveClass*&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/invoke.h:95 16:25:54.916 > (inlined by) void std::_Bind::__call(std::tuple<>&&, std::_Index_tuple<0u>) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0/functional:400 16:25:54.916 > (inlined by) void std::_Bind::operator()<, void>() at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0/functional:484 16:25:54.916 > (inlined by) std::_Function_handler >::_M_invoke(std::_Any_data const&) at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/std_function.h:297 16:25:54.916 > #14 0x4012d962 in std::function::operator()() const at c:\users\XXXXX\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/std_function.h:687 16:25:54.916 > #15 0x4012dadd in Scheduler::execute() at .pio/libdeps/generic_esp32_16mb/TaskScheduler/src/TaskScheduler.h:1552 16:25:54.916 > (inlined by) Scheduler::execute() at .pio/libdeps/generic_esp32_16mb/TaskScheduler/src/TaskScheduler.h:1351 16:25:54.916 > #16 0x4012daf6 in loop() at src/main.cpp:205 16:25:54.916 > #17 0x401586b1 in loopTask(void*) at C:/Users/XXXXX/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:50 16:25:54.916 > 16:25:54.916 > 16:25:54.916 > 16:25:54.916 > 16:25:54.916 > 16:25:54.916 > ELF file SHA256: 21404a915f9df9f7 16:25:54.916 > 16:25:54.916 > E (15923) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0 16:25:54.981 > Rebooting... 16:25:54.981 > ets Jul 29 2019 12:21:46 16:25:54.981 > 16:25:54.981 > rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 16:25:54.981 > configsip: 0, SPIWP:0xee 16:25:54.981 > clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 16:25:54.981 > mode:DIO, clock div:2 16:25:54.981 > load:0x3fff0030,len:1344 16:25:54.981 > load:0x40078000,len:13936 16:25:54.981 > load:0x40080400,len:3600 16:25:54.981 > entry 0x400805f0 16:25:54.981 > E (810) esp_core_dump_flash: No ore dump partition found! 16:25:54.981 > E (810) esp_core_dump_flash: No core dump partition found! 16:25:54.981 > 16:25:54.981 > Starting OpenDTUMiddle missing
|
Very weird: I set temporary the inverter to 444 watts, and since, the system is no longer rebooting + DPL works in FSPT as it should: Log``` 16:33:04.999 > Request retransmit: 1 16:33:05.075 > Middle missing 16:33:05.138 > Request retransmit: 1 16:33:05.207 > Middle missing 16:33:05.268 > Request retransmit: 2 16:33:05.339 > Middle missing 16:33:05.391 > Request retransmit: 3 16:33:05.451 > [PowerMeterUdpSmaHomeManager] Leistung = -31.2 (timestamp 1763362199) 16:33:05.500 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.7 (timestamp 1763362199) 16:33:05.553 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -165.1 (timestamp 1763362199) 16:33:05.599 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.7 (timestamp 1763362199) 16:33:05.649 > Middle missing 16:33:05.697 > Retransmit timeout 16:33:05.756 > Fetch inverter: 114184617285 16:33:05.816 > Admin AP remaining seconds: 30 / 180 16:33:05.994 > Middle missing 16:33:06.143 > Request retransmit: 1 16:33:06.198 > Middle missing 16:33:06.251 > Request retransmit: 2 16:33:06.300 > Success 16:33:06.356 > [DPL::announceStatus] waiting for sufficiently recent power meter reading 16:33:06.417 > [PowerMeterUdpSmaHomeManager] Leistung = -24.8 (timestamp 1763363204) 16:33:06.469 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.0 (timestamp 1763363204) 16:33:06.524 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -158.5 (timestamp 1763363204) 16:33:06.740 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.3 (timestamp 1763363204) 16:33:07.029 > Middle missing 16:33:07.094 > Request retransmit: 1 16:33:07.149 > Middle missing 16:33:07.201 > Request retransmit: 1 16:33:07.250 > Middle missing 16:33:07.303 > Request retransmit: 3 16:33:07.378 > Middle missing 16:33:07.433 > Request retransmit: 3 16:33:07.486 > [PowerMeterUdpSmaHomeManager] Leistung = -8.2 (timestamp 1763364199) 16:33:07.533 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.2 (timestamp 1763364199) 16:33:07.586 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -142.5 (timestamp 1763364199) 16:33:07.633 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.0 (timestamp 1763364199) 16:33:07.688 > Middle missing 16:33:07.734 > Request retransmit: 3 16:33:07.781 > Middle missing 16:33:07.833 > Retransmit timeout 16:33:08.118 > Middle missing 16:33:08.167 > Request retransmit: 2 16:33:08.227 > Middle missing 16:33:08.536 > Request retransmit: 2 16:33:08.586 > Middle missing 16:33:08.645 > Request retransmit: 2 16:33:08.703 > [PowerMeterUdpSmaHomeManager] Leistung = -57.1 (timestamp 1763365204) 16:33:08.757 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.5 (timestamp 1763365204) 16:33:08.815 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -189.2 (timestamp 1763365204) 16:33:08.866 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -87.4 (timestamp 1763365204) 16:33:08.919 > [DPL::loop] ******************* ENTER ********************** 16:33:08.963 > [DPL::loop] battery interface enabled, SoC: 83.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 16:33:09.017 > [DPL::getBatteryVoltage] BMS: 57.35 V, MPPT: 56.43 V, inverter 114184617285: 56.00 V, returning: 57.35V 16:33:09.065 > [DPL::loop] dcVoltage: 57.35 V, loadCorrectedVoltage: 58.03 V, StartTH: 52.00 V, StopTH: 47.00 V 16:33:09.116 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 16:33:09.166 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 16:33:09.218 > [DPL::calcHouseholdConsumption] power meter value: -57.1 W, power meter valid: yes 16:33:09.263 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 673 W 16:33:09.313 > [DPL::updateInverterLimits] requested: 646 W, producing: 0 W using 0 solar-powered inverters, diff: 646 W, hysteresis: 20 W 16:33:09.364 > [DPL::calcPowerBusUsage] power requested: 646 W 16:33:09.419 > [DPL::updateInverterLimits] requested: 646 W, producing: 673 W using 1 battery-powered inverter, diff: -27 W, hysteresis: 20 W 16:33:09.466 > [DPL::updateInverterLimits] will cover 633 W using 1 battery-powered inverter 16:33:09.529 > [DPL inverter 114184617285]: 16:33:09.584 > battery-powered, producing 673 W 16:33:09.634 > lower/current/upper limit: 20/660/800 W, output capability: 800 W 16:33:09.686 > sending commands enabled, reachable, eligible 16:33:09.758 > max reduction production/standby: 653/673 W, max increase: 140 W 16:33:09.816 > target limit/output/state: 633 W (update)/633 W/production, 0 update timeouts 16:33:09.864 > [DPL::loop] consumption: 646 W, target output: 646 W (limited to 800 W), solar inverters output: 0 W, DC power bus usage: 646 W, battery inverters output: 633 W 16:33:09.914 > [DPL inverter 114184617285]: sending limit of 79.1 % (633 W respectively), max output is 800 W 16:33:09.966 > Middle missing 16:33:10.012 > Request retransmit: 2 16:33:10.065 > [DPL::announceStatus] waiting for a start/stop/restart/limit command to complete 16:33:10.114 > Middle missing 16:33:10.168 > Request retransmit: 4 16:33:10.216 > Middle missing 16:33:10.270 > Retransmit timeout 16:33:10.316 > [PowerMeterUdpSmaHomeManager] Leistung = -12.7 (timestamp 1763366199) 16:33:10.371 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 221.4 (timestamp 1763366199) 16:33:10.420 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -148.2 (timestamp 1763366199) 16:33:10.478 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -85.9 (timestamp 1763366199) 16:33:10.531 > [PowerMeterUdpSmaHomeManager] Leistung = -28.2 (timestamp 1763367204) 16:33:10.583 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.0 (timestamp 1763367204) 16:33:10.631 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -161.2 (timestamp 1763367204) 16:33:10.683 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -87.1 (timestamp 1763367204) 16:33:10.842 > All missing 16:33:10.901 > Nothing received, resend whole request 16:33:11.381 > [PowerMeterUdpSmaHomeManager] Leistung = -24.1 (timestamp 1763368199) 16:33:11.437 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.6 (timestamp 1763368199) 16:33:11.503 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -159.6 (timestamp 1763368199) 16:33:11.551 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -85.0 (timestamp 1763368199) 16:33:12.383 > [PowerMeterUdpSmaHomeManager] Leistung = 6.3 (timestamp 1763369204) 16:33:12.432 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 221.8 (timestamp 1763369204) 16:33:12.484 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -129.0 (timestamp 1763369204) 16:33:12.535 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.4 (timestamp 1763369204) 16:33:12.804 > [ShellyACPlug] GET HTTP Error: connection refused 16:33:12.860 > Success 16:33:12.917 > Fetch inverter: 114184617285 16:33:12.967 > [DPL inverter 114184617285]: actual limit is 79.1 % (633 W respectively), effective 4333 ms after update started, requested were 79.1 % 16:33:13.027 > [DPL::announceStatus] waiting for sufficiently recent inverter data 16:33:13.381 > [PowerMeterUdpSmaHomeManager] Leistung = 8.1 (timestamp 1763370199) 16:33:13.444 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 221.0 (timestamp 1763370199) 16:33:13.499 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -126.7 (timestamp 1763370199) 16:33:13.555 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.2 (timestamp 1763370199) 16:33:13.603 > All missing 16:33:13.666 > Nothing received, resend whole request 16:33:13.952 > Last missing 16:33:13.996 > Request retransmit: 3 16:33:14.392 > Success 16:33:14.502 > [DPL::announceStatus] waiting for sufficiently recent power meter reading 16:33:14.560 > [PowerMeterUdpSmaHomeManager] Leistung = 9.6 (timestamp 1763371204) 16:33:14.616 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.4 (timestamp 1763371204) 16:33:14.795 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -124.3 (timestamp 1763371204) 16:33:14.851 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -85.6 (timestamp 1763371204) 16:33:14.900 > Middle missing 16:33:14.950 > Request retransmit: 1 16:33:15.001 > Middle missing 16:33:15.099 > Request retransmit: 2 16:33:15.151 > Middle missing 16:33:15.221 > Request retransmit: 2 16:33:15.274 > Middle missing 16:33:15.343 > Request retransmit: 2 16:33:15.453 > Middle missing 16:33:15.518 > Request retransmit: 2 16:33:15.568 > [PowerMeterUdpSmaHomeManager] Leistung = -29.9 (timestamp 1763372199) 16:33:15.652 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.3 (timestamp 1763372199) 16:33:15.743 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -163.4 (timestamp 1763372199) 16:33:16.014 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -85.8 (timestamp 1763372199) 16:33:16.068 > Middle missing 16:33:16.116 > Retransmit timeout 16:33:16.166 > Admin AP remaining seconds: 40 / 180 16:33:16.217 > Last missing 16:33:16.266 > Request retransmit: 9 16:33:16.318 > Last missing 16:33:16.364 > Request retransmit: 9 16:33:16.417 > Middle missing 16:33:16.462 > Request retransmit: 1 16:33:16.523 > [PowerMeterUdpSmaHomeManager] Leistung = 21.9 (timestamp 1763373204) 16:33:16.569 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 221.1 (timestamp 1763373204) 16:33:16.617 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -112.5 (timestamp 1763373204) 16:33:16.666 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.7 (timestamp 1763373204) 16:33:16.721 > [DPL::loop] ******************* ENTER ********************** 16:33:16.767 > [DPL::loop] battery interface enabled, SoC: 83.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 16:33:16.819 > [DPL::getBatteryVoltage] BMS: 57.15 V, MPPT: 56.45 V, inverter 114184617285: 56.10 V, returning: 57.15V 16:33:16.867 > [DPL::loop] dcVoltage: 57.15 V, loadCorrectedVoltage: 57.79 V, StartTH: 52.00 V, StopTH: 47.00 V 16:33:16.924 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 16:33:16.984 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 16:33:17.035 > [DPL::calcHouseholdConsumption] power meter value: 21.9 W, power meter valid: yes 16:33:17.084 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 642 W 16:33:17.134 > [DPL::updateInverterLimits] requested: 694 W, producing: 0 W using 0 solar-powered inverters, diff: 694 W, hysteresis: 20 W 16:33:17.182 > [DPL::calcPowerBusUsage] power requested: 694 W 16:33:17.236 > [DPL::updateInverterLimits] requested: 694 W, producing: 642 W using 1 battery-powered inverter, diff: 52 W, hysteresis: 20 W 16:33:17.282 > [DPL::updateInverterLimits] will cover 684 W using 1 battery-powered inverter 16:33:17.335 > [DPL inverter 114184617285]: 16:33:17.381 > battery-powered, producing 642 W 16:33:17.443 > lower/current/upper limit: 20/632/800 W, output capability: 800 W 16:33:17.510 > sending commands enabled, reachable, eligible 16:33:17.565 > max reduction production/standby: 622/642 W, max increase: 168 W 16:33:17.619 > target limit/output/state: 684 W (update)/684 W/production, 0 update timeouts 16:33:17.666 > [DPL::loop] consumption: 694 W, target output: 694 W (limited to 800 W), solar inverters output: 0 W, DC power bus usage: 694 W, battery inverters output: 684 W 16:33:17.718 > [DPL inverter 114184617285]: sending limit of 85.5 % (684 W respectively), max output is 800 W 16:33:17.768 > Middle missing 16:33:17.858 > Request retransmit: 2 16:33:17.915 > [DPL::announceStatus] waiting for a start/stop/restart/limit command to complete 16:33:17.967 > Middle missing 16:33:18.018 > Request retransmit: 2 16:33:18.065 > Middle missing 16:33:18.137 > Retransmit timeout 16:33:18.201 > [PowerMeterUdpSmaHomeManager] Leistung = 14.6 (timestamp 1763374199) 16:33:18.253 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.5 (timestamp 1763374199) 16:33:18.298 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -119.2 (timestamp 1763374199) 16:33:18.360 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.7 (timestamp 1763374199) 16:33:18.422 > [PowerMeterUdpSmaHomeManager] Leistung = 4.1 (timestamp 1763375204) 16:33:18.484 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.7 (timestamp 1763375204) 16:33:18.534 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -127.8 (timestamp 1763375204) 16:33:18.582 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -87.8 (timestamp 1763375204) 16:33:18.855 > All missing 16:33:18.901 > Nothing received, resend whole request 16:33:19.360 > [PowerMeterUdpSmaHomeManager] Skipped unknown measurement: 116 1 241 37 16:33:20.383 > [PowerMeterUdpSmaHomeManager] Leistung = 38.6 (timestamp 1763376199) 16:33:20.436 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.8 (timestamp 1763376199) 16:33:20.486 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -94.8 (timestamp 1763376199) 16:33:20.532 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.3 (timestamp 1763376199) 16:33:20.873 > Success 16:33:20.935 > Fetch inverter: 114184617285 16:33:20.985 > [DPL inverter 114184617285]: actual limit is 85.5 % (684 W respectively), effective 4335 ms after update started, requested were 85.5 % 16:33:21.034 > [DPL::announceStatus] waiting for sufficiently recent inverter data 16:33:21.383 > [PowerMeterUdpSmaHomeManager] Leistung = -42.4 (timestamp 1763377194) 16:33:21.438 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.4 (timestamp 1763377194) 16:33:21.491 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -174.5 (timestamp 1763377194) 16:33:21.550 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -87.3 (timestamp 1763377194) 16:33:21.833 > Last missing 16:33:21.882 > Request retransmit: 2 16:33:21.931 > Last missing 16:33:21.983 > Request retransmit: 2 16:33:22.034 > Last missing 16:33:22.089 > Request retransmit: 2 16:33:22.154 > Last missing 16:33:22.200 > Request retransmit: 2 16:33:22.268 > Last missing 16:33:22.314 > Request retransmit: 3 16:33:22.364 > Success 16:33:22.424 > [DPL::announceStatus] waiting for sufficiently recent power meter reading 16:33:22.473 > [PowerMeterUdpSmaHomeManager] Leistung = -37.5 (timestamp 1763378199) 16:33:22.520 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.6 (timestamp 1763378199) 16:33:22.567 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -169.6 (timestamp 1763378199) 16:33:22.617 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -87.6 (timestamp 1763378199) 16:33:22.846 > Last missing 16:33:22.902 > Request retransmit: 10 16:33:22.966 > Last missing 16:33:23.016 > Request retransmit: 10 16:33:23.069 > Last missing 16:33:23.116 > Request retransmit: 11 16:33:23.196 > Last missing 16:33:23.253 > Request retransmit: 11 16:33:23.307 > Last missing 16:33:23.356 > Request retransmit: 12 16:33:23.401 > [PowerMeterUdpSmaHomeManager] Leistung = -59.4 (timestamp 1763379194) 16:33:23.452 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.4 (timestamp 1763379194) 16:33:23.516 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -192.6 (timestamp 1763379194) 16:33:23.581 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -87.3 (timestamp 1763379194) 16:33:23.635 > Last missing 16:33:23.698 > Retransmit timeout 16:33:23.955 > Middle missing 16:33:24.017 > Request retransmit: 2 16:33:24.070 > Middle missing 16:33:24.118 > Request retransmit: 2 16:33:24.205 > Middle missing 16:33:24.273 > Request retransmit: 4 16:33:24.332 > Middle missing 16:33:24.389 > Request retransmit: 4 16:33:24.527 > [PowerMeterUdpSmaHomeManager] Leistung = -110.7 (timestamp 1763380199) 16:33:24.597 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.1 (timestamp 1763380199) 16:33:24.653 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -244.9 (timestamp 1763380199) 16:33:24.755 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -85.9 (timestamp 1763380199) 16:33:24.816 > [DPL::loop] ******************* ENTER ********************** 16:33:25.207 > [DPL::loop] battery interface enabled, SoC: 83.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 16:33:25.253 > [DPL::getBatteryVoltage] BMS: 57.15 V, MPPT: 56.44 V, inverter 114184617285: 56.00 V, returning: 57.15V 16:33:25.305 > [DPL::loop] dcVoltage: 57.15 V, loadCorrectedVoltage: 57.83 V, StartTH: 52.00 V, StopTH: 47.00 V 16:33:25.352 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 16:33:25.410 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 16:33:25.468 > [DPL::calcHouseholdConsumption] power meter value: -110.7 W, power meter valid: yes 16:33:25.520 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 688 W 16:33:25.566 > [DPL::updateInverterLimits] requested: 607 W, producing: 0 W using 0 solar-powered inverters, diff: 607 W, hysteresis: 20 W 16:33:25.619 > [DPL::calcPowerBusUsage] power requested: 607 W 16:33:25.671 > [DPL::updateInverterLimits] requested: 607 W, producing: 688 W using 1 battery-powered inverter, diff: -81 W, hysteresis: 20 W 16:33:25.719 > [DPL::updateInverterLimits] will cover 603 W using 1 battery-powered inverter 16:33:25.765 > [DPL inverter 114184617285]: 16:33:25.831 > battery-powered, producing 688 W 16:33:25.884 > lower/current/upper limit: 20/684/800 W, output capability: 800 W 16:33:25.936 > sending commands enabled, reachable, eligible 16:33:25.982 > max reduction production/standby: 668/688 W, max increase: 116 W 16:33:26.036 > target limit/output/state: 603 W (update)/603 W/production, 0 update timeouts 16:33:26.083 > [DPL::loop] consumption: 607 W, target output: 607 W (limited to 800 W), solar inverters output: 0 W, DC power bus usage: 607 W, battery inverters output: 603 W 16:33:26.142 > [DPL inverter 114184617285]: sending limit of 75.4 % (603 W respectively), max output is 800 W 16:33:26.395 > Middle missing 16:33:26.454 > Request retransmit: 6 16:33:26.501 > [DPL::announceStatus] waiting for a start/stop/restart/limit command to complete 16:33:26.554 > Middle missing 16:33:26.611 > Retransmit timeout 16:33:26.664 > [PowerMeterUdpSmaHomeManager] Leistung = -71.2 (timestamp 1763381194) 16:33:26.767 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.9 (timestamp 1763381194) 16:33:26.823 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -205.0 (timestamp 1763381194) 16:33:26.884 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.1 (timestamp 1763381194) 16:33:26.934 > Admin AP remaining seconds: 50 / 180 16:33:26.980 > [PowerMeterUdpSmaHomeManager] Leistung = -58.0 (timestamp 1763382199) 16:33:27.032 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 221.0 (timestamp 1763382199) 16:33:27.083 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -192.7 (timestamp 1763382199) 16:33:27.135 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.3 (timestamp 1763382199) 16:33:27.181 > Success 16:33:27.233 > Fetch inverter: 114184617285 16:33:27.278 > [DPL inverter 114184617285]: actual limit is 75.3 % (602 W respectively), effective 2197 ms after update started, requested were 75.4 % 16:33:27.336 > [DPL::announceStatus] waiting for sufficiently recent inverter data 16:33:27.383 > Last missing 16:33:27.438 > Request retransmit: 3 16:33:27.484 > [PowerMeterUdpSmaHomeManager] Leistung = -31.6 (timestamp 1763383194) 16:33:27.532 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.5 (timestamp 1763383194) 16:33:27.582 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -165.9 (timestamp 1763383194) 16:33:27.633 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.2 (timestamp 1763383194) 16:33:27.679 > Middle missing 16:33:27.731 > Request retransmit: 1 16:33:27.784 > Success 16:33:27.830 > [DPL::announceStatus] waiting for sufficiently recent power meter reading 16:33:28.313 > Last missing 16:33:28.433 > Request retransmit: 12 16:33:28.488 > [PowerMeterUdpSmaHomeManager] Leistung = -30.0 (timestamp 1763384199) 16:33:28.548 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.5 (timestamp 1763384199) 16:33:28.599 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -162.7 (timestamp 1763384199) 16:33:28.649 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.7 (timestamp 1763384199) 16:33:28.701 > Last missing 16:33:28.749 > Request retransmit: 12 16:33:28.801 > Last missing 16:33:28.851 > Request retransmit: 12 16:33:28.921 > Last missing 16:33:28.971 > Request retransmit: 12 16:33:29.030 > Middle missing 16:33:29.086 > Request retransmit: 1 16:33:29.142 > Middle missing 16:33:29.201 > Retransmit timeout 16:33:29.389 > [PowerMeterUdpSmaHomeManager] Leistung = -10.8 (timestamp 1763385194) 16:33:29.438 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.2 (timestamp 1763385194) 16:33:29.485 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -142.7 (timestamp 1763385194) 16:33:29.533 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -88.3 (timestamp 1763385194) 16:33:29.584 > Last missing 16:33:29.638 > Request retransmit: 8 16:33:29.695 > Last missing 16:33:29.750 > Request retransmit: 8 16:33:29.846 > Last missing 16:33:29.899 > Request retransmit: 9 16:33:29.954 > Middle missing 16:33:30.002 > Request retransmit: 1 16:33:30.051 > Middle missing 16:33:30.104 > Request retransmit: 2 16:33:30.155 > Middle missing 16:33:30.411 > Retransmit timeout 16:33:30.467 > Fetch inverter: 114184617285 16:33:30.532 > [PowerMeterUdpSmaHomeManager] Leistung = 26.3 (timestamp 1763386199) 16:33:30.584 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 222.3 (timestamp 1763386199) 16:33:30.646 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -107.8 (timestamp 1763386199) 16:33:30.701 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -88.2 (timestamp 1763386199) 16:33:30.769 > [DPL::loop] ******************* ENTER ********************** 16:33:30.836 > [DPL::loop] battery interface enabled, SoC: 83.0 %, StartTH: 25 %, StopTH: 5 %, SoC age: 0 s, ignore: no 16:33:30.882 > [DPL::getBatteryVoltage] BMS: 57.22 V, MPPT: 56.47 V, inverter 114184617285: 56.00 V, returning: 57.22V 16:33:30.934 > [DPL::loop] dcVoltage: 57.22 V, loadCorrectedVoltage: 57.89 V, StartTH: 52.00 V, StopTH: 47.00 V 16:33:30.985 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT enabled, use at night: yes 16:33:31.041 > [DPL::calcHouseholdConsumption] target consumption: -30 W, base load: 100 W 16:33:31.086 > [DPL::calcHouseholdConsumption] power meter value: 26.3 W, power meter valid: yes 16:33:31.133 > [DPL::calcHouseholdConsumption] inverter 114184617285 is behind power meter producing 673 W 16:33:31.188 > [DPL::updateInverterLimits] requested: 729 W, producing: 0 W using 0 solar-powered inverters, diff: 729 W, hysteresis: 20 W 16:33:31.235 > [DPL::calcPowerBusUsage] power requested: 729 W 16:33:31.283 > [DPL::updateInverterLimits] requested: 729 W, producing: 673 W using 1 battery-powered inverter, diff: 56 W, hysteresis: 20 W 16:33:31.337 > [DPL::updateInverterLimits] will cover 658 W using 1 battery-powered inverter 16:33:31.382 > [DPL inverter 114184617285]: 16:33:31.432 > battery-powered, producing 673 W 16:33:31.482 > lower/current/upper limit: 20/602/800 W, output capability: 800 W 16:33:31.534 > sending commands enabled, reachable, eligible 16:33:31.583 > max reduction production/standby: 653/673 W, max increase: 198 W 16:33:31.645 > target limit/output/state: 658 W (update)/658 W/production, 0 update timeouts 16:33:31.702 > [DPL::loop] consumption: 729 W, target output: 729 W (limited to 800 W), solar inverters output: 0 W, DC power bus usage: 729 W, battery inverters output: 658 W 16:33:31.751 > [DPL inverter 114184617285]: sending limit of 82.2 % (658 W respectively), max output is 800 W 16:33:31.811 > [DPL::announceStatus] waiting for a start/stop/restart/limit command to complete 16:33:31.868 > Middle missing 16:33:31.919 > Request retransmit: 2 16:33:31.970 > Success 16:33:32.020 > [PowerMeterUdpSmaHomeManager] Leistung = 15.6 (timestamp 1763387194) 16:33:32.074 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 220.1 (timestamp 1763387194) 16:33:32.120 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -117.8 (timestamp 1763387194) 16:33:32.175 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -86.7 (timestamp 1763387194) 16:33:32.233 > Middle missing 16:33:32.296 > Request retransmit: 3 16:33:32.398 > Middle missing 16:33:32.456 > Request retransmit: 3 16:33:32.506 > Middle missing 16:33:32.759 > Request retransmit: 5 16:33:32.805 > Middle missing 16:33:32.849 > Request retransmit: 7 16:33:32.907 > Middle missing 16:33:32.963 > Request retransmit: 9 16:33:33.019 > Middle missing 16:33:33.070 > Retransmit timeout 16:33:33.115 > [PowerMeterUdpSmaHomeManager] Leistung = 37.3 (timestamp 1763389194) 16:33:33.181 > [PowerMeterUdpSmaHomeManager] Leistung L1 = 219.4 (timestamp 1763389194) 16:33:33.232 > [PowerMeterUdpSmaHomeManager] Leistung L2 = -96.5 (timestamp 1763389194) 16:33:33.404 > [PowerMeterUdpSmaHomeManager] Leistung L3 = -85.7 (timestamp 1763389194) 16:33:33.455 > Last missing 16:33:33.507 > Request retransmit: 5 16:33:33.555 > Last missing 16:33:33.605 > Request retransmit: 5 16:33:33.653 > Last missing 16:33:33.701 > Request retransmit: 6 16:33:33.768 > Last missing 16:33:33.818 > Request retransmit: 6 16:33:33.871 > Last missing 16:33:33.923 > Request retransmit: 7 ``` |
After some minutes of working, Reboot is back... Log``` 16:52:43.951 > abort() was called at PC 0x401edfa3 on core 1 16:52:43.951 > 16:52:43.951 > 16:52:43.951 > Backtrace: 0x400840ed:0x3ffb1e80 0x4008fb61:0x3ffb1ea0 0x40095f31:0x3ffb1ec0 0x401edfa3:0x3ffb1f40 0x401edfea:0x3ffb1f60 0x401ee2b1:0x3ffb1f80 0x401ee36c:0x3ffb1fa0 0x400f3a39:0x3ffb1fc0 0x400f4303:0x3ffb1fe0 0x40150fc7:0x3ffb2030 0x401057ab:0x3ffb20d0 0x40105e85:0x3ffb2140 0x4022ca01:0x3ffb2210 0x4012d962:0x3ffb2230 0x4012dadd:0x3ffb2250 0x4012daf6:0x3ffb2270 0x401586b1:0x3ffb2290 16:52:44.918 > #0 0x400840ed in panic_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/panic.c:408 16:52:44.918 > #1 0x4008fb61 in esp_system_abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/esp_system.c:137 16:52:44.918 > #2 0x40095f31 in abort at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/newlib/abort.c:46 16:52:44.918 > #3 0x401edfa3 in __cxxabiv1::__terminate(void (*)()) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:47 16:52:44.918 > #4 0x401edfea in std::terminate() at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:57 16:52:44.918 > #5 0x401ee2b1 in __cxa_allocate_exception at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/eh_alloc.cc:300 16:52:44.918 > #6 0x401ee36c in operator new(unsigned int) at /builds/idf/crosstool-NG/.build/HOST-x86_64-w64-mingw32/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/new_op.cc:54 16:52:44.918 > #7 0x400f3a39 in __gnu_cxx::new_allocator::allocate(unsigned int, void const*) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\ext/new_allocator.h:111 16:52:44.918 > (inlined by) std::allocator_traits >::allocate(std::allocator&, unsigned int) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/alloc_traits.h:436 16:52:44.918 > (inlined by) std::_Vector_base >::_M_allocate(unsigned int) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_vector.h:296 16:52:44.918 > (inlined by) unsigned char* std::vector >::_M_allocate_and_copy >(unsigned int, std::move_iterator, std::move_iterator) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/stl_vector.h:1398 16:52:44.918 > (inlined by) std::vector >::reserve(unsigned int) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/vector.tcc:74 16:52:44.918 > #8 0x400f4303 in MessageOutputClass::write(unsigned char const*, unsigned int) at src/MessageOutput.cpp:69 (discriminator 1) 16:52:44.918 > #9 0x40150fc7 in Print::printf(char const*, ...) at C:/Users/hss.STAPF/.platformio/packages/framework-arduinoespressif32/cores/esp32/Print.cpp:70 16:52:44.918 > #10 0x401057ab in PowerLimiterClass::updateInverterLimits(unsigned short, std::function, std::__cxx11::basic_string, std::allocator > const&) at src/PowerLimiter.cpp:533 (discriminator 4) 16:52:44.918 > #11 0x40105e85 in PowerLimiterClass::loop() at src/PowerLimiter.cpp:294 (discriminator 3) 16:52:44.918 > #12 0x4022ca01 in void std::__invoke_impl(std::__invoke_memfun_deref, void (PowerLimiterClass::*&)(), PowerLimiterClass*&) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/invoke.h:73 16:52:44.918 > (inlined by) std::__invoke_result::type std::__invoke(void (PowerLimiterClass::*&)(), PowerLimiterClass*&) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/invoke.h:95 16:52:44.918 > (inlined by) void std::_Bind::__call(std::tuple<>&&, std::_Index_tuple<0u>) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0/functional:400 16:52:44.918 > (inlined by) void std::_Bind::operator()<, void>() at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0/functional:484 16:52:44.918 > (inlined by) std::_Function_handler >::_M_invoke(std::_Any_data const&) at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/std_function.h:297 16:52:44.918 > #13 0x4012d962 in std::function::operator()() const at c:\users\hss.stapf\.platformio\packages\toolchain-xtensa-esp32\xtensa-esp32-elf\include\c++\8.4.0\bits/std_function.h:687 16:52:44.918 > #14 0x4012dadd in Scheduler::execute() at .pio/libdeps/generic_esp32_16mb/TaskScheduler/src/TaskScheduler.h:1552 16:52:44.918 > (inlined by) Scheduler::execute() at .pio/libdeps/generic_esp32_16mb/TaskScheduler/src/TaskScheduler.h:1351 16:52:44.918 > #15 0x4012daf6 in loop() at src/main.cpp:205 16:52:44.918 > #16 0x401586b1 in loopTask(void*) at C:/Users/hss.STAPF/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:50 16:52:44.918 > 16:52:44.918 > 16:52:44.918 > 16:52:44.918 > 16:52:44.918 > 16:52:44.918 > ELF file SHA256: 21404a915f9df9f7 16:52:44.918 > 16:52:44.918 > E (3191) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0 16:52:44.918 > Rebooting... 16:52:44.968 > ets Jul 29 2019 12:21:46 16:52:44.968 > 16:52:44.968 > rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) 16:52:44.968 > configsip: 0, SPIWP:0xee 16:52:44.968 > clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 16:52:44.968 > mode:DIO, clock div:2 16:52:44.968 > load:0x3fff0030,len:1344 16:52:44.968 > load:0x40078000,len:13936 16:52:44.968 > load:0x40080400,len:3600 16:52:44.968 > entry 0x400805f0 16:52:44.968 > E (810) esp_core_dump_flash: No��ore dump partition found! 16:52:44.968 > E (810) esp_core_dump_flash: No core dump partition found! 16:52:44.968 > 16:52:44.968 > Starting OpenDTU ``` |
I am quite sure those are out-of-memory exceptions. That is indeed strange, and I won't rule out issues introduced by myself, but I would be very surprised to find that the out-of-memory exceptions have something to do with this PR. |
The heap usage on your rig seems to support that those are out-of-memory issues. Maybe there are a little too many connections to your public reachable OpenDTU-OnBattery? 😉 Maybe configure a basic auth scheme in the reverse proxy? |
Your hint with to much sessions was eventually good. With that part: && solarPowerAC > powerRequested (powerlimiter.cpp Line 623), the verbose " MessageOutput.printf("[DPL::calcPowerBusUsage] using %d W due to full solar-passthrough\r\n", solarPowerAC);" " only displays if the house needs less Power than Victron wil produce... |
Nice. Yes, the added condition makes the function return the solar power output verbatim only if it is more than the requested power (household consumption) and if full solar-passthrough is active. |
* avoid redundant information * log missing information/settings * improve reading flow * drop function names in prefix
I think we are good (logs use updated logging as per ecaa421): battery discharged below stop limit:
solar-passthrough becomes viable:
start threshold reached:
full solar-passthrough threshold reached and solar production greater than household consumption (had to adjust inverter's upper limit):
solar production falls below household consumption while battery still charged:
battery is discharged below full solar-passthrough stop threshold:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works as expected
07:28:37.580 > [DPL] battery interface enabled, SoC 83.0 % (used), age 0 s (valid)
07:28:37.631 > [DPL] BMS: 57.39 V, MPPT: 56.72 V, inverter 114184617285: 56.40
07:28:37.680 > [DPL] battery voltage 57.39 V, load-corrected voltage 57.78 V @ 395 W, factor 0.00100 1/A
07:28:37.729 > [DPL] battery discharge allowed, start 52.00 V or 25 %, stop 47.00 V or 5 %
07:28:37.779 > [DPL] full solar-passthrough active, start 57.00 V or 70 %, stop 48.00 V
07:28:37.832 > [DPL] start reached, stop NOT reached, solar-passthrough enabled, use at night: yes
07:28:37.882 > [DPL] total max AC power is 800 W, cabling losses are 5 %
07:28:37.930 > [DPL] targeting -30 W, base load is 100 W, power meter reads -26.2 W (valid)
07:28:37.981 > [DPL] inverter 114184617285 is behind power meter producing 395 W
07:28:38.033 > [DPL] requesting 399 W from 0 solar-powered inverters currently producing 0 W (diff 399 W, hysteresis 20 W)
07:28:38.080 > [DPL] battery allowance is 9644/8703 W DC/AC, solar power is 209/188 W DC/AC, requested are 399 W AC
07:28:38.136 > [DPL] requesting 399 W from 1 battery-powered inverter currently producing 395 W (diff 4 W, hysteresis 20 W)
07:28:38.199 > [DPL inverter 114184617285]:
07:28:38.249 > battery-powered, producing 395 W
07:28:38.297 > lower/current/upper limit: 20/386/800 W, output capability: 800 W
07:28:38.347 > sending commands enabled, reachable, eligible
07:28:38.396 > max reduction production/standby: 375/395 W, max increase: 414 W
07:28:38.459 > target limit/output/state: -1 W (unchanged)/395 W/unchanged, 0 update timeouts
Thanks for your report(s), your willingness to test, and your feedback ❤️ |
You're welcome. |
re-using the unconditional full solar-passthrough implementation does not work if the battery is full (full solar-passthrough active) while the grid consumption is higher than the solar output. we then only produce as much power as is available from the charge controllers, where we actually should match the grid cosumption using the battery's power.
notice that this makes "uncondictional full solar-passthrough" (the DPL mode of operation set through MQTT) something different than just "full solar-passthrough", as was before #1216.
closes #1422.