Implementazione supporto multi-inverter paralleli e fix comunicazione MQTT
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 1m15s

- Aggiunto supporto lettura inverter paralleli tramite comandi QPGS0-QPGS9
- Implementato discovery automatico inverter con filtro duplicati e serial invalidi
- Risolti bug critici comunicazione seriale:
  * Fix buffer ExecuteCmd da 7 a 200 bytes
  * Supporto terminatori CR e LF
  * Modalità blocking con delay 500ms
  * Lettura byte-by-byte per terminatore affidabile
- Implementato script MQTT per pubblicazione dati multi-inverter:
  * mqtt-push-parallel.sh con topic separati per ogni inverter
  * Fix autenticazione MQTT con username/password
  * Aggiunto flag retain (-r) per persistenza dati
- Creato test-loop-parallel.sh per simulazione completa container
- Aggiornata documentazione con compatibilità MKS IV e guida test loop
- Aggiornati profili debug VS Code per bash e parallel discovery
- Configurazione MQTT completa con server reale (192.168.1.37:1883)

Sistema testato e funzionante con 2 inverter Voltronic Axpert MKS IV
This commit is contained in:
Pi Developer
2026-01-31 16:15:26 +01:00
parent 8863c77f6f
commit 547537e761
18 changed files with 1842 additions and 70 deletions
+11 -41
View File
@@ -13,16 +13,9 @@ on:
- main
- master
env:
REGISTRY: 192.168.1.37:30008
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout code
@@ -31,25 +24,17 @@ jobs:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: linux/arm/v7,linux/arm64
platforms: linux/arm/v6,linux/arm/v7,linux/arm64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: |
image=moby/buildkit:latest
network=host
config-inline: |
[registry."192.168.1.37:30008"]
http = true
insecure = true
uses: docker/setup-buildx-action@v2
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
${{ secrets.DOCKER_USERNAME }}/ha-voltronic-mqtt
tags: |
type=ref,event=branch
type=ref,event=pr
@@ -57,29 +42,19 @@ jobs:
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest,enable={{is_default_branch}}
- name: Login to Gitea Container Registry
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
run: |
echo "Configurazione autenticazione registry..."
mkdir -p ~/.docker
AUTH=$(echo -n "${{ github.actor }}:${{ secrets.REGISTRY_TOKEN }}" | base64)
cat > ~/.docker/config.json << EOF
{
"auths": {
"192.168.1.37:30008": {
"auth": "$AUTH"
}
}
}
EOF
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
id: docker_build
uses: docker/build-push-action@v6
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.multiarch
platforms: linux/arm/v7,linux/arm64
platforms: linux/arm/v6,linux/arm/v7,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
@@ -89,11 +64,6 @@ jobs:
VCS_REF=${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
provenance: false
outputs: type=registry,registry.insecure=true
- name: Image digest
run: |
echo "Tags pubblicati:"
echo "${{ steps.meta.outputs.tags }}"
echo "Digest: ${{ steps.docker_build.outputs.digest }}"
run: echo ${{ steps.meta.outputs.tags }}
+3 -7
View File
@@ -9,21 +9,17 @@ on:
jobs:
cleanup-old-images:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Login to Gitea Container Registry
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
registry: gitea.home-nas-ds.org
username: ${{ github.actor }}
password: ${{ secrets.REGISTRY_TOKEN }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Cleanup old development images
run: |