implement econet exporter
Build and Publish / go-binaries (push) Has been skipped
Build and Publish / container-images (push) Has been skipped
Build and Publish / helm-release (push) Successful in 19s
Build and Publish / check-chart (push) Successful in 52s

This commit is contained in:
2026-07-04 17:22:31 -04:00
parent 8198e8cfee
commit b2ec72352a
44 changed files with 2226 additions and 1281 deletions
+195
View File
@@ -0,0 +1,195 @@
{
"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"
]
}
}
},
"definitions": {
"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"
}
}
}
}
}
}
-99
View File
@@ -1,99 +0,0 @@
{
"swagger": "2.0",
"info": {
"title": "demo/app/v1alpha1/app.proto",
"version": "version not set"
},
"tags": [
{
"name": "DemoAppService"
}
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/v1alpha1/demo": {
"get": {
"operationId": "DemoAppService_GetDemo",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v1alpha1GetDemoResponse"
}
},
"default": {
"description": "An unexpected error response.",
"schema": {
"$ref": "#/definitions/rpcStatus"
}
}
},
"parameters": [
{
"name": "language",
"in": "query",
"required": false,
"type": "string"
}
],
"tags": [
"DemoAppService"
]
}
}
},
"definitions": {
"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"
}
}
}
},
"v1alpha1GetDemoResponse": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time"
},
"fact": {
"type": "string"
},
"source": {
"type": "string"
},
"language": {
"type": "string"
}
},
"title": "Returns a randome fact, because this is a demo app\nso what else do we do?"
}
}
}
+30 -23
View File
@@ -1,22 +1,5 @@
{
"definitions": {
"ConfigDemoOpts": {
"properties": {
"factLang": {
"default": "en",
"type": "string"
},
"factType": {
"default": "random",
"enum": [
"today",
"random"
],
"type": "string"
}
},
"type": "object"
},
"ConfigGRPCConfig": {
"properties": {
"enableGRPCGateway": {
@@ -41,6 +24,10 @@
"default": "/grpc-api",
"type": "string"
},
"grpcGatewayPathStrip": {
"default": false,
"type": "boolean"
},
"listen": {
"type": "string"
},
@@ -52,6 +39,21 @@
},
"ConfigHTTPConfig": {
"properties": {
"corsAllowCredentials": {
"type": "boolean"
},
"corsAllowPrivateNetwork": {
"type": "boolean"
},
"corsAllowedOrigins": {
"items": {
"type": "string"
},
"type": "array"
},
"corsEnabled": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
@@ -121,6 +123,15 @@
}
},
"properties": {
"costPerKWH": {
"type": "number"
},
"econetEmail": {
"type": "string"
},
"econetPassword": {
"type": "string"
},
"environment": {
"type": "string"
},
@@ -136,15 +147,11 @@
"name": {
"type": "string"
},
"opts": {
"$ref": "#/definitions/ConfigDemoOpts"
},
"otel": {
"$ref": "#/definitions/ConfigOTELConfig"
},
"timezone": {
"default": "UTC",
"type": "string"
"usageInterval": {
"type": "integer"
},
"version": {
"type": "string"