Files
docker-voltronic-homeassistant/docker-compose.yml
T
Pi Developer 36743a59c8
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 6m49s
feat: Ottimizzazione performance e gestione credenziali MQTT
- 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

69 lines
2.0 KiB
YAML

services:
voltronic-mqtt:
# Build locale per test
build:
context: .
dockerfile: Dockerfile.multiarch
# Immagine custom da Gitea registry (decommentare quando pronta)
# image: gitea.home-nas-ds.org/alessio/docker-voltronic-homeassistant:latest
container_name: voltronic-mqtt
privileged: true
restart: always
# Environment variables - configurano automaticamente mqtt.json e inverter.conf
environment:
# Device configuration
- INVERTER_DEVICE=/dev/ttyUSB0
# MQTT Broker configuration (questi valori sovrascrivono mqtt.json all'avvio)
- MQTT_SERVER=192.168.1.37
- MQTT_PORT=1883
- MQTT_TOPIC=homeassistant
- MQTT_DEVICENAME=voltronic
- MQTT_USERNAME=mqtt_user
- MQTT_PASSWORD=3tUhCpuDs43e#@k
# Auto-discovery options
# Force auto-discovery on every container start (default: false)
# Set to "true" to re-run discovery even if previous results exist
- FORCE_DISCOVERY=false
# Skip auto-discovery completely (default: false)
# Set to "true" to use only values from inverter.conf
- SKIP_DISCOVERY=false
volumes:
# Configurazione persistente (buffer sizes, calibration factors)
- ./config/:/etc/inverter/
# Cache discovery per evitare re-discovery ad ogni restart
- voltronic-cache:/cache/
devices:
# USB Port Mapping
- /dev/bus/usb:/dev/bus/usb:rwm
- /dev/ttyUSB0:/dev/ttyUSB0:rwm
- /dev/ttyUSB1:/dev/ttyUSB1:rwm
# Serial Port Mapping (optional, se usi RS232 nativo)
- /dev/ttyS0:/dev/ttyS0
- /dev/ttyS1:/dev/ttyS1
- /dev/ttyS2:/dev/ttyS2
# Used to auto-update images as we release new versions...
# watchtower:
# image: containrrr/watchtower
# container_name: watchtower
# restart: always
# privileged: true
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# command: --interval 500
volumes:
voltronic-cache: