jblance / mpp-solar

Python package to communicate to MPP Solar PIP-4048MS inverters (and similar)
MIT License
360 stars 149 forks source link

wrong output if jk04 and jkv11 used in config (different proto per section) #496

Open mfu-mcosys opened 3 months ago

mfu-mcosys commented 3 months ago

if the config looks like this:

[JKBMS_UNTEN]
type=jkbms
protocol=jk04
port=C8:47:8C:E5:CC:9F
command=getCellData
outputs=screen

[JKBMS_BOX1_UNTEN] 
type=jkbms 
protocol=jkv11 
port=C8:47:80:13:CC:AE 
command=getCellData 
outputs=screen

the output for the first proto (jk04) is wrong. If there is just one proto used in the config, it works.

I just upgraded from Python3.9 to Python3.11 to get latest mpp-solar (version: 0.16.34, python version: 3.11.2) ... but the problem is the same.

Any suggestions?

Output with wrong values for jk04

Command: getCellData - BLE Cell Data inquiry

Parameter Value Unit header 55aaeb90
record_type 02
record_counter 39
voltage_cell01 5.771 V voltage_cell02 16.474 V voltage_cell03 0.579 V voltage_cell04 16.474 V voltage_cell05 0.579 V voltage_cell06 16.474 V voltage_cell07 0.579 V voltage_cell08 16.474 V voltage_cell09 0.579 V voltage_cell10 16.474 V voltage_cell11 0.579 V voltage_cell12 16.474 V voltage_cell13 0.579 V voltage_cell14 16.474 V voltage_cell15 0.579 V voltage_cell16 16.474 V voltage_cell17 5.771 V voltage_cell18 16.474 V voltage_cell19 5.771 V voltage_cell20 16.474 V voltage_cell21 0.579 V voltage_cell22 16.474 V voltage_cell23 5.771 V voltage_cell24 16.474 V voltage_cell25 5.771 V voltage_cell26 16.474 V voltage_cell27 5.771 V voltage_cell28 16.474 V voltage_cell29 5.771 V voltage_cell30 16.474 V voltage_cell31 5.771 V voltage_cell32 16.474 V average_cell_voltage 0.0 V delta_cell_voltage 0.0 V current_balancer 0.0 A resistance_cell01 0.0 Ohm resistance_cell02 0.0 Ohm resistance_cell03 0.0 Ohm resistance_cell04 0.0 Ohm resistance_cell05 0.0 Ohm resistance_cell06 0.0 Ohm resistance_cell07 0.0 Ohm resistance_cell08 0.0 Ohm resistance_cell09 0.0 Ohm resistance_cell10 0.0 Ohm resistance_cell11 0.0 Ohm resistance_cell12 -22.859 Ohm resistance_cell13 15.715 Ohm resistance_cell14 -19.218 Ohm resistance_cell15 15.725 Ohm resistance_cell16 31.35 Ohm resistance_cell17 15.726 Ohm resistance_cell18 -0.95 Ohm resistance_cell19 15.728 Ohm resistance_cell20 -4.096 Ohm resistance_cell21 15.729 Ohm resistance_cell22 -6.512 Ohm resistance_cell23 15.731 Ohm resistance_cell24 -27.123 Ohm resistance_cell25 15.732 Ohm resistance_cell26 5.032 Ohm resistance_cell27 15.734 Ohm resistance_cell28 13.413 Ohm resistance_cell29 15.736 Ohm resistance_cell30 31.912 Ohm resistance_cell31 15.737 Ohm resistance_cell32 -29.646 Ohm battery_voltage 1031131.923 V battery_power 1031103.326 W balance_current 1030649.248 A battery_t1 -3220.5 °C battery_t2 1572.4 °C mos_temp 0.0 °C percent_remain 0 % capacity_remain 0.0 Ah nominal_capacity 0.0 Ah cycle_count 0
cycle_capacity 0.0 Ah time 0D0H0M0S
current_charge 0.001 A current_discharge 0.0 A

