0.2.1: temperatura della casa in cima alla home, acqua calda in sezione dedicata

This commit is contained in:
Carlo
2026-10-10 07:14:57 +02:00
parent 8f0f129fd5
commit 2f6c939603
8 changed files with 94 additions and 100 deletions
+59 -63
View File
@@ -139,46 +139,7 @@ Page {
onClicked: page.openSettings()
}
// ---- acqua calda ---------------------------------------------- //
Label {
visible: api.configured
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Acqua calda sanitaria")
color: Theme.secondaryColor
font.pixelSize: Theme.fontSizeSmall
}
Label {
visible: api.configured
anchors.horizontalCenter: parent.horizontalCenter
text: page.temp("dhw_current") + " °C"
color: Theme.primaryColor
font.pixelSize: Theme.fontSizeHuge
}
ProgressBar {
visible: api.configured
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width - 4 * Theme.horizontalPageMargin
minimumValue: 20
maximumValue: 65
value: {
var v = page.raw("dhw_current")
return (v === undefined || v === null) ? 0 : Number(v)
}
}
Label {
visible: api.configured
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("obiettivo %1 °C").arg(page.temp("dhw_target"))
color: Theme.secondaryColor
font.pixelSize: Theme.fontSizeExtraSmall
}
// ---- riscaldamento: temperatura della casa --------------------- //
SectionHeader { visible: api.configured; text: qsTr("Riscaldamento") }
// ---- casa: temperatura della casa (dato principale) ------------ //
Label {
visible: api.configured
anchors.horizontalCenter: parent.horizontalCenter
@@ -192,25 +153,34 @@ Page {
anchors.horizontalCenter: parent.horizontalCenter
text: page.temp("zone1_temperature") + " °C"
color: Theme.primaryColor
font.pixelSize: Theme.fontSizeLarge
font.pixelSize: Theme.fontSizeHuge
}
InfoRow {
ProgressBar {
visible: api.configured
label: qsTr("Obiettivo casa")
value: page.temp("zone1_setpoint") + " °C"
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width - 4 * Theme.horizontalPageMargin
minimumValue: 5
maximumValue: 30
value: {
var v = page.raw("zone1_temperature")
return (v === undefined || v === null) ? 0 : Number(v)
}
}
InfoRow {
Label {
visible: api.configured
label: qsTr("Stato riscaldamento")
value: api.modeLabel(page.raw("zone1_mode"))
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("obiettivo %1 °C · %2").arg(page.temp("zone1_setpoint")).arg(api.modeLabel(page.raw("zone1_mode")))
color: Theme.secondaryColor
font.pixelSize: Theme.fontSizeExtraSmall
}
Slider {
id: casaSlider
visible: api.configured
width: parent.width
label: qsTr("Nuovo obiettivo")
label: qsTr("Nuovo obiettivo casa")
minimumValue: 5
maximumValue: 30
stepSize: 0.5
@@ -237,27 +207,39 @@ Page {
function() { api.sendCommand("set_heating_setpoint", page.targetCasa) })
}
// ---- stato impianto ------------------------------------------- //
SectionHeader { visible: api.configured; text: qsTr("Impianto") }
// ---- acqua calda sanitaria ------------------------------------- //
SectionHeader { visible: api.configured; text: qsTr("Acqua calda sanitaria") }
InfoRow { visible: api.configured; label: qsTr("Temperatura esterna"); value: page.temp("outdoor_temperature") + " °C" }
InfoRow { visible: api.configured; label: qsTr("Temperatura interna (pompa)"); value: page.temp("indoor_temperature") + " °C" }
InfoRow { visible: api.configured; label: qsTr("Modalità"); value: api.modeLabel(page.raw("operating_status")) }
InfoRow { visible: api.configured; label: qsTr("Assenza"); value: page.flag("away_mode") }
InfoRow { visible: api.configured; label: qsTr("Night mode"); value: page.flag("night_mode") }
InfoRow { visible: api.configured; label: qsTr("Riscaldamento forzato"); value: page.flag("force_heating") }
InfoRow { visible: api.configured; label: qsTr("Resistenze integrative"); value: page.flag("inline_heater") }
InfoRow { visible: api.configured; label: qsTr("Zone"); value: page.count("zones") }
InfoRow { visible: api.configured; label: qsTr("Errori"); value: page.count("errors_count") }
InfoRow { visible: api.configured; label: qsTr("Aggiornato alle"); value: page.shortTime(page.raw("pump_updated")) }
Label {
visible: api.configured
anchors.horizontalCenter: parent.horizontalCenter
text: page.temp("dhw_current") + " °C"
color: Theme.primaryColor
font.pixelSize: Theme.fontSizeLarge
}
// ---- comandi --------------------------------------------------- //
SectionHeader { visible: api.configured; text: qsTr("Comandi acqua calda") }
ProgressBar {
visible: api.configured
anchors.horizontalCenter: parent.horizontalCenter
width: parent.width - 4 * Theme.horizontalPageMargin
minimumValue: 20
maximumValue: 65
value: {
var v = page.raw("dhw_current")
return (v === undefined || v === null) ? 0 : Number(v)
}
}
InfoRow {
visible: api.configured
label: qsTr("Obiettivo acqua calda")
value: page.temp("dhw_target") + " °C"
}
Slider {
visible: api.configured
width: parent.width
label: qsTr("Obiettivo acqua calda")
label: qsTr("Nuovo obiettivo")
minimumValue: 45
maximumValue: 60
stepSize: 1
@@ -312,6 +294,20 @@ Page {
function() { api.sendCommand("hot_water_boost_off") })
}
// ---- stato impianto ------------------------------------------- //
SectionHeader { visible: api.configured; text: qsTr("Impianto") }
InfoRow { visible: api.configured; label: qsTr("Temperatura esterna"); value: page.temp("outdoor_temperature") + " °C" }
InfoRow { visible: api.configured; label: qsTr("Temperatura interna (pompa)"); value: page.temp("indoor_temperature") + " °C" }
InfoRow { visible: api.configured; label: qsTr("Modalità"); value: api.modeLabel(page.raw("operating_status")) }
InfoRow { visible: api.configured; label: qsTr("Assenza"); value: page.flag("away_mode") }
InfoRow { visible: api.configured; label: qsTr("Night mode"); value: page.flag("night_mode") }
InfoRow { visible: api.configured; label: qsTr("Riscaldamento forzato"); value: page.flag("force_heating") }
InfoRow { visible: api.configured; label: qsTr("Resistenze integrative"); value: page.flag("inline_heater") }
InfoRow { visible: api.configured; label: qsTr("Zone"); value: page.count("zones") }
InfoRow { visible: api.configured; label: qsTr("Errori"); value: page.count("errors_count") }
InfoRow { visible: api.configured; label: qsTr("Aggiornato alle"); value: page.shortTime(page.raw("pump_updated")) }
BusyIndicator {
visible: api.busy
anchors.horizontalCenter: parent.horizontalCenter