Commit Graph

23 Commits

Author SHA1 Message Date
Alessio c32871f0d7 Delete .gitea/workflows/docker-test.yml
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 12m48s
2026-03-03 20:55:15 +01:00
Alessio 7a5cb5e216 Delete .gitea/workflows/docker-cleanup.yml
Build Docker Image for Raspberry Pi / build-and-push (push) Has been cancelled
2026-03-03 20:55:09 +01:00
Pi Developer 9e2f28a1a5 fix: Nome immagine corrisponde al nome repository
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m43s
Docker Image Cleanup / cleanup-old-images (push) Failing after 7s
- Cambiato da ha-voltronic-mqtt a docker-voltronic-homeassistant
- Image name: gitea.home-nas-ds.org/alessio/docker-voltronic-homeassistant
2026-01-31 19:13:39 +01:00
Pi Developer 3adf28dfb8 fix: Ripristina dominio pubblico gitea.home-nas-ds.org per registry
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 8m29s
- Necessario configurare il runner per risolvere il dominio all'IP locale
- Evita problemi con pull dall'esterno usando tag con IP locale
- Mantiene compatibilità con accesso pubblico al registry
2026-01-31 18:52:01 +01:00
Pi Developer 6cf08fc858 fix: Usa IP locale 192.168.1.37 per registry invece del dominio
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 50s
- Evita passaggio attraverso Cloudflare (413 Payload Too Large)
- Registry in rete locale: 192.168.1.37 invece di gitea.home-nas-ds.org
- Image name: 192.168.1.37/alessio/ha-voltronic-mqtt
2026-01-31 18:48:25 +01:00
Pi Developer 8fc74ebaa8 fix: Usa REGISTRY_TOKEN configurato nei secrets
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 7m28s
- Modificato da GITHUB_TOKEN a REGISTRY_TOKEN
- Usa il token manuale creato nelle impostazioni del repository
2026-01-31 18:38:37 +01:00
Pi Developer 7a42ebfb61 fix: Usa GITHUB_TOKEN standard per autenticazione registry
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 22s
- Sostituito GITEA_TOKEN con GITHUB_TOKEN (token standard Actions)
- Username: github.repository_owner invece di github.actor
- GITHUB_TOKEN è fornito automaticamente senza configurazione
2026-01-31 18:36:41 +01:00
Pi Developer 5295f3a536 fix: Usa credenziali automatiche Gitea Actions per registry
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 22s
- Sostituito DOCKER_USERNAME/PASSWORD con github.actor/GITEA_TOKEN
- Il token GITEA_TOKEN è fornito automaticamente dalle Actions
- Non richiede configurazione manuale dei secrets
2026-01-31 18:33:58 +01:00
Pi Developer 99c4d40427 fix: Configurazione workflow per registry Gitea interno
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 21s
- Modificato target da Docker Hub a gitea.home-nas-ds.org
- Aggiunto parametro registry al login
- Semplificata logica push (sempre attivo tranne per PR)
- Image name: gitea.home-nas-ds.org/alessio/ha-voltronic-mqtt
2026-01-31 18:31:17 +01:00
Pi Developer c4bdd6767d Fix errore Image digest step - escape tag output
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m14s
- Aggiunto quote all'output dei tag per evitare esecuzione come comando
- Risolve errore 'No such file or directory' quando tag contengono '/'
- Output ora corretto: echo "Tags:" && echo "${{ tags }}"
- Previene interpretazione shell dei tag come path/comandi
2026-01-31 16:52:17 +01:00
Pi Developer d96eba8f6c Rimossa cache GHA incompatibile con Gitea Actions
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 7m20s
- Rimosse opzioni cache-from e cache-to type=gha
- GitHub Actions Cache non supportata da Gitea Actions
- Risolve errore 'dial tcp 172.16.8.2:36207: i/o timeout'
- Build ora procede senza cache (più lento ma funzionante)
- Possibile ottimizzazione futura: cache locale o registry
2026-01-31 16:42:49 +01:00
Pi Developer 6b574f6775 Fix errore Docker build quando secrets non configurati
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 26s
- Aggiunto step 'Prepare image name' per gestire nome immagine dinamico
- Se secrets configurati: usa username/ha-voltronic-mqtt
- Se secrets mancanti: usa local/ha-voltronic-mqtt (build locale)
- Corretto flag SHOULD_PUSH basato su presenza secrets
- Risolto errore 'invalid tag' quando DOCKER_USERNAME è vuoto

