0.7.0: assenza con date, conto alla rovescia del boost, catalogo rifatto
- AwayDialog.qml: popup con inizio e fine (Dialog, ValueButton, DatePickerDialog: componenti e proprieta' verificati nella guida Silica dell'SDK). Il tasto Assenza apre il popup invece di mandare il comando; - conto alla rovescia 30:00 -> 00:00 in Home e in copertina, con i secondi dell'impianto (AiraJson::countdown + timer che si riallinea a ogni lettura); - commandPayload accetta campi extra (start/end); - catalogo: lupdate leggeva solo i C++ e marcava 151 voci QML come obsolete. Ora src e qml espliciti: 197 stringhe, 0 non tradotte; - versione 0.7.0 (spec, main.cpp), PROTOCOL, README/PIANO, post per il forum.
This commit is contained in:
+47
-4
@@ -399,7 +399,50 @@ uno resta senza argomento obbligatorio si vede lì (74/74). Provato dal vivo con
|
||||
un `ping` (200, con la ricezione dall'impianto) e con un boost fuori intervallo,
|
||||
respinto con 400 **prima** di partire.
|
||||
|
||||
**Stato attuale (0.6.9).** 85/85 verifiche del nucleo, 74/74 del bridge,
|
||||
191/191 stringhe tradotte, `qmllint` pulito, contratto UI↔bridge rispettato.
|
||||
All'impianto è stato inviato un solo comando, di prova e innocuo: un `ping`
|
||||
diagnostico, che non cambia nulla. Nessun comando di regolazione è mai partito.
|
||||
## 11. Assenza con le date e conto alla rovescia del boost — v0.7.0
|
||||
|
||||
**Richieste dell'utente (11/10/2026), da applicare come dati:**
|
||||
|
||||
1. il **boost** deve essere di **30 minuti**;
|
||||
2. l'**assenza** si imposta da un **popup con data di inizio e fine**;
|
||||
3. durante l'assenza l'impianto **tiene la casa a 15 °C** e **riprende
|
||||
normalmente il giorno prima del rientro**;
|
||||
4. mentre il boost è in corso si deve vedere un **conto alla rovescia da 30:00 a
|
||||
00:00**.
|
||||
|
||||
## 12. Conseguenze dell'uso reale (0.7.0)
|
||||
|
||||
Deciso con l'uso, non in anticipo:
|
||||
|
||||
- il **boost** è di **mezz'ora** (era un'ora);
|
||||
- l'**assenza** non è più "N giorni": si scelgono **due date** in un popup, e la
|
||||
casa resta a **15 °C**;
|
||||
- mentre il boost corre, **conto alla rovescia** in Home e in copertina.
|
||||
|
||||
Resta aperto: il popup chiede *inizio* e *fine*, dove "fine" è il giorno in cui
|
||||
l'impianto ricomincia a scaldare (nell'uso di Carlo: il giorno prima del rientro).
|
||||
Se preferisce indicare il *rientro* e far togliere un giorno all'app, è una riga.
|
||||
|
||||
**Come è stato fatto (0.7.0).**
|
||||
- Bridge: i comandi con durata hanno il loro ramo e i default in cima al file;
|
||||
per l'assenza `_periodo_assenza` legge `start` ed `end` (AAAA-MM-GG) e li
|
||||
traduce in `current_time`/`end_time`. La fine è la **mezzanotte del giorno
|
||||
indicato nel fuso dell'impianto** (`PLANT_TZ = Europe/Rome`, dichiarato dallo
|
||||
stato): da lì la pompa riprende il programma. Il fuso della *macchina* non si
|
||||
usa: alle date di cambio ora sbaglia di un'ora (lo hanno visto i test).
|
||||
- Bridge: `/summary` espone `boost_active` e `boost_remaining_seconds`, calcolati
|
||||
dalla fine del boost letta dall'impianto (`hot_water_boost.end_time`). Il conto
|
||||
alla rovescia dell'app si basa su quelli, non su quando l'app ha visto partire
|
||||
il comando: se il boost l'ha avviato il telefono di casa o l'app ufficiale, il
|
||||
numero è comunque giusto.
|
||||
- App: `AwayDialog.qml` (Dialog + due `ValueButton` + `DatePickerDialog`, come
|
||||
nell'esempio della guida Silica), il conto alla rovescia in Home sotto le
|
||||
letture e in copertina al posto dell'obiettivo dell'acqua calda. La formattazione
|
||||
`mm:ss` sta in `AiraJson::countdown` (C++, verificata in `tests/core_test.cpp`),
|
||||
i secondi li fa scorrere un timer del client, che si riallinea a ogni rilettura.
|
||||
- Catalogo: `lupdate harbour-aira.pro` leggeva solo i C++ e marcava 151 voci QML
|
||||
come obsolete (l'italiano sarebbe rimasto a metà senza accorgersene). Ora:
|
||||
`lupdate src qml -ts translations/harbour-aira-it.ts`. 197 stringhe, 0 non
|
||||
tradotte.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user