0.6.0 blocco 3: copertina, versione, documenti e anteprime nelle due lingue

This commit is contained in:
2026-10-10 09:52:32 +02:00
parent 85702880d5
commit 36033daf3f
18 changed files with 385 additions and 123 deletions
+36 -25
View File
@@ -9,24 +9,30 @@ status, domestic hot water, and the house target temperature per zone.
## What it does
- **Home**, organised like the official Aira app: outdoor temperature and
*at home / away* at the top, a plain-language status line ("Relax: the heat
pump is running smoothly"), then the **plant card** with the two readings that
matter (room temperature and domestic hot water, each with its target).
Tapping the card opens the plant page. Below that the controls: house target
with a 5–30 °C slider (0.5 °C steps) and a confirmation before the command
leaves, domestic hot water target (45–60 °C) and the boost buttons
- **Home**, one screen to look at: a coloured dot with a one-line status
("Everything is fine", "Heating the hot water"), the time of the last update,
the two readings that matter (house and domestic hot water, each with its
target) side by side and **tappable**, and three quick actions: boost, away
mode and the plant commands. It fits without scrolling — the controls live in
their own pages
- **Setpoints** page: house target and hot water target, each with the value the
plant is keeping right now, a slider (the proposal, the plant value does not
move), a row of quick values for cold fingers and a confirmation button that
only lights up when there is something to change
- **Data** page: heat produced, electricity used, efficiency (COP) for hot water
and heating, savings on the bill, CO₂ avoided and the Smart Tariff Control
saving, month by month. These are the numbers Aira computes in the cloud,
exactly as in the official app's *Data* tab
- **Plant** page: status (connection, mode, away/night/forced heating, outdoor
and indoor temperature, zones, last reading), accessories (the wall thermostat
with temperature, humidity, signal, battery), software versions and the error
count
- **Other commands** page: away mode, night mode for one hour, force heating,
heating function on/off, legionella cycle, DHW heating on/off and a plant
check — with the current state at the top, so nothing is pressed blindly
- **Plant** page: status (connection, mode, away/night/forced heating, manual
mode, defrost, signature lights, pump state, allowed modes, outdoor and indoor
temperature, zones, last reading), accessories (the wall thermostat with
temperature, humidity, signal, battery), software versions, the error count and
the plant check. The extended status sentence ("Relax: the heat pump is running
smoothly") lives here
- **Plant commands** page: four switches (away mode, forced heating, heating, hot
water active) that show the state of the plant and change it in one tap, plus
the buttons for what has no state: legionella cycle and night mode for one
hour. The switches follow the plant — they never anticipate it
- **Cover page** showing the house temperature
- Address and bridge token live in the app settings (QSettings), never in the
binary
@@ -39,13 +45,13 @@ status, domestic hot water, and the house target temperature per zone.
Layout previews (rendered with the real values the plant returned, **not**
screenshots — see *Status*):
| Home | Data | Plant |
| Home | Setpoints | Data |
|---|---|---|
| ![home](docs/anteprima/dashboard.png) | ![data](docs/anteprima/dati.png) | ![plant](docs/anteprima/impianto.png) |
| ![home](docs/anteprima/dashboard.png) | ![setpoints](docs/anteprima/regolazioni.png) | ![data](docs/anteprima/dati.png) |
| Other commands | Settings | Cover |
|---|---|---|
| ![commands](docs/anteprima/comandi.png) | ![settings](docs/anteprima/impostazioni.png) | ![cover](docs/anteprima/copertina.png) |
| Plant | Plant commands | Settings | Cover |
|---|---|---|---|
| ![plant](docs/anteprima/impianto.png) | ![commands](docs/anteprima/comandi.png) | ![settings](docs/anteprima/impostazioni.png) | ![cover](docs/anteprima/copertina.png) |
## Why there is a bridge
@@ -136,12 +142,14 @@ python3 tests/ui_contract_check.py http://192.168.3.21:8790
Verified so far:
- **61/61** core checks (`tests/core_test.cpp`), compiled with no warnings
- **79/79** core checks (`tests/core_test.cpp`), compiled with no warnings —
including the one-line and extended status sentences, so what the home says
about the plant is verified without a phone
- **48/48** bridge checks, offline (`bridge/test_bridge_commands.py`) —
including that a zone command always carries every zone, that absurd values
are refused (40 °C, zone 3, text), and the Wh→kWh / money conversions of the
statistics
- **170/170** strings translated in the Italian catalogue, checked by loading
- **190/190** strings translated in the Italian catalogue, checked by loading
the compiled `.qm` in the test the same way `main.cpp` does: source English
in, Italian out, and back to English when the catalogue is removed
- numbers, amounts and month names formatted through `QLocale`, so the decimal
@@ -202,13 +210,16 @@ src/settings.{h,cpp} QSettings in AppConfigLocation (SailJail sandbox)
src/translator.{h,cpp} UI language: system locale, English fallback, reload
src/main.cpp context properties: appSettings, api, translator
qml/harbour-aira.qml ApplicationWindow + cover
qml/pages/MainPage.qml home: status, plant card, heating and water
qml/pages/MainPage.qml home: one-line status, two readings, quick actions
qml/pages/SetpointsPage.qml house and water targets, quick values, boost
qml/pages/DataPage.qml energy, efficiency and savings
qml/pages/PlantPage.qml status, accessories, versions, errors
qml/pages/CommandsPage.qml the other commands, current state on top
qml/pages/PlantPage.qml status, accessories, versions, errors, diagnostics
qml/pages/CommandsPage.qml the plant commands, state shown by switches
qml/pages/SettingsPage.qml
qml/components/InfoRow.qml label on the left, value on the right
qml/components/ValueRow.qml title + subtitle left, big value right
qml/components/ReadingCell.qml tappable reading: title, big value, charge bar
qml/components/NoticeBar.qml command messages, anchored to the bottom edge
qml/components/ActionButton.qml command button, optional confirmation
tests/core_test.cpp core checks (headless)
tests/ui_contract_check.py QML keys vs bridge keys (bridge must be running)
@@ -216,7 +227,7 @@ bridge/ local HTTP bridge -> see bridge/README.md
translations/ harbour-aira-it.ts (English is the source language)
docs/PIANO.md project plan and decisions (Italian)
docs/PROTOCOL.md bridge API
docs/UX-STUDIO.md UX review + proposal for 0.6.0 (Italian)
docs/UX-STUDIO.md UX review and what changed in 0.6.0 (Italian)
docs/ux/ UX study wireframes
docs/anteprima/ layout previews (English; docs/anteprima/it/ Italian)
```