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
+7 -18
View File
@@ -1,6 +1,6 @@
#!/bin/bash
#
# MQTT Discovery for Parallel Inverters (simple style)
# MQTT Discovery for 2 Parallel Inverters (hardcoded)
MQTT_SERVER=`cat /etc/inverter/mqtt.json | jq '.server' -r`
MQTT_PORT=`cat /etc/inverter/mqtt.json | jq '.port' -r`
@@ -47,23 +47,13 @@ registerInverterRawCMD () {
}"
}
# Discover parallel inverters (no timeout, always try)
PARALLEL_DISCOVERY=`/opt/inverter-cli/bin/inverter_poller -p 2>&1`
PARALLEL_COUNT=`echo "$PARALLEL_DISCOVERY" | grep "PARALLEL_COUNT=" | cut -d= -f2`
# Always register for 2 inverters (hardcoded)
INVERTER_COUNT=2
echo "Parallel discovery result: count=$PARALLEL_COUNT"
echo "Registering discovery topics for $INVERTER_COUNT inverters..."
# If no parallel inverters found, assume 2 as default
if [ -z "$PARALLEL_COUNT" ] || [ "$PARALLEL_COUNT" -eq 0 ]; then
echo "⚠ No parallel count detected, assuming 2 inverters"
PARALLEL_COUNT=2
fi
echo "Registering discovery for $PARALLEL_COUNT inverters"
# Register topics for each inverter discovered
for inv_id in $(seq 1 $PARALLEL_COUNT); do
echo "Registering discovery topics for inverter #$inv_id..."
for inv_id in $(seq 1 $INVERTER_COUNT); do
echo " Inverter #$inv_id..."
registerTopic $inv_id "serial" "" "identifier"
registerTopic $inv_id "Inverter_mode" "" "solar-power"
@@ -99,8 +89,7 @@ for inv_id in $(seq 1 $PARALLEL_COUNT); do
registerTopic $inv_id "Charger_source_priority" "" "solar-power"
registerTopic $inv_id "Battery_redischarge_voltage" "V" "battery-negative"
# Raw command topic
registerInverterRawCMD $inv_id
done
echo "All discovery topics registered for $PARALLEL_COUNT inverters"
echo "Discovery topics registered for $INVERTER_COUNT inverters"