Corregge mapping QPGS per PV e scarica batteria
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 8m23s
Docker Image Cleanup / cleanup-old-images (push) Failing after 27s

This commit is contained in:
Pi Developer
2026-02-11 19:41:59 +01:00
parent 9e72d4f5a7
commit 5fc8958ae1
+11 -7
View File
@@ -483,10 +483,12 @@ for idx in "${!VALID_SERIALS[@]}"; do
# Parse QPGS response
IFS=' ' read -ra DATA <<< "$QPGS_RAW"
# Field mapping (verified from test output):
# 0=Exists, 1=Serial, 2=Mode, 3=Status, 4=GridV, 5=GridF, 6=OutV, 7=OutF
# 8=VA, 9=W, 10=PCT, 11=BattV, 12=ChgA, 13=Cap, 14=PVV, 15=PVA
# 16=?, 17=?, 18=?, 19-26=additional fields
# Field mapping per protocol (QPGSn):
# 0=Exists, 1=Serial, 2=Mode, 3=Fault, 4=GridV, 5=GridF, 6=OutV, 7=OutF
# 8=OutVA, 9=OutW, 10=LoadPct, 11=BattV, 12=BattChgA, 13=BattCap
# 14=PVV, 15=TotalChgA, 16=TotalOutVA, 17=TotalOutW, 18=TotalOutPct
# 19=StatusByte, 20=OutMode, 21=ChgSourcePriority, 22=MaxChgA
# 23=MaxChgRange, 24=MaxAcChgA, 25=PV_in_current, 26=Batt_discharge_current
# Prefer serial from QPGS payload if valid
serial_from_data="${DATA[1]}"
@@ -510,13 +512,15 @@ for idx in "${!VALID_SERIALS[@]}"; do
[ "${DATA[12]}" ] && pushMQTTData "$inv_id" "Battery_charge_current" "${DATA[12]}"
[ "${DATA[13]}" ] && pushMQTTData "$inv_id" "Battery_capacity" "${DATA[13]}"
[ "${DATA[14]}" ] && pushMQTTData "$inv_id" "PV_in_voltage" "${DATA[14]}"
[ "${DATA[15]}" ] && pushMQTTData "$inv_id" "PV_in_current" "${DATA[15]}"
[ "${DATA[25]}" ] && pushMQTTData "$inv_id" "PV_in_current" "${DATA[25]}"
# Calculate PV watts (V * A)
if [ ! -z "${DATA[14]}" ] && [ ! -z "${DATA[15]}" ]; then
PV_WATTS=`echo "${DATA[14]} ${DATA[15]}" | awk '{printf "%.1f", $1 * $2}'`
if [ ! -z "${DATA[14]}" ] && [ ! -z "${DATA[25]}" ]; then
PV_WATTS=`echo "${DATA[14]} ${DATA[25]}" | awk '{printf "%.1f", $1 * $2}'`
pushMQTTData "$inv_id" "PV_in_watts" "$PV_WATTS"
fi
[ "${DATA[26]}" ] && pushMQTTData "$inv_id" "Battery_discharge_current" "${DATA[26]}"
# Status flags (parse from field 18 bitmap if available)
[ "${DATA[18]}" ] && {