feat: Forza modalità parallela con default 2 inverter
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m6s
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:
@@ -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...
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user