Ora il workflow esegue build anche senza secrets configurati
2026-01-31 16:23:25 +01:00
Pi Developer c5645c0f2b Aggiunta configurazione tramite variabili d'ambiente e fix Docker Hub secrets
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 23s
- Aggiunto supporto ENV variables nel Dockerfile:
  * INVERTER_DEVICE, MQTT_SERVER, MQTT_PORT, MQTT_TOPIC
  * MQTT_DEVICENAME, MQTT_USERNAME, MQTT_PASSWORD
  * FORCE_DISCOVERY, SKIP_DISCOVERY
- Implementata funzione update_mqtt_config() in entrypoint.sh
  * Aggiorna automaticamente mqtt.json da ENV variables all'avvio
  * Backup automatico configurazione originale
- Fix workflow Docker build:
  * Login Docker Hub solo se secrets configurati
  * Push solo se secrets disponibili (evita errori CI/CD)
  * Build funziona anche senza secrets (utile per test locali)
- Aggiornato docker-compose.yml con esempio ENV variables
- Creata documentazione completa DOCKER_SETUP.md:
  * Guida configurazione variabili d'ambiente
  * Esempi docker-compose e docker run
  * Guida configurazione secrets Gitea
  * Troubleshooting e health check

Ora è possibile configurare completamente il container senza modificare file
2026-01-31 16:21:42 +01:00
Pi Developer 547537e761 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
2026-01-31 16:15:26 +01:00
Alessio Dal Santo 8863c77f6f Fix: Corretto step Image digest per gestire output multilinea
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 6m20s
- Aggiunto id 'docker_build' allo step di build
- Quotato output tags per evitare errore 'command not found'
- Aggiunto output del digest dell'immagine
- Migliorato formato output con labels descrittivi
2026-01-27 17:38:15 +01:00
Alessio Dal Santo 403f5f3ef0 Fix: Configurazione registry HTTP locale per evitare Cloudflare
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 6m43s
- Aggiunto env REGISTRY: 192.168.1.37:30008 per bypassare Cloudflare
- Configurato buildx per supportare HTTP insecure sul registry locale
- Aggiornato docker meta per usare registry IP diretto
- Modificato login per autenticarsi su 192.168.1.37:30008
- Risolto errore 413 Payload Too Large causato da Cloudflare
2026-01-27 17:30:15 +01:00
Alessio Dal Santo afa9e2835a Fix: Configurazione workflow Gitea per registry insecure
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 5m59s
- Aggiunta configurazione buildx per registry con http/insecure
- Sostituito login-action con autenticazione manuale tramite config.json
- Aggiornate versioni actions (buildx v3, build-push v6)
- Aggiunto provenance: false e outputs con registry.insecure=true
2026-01-27 17:21:20 +01:00
Pi Developer 9d21e264bb Rimuovi supporto linux/arm/v6 dal workflow
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 6m4s
- Debian Bullseye non supporta arm/v6 (solo Pi Zero W v1 e Pi 1)
- Mantenuti arm/v7 e arm64 (compatibili con Pi 3, 4, 5)
- Pi 5 a 64-bit usa linux/arm64
2026-01-25 18:22:00 +01:00
Pi Developer 255a881cbb Rinomina secret da GITEA_TOKEN a REGISTRY_TOKEN
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 2m45s
- Aggiornati workflow docker-build.yml e docker-cleanup.yml
- Aggiornata guida SETUP_GITEA_TOKEN.md
2026-01-25 16:06:00 +01:00
Pi Developer 9d6e3b31f0 Usa GITEA_TOKEN secret per autenticazione Container Registry
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 34s
- Modificato docker-build.yml e docker-cleanup.yml
- Il token automatico github.token non ha permessi sufficienti
- Aggiunta guida SETUP_GITEA_TOKEN.md per configurazione
2026-01-25 15:33:17 +01:00
Pi Developer bfc7c21559 Aggiungi permessi packages per accesso al Container Registry
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 36s
- Specificato permissions: packages: write nei workflow
- Necessario per autenticazione al registry Gitea self-hosted
2026-01-25 15:16:52 +01:00
Pi Developer 6d4812efbc Correggi workflow Gitea Actions per usare registry self-hosted
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 39s
- Modificato docker-build.yml per usare gitea.home-nas-ds.org invece di Docker Hub
- Modificato docker-cleanup.yml per autenticazione con registry Gitea
- Usato github.token automatico invece di secrets esterni
- Aggiornata documentazione per riflettere i cambiamenti
2026-01-25 15:15:17 +01:00
Pi Developer 6af9fcad7e feat(v2.0): Auto-discovery, correzione bug critici, e documentazione completa
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 4m42s
🆕 Funzionalità Auto-Discovery
- Aggiunto metodo AutoDiscoverBufferSizes() per rilevamento automatico QPIGS/QPIRI/QMOD/QPIWS
- Supporto variabili d'ambiente (INVERTER_DEVICE, MQTT_SERVER, etc.)
- Caching persistente buffer sizes in /cache/inverter.conf.cache
- Flag -a/--auto-discover per modalità auto-detection