Command: getCellData - BLE Cell Data inquiry

Parameter Value Unit header 55aaeb90
record_type 02
record_counter 16
voltage_cell01 3.402 V voltage_cell02 3.402 V voltage_cell03 3.402 V voltage_cell04 3.402 V voltage_cell05 3.402 V voltage_cell06 3.402 V voltage_cell07 3.402 V voltage_cell08 3.402 V voltage_cell09 3.402 V voltage_cell10 3.402 V voltage_cell11 3.402 V voltage_cell12 3.402 V voltage_cell13 3.402 V voltage_cell14 3.403 V voltage_cell15 3.403 V voltage_cell16 3.402 V voltage_cell17 0.0 V voltage_cell18 0.0 V voltage_cell19 0.0 V voltage_cell20 0.0 V voltage_cell21 0.0 V voltage_cell22 0.0 V voltage_cell23 0.0 V voltage_cell24 0.0 V voltage_cell25 0.0 V voltage_cell26 0.0 V voltage_cell27 0.0 V voltage_cell28 0.0 V voltage_cell29 0.0 V voltage_cell30 0.0 V voltage_cell31 0.0 V voltage_cell32 0.0 V average_cell_voltage 3.402 V delta_cell_voltage 0.0 V current_balancer 0.0 A resistance_cell01 0.07 Ohm resistance_cell02 0.068 Ohm resistance_cell03 0.069 Ohm resistance_cell04 0.068 Ohm resistance_cell05 0.069 Ohm resistance_cell06 0.068 Ohm resistance_cell07 0.07 Ohm resistance_cell08 0.071 Ohm resistance_cell09 0.072 Ohm resistance_cell10 0.072 Ohm resistance_cell11 0.073 Ohm resistance_cell12 0.073 Ohm resistance_cell13 0.074 Ohm resistance_cell14 0.074 Ohm resistance_cell15 0.069 Ohm resistance_cell16 0.066 Ohm resistance_cell17 0.0 Ohm resistance_cell18 0.0 Ohm resistance_cell19 0.0 Ohm resistance_cell20 0.0 Ohm resistance_cell21 0.0 Ohm resistance_cell22 0.0 Ohm resistance_cell23 0.0 Ohm resistance_cell24 0.0 Ohm resistance_cell25 0.0 Ohm resistance_cell26 0.0 Ohm resistance_cell27 0.0 Ohm resistance_cell28 0.0 Ohm resistance_cell29 0.0 Ohm resistance_cell30 0.0 Ohm resistance_cell31 0.0 Ohm resistance_cell32 0.0 Ohm battery_voltage 54.437 V battery_power 0.0 W balance_current 0.0 A battery_t1 0.0 °C battery_t2 0.0 °C mos_temp 0.0 °C percent_remain 0 % capacity_remain 0.0 Ah nominal_capacity 40.0 Ah cycle_count 0
cycle_capacity 0.0 Ah time 0D8H11M25S
current_charge 0.003 A current_discharge 0.0 A

jblance commented 3 months ago

I'll have a look. You might need to run a separate instance for each device though

On Sun, Jun 16, 2024, 05:19 mfu-mcosys @.***> wrote:

if the config looks like this:

[JKBMS_UNTEN] type=jkbms protocol=jk04 port=C8:47:8C:E5:CC:9F command=getCellData outputs=screen

[JKBMS_BOX1_UNTEN] type=jkbms protocol=jkv11 port=C8:47:80:13:CC:AE command=getCellData outputs=screen

the output for the first proto (jk04) is wrong. If there is just one proto used in the config, it works.

I just upgraded from Python3.9 to Python3.11 to get latest mpp-solar (version: 0.16.34, python version: 3.11.2) ... but the problem is the same.

Any suggestions?

