hoylabs / OpenDTU-OnBattery

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters, VE.Direct devices, battery management systems, and related peripherals
GNU General Public License v2.0
321 stars 66 forks source link

[Request] Different DPL strategies for handling multiple inverters #1409

Open schlimmchen opened 1 week ago

schlimmchen commented 1 week ago

Is your feature request related to a problem? Please describe.

The implementation merged in #1216 prefers to change the limit of those inverters which promise to implement the needed change in AC output with a single limit update. If none can implement the change in one go, the inverters are sorted by the contribution they can make to the required change.

This tries to make sure that the DPL reacts as quickly as possible.

This also means that the DPL is happy to put inverters online, but hesitant to put them into standby.

However, people objected that this can lead to less than ideal situations, where multiple inverters are online producing at less efficiency while less inverters could be producing at the same total power with higher efficiency.

Describe the solution you'd like

Without too much trouble, we could implement different strategies in the DPL. The respective function implementing a particular strategy would always receive a bunch of inverters as input as well as the desired change in output, and it would be responsible to determine which of those inverters are supposed to change their limit by how much.

Describe alternatives you've considered

No response

Additional context

I am happy to help implement different strategies and make them selectable (config switch, UI changes, etc.). If you think the DPL should implement a different strategy, please see https://github.com/hoylabs/OpenDTU-OnBattery/blob/61aa32ab5e5d0bfd876a4b008342c6b54f82d0d0/src/PowerLimiter.cpp#L546-L588 for inspiration and describe the method you would like to see the DPL using. The more technical (flow-chart, pseudo-code) and detailed, the better.

Manos1966 commented 1 week ago

Hi @schlimmchen suchst du weiterhin nach [Tersters]? (ich habe eine Test-Installation mit 2-3 Hoymiles online).

schlimmchen commented 1 week ago

Naja, jetzt ist die Katze ja aus dem Sack. Unsere Nutzer werden das neue Release sicherlich ausprobieren und wir hΓΆren sicherlich, wenn es Probleme gibt.

spcqike commented 1 week ago

Ich hab aktuell nur 1 wechselrichter und viel zu wenig Sonne.

Das Feature testen werde ich dann ab April 2025 πŸ˜„

Manos1966 commented 1 week ago

Jesus! 😱 😱 😱 😱 😱 image

πŸ₯‡ πŸ₯‡ πŸ₯‡ πŸ₯‡ πŸ₯‡ πŸ₯‡ πŸ₯‡ πŸ₯‡ πŸ₯‚ πŸ₯‚ πŸ₯‚ πŸ₯‚ πŸ₯‚ πŸ₯‚ πŸ₯‚ πŸ₯‚

