This commit is contained in:
Mateusz Gruszczyński committed 2026-10-21 08:08:59 +02:00
1 parent 05185a94f7
commit bb5caa769f
28 files changed
+592 -130

No files matched your search

+4 -4
View File
@@ -1,8 +1,8 @@
# GREE Controller API reference
HTTP and WebSocket API for GREE Controller **0.16.3**.
HTTP and WebSocket API for GREE Controller **0.16.4**.
Version 0.16.3: the Flow editor adds localized descriptions and contextual examples for the two heating blocks; the API and heating behavior remain compatible with 0.16.2.
Version 0.16.4: disabled parent Flows suppress their generated automations and schedules throughout execution, API status and control plans. Newly enabled Flows restart their stateful timing gates. The zone response includes optional `flow_control_id` and `flow_control_node_id` as internal ownership diagnostics.
Version 0.16.2: Flow adds the `zone_heat_cycle` action with `zone_id`, `day_target`, `night_target`, `day_min`, `boost_after_minutes` and `day_off_after_minutes`. An always-true Flow condition is sufficient. The Zone runtime stores the active `simple_heat` profile and timers; source `automation.flow` means automatic control, not manual. Nighttime modulation keeps the unit ON and uses 19/21/23 °C around a 20.6 °C target. Daytime power is OFF above the minimum until required, then OFF after 30 minutes at target. Existing `zone_thermostat` coasting options remain supported.
@@ -248,7 +248,7 @@ Response:
{
"status": "ok",
"name": "gree-controller",
"version": "0.16.3",
"version": "0.16.4",
"uptime_seconds": 1234,
"control_ready": true,
"time": "2026-08-30T06:54:00Z"
@@ -311,7 +311,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.3",
"version": "0.16.4",
"uptime_seconds": 1234,
"auth_required": false,
"control_ready": true,
+6
View File
@@ -22,6 +22,12 @@ Flow is an authoring/orchestration layer. It does not replace the thermostat, sc
- Thermostat hysteresis, compressor protection, schedule hand-back, manual/local ownership and Temporary Quick Thermostat keep their existing priority.
- GREE fan/quiet/sleep and dry/fan HVAC modes are suppressed on thermostat-assigned devices when they would fight the regulator. Device-only features such as light/turbo/louver/air/xfan/health remain available through the normal command path.
## Wyłączanie Flow / Disabling Flow (0.16.4)
`Flow.enabled=false` and `draft=true` are authoritative: generated automations and schedules do not execute, create deadlines or contribute to the control plan even if a legacy/imported child record still says `enabled=true`. Runtime-only Flow checkpoints cannot overwrite `enabled`, resurrect deleted rules or persist across a Flow recompile. Actions recheck both their own enabled state and the parent Flow under the automation execution lock.
Disabling, deleting or replacing a thermostat Flow releases zone-level thermostat intent attributed to that Flow (including stale manual setpoints and pending compressor actions) immediately during the Flow edit, with a regulator-cycle fallback for old/imported data. Manual/local takeover is never cleared. Single-shot device/group/HA commands that have already reached an external device/service are not retroactively undone; disable blocks **future executions**. Stateful timing counters, change-event latches, rolling samples and cooldowns start fresh when the Flow is enabled again; disabled time is not counted.
## Concurrency invariants
Structural Flow writes use the global order:
+16 -2
View File
@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "GREE Controller API",
"version": "0.16.3",
"version": "0.16.4",
"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.3"
"example": "0.16.4"
},
"uptime_seconds": {
"type": "integer",
@@ -7380,6 +7380,20 @@
"heat_coasting": {
"type": "boolean",
"description": "True when the controller requested low setpoint while keeping unit powered ON."
},
"flow_control_id": {
"type": [
"string",
"null"
],
"description": "Last Flow owning the zone; null if none or legacy record."
},
"flow_control_node_id": {
"type": [
"string",
"null"
],
"description": "Last Flow action block owning the zone; null if none or legacy record."
}
},
"required": [