— Reply to this email directly, view it on GitHub https://github.com/jblance/mpp-solar/issues/496, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJVKNTNESOOBWG6PAZINVTZHRZSRAVCNFSM6AAAAABJL3BEQSVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2TKMBUHE2TKMI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

mfu-mcosys commented 3 months ago

Thats what i do as workaround. Just dont run as a daemon and use a one line per device in a bash script which is triggered per cron.

jblance commented 3 months ago

You can run 2 daemons just need to call them something different and have 2 service files etc

On Sun, Jun 16, 2024, 19:50 mfu-mcosys @.***> wrote:

Thats what i do as workaround. Just dont run as a daemon and use a one line per device in a bash script which is triggered per cron.

— Reply to this email directly, view it on GitHub https://github.com/jblance/mpp-solar/issues/496#issuecomment-2171151088, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJVKNW5CLANCHGPXDRBQRTZHU7SZAVCNFSM6AAAAABJL3BEQSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZRGE2TCMBYHA . You are receiving this because you commented.Message ID: @.***>

mfu-mcosys commented 3 months ago

Want work (tested it) - because the PI3 BLE-device seems to be blocked if in use by any of the 2 daemons.

jblance commented 3 months ago

Oh, bummer.

The ble stack and code are pretty rough. I'll see what I can do with it - though it might be in powermon code instead

On Sun, Jun 16, 2024, 19:55 mfu-mcosys @.***> wrote:

Want work (tested it) - because the PI3 BLE-device seems to be blocked if in use by any of the 2 daemons.

— Reply to this email directly, view it on GitHub https://github.com/jblance/mpp-solar/issues/496#issuecomment-2171171429, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJVKNQS5MSOESOVPGTIXCDZHVAFJAVCNFSM6AAAAABJL3BEQSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZRGE3TCNBSHE . You are receiving this because you commented.Message ID: @.***>

firemen027 commented 2 months ago

I don't want to hijack the post, But Mppsolar run here since 2021 with one Bms (daly wired) one Balancer (JK04 bluetooth) nd one inverter mppsolar wired. Run smooth since that. I justed add a second battery bank with JK BMS bluetooth (jkv11), since I added it, the first JK bms show erroned data in the same range of [mfu-mcosys] result.

So we are in the same boat

jblance commented 2 months ago

I don't want to hijack the post, But Mppsolar run here since 2021 with one Bms (daly wired) one Balancer (JK04 bluetooth) nd one inverter mppsolar wired. Run smooth since that. I justed add a second battery bank with JK BMS bluetooth (jkv11), since I added it, the first JK bms show erroned data in the same range of [mfu-mcosys] result.

So we are in the same boat

can you post your config file (as this shouldnt happen)

firemen027 commented 2 months ago

My config

This post is from my tablet, hard time with post formating

Required section

[SETUP]
# Number of seconds to pause at the end of each loop (0 is no pause)
pause=7
# Hostname / IP address of the MQTT broker
mqtt_broker=localhost
#mqtt_broker=screen

[PIP3048]
model=standard
protocol=PI30
port=/dev/hidraw0
baud=2400
#command=QPGS0
command=QPIGS
tag=PIP3048
outputs=mqtt

[DALY]
protocol=DALY
port=/dev/ttyUSB0
#port=/dev/ttyUSB0
porttype=DALY
baud=9600
#command=mosStatus
#command=SOC,status,cellVoltages
command=SOC#mosStatus#status#cellMinMaxVoltages#cellVoltages#cellMinMaxTemps
tag=DALY
outputs=mqtt

[JKBMS]
type=jkbms
protocol=JK04
port=3C:A5:51:86:53:FF
command=getCellData
tag=Balancer
#outputs=influx_mqtt
outputs=mqtt

[JKBANK2]
type=jkbms
protocol=JKV11
port=C8:47:80:0B:F1:95
command=getCellData
tag=Bank2
outputs=mqtt
jblance commented 2 months ago

oh, nvm I missed that both JKBMSs were BLE this will need to wait on a code level fix and BLE re-write - sorry