0.5.0: riordino come l'app ufficiale (home, Dati, Impianto)
- home: temperatura esterna e in casa/assente in alto, messaggio di stato, scheda impianto con temperatura stanza e acqua calda; comandi sotto - pagina Dati: calore prodotto, elettricita' usata, COP acqua calda e riscaldamento, risparmio, CO2 evitata, Smart Tariff Control (mese per mese) - pagina Impianto: stato, termostato a parete, versioni software, errori - bridge 0.4.0: rotta /stats (servizio statistiche del cloud) e blocco dispositivo in /summary (ID breve, versioni, termostato) - C++: parseStats, formatNumber, formatMoney, monthLabel (separatore e valuta secondo la lingua); 61/61 verifiche del nucleo - anteprime aggiornate (dati, impianto) in inglese e italiano
This commit is contained in:
+56
-16
@@ -13,15 +13,43 @@ dell'impianto e invia i comandi dell'acqua calda sanitaria e del riscaldamento
|
||||
L'interfaccia è in **inglese e italiano**: di serie segue la lingua del telefono
|
||||
e ripiega sull'inglese; la si può scegliere anche nelle impostazioni dell'app.
|
||||
|
||||
## Cosa mostra
|
||||
|
||||
- **Home**, ordinata come l'app ufficiale: temperatura esterna e *in casa /
|
||||
assente* in alto, una frase di stato in chiaro ("Relax: la pompa di calore
|
||||
funziona regolarmente"), poi la **scheda dell'impianto** con le due letture che
|
||||
contano (temperatura stanza e acqua calda, ognuna con il suo obiettivo).
|
||||
Toccando la scheda si apre la pagina dell'impianto. Sotto, i comandi:
|
||||
obiettivo della casa con slider 5–30 °C (passi da 0,5 °C) e conferma prima
|
||||
dell'invio, obiettivo ACS (45–60 °C) e i pulsanti del boost
|
||||
- **Dati**: calore prodotto, elettricità usata, efficienza (COP) di acqua calda e
|
||||
riscaldamento, risparmio in bolletta, CO₂ evitata e risparmio Smart Tariff
|
||||
Control, mese per mese. Sono i numeri che Aira calcola nel cloud, gli stessi
|
||||
della scheda *Dati* dell'app ufficiale
|
||||
- **Impianto**: stato (connessione, modalità, assenza/notte/riscaldamento
|
||||
forzato, temperature esterna e interna, zone, ultima lettura), accessori (il
|
||||
termostato a parete con temperatura, umidità, segnale, batteria), versioni del
|
||||
software e numero di errori
|
||||
- **Altri comandi**: assenza, night mode per un'ora, riscaldamento forzato,
|
||||
funzione riscaldamento on/off, ciclo legionella, ACS on/off e verifica
|
||||
impianto, con lo stato attuale in cima
|
||||
- **Copertina** con la temperatura della casa
|
||||
- Indirizzo e token del bridge stanno nelle impostazioni dell'app (QSettings),
|
||||
mai nel binario
|
||||
|
||||

|
||||
|
||||
Anteprime del layout (valori veri dell'impianto, **non** screenshot — vedi
|
||||
*Stato*). Queste sono in italiano; quelle in inglese stanno in
|
||||
`docs/anteprima/`:
|
||||
|
||||
| Home | Altri comandi | Impostazioni | Copertina |
|
||||
|---|---|---|---|
|
||||
|  |  |  |  |
|
||||
| Home | Dati | Impianto |
|
||||
|---|---|---|
|
||||
|  |  |  |
|
||||
|
||||
| Altri comandi | Impostazioni | Copertina |
|
||||
|---|---|---|
|
||||
|  |  |  |
|
||||
|
||||
## La lingua dell'interfaccia
|
||||
|
||||
@@ -106,29 +134,37 @@ cd tests && mkdir -p build && cd build
|
||||
```
|
||||
|
||||
Copre la logica pura (`src/airajson.cpp`): normalizzazione dell'indirizzo,
|
||||
lettura del riassunto, etichette di stato, corpo dei comandi, messaggi
|
||||
d'errore. **La UI Silica si verifica solo sul dispositivo.**
|
||||
lettura del riassunto e delle statistiche, etichette di stato, corpo dei comandi,
|
||||
messaggi d'errore e la formattazione di numeri, importi e mesi della pagina Dati.
|
||||
**La UI Silica si verifica solo sul dispositivo.**
|
||||
|
||||
## Stato
|
||||
|
||||
- **39/39** verifiche del nucleo, compilazione senza warning
|
||||
- **27/27** verifiche offline del bridge (`bridge/test_bridge_commands.py`)
|
||||
- **99/99** stringhe tradotte nel catalogo italiano: il test carica il `.qm`
|
||||
- **61/61** verifiche del nucleo, compilazione senza warning
|
||||
- **48/48** verifiche offline del bridge (`bridge/test_bridge_commands.py`),
|
||||
comprese le conversioni Wh→kWh e degli importi delle statistiche
|
||||
- **170/170** stringhe tradotte nel catalogo italiano: il test carica il `.qm`
|
||||
compilato come fa `main.cpp` e verifica che in inglese l'etichetta di stato sia
|
||||
la sorgente e in italiano quella tradotta, e che togliendo il catalogo si torni
|
||||
all'inglese
|
||||
- numeri formattati con `QLocale`: il separatore decimale segue la lingua
|
||||
(verificato per entrambe)
|
||||
- numeri, importi e nomi dei mesi formattati con `QLocale`: separatore decimale e
|
||||
posizione del simbolo di valuta seguono la lingua (verificato per entrambe)
|
||||
- `qmllint` pulito su tutti i QML (valida solo la sintassi: senza il modulo
|
||||
Silica una proprietà inesistente passa in silenzio)
|
||||
- provata dal vivo in **sola lettura** su un impianto Aira Home
|
||||
- provata dal vivo in **sola lettura** su un impianto Aira Home, statistiche
|
||||
comprese: coincidono con quelle mostrate dall'app ufficiale per lo stesso
|
||||
periodo (calore prodotto 70,8 kWh, elettricità 29,3 kWh, COP acqua calda 4,42,
|
||||
risparmio Smart Tariff Control 2,71 €)
|
||||
- **l'app non è ancora stata compilata né eseguita su un telefono**: le immagini
|
||||
in `docs/anteprima/` sono anteprime di layout costruite con i valori veri
|
||||
dell'impianto, non screenshot
|
||||
|
||||
Non c'è ancora la UI per il raffrescamento (il bridge sa farlo), né orari e
|
||||
curve; non è nella Jolla Store: è un client non ufficiale che parla con le API
|
||||
Aira usando il proprio account.
|
||||
curve; le versioni del software si vedono in sola lettura. La pagina Dati dipende
|
||||
dal servizio statistiche di Aira: su un impianto appena installato qualche mese
|
||||
non ha ancora dati e l'app scrive *nessun dato* invece del numero. Non è nella
|
||||
Jolla Store: è un client non ufficiale che parla con le API Aira usando il proprio
|
||||
account.
|
||||
|
||||
## Struttura
|
||||
|
||||
@@ -141,16 +177,20 @@ src/translator.{h,cpp} lingua dell'interfaccia: locale di sistema, ripiego
|
||||
sull'inglese, ricarica della UI al cambio
|
||||
src/main.cpp context properties: appSettings, api, translator
|
||||
qml/harbour-aira.qml ApplicationWindow + copertina
|
||||
qml/pages/MainPage.qml dashboard e comandi acqua/riscaldamento
|
||||
qml/pages/MainPage.qml home: stato, scheda impianto, riscaldamento e acqua
|
||||
qml/pages/DataPage.qml energia, efficienza e risparmi
|
||||
qml/pages/PlantPage.qml stato, accessori, versioni, errori
|
||||
qml/pages/CommandsPage.qml gli altri comandi, con lo stato attuale in cima
|
||||
qml/pages/SettingsPage.qml
|
||||
qml/components/InfoRow.qml
|
||||
qml/components/InfoRow.qml etichetta a sinistra, valore a destra
|
||||
qml/components/ValueRow.qml titolo e sottotitolo a sinistra, valore grande a destra
|
||||
qml/components/ActionButton.qml pulsante di comando, con conferma opzionale
|
||||
tests/core_test.cpp verifiche del nucleo (headless)
|
||||
bridge/aira_bridge.py servizio HTTP/1.1 + JSON verso il cloud (gRPC)
|
||||
bridge/setup_creds.py salva le credenziali Aira (file 600)
|
||||
bridge/aira_probe.py sonda di sola lettura: login + stato impianto
|
||||
bridge/test_bridge_commands.py verifiche offline dei comandi (27 controlli)
|
||||
bridge/aira_stats_probe.py sonda di sola lettura delle statistiche del cloud
|
||||
bridge/test_bridge_commands.py verifiche offline dei comandi e delle statistiche (48 controlli)
|
||||
bridge/harbour-aira-bridge.service unit systemd utente
|
||||
bridge/README.md istruzioni di installazione del bridge (inglese)
|
||||
docs/PIANO.md piano di progetto e scelte
|
||||
|
||||
Reference in New Issue
Block a user