This commit is contained in:
Mateusz Gruszczyński committed 2026-10-17 20:00:28 +02:00
1 parent ccf85a2fb8
commit f376f0a7b6
32 files changed
+312 -114

No files matched your search

+6 -3
View File
@@ -1,6 +1,9 @@
# GREE Controller API reference
HTTP and WebSocket API for GREE Controller **0.16.0**.
HTTP and WebSocket API for GREE Controller **0.16.1**.
Version 0.16.1: Zone configuration exposes `heat_anticipation_c` (0..2.5°C, default 0), runtime Zone exposes `heat_coasting`, and optional Flow `zone_thermostat` node configuration supports `heat_anticipation_c` and `standby_offset_c`. These settings alter the GREE temperature target, not physical power.
[← Main documentation](../README.md)
@@ -243,7 +246,7 @@ Response:
{
"status": "ok",
"name": "gree-controller",
"version": "0.16.0",
"version": "0.16.1",
"uptime_seconds": 1234,
"control_ready": true,
"time": "2026-08-30T06:54:00Z"
@@ -306,7 +309,7 @@ Returns the initial Web UI snapshot:
"control_plan": {"generated_at": "2026-09-04T08:00:00Z", "zones": [], "rules": []},
"control_plan_revision": 42,
"system": {
"version": "0.16.0",
"version": "0.16.1",
"uptime_seconds": 1234,
"auth_required": false,
"control_ready": true,
+1
View File
@@ -14,6 +14,7 @@ Flow is an authoring/orchestration layer. It does not replace the thermostat, sc
## Existing control domains remain authoritative
- Optional `zone_thermostat` fields `heat_anticipation_c` (0–2.5 °C) and `standby_offset_c` (0.5–8 °C) persist into the target Zone when the Flow action executes. The regulator enters a hysteretic low-GREE-setpoint *coasting* state when room temperature reaches `target - heat_anticipation_c`, and resumes full setpoint heating once it falls another 0.4 °C. Coasting changes the requested GREE temperature and smart fan/Quiet behavior, **never the indoor unit power**; pre-existing compressor protection and multisplit shared-OFF flow gates remain unchanged. For older Flows the fields are absent and the previous regulator behavior remains.
- `zone_thermostat` writes the existing persistent Zone intent and wakes the normal thermostat cycle. `power=false` sends an explicit physical OFF to the assigned unit but does **not** change the persistent Zone `enabled` flag; Zone enable/disable remains an administrative control gate. A concrete Flow mode (`heat`/`cool`) is also written with the OFF frame so a stale device `dry`/`fan` mode is not retained; Flow `auto` remains an ownership policy and is never mapped to physical GREE Auto on OFF. While a zone is owned by `automation.flow`, the global outdoor-assist bias is suppressed so the Flow's own room-temperature thresholds remain authoritative. It can also issue one-shot granular vertical/horizontal louver commands to the assigned unit; these auxiliary fields do not take over thermostat ownership.
- `group_action` calls the existing `control_group` path, including custom group targets.
- `device_action` uses the existing `DeviceCommand` / automatic-device path.
+20 -2
View File
@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "GREE Controller API",
"version": "0.16.0",
"version": "0.16.1",
"summary": "Local HTTP/WebSocket API for GREE Controller",
"description": "Local API used by the GREE Controller Web UI and Home Assistant integration.",
"license": {
@@ -6079,7 +6079,7 @@
},
"version": {
"type": "string",
"example": "0.16.0"
"example": "0.16.1"
},
"uptime_seconds": {
"type": "integer",
@@ -7173,6 +7173,13 @@
"description": "Optimistic concurrency revision when updating",
"minimum": 1,
"example": 12
},
"heat_anticipation_c": {
"type": "number",
"minimum": 0.0,
"maximum": 2.5,
"default": 0.0,
"description": "Temperature margin before target for early coasting without turning the unit OFF."
}
},
"required": [
@@ -7362,6 +7369,17 @@
"updated_at": {
"type": "string",
"format": "date-time"
},
"heat_anticipation_c": {
"type": "number",
"minimum": 0.0,
"maximum": 2.5,
"default": 0.0,
"description": "Temperature margin before target for early coasting without turning the unit OFF."
},
"heat_coasting": {
"type": "boolean",
"description": "True when the controller requested low setpoint while keeping unit powered ON."
}
},
"required": [