andy75andreas commented 5 days ago
Verschoben nach #1427 Hallo, irgendwie geht da was nicht mit der 20.11.2024. ESP32-S3 8MB, Oled,Pylontec,Victron,SML,(W5500) Ich habe alles so eingestellt wie in der Version vorher, aber es wird kein Strom produziert. Was ist hier falsch?
Dump von der Konsole: ```[VE.Direct MPPT 12/11] serial input (242 Bytes): 19:36:24.441 > [VE.Direct MPPT 12/11] 3a 37 46 36 45 44 30 30 31 38 31 35 33 45 0a 3a 19:36:24.504 > [VE.Direct MPPT 12/11] 37 32 37 32 30 30 30 46 46 46 46 46 46 46 46 30 19:36:24.565 > [VE.Direct MPPT 12/11] 42 0a 3a 41 44 35 45 44 30 30 44 34 31 34 41 31 19:36:24.631 > [VE.Direct MPPT 12/11] 0a 3a 41 42 42 45 44 30 30 31 32 30 30 39 31 0a 19:36:24.682 > [VE.Direct MPPT 12/11] 0d 0a 50 49 44 09 30 78 41 30 37 33 0d 0a 46 57 19:36:24.738 > [VE.Direct MPPT 12/11] 09 31 36 34 0d 0a 53 45 52 23 09 48 51 32 32 34 19:36:24.804 > [VE.Direct MPPT 12/11] 38 48 39 41 34 33 0d 0a 56 09 35 33 33 32 30 0d 19:36:24.868 > [VE.Direct MPPT 12/11] 0a 49 09 30 0d 0a 56 50 56 09 31 39 30 0d 0a 50 19:36:24.919 > [VE.Direct MPPT 12/11] 50 56 09 30 0d 0a 43 53 09 30 0d 0a 4d 50 50 54 19:36:24.978 > [VE.Direct MPPT 12/11] 09 30 0d 0a 4f 52 09 30 78 30 30 30 30 30 30 30 19:36:25.033 > [VE.Direct MPPT 12/11] 31 0d 0a 45 52 52 09 30 0d 0a 4c 4f 41 44 09 4f 19:36:25.197 > [VE.Direct MPPT 12/11] 4e 0d 0a 48 31 39 09 35 34 38 35 0d 0a 48 32 30 19:36:25.255 > [VE.Direct MPPT 12/11] 09 39 30 0d 0a 48 32 31 09 33 30 38 0d 0a 48 32 19:36:25.327 > [VE.Direct MPPT 12/11] 32 09 37 39 0d 0a 48 32 33 09 32 36 35 0d 0a 48 19:36:25.387 > [VE.Direct MPPT 12/11] 53 44 53 09 34 37 0d 0a 43 68 65 63 6b 73 75 6d 19:36:25.437 > [VE.Direct MPPT 12/11] 09 f3 19:36:25.491 > [VE.Direct MPPT 12/11] Text Data 'PID' = '0XA073' 19:36:25.610 > [VE.Direct MPPT 12/11] Text Data 'FW' = '164' 19:36:25.656 > [VE.Direct MPPT 12/11] Text Data 'SER' = 'HQ2248------' 19:36:25.704 > [VE.Direct MPPT 12/11] Text Data 'V' = '53320' 19:36:25.749 > [VE.Direct MPPT 12/11] Text Data 'I' = '0' 19:36:25.797 > [VE.Direct MPPT 12/11] Text Data 'VPV' = '190' 19:36:25.853 > [VE.Direct MPPT 12/11] Text Data 'PPV' = '0' 19:36:25.909 > [VE.Direct MPPT 12/11] Text Data 'CS' = '0' 19:36:26.028 > [VE.Direct MPPT 12/11] Text Data 'MPPT' = '0' 19:36:26.089 > [VE.Direct MPPT 12/11] Text Data 'OR' = '0X00000001' 19:36:26.141 > [VE.Direct MPPT 12/11] Text Data 'ERR' = '0' 19:36:26.200 > [VE.Direct MPPT 12/11] Text Data 'LOAD' = 'ON' 19:36:26.283 > [VE.Direct MPPT 12/11] Text Data 'H19' = '5485' 19:36:26.346 > [VE.Direct MPPT 12/11] Text Data 'H20' = '90' 19:36:26.404 > [VE.Direct MPPT 12/11] Text Data 'H21' = '308' 19:36:26.463 > [VE.Direct MPPT 12/11] Text Data 'H22' = '79' 19:36:26.528 > [VE.Direct MPPT 12/11] Text Data 'H23' = '265' 19:36:26.604 > [VE.Direct MPPT 12/11] Text Data 'HSDS' = '47' 19:36:26.683 > [DPL::loop] ******************* ENTER ********************** 19:36:26.762 > [DPL::loop] battery interface enabled, SoC: 99.0 %, StartTH: 90 %, StopTH: 20 %, SoC age: 1 s, ignore: no 19:36:26.852 > [DPL::getBatteryVoltage] BMS: 53.25 V, MPPT: 53.32 V, inverter 1164a------------: 53.40 V, returning: 53.25V 19:36:26.913 > [DPL::loop] dcVoltage: 53.25 V, loadCorrectedVoltage: 53.25 V, StartTH: 53.00 V, StopTH: 49.00 V 19:36:26.982 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT disabled, use at night: yes 19:36:27.041 > [DPL::calcHouseholdConsumption] target consumption: 0 W, base load: 10 W 19:36:27.112 > [DPL::calcHouseholdConsumption] power meter value: 405.0 W, power meter valid: yes 19:36:27.174 > [DPL::calcHouseholdConsumption] inverter 1164a------------- is behind power meter producing 1 W 19:36:27.237 > [DPL::updateInverterLimits] requested: 406 W, producing: 0 W using 0 solar-powered inverters, diff: 406 W, hysteresis: 30 W 19:36:27.297 > [DPL::calcBatteryAllowance] power requested: 406 W 19:36:27.461 > [DPL::updateInverterLimits] requested: 406 W, producing: 1 W using 1 battery-powered inverters, diff: 405 W, hysteresis: 30 W 19:36:27.520 > [DPL::updateInverterLimits] will cover 1 W using battery-powered inverters 19:36:27.587 > [DPL inverter 1164a---------]: 19:36:27.641 > battery-powered, producing 1 W 19:36:27.707 > lower/current/upper limit: 10/0/500 W, output capability: 1600 W 19:36:27.771 > sending commands enabled, reachable, disqualified 19:36:27.843 > max reduction production/standby: 0/0 W, max increase: 0 W 19:36:27.899 > target limit/output/state: -1 W (unchanged)/1 W/unchanged, 0 update timeouts 19:36:27.957 > [DPL::loop] consumption: 406 W, target output: 406 W (limited to 1500 W), solar inverters output: 0 W, battery allowance: 406 W, battery inverters output: 1 W 19:36:28.009 > [DPL::announceStatus] the system is stable, the last power limit is still valid 19:36:28.066 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDD5 (Charger Voltage), value: 0x000014D5, flags: 0x00 19:36:28.123 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDBB (Panel Voltage), value: 0x00000012, flags: 0x00 19:36:28.275 > Fetch inverter: 1164A----------- 19:36:28.323 > TX RealTimeRunData 865.00 MHz --> 15 A0 09 93 20 80 19 36 00 80 0B 00 67 46 15 29 00 00 00 00 00 00 00 00 DC 7D 97 19:36:28.381 > [PowerMeterSerialSml] decoded energy import to -0.10 19:36:28.443 > [PowerMeterSerialSml] decoded energy import to 1514999.75 19:36:28.509 > [PowerMeterSerialSml] decoded energy export to -10.00 19:36:28.626 > [PowerMeterSerialSml] decoded energy export to 462664.91 19:36:28.734 > [PowerMeterSerialSml] decoded active power total to 396.00 19:36:28.851 > [PowerMeterSerialSml] decoded active power total to 396.00 19:36:28.952 > [PowerMeterSerialSml] checksum verification failed 19:36:29.037 > Interrupt received 19:36:29.141 > RX 865.00 MHz --> 95 A0 09 93 20 80 19 36 00 01 00 01 02 16 02 16 00 01 00 00 00 07 00 04 00 00 22 | -7 dBm 19:36:29.245 > Websocket: [/livedata][16] disconnect 19:36:29.354 > Websocket: [/vedirectlivedata][14] disconnect 19:36:29.551 > Websocket: [/batterylivedata][14] disconnect 19:36:29.611 > Interrupt received 19:36:29.664 > RX 865.00 MHz --> 95 A0 09 93 20 80 19 36 00 02 32 A8 00 00 32 29 00 18 00 12 02 16 02 17 00 00 A8 | -7 dBm 19:36:29.802 > [VE.Direct MPPT 12/11] serial input (208 Bytes): 19:36:29.856 > [VE.Direct MPPT 12/11] 3a 41 44 35 45 44 30 30 44 35 31 34 41 30 0a 3a 19:36:29.918 > [VE.Direct MPPT 12/11] 41 42 42 45 44 30 30 31 32 30 30 39 31 0a 0d 0a 19:36:29.988 > [VE.Direct MPPT 12/11] 50 49 44 09 30 78 41 30 37 33 0d 0a 46 57 09 31 19:36:30.048 > [VE.Direct MPPT 12/11] 36 34 0d 0a 53 45 52 23 09 48 51 32 32 34 38 48 19:36:30.100 > [VE.Direct MPPT 12/11] 39 41 34 33 0d 0a 56 09 35 33 33 33 30 0d 0a 49 19:36:30.155 > [VE.Direct MPPT 12/11] 09 30 0d 0a 56 50 56 09 31 39 30 0d 0a 50 50 56 19:36:30.207 > [VE.Direct MPPT 12/11] 09 30 0d 0a 43 53 09 30 0d 0a 4d 50 50 54 09 30 19:36:30.266 > [VE.Direct MPPT 12/11] 0d 0a 4f 52 09 30 78 30 30 30 30 30 30 30 31 0d 19:36:30.319 > [VE.Direct MPPT 12/11] 0a 45 52 52 09 30 0d 0a 4c 4f 41 44 09 4f 4e 0d 19:36:30.364 > [VE.Direct MPPT 12/11] 0a 48 31 39 09 35 34 38 35 0d 0a 48 32 30 09 39 19:36:30.423 > [VE.Direct MPPT 12/11] 30 0d 0a 48 32 31 09 33 30 38 0d 0a 48 32 32 09 19:36:30.475 > [VE.Direct MPPT 12/11] 37 39 0d 0a 48 32 33 09 32 36 35 0d 0a 48 53 44 19:36:30.531 > [VE.Direct MPPT 12/11] 53 09 34 37 0d 0a 43 68 65 63 6b 73 75 6d 09 f2 19:36:30.595 > [VE.Direct MPPT 12/11] Text Data 'PID' = '0XA073' 19:36:30.655 > [VE.Direct MPPT 12/11] Text Data 'FW' = '164' 19:36:30.714 > [VE.Direct MPPT 12/11] Text Data 'SER' = 'HQ22-------' 19:36:30.771 > [VE.Direct MPPT 12/11] Text Data 'V' = '53330' 19:36:30.821 > [VE.Direct MPPT 12/11] Text Data 'I' = '0' 19:36:30.874 > [VE.Direct MPPT 12/11] Text Data 'VPV' = '190' 19:36:30.931 > [VE.Direct MPPT 12/11] Text Data 'PPV' = '0' 19:36:30.987 > [VE.Direct MPPT 12/11] Text Data 'CS' = '0' 19:36:31.040 > [VE.Direct MPPT 12/11] Text Data 'MPPT' = '0' 19:36:31.096 > [VE.Direct MPPT 12/11] Text Data 'OR' = '0X00000001' 19:36:31.150 > [VE.Direct MPPT 12/11] Text Data 'ERR' = '0' 19:36:31.197 > [VE.Direct MPPT 12/11] Text Data 'LOAD' = 'ON' 19:36:31.256 > [VE.Direct MPPT 12/11] Text Data 'H19' = '5485' 19:36:31.306 > [VE.Direct MPPT 12/11] Text Data 'H20' = '90' 19:36:31.354 > [VE.Direct MPPT 12/11] Text Data 'H21' = '308' 19:36:31.412 > [VE.Direct MPPT 12/11] Text Data 'H22' = '79' 19:36:31.476 > [VE.Direct MPPT 12/11] Text Data 'H23' = '265' 19:36:31.529 > [VE.Direct MPPT 12/11] Text Data 'HSDS' = '47' 19:36:31.574 > Interrupt received 19:36:31.632 > RX 865.00 MHz --> 95 A0 09 93 20 80 19 36 00 03 00 00 00 03 00 02 00 00 2A ED 00 00 28 AD 00 0B 6B | -7 dBm 19:36:31.691 > [VE.Direct MPPT 12/11] Sending Hex Command: :7ECED0075, Free FIFO-Buffer: 118 19:36:31.758 > [VE.Direct MPPT 12/11] Hex Data: Smart Battery Sense Temperature is not available 19:36:31.810 > [VE.Direct MPPT 12/11] Sending Hex Command: :727200007, Free FIFO-Buffer: 118 19:36:31.869 > [VE.Direct MPPT 12/11] Hex Data: Network total DC power value indicates non-networked controller 19:36:31.929 > RX Period End 19:36:31.981 > Last missing 19:36:32.041 > Request retransmit: 4 19:36:32.102 > TX RequestFrame 865.00 MHz --> 15 A0 09 93 20 80 19 36 00 84 24 19:36:32.156 > Interrupt received 19:36:32.212 > RX 865.00 MHz --> 95 A0 09 93 20 80 19 36 00 04 00 0B 09 44 13 89 00 03 00 00 00 00 03 E8 00 B3 A3 | -7 dBm 19:36:32.264 > RX Period End 19:36:32.311 > Last missing 19:36:32.359 > Request retransmit: 5 19:36:32.419 > TX RequestFrame 865.00 MHz --> 15 A0 09 93 20 80 19 36 00 85 25 19:36:32.482 > [VE.Direct MPPT 12/11] Sending Hex Command: :7DBED0086, Free FIFO-Buffer: 118 19:36:32.569 > Interrupt received 19:36:32.661 > RX 865.00 MHz --> 95 A0 09 93 20 80 19 36 00 85 00 01 B0 D3 C7 | -7 dBm 19:36:32.734 > [VE.Direct MPPT 12/11] Hex Data: MPPT Temperature (0xEDDB): 23.70Β°C 19:36:32.784 > [VE.Direct MPPT 12/11] Sending Hex Command: :7F7ED006A, Free FIFO-Buffer: 118 19:36:32.843 > [VE.Direct MPPT 12/11] Hex Data: MPPT Absorption Voltage (0xEDF7): 56.80V 19:36:32.894 > RX Period End 19:36:32.941 > Success 19:36:32.988 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDD5 (Charger Voltage), value: 0x000014D4, flags: 0x00 19:36:33.043 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDBB (Panel Voltage), value: 0x00000012, flags: 0x00 19:36:33.106 > [DPL::loop] ******************* ENTER ********************** 19:36:33.178 > [DPL::loop] battery interface enabled, SoC: 99.0 %, StartTH: 90 %, StopTH: 20 %, SoC age: 2 s, ignore: no 19:36:33.235 > [DPL::getBatteryVoltage] BMS: 53.25 V, MPPT: 53.33 V, inverter 1164a------------: 53.40 V, returning: 53.25V 19:36:33.298 > [DPL::loop] dcVoltage: 53.25 V, loadCorrectedVoltage: 53.25 V, StartTH: 53.00 V, StopTH: 49.00 V 19:36:33.361 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT disabled, use at night: yes 19:36:33.422 > [DPL::calcHouseholdConsumption] target consumption: 0 W, base load: 10 W 19:36:33.486 > [DPL::calcHouseholdConsumption] power meter value: 405.0 W, power meter valid: yes 19:36:33.549 > [DPL::calcHouseholdConsumption] inverter 1164a---------- is behind power meter producing 0 W 19:36:33.634 > [PowerMeterSerialSml] decoded energy import to -0.10 19:36:33.731 > [DPL::updateInverterLimits] requested: 405 W, producing: 0 W using 0 solar-powered inverters, diff: 405 W, hysteresis: 30 W 19:36:33.811 > [PowerMeterSerialSml] decoded energy import to 1514999.75 19:36:33.929 > [DPL::calcBatteryAllowance] power requested: 405 W 19:36:34.034 > [DPL::updateInverterLimits] requested: 405 W, producing: 0 W using 1 battery-powered inverters, diff: 405 W, hysteresis: 30 W 19:36:34.094 > [PowerMeterSerialSml] decoded energy export to -10.00 19:36:34.153 > [DPL::updateInverterLimits] will cover 0 W using battery-powered inverters 19:36:34.206 > [PowerMeterSerialSml] decoded energy export to 462664.91 19:36:34.272 > [PowerMeterSerialSml] decoded active power total to 385.00 19:36:34.333 > [DPL inverter 1164a00-----------]: 19:36:34.392 > battery-powered, producing 0 W 19:36:34.494 > lower/current/upper limit: 10/0/500 W, output capability: 1600 W 19:36:34.546 > sending commands enabled, reachable, disqualified 19:36:34.591 > max reduction production/standby: 0/0 W, max increase: 0 W 19:36:34.648 > target limit/output/state: -1 W (unchanged)/0 W/unchanged, 0 update timeouts 19:36:34.714 > [PowerMeterSerialSml] decoded active power total to 385.00 19:36:34.770 > [DPL::loop] consumption: 405 W, target output: 405 W (limited to 1500 W), solar inverters output: 0 W, battery allowance: 405 W, battery inverters output: 0 W 19:36:34.828 > [PowerMeterSerialSml] TotalPower: 385.00 19:36:34.873 > [VE.Direct MPPT 12/11] serial input (272 Bytes): 19:36:34.935 > [VE.Direct MPPT 12/11] 3a 37 45 43 45 44 30 30 46 46 46 46 37 37 0a 3a 19:36:34.983 > [VE.Direct MPPT 12/11] 37 32 37 32 30 30 30 46 46 46 46 46 46 46 46 30 19:36:35.042 > [VE.Direct MPPT 12/11] 42 0a 3a 37 44 42 45 44 30 30 34 32 30 39 33 42 19:36:35.107 > [VE.Direct MPPT 12/11] 0a 3a 37 46 37 45 44 30 30 33 30 31 36 32 34 0a 19:36:35.162 > [VE.Direct MPPT 12/11] 3a 41 44 35 45 44 30 30 44 34 31 34 41 31 0a 3a 19:36:35.327 > [VE.Direct MPPT 12/11] 41 42 42 45 44 30 30 31 32 30 30 39 31 0a 0d 0a 19:36:35.385 > [VE.Direct MPPT 12/11] 50 49 44 09 30 78 41 30 37 33 0d 0a 46 57 09 31 19:36:35.539 > [VE.Direct MPPT 12/11] 36 34 0d 0a 53 45 52 23 09 48 51 32 32 34 38 48 19:36:35.634 > [VE.Direct MPPT 12/11] 39 41 34 33 0d 0a 56 09 35 33 33 32 30 0d 0a 49 19:36:35.737 > [VE.Direct MPPT 12/11] 09 30 0d 0a 56 50 56 09 31 38 30 0d 0a 50 50 56 19:36:35.796 > [VE.Direct MPPT 12/11] 09 30 0d 0a 43 53 09 30 0d 0a 4d 50 50 54 09 30 19:36:35.859 > [VE.Direct MPPT 12/11] 0d 0a 4f 52 09 30 78 30 30 30 30 30 30 30 31 0d 19:36:35.911 > [VE.Direct MPPT 12/11] 0a 45 52 52 09 30 0d 0a 4c 4f 41 44 09 4f 4e 0d 19:36:35.957 > [VE.Direct MPPT 12/11] 0a 48 31 39 09 35 34 38 35 0d 0a 48 32 30 09 39 19:36:36.005 > [VE.Direct MPPT 12/11] 30 0d 0a 48 32 31 09 33 30 38 0d 0a 48 32 32 09 19:36:36.059 > [VE.Direct MPPT 12/11] 37 39 0d 0a 48 32 33 09 32 36 35 0d 0a 48 53 44 19:36:36.146 > [VE.Direct MPPT 12/11] 53 09 34 37 0d 0a 43 68 65 63 6b 73 75 6d 09 f4 19:36:36.194 > [VE.Direct MPPT 12/11] Text Data 'PID' = '0XA073' 19:36:36.245 > [VE.Direct MPPT 12/11] Text Data 'FW' = '164' 19:36:36.353 > [VE.Direct MPPT 12/11] Text Data 'SER' = 'HQ2-------------' 19:36:36.408 > [VE.Direct MPPT 12/11] Text Data 'V' = '53320' 19:36:36.470 > [VE.Direct MPPT 12/11] Text Data 'I' = '0' 19:36:36.524 > [VE.Direct MPPT 12/11] Text Data 'VPV' = '180' 19:36:36.579 > [VE.Direct MPPT 12/11] Text Data 'PPV' = '0' 19:36:36.648 > [VE.Direct MPPT 12/11] Text Data 'CS' = '0' 19:36:36.696 > [VE.Direct MPPT 12/11] Text Data 'MPPT' = '0' 19:36:36.743 > [VE.Direct MPPT 12/11] Text Data 'OR' = '0X00000001' 19:36:36.790 > [VE.Direct MPPT 12/11] Text Data 'ERR' = '0' 19:36:36.837 > [VE.Direct MPPT 12/11] Text Data 'LOAD' = 'ON' 19:36:36.884 > [VE.Direct MPPT 12/11] Text Data 'H19' = '5485' 19:36:36.931 > [VE.Direct MPPT 12/11] Text Data 'H20' = '90' 19:36:36.992 > [VE.Direct MPPT 12/11] Text Data 'H21' = '308' 19:36:37.054 > [VE.Direct MPPT 12/11] Text Data 'H22' = '79' 19:36:37.104 > [VE.Direct MPPT 12/11] Text Data 'H23' = '265' 19:36:37.164 > [VE.Direct MPPT 12/11] Text Data 'HSDS' = '47' 19:36:37.222 > [VE.Direct MPPT 12/11] Sending Hex Command: :727200007, Free FIFO-Buffer: 118 19:36:37.280 > [VE.Direct MPPT 12/11] Hex Data: Network total DC power value indicates non-networked controller 19:36:37.334 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDD5 (Charger Voltage), value: 0x000014D5, flags: 0x00 19:36:37.393 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDBB (Panel Voltage), value: 0x00000013, flags: 0x00 19:36:37.478 > [PowerMeterSerialSml] decoded energy import to -0.10 19:36:37.540 > [PowerMeterSerialSml] decoded energy import to 1514999.88 19:36:37.601 > [PowerMeterSerialSml] decoded energy export to -10.00 19:36:37.658 > [PowerMeterSerialSml] decoded energy export to 462664.91 19:36:37.711 > [PowerMeterSerialSml] decoded active power total to 404.00 19:36:37.769 > [PowerMeterSerialSml] decoded active power total to 404.00 19:36:37.884 > [PowerMeterSerialSml] TotalPower: 404.00 19:36:37.950 > [DPL::loop] ******************* ENTER ********************** 19:36:38.001 > [DPL::loop] battery interface enabled, SoC: 99.0 %, StartTH: 90 %, StopTH: 20 %, SoC age: 3 s, ignore: no 19:36:38.048 > [DPL::getBatteryVoltage] BMS: 53.25 V, MPPT: 53.32 V, inverter 1164a-----------: 53.40 V, returning: 53.25V 19:36:38.095 > [DPL::loop] dcVoltage: 53.25 V, loadCorrectedVoltage: 53.25 V, StartTH: 53.00 V, StopTH: 49.00 V 19:36:38.152 > [DPL::loop] StartTH reached: yes, StopTH reached: no, SolarPT disabled, use at night: yes 19:36:38.214 > [DPL::calcHouseholdConsumption] target consumption: 0 W, base load: 10 W 19:36:38.282 > [DPL::calcHouseholdConsumption] power meter value: 404.0 W, power meter valid: yes 19:36:38.342 > [DPL::calcHouseholdConsumption] inverter 1164------------ is behind power meter producing 0 W 19:36:38.397 > [DPL::updateInverterLimits] requested: 404 W, producing: 0 W using 0 solar-powered inverters, diff: 404 W, hysteresis: 30 W 19:36:38.503 > [DPL::calcBatteryAllowance] power requested: 404 W 19:36:38.560 > [DPL::updateInverterLimits] requested: 404 W, producing: 0 W using 1 battery-powered inverters, diff: 404 W, hysteresis: 30 W 19:36:38.619 > [DPL::updateInverterLimits] will cover 0 W using battery-powered inverters 19:36:38.704 > [DPL inverter 1164--------------]: 19:36:38.755 > battery-powered, producing 0 W 19:36:38.814 > lower/current/upper limit: 10/0/500 W, output capability: 1600 W 19:36:38.883 > sending commands enabled, reachable, disqualified 19:36:38.958 > max reduction production/standby: 0/0 W, max increase: 0 W 19:36:39.006 > target limit/output/state: -1 W (unchanged)/0 W/unchanged, 0 update timeouts 19:36:39.061 > [DPL::loop] consumption: 404 W, target output: 404 W (limited to 1500 W), solar inverters output: 0 W, battery allowance: 404 W, battery inverters output: 0 W 19:36:39.116 > [VE.Direct MPPT 12/11] serial input (227 Bytes): 19:36:39.163 > [VE.Direct MPPT 12/11] 3a 37 32 37 32 30 30 30 46 46 46 46 46 46 46 46 19:36:39.221 > [VE.Direct MPPT 12/11] 30 42 0a 3a 41 44 35 45 44 30 30 44 35 31 34 41 19:36:39.285 > [VE.Direct MPPT 12/11] 30 0a 3a 41 42 42 45 44 30 30 31 33 30 30 39 30 19:36:39.345 > [VE.Direct MPPT 12/11] 0a 0d 0a 50 49 44 09 30 78 41 30 37 33 0d 0a 46 19:36:39.412 > [VE.Direct MPPT 12/11] 57 09 31 36 34 0d 0a 53 45 52 23 09 48 51 32 32 19:36:39.468 > [VE.Direct MPPT 12/11] 34 38 48 39 41 34 33 0d 0a 56 09 35 33 33 33 30 19:36:39.626 > [VE.Direct MPPT 12/11] 0d 0a 49 09 30 0d 0a 56 50 56 09 31 38 30 0d 0a 19:36:39.691 > [VE.Direct MPPT 12/11] 50 50 56 09 30 0d 0a 43 53 09 30 0d 0a 4d 50 50 19:36:39.749 > [VE.Direct MPPT 12/11] 54 09 30 0d 0a 4f 52 09 30 78 30 30 30 30 30 30 19:36:39.835 > [VE.Direct MPPT 12/11] 30 31 0d 0a 45 52 52 09 30 0d 0a 4c 4f 41 44 09 19:36:39.886 > [VE.Direct MPPT 12/11] 4f 4e 0d 0a 48 31 39 09 35 34 38 35 0d 0a 48 32 19:36:39.942 > [VE.Direct MPPT 12/11] 30 09 39 30 0d 0a 48 32 31 09 33 30 38 0d 0a 48 19:36:39.999 > [VE.Direct MPPT 12/11] 32 32 09 37 39 0d 0a 48 32 33 09 32 36 35 0d 0a 19:36:40.139 > [VE.Direct MPPT 12/11] 48 53 44 53 09 34 37 0d 0a 43 68 65 63 6b 73 75 19:36:40.190 > [VE.Direct MPPT 12/11] 6d 09 f3 19:36:40.256 > [VE.Direct MPPT 12/11] Text Data 'PID' = '0XA073' 19:36:40.317 > [VE.Direct MPPT 12/11] Text Data 'FW' = '164' 19:36:40.374 > [VE.Direct MPPT 12/11] Text Data 'SER' = '------------' 19:36:40.420 > [VE.Direct MPPT 12/11] Text Data 'V' = '53330' 19:36:40.469 > [VE.Direct MPPT 12/11] Text Data 'I' = '0' 19:36:40.526 > [VE.Direct MPPT 12/11] Text Data 'VPV' = '180' 19:36:40.577 > [VE.Direct MPPT 12/11] Text Data 'PPV' = '0' 19:36:40.624 > [VE.Direct MPPT 12/11] Text Data 'CS' = '0' 19:36:40.673 > [VE.Direct MPPT 12/11] Text Data 'MPPT' = '0' 19:36:40.718 > [VE.Direct MPPT 12/11] Text Data 'OR' = '0X00000001' 19:36:40.774 > [VE.Direct MPPT 12/11] Text Data 'ERR' = '0' 19:36:40.836 > [VE.Direct MPPT 12/11] Text Data 'LOAD' = 'ON' 19:36:40.891 > [VE.Direct MPPT 12/11] Text Data 'H19' = '5485' 19:36:40.938 > [VE.Direct MPPT 12/11] Text Data 'H20' = '90' 19:36:40.986 > [VE.Direct MPPT 12/11] Text Data 'H21' = '308' 19:36:41.041 > [VE.Direct MPPT 12/11] Text Data 'H22' = '79' 19:36:41.103 > [VE.Direct MPPT 12/11] Text Data 'H23' = '265' 19:36:41.163 > [VE.Direct MPPT 12/11] Text Data 'HSDS' = '47' 19:36:41.230 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0x0201 (Device State), value: 0x00000000, flags: 0x00 19:36:41.294 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0x0200 (Device Mode), value: 0x00000001, flags: 0x00 19:36:41.363 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0x0202 (Remote Control Used), value: 0x00000002, flags: 0x00 19:36:41.414 > [VE.Direct MPPT 12/11] Sending Hex Command: :7F6ED006B, Free FIFO-Buffer: 118 19:36:41.582 > [VE.Direct MPPT 12/11] Hex Data: MPPT Float Voltage (0xEDF6): 54.00V 19:36:41.640 > [VE.Direct MPPT 12/11] Sending Hex Command: :727200007, Free FIFO-Buffer: 118 19:36:41.696 > [VE.Direct MPPT 12/11] Hex Data: Network total DC power value indicates non-networked controller 19:36:41.740 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDD5 (Charger Voltage), value: 0x000014D4, flags: 0x00 19:36:41.788 > [VE.Direct MPPT 12/11] Unhandled Hex Async Response, addr: 0xEDBB (Panel Voltage), value: 0x00000012, flags: 0x00 19:36:41.847 > [PowerMeterSerialSml] decoded energy import to -0.10 19:36:41.897 > [PowerMeterSerialSml] decoded energy import to 1515000.12 19:36:41.954 > [PowerMeterSerialSml] decoded energy export to -10.00 19:36:42.008 > [PowerMeterSerialSml] decoded energy export to 462664.91 19:36:42.064 > [PowerMeterSerialSml] decoded active power total to 407.00 19:36:42.124 > [PowerMeterSerialSml] decoded active power total to 407.00 19:36:42.192 > [PowerMeterSerialSml] TotalPower: 407.00 19:36:42.256 > [VE.Direct MPPT 12/11] serial input (287 Bytes): 19:36:42.306 > [VE.Direct MPPT 12/11] 3a 41 30 31 30 32 30 30 30 30 34 38 0a 3a 41 30 19:36:42.363 > [VE.Direct MPPT 12/11] 30 30 32 30 30 30 31 34 38 0a 3a 41 30 32 30 32 19:36:42.416 > [VE.Direct MPPT 12/11] 30 30 30 32 30 30 30 30 30 30 34 35 0a 3a 37 46 19:36:42.465 > [VE.Direct MPPT 12/11] 36 45 44 30 30 31 38 31 35 33 45 0a 3a 37 32 37 19:36:42.509 > [VE.Direct MPPT 12/11] 32 30 30 30 46 46 46 46 46 46 46 46 30 42 0a 3a 19:36:42.565 > [VE.Direct MPPT 12/11] 41 44 35 45 44 30 30 44 34 31 34 41 31 0a 3a 41 19:36:42.631 > [VE.Direct MPPT 12/11] 42 42 45 44 30 30 31 32 30 30 39 31 0a 0d 0a 50 19:36:42.691 > [VE.Direct MPPT 12/11] 49 44 09 30 78 41 30 37 33 0d 0a 46 57 09 31 36 19:36:42.749 > [VE.Direct MPPT 12/11] 34 0d 0a 53 45 52 23 09 48 51 32 32 34 38 48 39 19:36:42.796 > [VE.Direct MPPT 12/11] 41 34 33 0d 0a 56 09 35 33 33 33 30 0d 0a 49 09 ```
Hier meine Pin-Map: ```json [ { "name": "Inv.: HMS/T/HM; BMS: Pylon-CAN ; MPPT P: 2-3; OLED", "nrf24": { "miso": -1, "mosi": -1, "clk": -1, "irq": -1, "en": -1, "cs": -1 }, "cmt": { "clk": 6, "cs": 4, "fcs": 21, "sdio": 5, "gpio2": -1, "gpio3": -1 }, "led": { "led0": 2, "led1": 1 }, "display": { "type": 3, "data": 9, "clk": 8, "cs": -1, "reset": -1 }, "victron": { "rx": 12, "tx": 11, "rx1": 10, "tx1": 17 }, "battery": { "rx": 18, "tx": 7 }, "powermeter": { "tx": 39, "rx": 40, "dere": -1 } }, { "name": "Inv.: HMS/T/HM; BMS: Pylon-CAN ; MPPT P: 2-3; OLED; W5500", "nrf24": { "miso": -1, "mosi": -1, "clk": -1, "irq": -1, "en": -1, "cs": -1 }, "cmt": { "clk": 6, "cs": 4, "fcs": 21, "sdio": 5, "gpio2": -1, "gpio3": -1 }, "w5500": { "mosi": 35, "miso": 48, "sclk": 36, "cs": 37, "int": 47, "rst": 38 }, "led": { "led0": 2, "led1": 1 }, "display": { "type": 3, "data": 9, "clk": 8, "cs": -1, "reset": -1 }, "victron": { "rx": 12, "tx": 11, "rx1": 10, "tx1": 17 }, "battery": { "rx": 18, "tx": 7 }, "powermeter": { "tx": 39, "rx": 40, "dere": -1 } } ]```
drahdiwaberl commented 3 days ago

