Files
docker-voltronic-homeassistant/documentation
Pi Developer c5645c0f2b
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 23s
Aggiunta configurazione tramite variabili d'ambiente e fix Docker Hub secrets
- 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
..

VS Code Configuration

Questa directory contiene le configurazioni per sviluppo e debug del progetto in VS Code.

File di Configurazione

launch.json

Configurazioni di debug per inverter-cli con GDB:

  • Debug con build Release
  • Debug con build completa (simboli debug)
  • Debug in modalità loop
  • Debug comandi raw
  • Attach a processo esistente

tasks.json

Task automatizzati per:

  • Build (Release/Debug)
  • Clean e Rebuild
  • Esecuzione diretta
  • Gestione container Docker

c_cpp_properties.json

Configurazione IntelliSense per C/C++:

  • Include paths
  • Standard C++11
  • Compiler settings

settings.json

Impostazioni workspace:

  • Configurazione CMake
  • File associations
  • Esclusioni ricerca e explorer

extensions.json

Estensioni raccomandate per il progetto:

  • C/C++ tools
  • CMake tools
  • Docker
  • ShellCheck
  • YAML support

Quick Start

Prima Build

  1. Apri il progetto in VS Code:

    code /home/pi/Progetti
    
  2. Installa estensioni raccomandate (popup VS Code)

  3. Build del progetto:

    • Premi Ctrl+Shift+B per build default
    • Oppure Tasks: Run Taskbuild-inverter-cli-debug

Debug Rapido

  1. Apri sources/inverter-cli/main.cpp
  2. Imposta breakpoint (F9 su riga)
  3. Premi F5 e seleziona configurazione debug
  4. Usa F10 (step over) e F11 (step into)

Testare Modifiche

  1. Modifica codice in sources/inverter-cli/
  2. Build: Ctrl+Shift+B
  3. Run: Tasks → run-inverter-cli-once
  4. Verifica output JSON

Documentazione Dettagliata

Vedi DEBUG.md per guida completa al debug e troubleshooting.

Configurazioni Disponibili

Debug Configurations (F5)

  • (gdb) Debug inverter_poller - Debug rapido con Release build
  • (gdb) Debug inverter_poller - Run Once with Debug - Debug completo, esecuzione singola
  • (gdb) Debug inverter_poller - Loop Mode - Debug in modalità continua
  • (gdb) Debug inverter_poller - Raw Command - Debug comandi specifici
  • (gdb) Attach to running inverter_poller - Attach a processo esistente

Build Tasks (Ctrl+Shift+B)

  • build-inverter-cli (default) - Build Release ottimizzato
  • build-inverter-cli-debug - Build con simboli debug
  • clean-inverter-cli - Pulizia file di build
  • rebuild-inverter-cli - Clean + Build

Run Tasks

  • run-inverter-cli-once - Esegui una volta
  • run-inverter-cli-loop - Esegui in loop
  • docker-build - Build immagine Docker
  • docker-run - Avvia container
  • docker-logs - Visualizza log container
  • docker-stop - Ferma container

Shortcuts Utili

Shortcut Azione
F5 Start Debugging
Ctrl+F5 Run Without Debugging
F9 Toggle Breakpoint
F10 Step Over
F11 Step Into
Shift+F11 Step Out
Ctrl+Shift+B Run Build Task
Ctrl+Shift+P Command Palette
Ctrl+ ` Toggle Terminal

Estensioni Consigliate

Essenziali

  • C/C++ - IntelliSense, debugging, browsing
  • CMake Tools - Integrazione CMake

Utili

  • Docker - Gestione container
  • ShellCheck - Linting script bash
  • YAML - Syntax per configurazioni

Opzionali

  • GitHub Copilot - AI code assistant
  • GitLens - Git supercharged

Troubleshooting

IntelliSense non funziona

  1. Ricarica window: Ctrl+Shift+P → "Reload Window"
  2. Verifica estensione C/C++ installata
  3. Build il progetto almeno una volta

GDB non trovato

sudo apt-get install gdb

Permission denied su device

sudo usermod -a -G dialout $USER
# Logout e login necessari

Task build fallisce

cd sources/inverter-cli
rm -rf CMakeFiles CMakeCache.txt
cmake . && make

Tips

  1. Multiple Debug Windows: Puoi avere più configurazioni debug attive contemporaneamente
  2. Watch Variables: Usa il pannello Watch per monitorare variabili durante debug
  3. Debug Console: Esegui comandi GDB direttamente nel Debug Console
  4. Logpoints: Usa logpoints invece di printf per non modificare codice

Risorse