feat: Forza modalità parallela con default 2 inverter
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m6s

- Rimosso timeout e detection automatica
- Sempre modalità parallela forzata
- Default 2 inverter se parallel discovery fallisce
- Registra discovery per voltronic_inv1 e voltronic_inv2

NOTA: Se gli inverter non rispondono a QPGS, NON sono in modalità parallela.
Per gestire 2 inverter fisici separati, serve INVERTER_DEVICES=/dev/ttyUSB0:/dev/ttyUSB1
This commit is contained in:
Pi Developer
2026-02-02 23:43:12 +01:00
parent c73ebc825c
commit 0143e8eb36
3 changed files with 19 additions and 53 deletions
+3 -33
View File
@@ -235,46 +235,16 @@ if [ "$NEED_DISCOVERY" = "true" ]; then
fi fi
echo "" echo ""
echo "=== Detecting Inverter Configuration ===" echo "=== Starting MQTT Bridge Services ==="
echo "Using parallel inverter mode"
echo "" echo ""
# Wait a bit for the device to be ready # Wait a bit for the device to be ready
sleep 2 sleep 2
# Check for parallel inverters (with timeout to avoid hanging) # Always use parallel scripts
echo "Checking for parallel inverters..."
PARALLEL_CHECK=$(timeout 15 /opt/inverter-cli/bin/inverter_poller -p 2>&1)
PARALLEL_EXIT=$?
if [ $PARALLEL_EXIT -eq 124 ]; then
echo "⚠ Parallel discovery timed out (15s), using single inverter mode"
USE_PARALLEL=false
else
PARALLEL_COUNT=$(echo "$PARALLEL_CHECK" | grep "PARALLEL_COUNT=" | cut -d= -f2)
if [ ! -z "$PARALLEL_COUNT" ] && [ "$PARALLEL_COUNT" -gt 0 ]; then
echo "✓ Detected $PARALLEL_COUNT parallel inverter(s)"
echo " Using parallel mode scripts..."
USE_PARALLEL=true
else
echo " Single inverter mode (count=$PARALLEL_COUNT)"
echo " Using standard scripts..."
USE_PARALLEL=false
fi
fi
# Set script paths based on mode
if [ "$USE_PARALLEL" = true ]; then
MQTT_PUSH_SCRIPT="/opt/inverter-mqtt/mqtt-push-parallel.sh" MQTT_PUSH_SCRIPT="/opt/inverter-mqtt/mqtt-push-parallel.sh"
MQTT_INIT_SCRIPT="/opt/inverter-mqtt/mqtt-init-parallel.sh" MQTT_INIT_SCRIPT="/opt/inverter-mqtt/mqtt-init-parallel.sh"
else
MQTT_PUSH_SCRIPT="/opt/inverter-mqtt/mqtt-push.sh"
MQTT_INIT_SCRIPT="/opt/inverter-mqtt/mqtt-init.sh"
fi
echo ""
echo "=== Starting MQTT Bridge Services ==="
echo ""
# Init the mqtt server for the first time, then every 10 minutes (600 seconds) # Init the mqtt server for the first time, then every 10 minutes (600 seconds)
# This will re-create the auto-created topics in the MQTT server if HA is restarted... # This will re-create the auto-created topics in the MQTT server if HA is restarted...
+8 -6
View File
@@ -47,17 +47,19 @@ registerInverterRawCMD () {
}" }"
} }
# Discover parallel inverters # Discover parallel inverters (no timeout, always try)
PARALLEL_DISCOVERY=`timeout 15 /opt/inverter-cli/bin/inverter_poller -p 2>&1` PARALLEL_DISCOVERY=`/opt/inverter-cli/bin/inverter_poller -p 2>&1`
PARALLEL_COUNT=`echo "$PARALLEL_DISCOVERY" | grep "PARALLEL_COUNT=" | cut -d= -f2` PARALLEL_COUNT=`echo "$PARALLEL_DISCOVERY" | grep "PARALLEL_COUNT=" | cut -d= -f2`
echo "Parallel discovery result: count=$PARALLEL_COUNT"
# If no parallel inverters found, assume 2 as default
if [ -z "$PARALLEL_COUNT" ] || [ "$PARALLEL_COUNT" -eq 0 ]; then if [ -z "$PARALLEL_COUNT" ] || [ "$PARALLEL_COUNT" -eq 0 ]; then
echo "No parallel inverters found, falling back to standard init" echo "No parallel count detected, assuming 2 inverters"
exec /opt/inverter-mqtt/mqtt-init.sh PARALLEL_COUNT=2
exit 0
fi fi
echo "Found $PARALLEL_COUNT parallel inverters" echo "Registering discovery for $PARALLEL_COUNT inverters"
# Register topics for each inverter discovered # Register topics for each inverter discovered
for inv_id in $(seq 1 $PARALLEL_COUNT); do for inv_id in $(seq 1 $PARALLEL_COUNT); do
+6 -12
View File
@@ -77,21 +77,15 @@ fi
PARALLEL_DISCOVERY=`$SUDO_CMD "$INVERTER_BIN" -p 2>&1` PARALLEL_DISCOVERY=`$SUDO_CMD "$INVERTER_BIN" -p 2>&1`
PARALLEL_COUNT=`echo "$PARALLEL_DISCOVERY" | grep "PARALLEL_COUNT=" | cut -d= -f2` PARALLEL_COUNT=`echo "$PARALLEL_DISCOVERY" | grep "PARALLEL_COUNT=" | cut -d= -f2`
echo "Parallel discovery: count=$PARALLEL_COUNT"
# If no parallel count detected, assume 2 inverters
if [ -z "$PARALLEL_COUNT" ] || [ "$PARALLEL_COUNT" -eq 0 ]; then if [ -z "$PARALLEL_COUNT" ] || [ "$PARALLEL_COUNT" -eq 0 ]; then
echo "No parallel inverters found (count=$PARALLEL_COUNT), using standard polling" echo "No parallel count detected, assuming 2 inverters"
# Don't use fallback in dev mode if file doesn't exist PARALLEL_COUNT=2
if [ -f "$MQTT_FALLBACK" ]; then
exec $MQTT_FALLBACK
else
echo "Fallback script not found: $MQTT_FALLBACK"
echo "Using standard inverter_poller -1 instead"
INVERTER_DATA=`$SUDO_CMD "$INVERTER_BIN" -1 2>&1`
echo "$INVERTER_DATA"
fi
exit 0
fi fi
echo "Found $PARALLEL_COUNT parallel inverters" echo "Processing $PARALLEL_COUNT parallel inverters"
# Publish discovery info # Publish discovery info
pushMQTTData "system" "parallel_count" "$PARALLEL_COUNT" pushMQTTData "system" "parallel_count" "$PARALLEL_COUNT"