🐛 Bug Fixes Critici
- **Parsing interi**: Aggiunta attemptAddSettingInt() con stoi() invece di stof()
  - Fix: stof('98') = 98.0f → 97 (int), ora stoi('98') = 98 direttamente
  - Applicato a: qpiri, qpiws, qmod, qpigs
- **Thread sync**: Aggiunto ups_qpiws_changed a main loop e condizione exit poll()
  - Fix: loop principale controllava solo 3 flag su 4, causava hang
  - Fix: thread poll() non usciva in runOnce perché mancava controllo QPIWS
- **Config accuracy**: Corretti buffer sizes (qpiri: 98→103, qpiws: 36→40)
  - Rimosso sources/inverter-cli/inverter.conf che sovrascriveva config globale
  - Validato con test: inverter_poller -1 completa in 6s con JSON completo

📚 Documentazione Completa
- Creato documentation/CODE_ARCHITECTURE.md (38KB)
  - Mappa logica variabili globali
  - Flusso esecuzione main() con diagrammi ASCII
  - Sequence diagram classe cInverter (poll, query, auto-discovery)
  - Thread synchronization diagrams
  - MQTT integration bash scripts flow
  - Mappa concettuale 5-layer system architecture
  - Error handling e performance optimizations
- Organizzati file .md in documentation/ (AUTO_DISCOVERY, IMPLEMENTATION, QUICKSTART, DEBUG)
- Aggiornato README.md con sezione v2.0 e indice documentazione
- Aggiornato .github/copilot-instructions.md con novità v2.0

🔧 Miglioramenti Build & CI/CD
- Gitea Actions per build multi-arch (arm/v6, arm/v7, arm64, amd64, 386)
- Configurazione VS Code completa (tasks, launch, debug GDB)
- Script test-autodiscovery.sh e test-device.sh

 Testing Validato
- inverter_poller -1 completa in 6 secondi
- Output JSON completo con tutte le metriche
- Exit pulito senza timeout (exit code 0)
- Tutte le 4 query QMOD/QPIGS/QPIRI/QPIWS funzionanti
2026-01-25 15:00:48 +01:00