feat: Ottimizzazione performance e gestione credenziali MQTT
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 6m49s
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
This commit is contained in:
@@ -101,7 +101,66 @@ environment:
|
||||
- SKIP_DISCOVERY=false # Skip discovery, use inverter.conf values
|
||||
```
|
||||
|
||||
**📖 See [AUTO_DISCOVERY.md](AUTO_DISCOVERY.md) for complete documentation** including:
|
||||
**📖 See [AUTO_DISCOVERY.md](documentation/AUTO_DISCOVERY.md) for complete documentation** including:
|
||||
- How auto-discovery works
|
||||
- Environment variable reference
|
||||
- Multi-inverter setups
|
||||
- Troubleshooting guide
|
||||
- Migration from older versions
|
||||
|
||||
### 🔌 Multi-Inverter Support
|
||||
|
||||
Il sistema supporta il monitoraggio di **più inverter in parallelo**. Ogni inverter richiede un container separato con:
|
||||
- Device seriale dedicato (`/dev/ttyUSB0`, `/dev/ttyUSB1`, ecc.)
|
||||
- Nome device MQTT unico (`inverter1`, `inverter2`, ecc.)
|
||||
- Directory config separata per ogni inverter
|
||||
|
||||
**📖 Guida completa:** [MULTI_INVERTER.md](documentation/MULTI_INVERTER.md)
|
||||
|
||||
**Esempio configurazione 2 inverter:**
|
||||
```yaml
|
||||
services:
|
||||
voltronic-inverter1:
|
||||
environment:
|
||||
- INVERTER_DEVICE=/dev/ttyUSB0
|
||||
- MQTT_DEVICENAME=inverter1
|
||||
- MQTT_USERNAME=mqtt_user
|
||||
- MQTT_PASSWORD=your_password
|
||||
volumes:
|
||||
- ./config/inverter1/:/etc/inverter/
|
||||
devices:
|
||||
- /dev/ttyUSB0:/dev/ttyUSB0:rwm
|
||||
|
||||
voltronic-inverter2:
|
||||
environment:
|
||||
- INVERTER_DEVICE=/dev/ttyUSB1
|
||||
- MQTT_DEVICENAME=inverter2
|
||||
- MQTT_USERNAME=mqtt_user
|
||||
- MQTT_PASSWORD=your_password
|
||||
volumes:
|
||||
- ./config/inverter2/:/etc/inverter/
|
||||
devices:
|
||||
- /dev/ttyUSB1:/dev/ttyUSB1:rwm
|
||||
```
|
||||
|
||||
**Topic MQTT risultanti:**
|
||||
- Inverter 1: `homeassistant/sensor/inverter1_Battery_voltage`, `inverter1_PV_in_watts`, ecc.
|
||||
- Inverter 2: `homeassistant/sensor/inverter2_Battery_voltage`, `inverter2_PV_in_watts`, ecc.
|
||||
|
||||
### ⚡ Performance Optimization (v2.0+)
|
||||
|
||||
Il container è stato ottimizzato per ridurre il consumo di risorse:
|
||||
- **CPU**: ~0-2% per inverter (spike durante polling ogni 30s)
|
||||
- **RAM**: ~10-15 MB per inverter
|
||||
- **Network**: ~1-2 KB/s per inverter
|
||||
|
||||
**Ottimizzazioni implementate:**
|
||||
- Caricamento configurazione MQTT una sola volta all'avvio
|
||||
- Eliminazione letture ripetute file con `jq`
|
||||
- Redirect stderr per ridurre I/O
|
||||
- Timeout su operazioni inverter per evitare hang
|
||||
|
||||
**📖 See [AUTO_DISCOVERY.md](documentation/AUTO_DISCOVERY.md) for complete documentation** including:
|
||||
- How auto-discovery works
|
||||
- Environment variable reference
|
||||
- Multi-inverter setups
|
||||
|
||||
Reference in New Issue
Block a user