feat: Flusso completo discovery parallelo per 2 inverter
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m34s

FLUSSO IMPLEMENTATO:
1. All'avvio: registra discovery topics per 2 inverter (hardcoded)
2. Discovery topics ripetuti ogni 5 minuti (invece di 10)
3. Parallel discovery parametri con retry:
   - Tenta discovery fino a 3 volte
   - Se fallisce: attende 5s e riprova
   - Se tutti i tentativi falliscono: assume 2 inverter
4. Estrazione dati ogni 30s per entrambi gli inverter

NAMING:
- Inverter 1: voltronic_inv1_*
- Inverter 2: voltronic_inv2_*

Discovery topics include tutti i 33 parametri per entrambi gli inverter
This commit is contained in:
Pi Developer
2026-02-02 23:50:24 +01:00
parent 0143e8eb36
commit f906047f39
3 changed files with 34 additions and 28 deletions
+23 -6
View File
@@ -68,20 +68,37 @@ pushInfluxData () {
curl -i -XPOST "$INFLUX_HOST/write?db=$INFLUX_DATABASE&precision=s" -u "$INFLUX_USERNAME:$INFLUX_PASSWORD" --data-binary "$INFLUX_PREFIX,device=${INFLUX_DEVICE}_inv${1} $INFLUX_MEASUREMENT_NAME=$3" > /dev/null 2>&1
}
# Discover parallel inverters
# Discover parallel inverters with retry logic
SUDO_CMD=""
if [ "$EUID" -ne 0 ] && [ -c "/dev/ttyUSB0" ]; then
SUDO_CMD="sudo"
fi
PARALLEL_DISCOVERY=`$SUDO_CMD "$INVERTER_BIN" -p 2>&1`
PARALLEL_COUNT=`echo "$PARALLEL_DISCOVERY" | grep "PARALLEL_COUNT=" | cut -d= -f2`
# Try parallel discovery with retry
MAX_RETRIES=3
RETRY_DELAY=5
PARALLEL_COUNT=0
echo "Parallel discovery: count=$PARALLEL_COUNT"
for attempt in $(seq 1 $MAX_RETRIES); do
echo "Parallel discovery attempt $attempt/$MAX_RETRIES..."
PARALLEL_DISCOVERY=`$SUDO_CMD "$INVERTER_BIN" -p 2>&1`
PARALLEL_COUNT=`echo "$PARALLEL_DISCOVERY" | grep "PARALLEL_COUNT=" | cut -d= -f2`
if [ ! -z "$PARALLEL_COUNT" ] && [ "$PARALLEL_COUNT" -gt 0 ]; then
echo "✓ Found $PARALLEL_COUNT inverters"
break
else
echo "⚠ Discovery failed (count=$PARALLEL_COUNT)"
if [ $attempt -lt $MAX_RETRIES ]; then
echo " Waiting ${RETRY_DELAY}s before retry..."
sleep $RETRY_DELAY
fi
fi
done
# If no parallel count detected, assume 2 inverters
# If still no count, assume 2 inverters
if [ -z "$PARALLEL_COUNT" ] || [ "$PARALLEL_COUNT" -eq 0 ]; then
echo "⚠ No parallel count detected, assuming 2 inverters"
echo "⚠ All discovery attempts failed, assuming 2 inverters"
PARALLEL_COUNT=2
fi