following the discussions and inputs on discord, having 3 single phase inverters (2 PV, 1 battery) at my house, several rather high single phase loads and a limit of unbalanced loads of 3.7kW ..

if it were possible (and from what i read so far i assume it is) to make the DPL work 'per phase', i.e. having meter readings per phase and set 3 inverter(phase)s according to these, then this probably would make a lot of sense to have as a strategy. esp. for the setups people are using OpenDTU for.

arguments for preferring to use as little inverters as possible for efficiency reasons for sure are valid either, but i'm not sure this needs to be first priority with the small loads/powers the majority of users are dealing with in these setups.

my2c.

drahdiwaberl commented 3 days ago

written it, went on thinking..

actually any strategy should prefer serving the most strained phase as directly as possible (so if phase 1 had a high load on and there's potential production there it should be used) to avoid unbalanced loads..

stefan123t commented 3 days ago

So you are advocating for a per inverter phase setting for A/B/C.

Here is the same request upstream https://github.com/tbnobody/OpenDTU/issues/1936#issuecomment-2441603583 and here discussion about it and references to more issues / threads https://github.com/tbnobody/OpenDTU/issues/1325#issuecomment-2272225548

schlimmchen commented 3 days ago

@drahdiwaberl Your input is valuable, but I want to point out that you are mixing things here. This issue originally was about "how to I handle multiple inverters if multiple are eligible to fulfill the desired total output". That question in your scenario is only relevant if there are multiple inverters per group/phase/powermeter reading.

Right now I don't see that we will support assinging inverters to a group/phase but still allow to increase production in another group/phase to meet the total need. That would certainly have to wait until managing inverters per group/phase is implemented and works well.

I created #1428 to keep track of support for grouping of inverters per powermeter value.