{ "swagger": "2.0", "info": { "title": "econet/v1alpha1/econet.proto", "version": "version not set" }, "tags": [ { "name": "EconetService" } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/v1alpha1/devices": { "get": { "operationId": "EconetService_ListDevices", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1alpha1ListDevicesResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "EconetService" ] } }, "/v1alpha1/devices/{serialNumber}": { "get": { "operationId": "EconetService_GetDevice", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1alpha1GetDeviceResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "serialNumber", "in": "path", "required": true, "type": "string" } ], "tags": [ "EconetService" ] } }, "/v1alpha1/devices/{serialNumber}/mode": { "post": { "operationId": "EconetService_SetMode", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1alpha1SetModeResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "serialNumber", "in": "path", "required": true, "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/EconetServiceSetModeBody" } } ], "tags": [ "EconetService" ] } } }, "definitions": { "EconetServiceSetModeBody": { "type": "object", "properties": { "mode": { "$ref": "#/definitions/v1alpha1Mode" } } }, "protobufAny": { "type": "object", "properties": { "@type": { "type": "string" } }, "additionalProperties": {} }, "rpcStatus": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "details": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/protobufAny" } } } }, "v1alpha1Device": { "type": "object", "properties": { "serialNumber": { "type": "string" }, "deviceId": { "type": "string" }, "friendlyName": { "type": "string" }, "type": { "type": "string", "title": "water_heater, thermostat, unknown" }, "genericType": { "type": "string", "title": "e.g. heatpumpWaterHeater, gasWaterHeater" }, "connected": { "type": "boolean" }, "wifiSignal": { "type": "integer", "format": "int32", "title": "dB, MQTT-only" }, "mode": { "type": "string", "title": "kebab-case, e.g. heat-pump, energy-saving" }, "enabled": { "type": "boolean" }, "running": { "type": "boolean" }, "runningState": { "type": "string" }, "setpoint": { "type": "integer", "format": "int32", "title": "degrees Fahrenheit" }, "setpointMin": { "type": "integer", "format": "int32" }, "setpointMax": { "type": "integer", "format": "int32" }, "hotWaterAvailability": { "type": "integer", "format": "int32", "title": "0/33/66/100, -1 unknown" }, "alertCount": { "type": "integer", "format": "int32" }, "away": { "type": "boolean" }, "lastUpdated": { "type": "string", "format": "date-time" } }, "description": "Device is the live state of a single Rheem EcoNet device\n(typically a water heater) as reported by the Rheem cloud." }, "v1alpha1GetDeviceResponse": { "type": "object", "properties": { "device": { "$ref": "#/definitions/v1alpha1Device" } } }, "v1alpha1ListDevicesResponse": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/v1alpha1Device" } } } }, "v1alpha1Mode": { "type": "string", "enum": [ "MODE_UNSPECIFIED", "MODE_OFF", "MODE_ELECTRIC", "MODE_ENERGY_SAVING", "MODE_HEAT_PUMP", "MODE_HIGH_DEMAND", "MODE_GAS", "MODE_PERFORMANCE", "MODE_VACATION" ], "default": "MODE_UNSPECIFIED", "description": "Mode is a settable operating mode for a water heater. The values mirror the\nkebab-case slugs reported in Device.mode. Not every device supports every\nmode; the supported set is device-specific (derived from the unit's reported\nmode list), so SetMode validates against the target device." }, "v1alpha1SetModeResponse": { "type": "object", "properties": { "device": { "$ref": "#/definitions/v1alpha1Device", "description": "Last-known device state. The mode change is applied asynchronously by the\nRheem cloud, so this reflects the requested mode only after a later poll." } } } } }