49 lines
2 KiB
Markdown
49 lines
2 KiB
Markdown
# Add-on Domotica Work
|
|
|
|
Negozio di add-on Home Assistant per la flotta. Un add-on qui dentro si installa
|
|
su qualunque impianto e si aggiorna su tutti alzando un numero di versione.
|
|
|
|
## Add-on disponibili
|
|
|
|
| Cartella | Nome | Cosa fa |
|
|
|---|---|---|
|
|
| `concentratore/` | Concentratore Modbus | Espone gli inverter ZCS al CCI e tiene rinfrescato il comando di modulazione |
|
|
|
|
## Registrare il repository su un impianto
|
|
|
|
Dall'interfaccia: **Impostazioni → Add-on → Negozio → ⋮ → Repository**, incollare
|
|
l'URL del repository.
|
|
|
|
Oppure dal fleet, senza aprire nulla:
|
|
|
|
```
|
|
ha_manage_addon(istanza="cliente-xxx", action="add_repository",
|
|
repository="https://git.domotica.work/domotica/addons")
|
|
ha_manage_addon(istanza="cliente-xxx", slug="<slug>", action="install")
|
|
ha_manage_addon(istanza="cliente-xxx", slug="<slug>", options={...})
|
|
ha_manage_addon(istanza="cliente-xxx", slug="<slug>", action="start")
|
|
```
|
|
|
|
Il Supervisor clona **senza credenziali**: il repository deve essere leggibile
|
|
in anonimo dagli impianti. Si chiude a livello di rete, non con un flag privato.
|
|
|
|
## Regole di casa
|
|
|
|
**Ogni modifica al codice alza `version` in `config.yaml`.** È l'unico
|
|
meccanismo che fa comparire "Aggiorna" sugli impianti. Se si modifica il codice
|
|
senza toccare la versione, gli impianti restano indietro e non lo segnala
|
|
nessuno.
|
|
|
|
**Niente valori cablati nel codice.** IP, slave, porte, tempi: tutto in
|
|
`options` con il relativo `schema`. È quello che permette allo stesso add-on di
|
|
girare su venti impianti diversi senza toccarne il sorgente. Nel repository non
|
|
deve finire niente di specifico di un cliente.
|
|
|
|
**Ogni add-on ha un `CHANGELOG.md`.** Home Assistant lo mostra nella schermata
|
|
di aggiornamento: è lì che si legge cosa cambia prima di premere il pulsante.
|
|
|
|
## Aggiungere un add-on nuovo
|
|
|
|
Copiare `docs/modello/` in una cartella nuova alla radice del repository,
|
|
scegliere uno `slug` univoco, riempire `config.yaml`. La cartella `docs/` non
|
|
viene letta dal Supervisor, quindi il modello non compare nel negozio.
|