0.2.0: riscaldamento - obiettivo temperatura casa per zona, stato zone in copertina

This commit is contained in:
Carlo
2026-10-10 07:12:17 +02:00
parent d25da7a91f
commit 7ef9d1e999
10 changed files with 157 additions and 16 deletions
+26 -1
View File
@@ -16,7 +16,7 @@ Nessuna autenticazione: serve a distinguere "server irraggiungibile" da
"token sbagliato".
```json
{"ok": true, "version": "0.1.0"}
{"ok": true, "version": "0.2.0"}
```
## GET /summary
@@ -39,6 +39,14 @@ Valori pronti per la dashboard.
"inline_heater": false,
"led_pattern": "LED_PATTERN_NORMAL",
"zones": 1,
"zone1_setpoint": 19.0,
"zone1_temperature": 23.0,
"zone1_mode": "PUMP_MODE_STATE_HEATING",
"zone1_cooling_setpoint": 22.0,
"zone2_setpoint": 0.0,
"zone2_temperature": 0.0,
"zone2_mode": "PUMP_MODE_STATE_IDLE",
"zone2_cooling_setpoint": 0.0,
"errors_count": 0,
"pump_updated": "2026-10-09 18:52:17.199340"
}
@@ -68,6 +76,8 @@ Risposta: `{"ok": true, "id": "...", "result": {...}}`.
|---|---|---|
| `ping` | — | verifica che l'impianto risponda |
| `set_hot_water_target` | 45–60 | temperatura ACS obiettivo |
| `set_heating_setpoint` | 5–30 | temperatura obiettivo della casa (zona, default 1) |
| `set_cooling_setpoint` | 5–30 | temperatura obiettivo del raffrescamento (zona, default 1) |
| `hot_water_boost_on` / `hot_water_boost_off` | — | boost ACS una tantum |
| `hot_water_heating_on` / `hot_water_heating_off` | — | riscaldamento ACS |
| `away_mode_on` / `away_mode_off` | — | modalità assenza |
@@ -76,6 +86,21 @@ Risposta: `{"ok": true, "id": "...", "result": {...}}`.
| `heating_on` / `heating_off` | — | funzione riscaldamento |
| `legionella_cycle` | — | ciclo antilegionella |
### Riscaldamento: come si invia il comando per zona
Il messaggio `ZoneTemperatures` contiene **sempre entrambe** le zone:
```json
{"id": "set_heating_setpoint", "value": 21.5, "zone": 1}
```
`zone` è opzionale (default 1) e accetta 1 o 2. La zona che non si sta
modificando viene rimandata con il **suo valore attuale**, letto dall'ultimo
stato disponibile: inviarla a zero la spegnerebbe. Per questo il bridge tiene
in memoria l'ultima lettura, e il comando va costruito con quel contesto.
Il campo `kind` distingue riscaldamento (`1`) da raffrescamento (`2`).
### Perché una whitelist
La libreria espone ~90 comandi, fra cui `FactoryReset`, `InstallFirmware`,