feat: Auto-discovery parallelo con timeout e stile originale
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m13s
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user