v0.15.15
This commit is contained in:
+23
-3
@@ -1,6 +1,6 @@
|
||||
# GREE Controller API reference
|
||||
|
||||
HTTP and WebSocket API for GREE Controller **0.15.14**.
|
||||
HTTP and WebSocket API for GREE Controller **0.15.15**.
|
||||
|
||||
[← Main documentation](../README.md)
|
||||
|
||||
@@ -163,6 +163,7 @@ Common statuses:
|
||||
| POST | `/api/groups/{id}/control` | Group control enable/mode/preset/custom-temperature control. |
|
||||
| POST | `/api/house/control` | Set global thermostat mode. |
|
||||
| POST | `/api/house/power` | Bulk ON/OFF for all thermostats and enabled units; no persistent global gate. |
|
||||
| POST | `/api/house/emergency-stop` | Persistently pause/resume automation; activation sends one-shot OFF to enabled units. |
|
||||
| POST | `/api/house/preset` | Set/clear whole-house preset override. |
|
||||
|
||||
### Schedules and automations
|
||||
@@ -225,6 +226,7 @@ Common statuses:
|
||||
| POST | `/api/integrations/home-assistant/house/control` | Restricted house mode. |
|
||||
| POST | `/api/integrations/home-assistant/house/preset` | Restricted house preset. |
|
||||
| POST | `/api/integrations/home-assistant/house/power` | Restricted bulk all-thermostat/all-unit power action. |
|
||||
| POST | `/api/integrations/home-assistant/house/emergency-stop` | Restricted persistent emergency automation pause/resume. |
|
||||
| POST | `/api/integrations/home-assistant/zones/{id}/control` | Restricted thermostat-zone control. |
|
||||
|
||||
---
|
||||
@@ -241,7 +243,7 @@ Response:
|
||||
{
|
||||
"status": "ok",
|
||||
"name": "gree-controller",
|
||||
"version": "0.15.14",
|
||||
"version": "0.15.15",
|
||||
"uptime_seconds": 1234,
|
||||
"control_ready": true,
|
||||
"time": "2026-08-30T06:54:00Z"
|
||||
@@ -304,7 +306,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.15.14",
|
||||
"version": "0.15.15",
|
||||
"uptime_seconds": 1234,
|
||||
"auth_required": false,
|
||||
"control_ready": true,
|
||||
@@ -845,6 +847,20 @@ Response includes:
|
||||
}
|
||||
```
|
||||
|
||||
### `POST /api/house/emergency-stop`
|
||||
|
||||
```json
|
||||
{
|
||||
"active": true
|
||||
}
|
||||
```
|
||||
|
||||
`true` persistently pauses thermostat/schedule/automation execution, clears stale compressor-protection tasks, and makes a one-shot best-effort OFF request to every enabled unit. The pause survives controller restarts, but startup does **not** replay OFF commands. Manual/direct device control remains available while automation is paused.
|
||||
|
||||
`false` releases only the automation safety gate. It does not force devices ON; the controller immediately evaluates current schedules, temperatures and ownership again.
|
||||
|
||||
Response includes `active`, `since`, `changed`, `failed`, and `cleared_queues`.
|
||||
|
||||
### `POST /api/house/preset`
|
||||
|
||||
```json
|
||||
@@ -1489,6 +1505,10 @@ Same `{ "preset": "auto|comfort|sleep|away" }` semantics.
|
||||
|
||||
Same `{ "power": true|false }` semantics.
|
||||
|
||||
### `POST /api/integrations/home-assistant/house/emergency-stop`
|
||||
|
||||
Same `{ "active": true|false }` emergency-stop semantics as the administrator endpoint.
|
||||
|
||||
### `POST /api/integrations/home-assistant/zones/{id}/control`
|
||||
|
||||
Same `ZoneControlPatch` thermostat semantics as the normal zone control endpoint. The internal source is recorded as Home Assistant thermostat control.
|
||||
|
||||
+127
-2
@@ -2,7 +2,7 @@
|
||||
"openapi": "3.1.0",
|
||||
"info": {
|
||||
"title": "GREE Controller API",
|
||||
"version": "0.15.14",
|
||||
"version": "0.15.15",
|
||||
"summary": "Local HTTP/WebSocket API for GREE Controller",
|
||||
"description": "Local API used by the GREE Controller Web UI and Home Assistant integration.",
|
||||
"license": {
|
||||
@@ -1814,6 +1814,62 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/house/emergency-stop": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"House"
|
||||
],
|
||||
"summary": "Emergency automation stop",
|
||||
"description": "Persistently pauses thermostat and automation execution. Activating the stop first stores the safety gate, clears pending compressor-protection tasks, then makes a one-shot best-effort OFF request to every enabled unit. The pause survives controller restarts, but OFF commands are not replayed on startup. Releasing the stop does not force devices ON; current control conditions are evaluated again.",
|
||||
"operationId": "setHouseEmergencyStop",
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/HouseEmergencyStopPatch"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"BearerToken": []
|
||||
},
|
||||
{
|
||||
"ApiTokenHeader": []
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Emergency stop state and one-shot OFF result",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest"
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#/components/responses/Unauthorized"
|
||||
},
|
||||
"502": {
|
||||
"$ref": "#/components/responses/BadGateway"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalError"
|
||||
},
|
||||
"424": {
|
||||
"$ref": "#/components/responses/FailedDependency"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/house/preset": {
|
||||
"post": {
|
||||
"tags": [
|
||||
@@ -3937,6 +3993,62 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/integrations/home-assistant/house/emergency-stop": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Home Assistant"
|
||||
],
|
||||
"summary": "Emergency automation stop from Home Assistant",
|
||||
"description": "Restricted Home Assistant surface for the same persistent emergency-stop semantics as the administrator endpoint. Activation pauses automatic control across restarts and sends OFF only once; release resumes evaluation without forcing devices ON.",
|
||||
"operationId": "haSetHouseEmergencyStop",
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/HouseEmergencyStopPatch"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"BearerToken": []
|
||||
},
|
||||
{
|
||||
"ApiTokenHeader": []
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Emergency stop state and one-shot OFF result",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"$ref": "#/components/responses/BadRequest"
|
||||
},
|
||||
"401": {
|
||||
"$ref": "#/components/responses/Unauthorized"
|
||||
},
|
||||
"502": {
|
||||
"$ref": "#/components/responses/BadGateway"
|
||||
},
|
||||
"500": {
|
||||
"$ref": "#/components/responses/InternalError"
|
||||
},
|
||||
"424": {
|
||||
"$ref": "#/components/responses/FailedDependency"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/integrations/home-assistant/zones/{id}/control": {
|
||||
"post": {
|
||||
"tags": [
|
||||
@@ -5967,7 +6079,7 @@
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"example": "0.15.14"
|
||||
"example": "0.15.15"
|
||||
},
|
||||
"uptime_seconds": {
|
||||
"type": "integer",
|
||||
@@ -7412,6 +7524,19 @@
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"HouseEmergencyStopPatch": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"active": {
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"active"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"HousePresetPatch": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
Reference in New Issue
Block a user