Commit Graph

9 Commits

Author SHA1 Message Date
Pi Developer 36743a59c8 feat: Ottimizzazione performance e gestione credenziali MQTT
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 6m49s
- Rimosso credenziali hardcoded da mqtt.json (devono essere fornite solo da ENV)
- Ottimizzato mqtt-push.sh: caricamento config MQTT una sola volta all'avvio
- Ridotto I/O con redirect stderr su /dev/null
- Fix errore sed con device path contenente slash
- Aggiunto controllo esecuzione update_mqtt_config solo se ENV impostate
- Ridotto consumo CPU da 25% a ~0-2%

Nuovo:
- Documentazione multi-inverter completa (MULTI_INVERTER.md)
- Aggiornato README con sezione performance e multi-inverter
- Aggiunto .gitignore per file cache/backup runtime

Fixes:
- Bug sed delimiter con device path /dev/ttyUSB*
- Letture ripetute mqtt.json con jq (30+ per ciclo)
- Credenziali non aggiornate da ENV se mqtt.json esiste
2026-01-31 17:45:53 +01:00
Pi Developer 0c3e43ed08 Aggiornamento docker-compose.yml per configurazione attuale
Build Docker Image for Raspberry Pi / build-and-push (push) Has been cancelled
- Cambiata immagine: gitea.home-nas-ds.org/alessio/docker-voltronic-homeassistant:latest
- Aggiunta password MQTT corretta (non più placeholder)
- Aggiunto volume voltronic-cache per persistenza discovery
- Commentato watchtower (opzionale)
- Corretti commenti per chiarire uso ENV variables:
  * ENV sovrascrivono mqtt.json all'avvio automaticamente
  * Config volume mantiene calibration e buffer sizes
  * Cache volume evita re-discovery ad ogni restart
- Dockerfile build option usa multiarch invece di dev
2026-01-31 17:04:17 +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 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
David Nedved 9b49015fd7 docker compose to default to base image 2020-04-07 13:54:33 +10:00
David Nedved b8e9d8ad33 include healthcheck in default actions 2020-04-01 11:42:35 +10:00
David ccb999b8dc refactor for better support with ch341 and other unreliable rs232 adapters 2019-07-27 22:34:34 +10:00
David 24fcc1addd update readme 2019-05-28 14:58:01 +10:00
David 7a6b39bf18 initial docker support on x86 2019-05-28 14:27:57 +10:00