0.6.0 blocco 1: Home di consultazione e pagina Regolazioni

- Home: stato in una riga col pallino, due letture grandi toccabili, tre
  azioni rapide; via i due slider, i sette pulsanti e la scheda separata.
- Nuova pagina Regolazioni: un blocco per grandezza, valore attuale sempre
  visibile, preimpostazioni per le dita fredde, conferma esplicita; il
  pulsante e' attivo solo se c'e' davvero qualcosa da cambiare.
- Messaggi dei comandi spostati in ApiClient (api.notice) con NoticeBar
  ancorata in fondo: prima nascevano fuori dallo schermo.
- Stato breve/esteso/livello in C++ (testabile senza SDK), 18 verifiche
  nuove: 79/79.
- stale + lastUpdate: la Home dice 'aggiornato alle HH:MM' e spegne i
  numeri vecchi invece di farli passare per freschi.
- 192/192 stringhe tradotte (54 nuove).
This commit is contained in:
2026-10-10 09:47:16 +02:00
parent 667ff63907
commit d5b63b57df
10 changed files with 1038 additions and 600 deletions
+275 -224
View File
@@ -63,70 +63,155 @@
<source>HTTP error %1</source>
<translation>errore HTTP %1</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="225"/>
<source>No data</source>
<translation>Nessun dato</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="229"/>
<source>Attention: one error</source>
<translation>Attenzione: un errore</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="230"/>
<source>Attention: %1 errors</source>
<translation>Attenzione: %1 errori</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="232"/>
<source>Away mode</source>
<translation>Assenza</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="234"/>
<source>Night mode</source>
<translation>Modalità notte</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="236"/>
<source>Heating at full power</source>
<translation>Riscaldamento al massimo</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="238"/>
<source>Heating the hot water</source>
<translation>Sta scaldando l'acqua</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="240"/>
<source>Working</source>
<translation>In funzione</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="241"/>
<source>Everything is fine</source>
<translation>Tutto regolare</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="251"/>
<source>Attention: one error on the plant</source>
<translation>Attenzione: un errore sull'impianto</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="252"/>
<source>Attention: %1 errors on the plant</source>
<translation>Attenzione: %1 errori sull'impianto</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="254"/>
<source>Away mode: the house is saving energy.</source>
<translation>Modalità assenza: la casa sta risparmiando.</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="256"/>
<source>Night mode is on.</source>
<translation>Modalità notte attiva.</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="258"/>
<source>Boost: the house is heating at full power.</source>
<translation>Boost: la casa sta scaldando a pieno regime.</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="260"/>
<source>The heat pump is heating the hot water.</source>
<translation>La pompa di calore sta scaldando l'acqua calda.</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="262"/>
<source>The heat pump is working.</source>
<translation>La pompa di calore sta lavorando.</translation>
</message>
<message>
<location filename="../src/airajson.cpp" line="263"/>
<source>Relax: the heat pump is running smoothly.</source>
<translation>Relax: la pompa di calore funziona regolarmente.</translation>
</message>
</context>
<context>
<name>ApiClient</name>
<message>
<location filename="../src/apiclient.cpp" line="60"/>
<location filename="../src/apiclient.cpp" line="111"/>
<source>Bridge address not configured</source>
<translation>Indirizzo del bridge non configurato</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="82"/>
<location filename="../src/apiclient.cpp" line="178"/>
<location filename="../src/apiclient.cpp" line="221"/>
<location filename="../src/apiclient.cpp" line="133"/>
<location filename="../src/apiclient.cpp" line="245"/>
<location filename="../src/apiclient.cpp" line="288"/>
<source>Set the bridge address and token</source>
<translation>Configura indirizzo e token del bridge</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="102"/>
<location filename="../src/apiclient.cpp" line="153"/>
<source>Server unreachable (timeout)</source>
<translation>Server non raggiungibile (timeout)</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="113"/>
<location filename="../src/apiclient.cpp" line="209"/>
<location filename="../src/apiclient.cpp" line="172"/>
<location filename="../src/apiclient.cpp" line="276"/>
<source>Unreadable response from the bridge</source>
<translation>Risposta del bridge non interpretabile</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="125"/>
<location filename="../src/apiclient.cpp" line="192"/>
<source>Enter the bridge address</source>
<translation>Inserisci l&apos;indirizzo del bridge</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="141"/>
<location filename="../src/apiclient.cpp" line="208"/>
<source>Timeout: no response</source>
<translation>Timeout: nessuna risposta</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="142"/>
<location filename="../src/apiclient.cpp" line="209"/>
<source>Unreachable (HTTP %1)</source>
<translation>Irraggiungibile (HTTP %1)</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="146"/>
<location filename="../src/apiclient.cpp" line="213"/>
<source>Bridge reachable</source>
<translation>Bridge raggiungibile</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="186"/>
<location filename="../src/apiclient.cpp" line="230"/>
<location filename="../src/apiclient.cpp" line="253"/>
<location filename="../src/apiclient.cpp" line="297"/>
<source>Bridge not configured</source>
<translation>Bridge non configurato</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="198"/>
<location filename="../src/apiclient.cpp" line="265"/>
<source>Timeout: no statistics</source>
<translation>Timeout: statistiche non disponibili</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="244"/>
<location filename="../src/apiclient.cpp" line="311"/>
<source>Timeout: command not sent</source>
<translation>Timeout: comando non inviato</translation>
</message>
<message>
<location filename="../src/apiclient.cpp" line="251"/>
<location filename="../src/apiclient.cpp" line="318"/>
<source>Command sent</source>
<translation>Comando inviato</translation>
</message>
@@ -434,263 +519,111 @@
<context>
<name>MainPage</name>
<message>
<source>yes</source>
<translation type="vanished">sì</translation>
<location filename="../qml/pages/MainPage.qml" line="57"/>
<source>No data yet</source>
<translation>Nessun dato</translation>
</message>
<message>
<source>no</source>
<translation type="vanished">no</translation>
<location filename="../qml/pages/MainPage.qml" line="59"/>
<source>Not updated · last %1</source>
<translation>Non aggiornato · ultimo %1</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="146"/>
<location filename="../qml/pages/MainPage.qml" line="62"/>
<source>Updated at %1</source>
<translation>Aggiornato alle %1</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="98"/>
<source>Refresh</source>
<translation>Aggiorna</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="162"/>
<location filename="../qml/pages/MainPage.qml" line="199"/>
<location filename="../qml/pages/MainPage.qml" line="110"/>
<location filename="../qml/pages/MainPage.qml" line="139"/>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="158"/>
<location filename="../qml/pages/MainPage.qml" line="472"/>
<source>Other commands</source>
<translation>Altri comandi</translation>
<location filename="../qml/pages/MainPage.qml" line="196"/>
<source>House</source>
<translation>Casa</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="87"/>
<source>Attention: one error on the plant</source>
<translation>Attenzione: un errore sull&apos;impianto</translation>
<location filename="../qml/pages/MainPage.qml" line="198"/>
<location filename="../qml/pages/MainPage.qml" line="207"/>
<source>target %1 °C</source>
<translation>obiettivo %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="88"/>
<source>Attention: %1 errors on the plant</source>
<translation>Attenzione: %1 errori sull&apos;impianto</translation>
<location filename="../qml/pages/MainPage.qml" line="205"/>
<source>Hot water</source>
<translation>Acqua calda</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="90"/>
<source>Away mode: the house is saving energy.</source>
<translation>Modalità assenza: la casa sta risparmiando.</translation>
<location filename="../qml/pages/MainPage.qml" line="219"/>
<source>Tap a value to adjust it</source>
<translation>Tocca un valore per regolarlo</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="92"/>
<source>Night mode is on.</source>
<translation>Modalità notte attiva.</translation>
<location filename="../qml/pages/MainPage.qml" line="227"/>
<source>Quick actions</source>
<translation>Azioni rapide</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="94"/>
<source>Boost: the house is heating at full power.</source>
<translation>Boost: la casa sta scaldando a pieno regime.</translation>
<location filename="../qml/pages/MainPage.qml" line="239"/>
<source>Boost</source>
<translation>Boost</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="96"/>
<source>The heat pump is heating the hot water.</source>
<translation>La pompa di calore sta scaldando l&apos;acqua calda.</translation>
<location filename="../qml/pages/MainPage.qml" line="248"/>
<source>Back home</source>
<translation>Torna a casa</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="98"/>
<source>The heat pump is working.</source>
<translation>La pompa di calore sta lavorando.</translation>
<location filename="../qml/pages/MainPage.qml" line="251"/>
<source>Away mode off</source>
<translation>Assenza disattivata</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="99"/>
<source>Relax: the heat pump is running smoothly.</source>
<translation>Relax: la pompa di calore funziona regolarmente.</translation>
<location filename="../qml/pages/MainPage.qml" line="254"/>
<source>Away mode on</source>
<translation>Assenza attivata</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="106"/>
<source>%1 · last reading %2</source>
<translation>%1 · ultima lettura %2</translation>
<location filename="../qml/pages/MainPage.qml" line="262"/>
<source>Commands</source>
<translation>Comandi</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="150"/>
<location filename="../qml/pages/MainPage.qml" line="282"/>
<source>Outside %1 °C · Thermostat %2 °C · Zones %3</source>
<translation>Esterno %1 °C · Termostato %2 °C · Zone %3</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="102"/>
<source>Data</source>
<translation>Dati</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="190"/>
<location filename="../qml/pages/MainPage.qml" line="130"/>
<source>Bridge not configured. Open the settings and enter the server address and the token.</source>
<translation>Bridge non configurato. Apri le impostazioni e inserisci l&apos;indirizzo del server e il token.</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="213"/>
<source>Outside %1 °C</source>
<translation>Esterno %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="223"/>
<source>Away</source>
<translation>Assente</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="223"/>
<source>At home</source>
<translation>In casa</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="283"/>
<source>Aira heat pump</source>
<translation>Aira Pompa di calore</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="288"/>
<source>Connected through the cloud</source>
<translation>Connessa tramite Cloud</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="307"/>
<source>Room temperature</source>
<translation>Temperatura stanza</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="308"/>
<location filename="../qml/pages/MainPage.qml" line="314"/>
<source>Target %1 °C</source>
<translation>Obiettivo %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="321"/>
<source>Heating the house</source>
<translation>Riscaldamento della casa</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="326"/>
<source>Heating setpoint %1 °C · %2</source>
<translation>Obiettivo riscaldamento %1 °C · %2</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="438"/>
<source>Details</source>
<translation>Dettagli</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="448"/>
<source>Plant and accessories</source>
<translation>Impianto e accessori</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="460"/>
<source>Consumption and savings</source>
<translation>Consumi e risparmi</translation>
</message>
<message>
<source>House temperature</source>
<translation type="vanished">Temperatura in casa</translation>
</message>
<message>
<source>target %1 °C · %2</source>
<translation type="vanished">obiettivo %1 °C · %2</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="337"/>
<source>New house target</source>
<translation>Nuovo obiettivo casa</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="358"/>
<source>Set house to %1 °C</source>
<translation>Imposta casa a %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="360"/>
<source>House temperature to %1 °C</source>
<translation>Temperatura della casa a %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="313"/>
<location filename="../qml/pages/MainPage.qml" line="365"/>
<source>Domestic hot water</source>
<translation>Acqua calda sanitaria</translation>
</message>
<message>
<source>DHW target</source>
<translation type="vanished">Obiettivo acqua calda</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="382"/>
<source>New target</source>
<translation>Nuovo obiettivo</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="403"/>
<source>Set target %1 °C</source>
<translation>Imposta obiettivo %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="405"/>
<source>DHW target to %1 °C</source>
<translation>Obiettivo ACS a %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="418"/>
<source>Start DHW boost</source>
<translation>Avvia boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="419"/>
<location filename="../qml/pages/MainPage.qml" line="240"/>
<source>Starting DHW boost</source>
<translation>Avvio del boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="432"/>
<source>Stop DHW boost</source>
<translation>Ferma boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="433"/>
<source>Stopping DHW boost</source>
<translation>Arresto del boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="154"/>
<location filename="../qml/pages/MainPage.qml" line="106"/>
<source>Plant</source>
<translation>Impianto</translation>
</message>
<message>
<source>Outdoor temperature</source>
<translation type="vanished">Temperatura esterna</translation>
</message>
<message>
<source>Indoor temperature (pump)</source>
<translation type="vanished">Temperatura interna (pompa)</translation>
</message>
<message>
<source>Mode</source>
<translation type="vanished">Modalità</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="248"/>
<source>Away mode</source>
<translation type="vanished">Assenza</translation>
</message>
<message>
<source>Night mode</source>
<translation type="vanished">Night mode</translation>
</message>
<message>
<source>Forced heating</source>
<translation type="vanished">Riscaldamento forzato</translation>
</message>
<message>
<source>Inline heater</source>
<translation type="vanished">Resistenze integrative</translation>
</message>
<message>
<source>Zone</source>
<translation type="vanished">Zone</translation>
</message>
<message>
<source>Errors</source>
<translation type="vanished">Errori</translation>
</message>
<message>
<source>Last reading</source>
<translation type="vanished">Aggiornato alle</translation>
</message>
<message>
<location filename="../qml/pages/MainPage.qml" line="487"/>
<source>Commands are sent to the bridge and from there to the plant: they may take a few seconds.</source>
<translation>I comandi vengono inviati al bridge e da lì all&apos;impianto: possono richiedere qualche secondo.</translation>
<translation>Assenza</translation>
</message>
</context>
<context>
@@ -886,6 +819,124 @@
<translation>Errori segnalati</translation>
</message>
</context>
<context>
<name>SetpointsPage</name>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="73"/>
<source>Refresh</source>
<translation>Aggiorna</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="77"/>
<source>Data</source>
<translation>Dati</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="81"/>
<source>Plant</source>
<translation>Impianto</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="85"/>
<source>Settings</source>
<translation>Impostazioni</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="95"/>
<source>Setpoints</source>
<translation>Regolazioni</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="98"/>
<source>Heating the house</source>
<translation>Riscaldamento della casa</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="101"/>
<source>Current target</source>
<translation>Obiettivo attuale</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="102"/>
<source>What the plant is keeping now</source>
<translation>Quello che l'impianto mantiene adesso</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="109"/>
<source>New house target</source>
<translation>Nuovo obiettivo casa</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="146"/>
<source>Set house to %1 °C</source>
<translation>Imposta casa a %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="147"/>
<source>House temperature to %1 °C</source>
<translation>Temperatura della casa a %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="153"/>
<source>Domestic hot water</source>
<translation>Acqua calda sanitaria</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="156"/>
<source>DHW target</source>
<translation>Obiettivo acqua calda</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="157"/>
<source>Water now %1 °C</source>
<translation>Acqua ora %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="164"/>
<source>New target</source>
<translation>Nuovo obiettivo</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="199"/>
<source>Set target %1 °C</source>
<translation>Imposta obiettivo %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="200"/>
<source>DHW target to %1 °C</source>
<translation>Obiettivo ACS a %1 °C</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="206"/>
<source>Hot water boost</source>
<translation>Boost acqua calda</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="209"/>
<source>Start DHW boost</source>
<translation>Avvia boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="210"/>
<source>Starting DHW boost</source>
<translation>Avvio del boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="215"/>
<source>Stop DHW boost</source>
<translation>Ferma boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="216"/>
<source>Stopping DHW boost</source>
<translation>Arresto del boost ACS</translation>
</message>
<message>
<location filename="../qml/pages/SetpointsPage.qml" line="223"/>
<source>Commands go through the bridge and may take a few seconds. The status refreshes by itself afterwards.</source>
<translation>I comandi passano dal bridge e possono richiedere qualche secondo. Dopo l'invio lo stato si aggiorna da solo.</translation>
</message>
</context>
<context>
<name>SettingsPage</name>
<message>