0.6.0 blocco 2: Comandi impianto con interruttori, diagnostica in Impianto
- CommandsPage: 4 interruttori (TextSwitch) al posto di 8 pulsanti in coppie accendi/spegni, piu' 3 pulsanti per le azioni senza stato. Gli interruttori seguono il dato vero (automaticCheck: false), non anticipano l'impianto, e la sezione 'Stato attuale' non serve piu'. - La pagina si chiama 'Comandi impianto'. - PlantPage: frase estesa dello stato, diagnostica (verifica impianto) e le letture che non avevano posto (pompa, modi consentiti, manuale, sbrinamento, luci di firma). - SettingsPage: 'Salva' e 'Prova connessione' diventano 'Salva e prova'. - ApiClient: dopo un comando riuscito lo stato si rilegge da solo (prima non si aggiornava nulla: l'aggiornamento automatico non esisteva). - NoticeBar anche su Dati, Impianto e Comandi; via i messaggi dentro il contenuto che scorre.
This commit is contained in:
@@ -71,6 +71,19 @@ Page {
|
||||
|
||||
PageHeader { title: qsTr("Plant") }
|
||||
|
||||
// La frase estesa dell'app ufficiale ("Relax: la pompa di calore
|
||||
// funziona regolarmente"): sta qui e non in Home, dove serve
|
||||
// spazio per le due letture. La calcola il C++ (AiraJson::stateLong).
|
||||
Label {
|
||||
x: Theme.horizontalPageMargin
|
||||
width: parent.width - 2 * Theme.horizontalPageMargin
|
||||
text: api.stateLong()
|
||||
color: Theme.primaryColor
|
||||
font.pixelSize: Theme.fontSizeMedium
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
// ---- stato ------------------------------------------------------ //
|
||||
SectionHeader { text: qsTr("Status") }
|
||||
|
||||
@@ -86,6 +99,11 @@ Page {
|
||||
InfoRow { label: qsTr("Night mode"); value: page.flag("night_mode") }
|
||||
InfoRow { label: qsTr("Forced heating"); value: page.flag("force_heating") }
|
||||
InfoRow { label: qsTr("Inline heater"); value: page.flag("inline_heater") }
|
||||
InfoRow { label: qsTr("Manual mode"); value: page.flag("manual_mode") }
|
||||
InfoRow { label: qsTr("Defrost"); value: page.flag("outdoor_defrost") }
|
||||
InfoRow { label: qsTr("Signature lights"); value: page.flag("signature_lights") }
|
||||
InfoRow { label: qsTr("Pump"); value: api.modeLabel(page.raw("pump_active_state")) }
|
||||
InfoRow { label: qsTr("Allowed modes"); value: api.modeLabel(page.raw("configured_modes")) }
|
||||
InfoRow { label: qsTr("Outdoor temperature"); value: page.temp("outdoor_temperature") }
|
||||
InfoRow { label: qsTr("Indoor temperature (pump)"); value: page.temp("indoor_temperature") }
|
||||
InfoRow { label: qsTr("Zones"); value: page.count("zones") }
|
||||
@@ -176,10 +194,20 @@ Page {
|
||||
value: page.count("errors_count")
|
||||
}
|
||||
|
||||
// ---- diagnostica ------------------------------------------------ //
|
||||
SectionHeader { text: qsTr("Diagnostics") }
|
||||
|
||||
ActionButton {
|
||||
text: qsTr("Plant check")
|
||||
onTriggered: api.sendCommand("ping")
|
||||
}
|
||||
|
||||
Item { width: 1; height: Theme.paddingMedium }
|
||||
}
|
||||
}
|
||||
|
||||
NoticeBar { }
|
||||
|
||||
Component.onCompleted: {
|
||||
if (api.configured)
|
||||
api.refresh()
|
||||
|
||||
Reference in New Issue
Block a user