feat: Auto-discovery parallelo con timeout e stile originale
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m13s

- Aggiunto timeout 15s al parallel discovery per evitare blocchi
- mqtt-init-parallel.sh in stile originale semplice
- Per ogni inverter scoperto: registra topic discovery (voltronic_inv1_*, inv2_*, ...)
- Discovery topics ogni 10 minuti invece di 5
- Fallback automatico a single-mode se timeout o count=0
- Mantiene la semplicità dello script originale

Il parallel discovery testa QPGS0-9 per trovare inverter configurati in parallelo.
Se timeout o nessun inverter trovato, usa modalità standard.
This commit is contained in:
Pi Developer
2026-02-02 23:32:56 +01:00
parent dc5bd07438
commit c73ebc825c
2 changed files with 97 additions and 70 deletions
+23 -10
View File
@@ -241,20 +241,33 @@ echo ""
# Wait a bit for the device to be ready
sleep 2
# Check for parallel inverters
PARALLEL_CHECK=$(/opt/inverter-cli/bin/inverter_poller -p 2>&1)
PARALLEL_COUNT=$(echo "$PARALLEL_CHECK" | grep "PARALLEL_COUNT=" | cut -d= -f2)
# Check for parallel inverters (with timeout to avoid hanging)
echo "Checking for parallel inverters..."
PARALLEL_CHECK=$(timeout 15 /opt/inverter-cli/bin/inverter_poller -p 2>&1)
PARALLEL_EXIT=$?
if [ ! -z "$PARALLEL_COUNT" ] && [ "$PARALLEL_COUNT" -gt 0 ]; then
echo "✓ Detected $PARALLEL_COUNT parallel inverter(s)"
echo " Using parallel mode scripts..."
USE_PARALLEL=true
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_INIT_SCRIPT="/opt/inverter-mqtt/mqtt-init-parallel.sh"
else
echo " Single inverter mode"
echo " Using standard scripts..."
USE_PARALLEL=false
MQTT_PUSH_SCRIPT="/opt/inverter-mqtt/mqtt-push.sh"
MQTT_INIT_SCRIPT="/opt/inverter-mqtt/mqtt-init.sh"
fi