Skip to content

API Endpoints

Generated from the FlexConnect OpenAPI definition bundled with @fh-e/proto-sdk. Select an SDK version to view the endpoints bundled with that release.

Proto SDK version
72 endpointsOpenAPI 3.1.0FlexHome.Energy FlexConnect JSON API

POST/app/v1/ApiListRequest

Api List Request

The API list request.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "apis": [
    {
      "id": 1,
      "name": "app",
      "code": "a",
      "version": "1",
      "description": "The application API in version 1.",
      "permissions": [
        {
          "permissionTypeId": 1,
          "permissionCodeId": 1
        }
      ]
    }
  ]
}

POST/app/v1/BatteryControlModifyRequest

Battery Control Modify Request

Request to modify the control mode and/or the setpoint power of the battery.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "controlMode": 3,
  "setpointPower": {
    "number": 0
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/BatteryControlRequest

Battery Control Request

Request the current control state and mode of the battery.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "currentControlInstructions": {
    "controlState": 3,
    "controlMode": 1,
    "setpointPower": {
      "number": 1000
    },
    "timestamp": 1715769600000
  },
  "desiredControlInstructions": {
    "controlMode": 1,
    "setpointPower": {
      "number": 1000
    },
    "timestamp": 1715769600000
  }
}

POST/app/v1/BatteryStateRequest

Battery State Request

Request the current state of the battery.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "state": {
    "stateOfCharge": {
      "number": 62
    },
    "stateOfHealth": {
      "number": 100
    },
    "stateOfEnergy": {
      "number": 1250
    },
    "usableCapacity": {
      "number": 2000
    },
    "stateOfOperation": 1
  }
}

POST/app/v1/DeviceAttributeAddRequest

Device Attribute Add Request

The device attribute add request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "attributes": [
    {
      "id": 1,
      "value": "abcd"
    }
  ]
}

200 Response Example

Success

json
{}

POST/app/v1/DeviceGroupAddRequest

Device Group Add Request

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "groups": [
    {
      "id": 1
    }
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/DeviceIdentifierAddRequest

Device Identifier Add Request

The device identifier add request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "identifiers": [
    {
      "type": {
        "id": 4
      },
      "stringValue": "Y0123456789"
    }
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/DeviceTagAddRequest

Device Tag Add Request

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "tags": [
    {
      "id": 1
    }
  ]
}

200 Response Example

Success

json
{}

POST/app/v1/FieldAttributeListRequest

Field Attribute List Request

The field attribute list request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "fieldAttributes": [
    {
      "id": 1,
      "name": "read",
      "description": "The field value is readable."
    }
  ]
}

POST/app/v1/FieldCreateRequest

Field Create Request

The field create request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "fieldTypeId": 2,
  "fieldAttributeIds": [],
  "fieldValueTypeId": 1,
  "name": "Battery overvoltage alarm",
  "description": "Battery overvoltage alarm, 1=error, 0=no error",
  "productModelIds": [],
  "modbusFieldProperties": {
    "modbusRegisterIds": []
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "field": {
    "id": 1,
    "fieldTypeId": 2,
    "fieldAttributeIds": [],
    "fieldValueTypeId": 1,
    "name": "Battery errors",
    "description": "Battery errors comprising a bit vector of errors related to the battery.",
    "productModelIds": [],
    "modbusFieldProperties": {
      "modbusRegisters": [
        {
          "id": 1,
          "registerTypeId": 1,
          "registerAddress": 1016,
          "registerState": 1,
          "name": "Battery overvoltage alarm",
          "description": "Battery overvoltage alarm, 1=error, 0=no error",
          "productModelIds": [],
          "functionIds": []
        }
      ]
    }
  }
}

POST/app/v1/FieldDeleteRequest

Field Delete Request

The field delete request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "id": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/FieldListRequest

Field List Request

The field list request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "limit": 100
  },
  "filter": {
    "fieldIds": [],
    "productModelIds": [],
    "modbusRegisterIds": [],
    "modbusRegisterAddresses": [],
    "systemFieldAddresses": []
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "fields": [
    {
      "id": 1,
      "fieldTypeId": 2,
      "fieldAttributeIds": [],
      "fieldValueTypeId": 1,
      "name": "Battery errors",
      "description": "Battery errors comprising a bit vector of errors related to the battery.",
      "productModelIds": [],
      "modbusFieldProperties": {
        "modbusRegisters": [
          {
            "id": 1,
            "registerTypeId": 1,
            "registerAddress": 1016,
            "registerState": 1,
            "name": "Battery overvoltage alarm",
            "description": "Battery overvoltage alarm, 1=error, 0=no error",
            "productModelIds": [],
            "functionIds": []
          }
        ]
      }
    }
  ]
}

POST/app/v1/FieldModifyRequest

Field Modify Request

The field modify request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": 1,
  "name": "Battery errors",
  "description": "Battery errors comprising a bit vector of errors related to the battery.",
  "productModelIds": [],
  "fieldAttributeIds": [],
  "modbusFieldProperties": {
    "modbusRegisterIds": []
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "field": {
    "id": 1,
    "fieldTypeId": 2,
    "fieldAttributeIds": [],
    "fieldValueTypeId": 1,
    "name": "Battery errors",
    "description": "Battery errors comprising a bit vector of errors related to the battery.",
    "productModelIds": [],
    "modbusFieldProperties": {
      "modbusRegisters": [
        {
          "id": 1,
          "registerTypeId": 1,
          "registerAddress": 1016,
          "registerState": 1,
          "name": "Battery overvoltage alarm",
          "description": "Battery overvoltage alarm, 1=error, 0=no error",
          "productModelIds": [],
          "functionIds": []
        }
      ]
    }
  }
}

POST/app/v1/FieldValueListRequest

Field Value List Request

The field value list request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "limit": 100
  },
  "filter": {
    "id": {
      "type": {
        "id": 2
      },
      "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
    },
    "period": {
      "startTime": 1740268800000,
      "endTime": 1740285000000
    }
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "fieldValueNodes": [
    {
      "timestamp": 1740268800000,
      "fieldValues": [
        {
          "id": 6,
          "valueInt": 100
        },
        {
          "id": 7,
          "valueReal": 20.3
        }
      ]
    },
    {
      "timestamp": 1740269800,
      "fieldValues": [
        {
          "id": 6,
          "valueInt": 101
        },
        {
          "id": 7,
          "valueReal": 20
        }
      ]
    }
  ]
}

POST/app/v1/FieldValueTypeListRequest

Field Value Type List Request

The field value type list request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "fieldValueTypes": [
    {
      "id": 1,
      "name": "uint16",
      "description": "A 16-bit unsigned integer.",
      "size": 16
    }
  ]
}

POST/app/v1/FirmwareDeploymentFileLocationConfigListRequest

Firmware Deployment File Location Config List Request

The firmware deployment file location config list request.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentFileLocationConfigs": [
    {
      "id": 1,
      "method": 1,
      "name": "FlexHome Energy MQTT",
      "description": "The FlexHome Energy MQTT broker."
    },
    {
      "id": 2,
      "method": 2,
      "name": "FlexHome Energy main HTTP GET",
      "description": "The main FlexHome Energy file server."
    }
  ]
}

POST/app/v1/FirmwareDeploymentGroupAssignDeviceRequest

Firmware Deployment Group Assign Device Request

The firmware deployment group assign device request assigns devices to a firmware deployment group. To assign devices to a firmware deployment group, two subequent calls with message `FirmwareDeploymentGroupAssignDeviceRequest` must be made. The first call must specify the action `PREPARE`. The integrity value must be omitted. The `FirmwareDeploymentGroupAssignDeviceResponse` lists the devices that will be part of the assignment along with an integrity value. The listed devices are mentioned for review and show their current firmware deployment group assignment. The identifiers of the devices are of the FlexHome.Energy device identifier type. The second call must specify the action `COMMIT`. The integrity value obtained in the response from the first call must be provided. The filter criteria should specify the same devices as listed in the response for the first call. For unassigning devices from any firmware deployment group, the firmware deployment group identifier must be set to 0.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroupId": 1,
  "filter": {
    "ids": [
      {
        "type": {
          "id": 2
        },
        "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
      }
    ]
  },
  "action": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "devices": [
    {
      "ids": [
        {
          "type": {
            "id": 1
          },
          "integerValue": 1234567890
        }
      ],
      "firmwareDeploymentGroupId": 1
    }
  ],
  "integrityValue": "1234567890"
}

POST/app/v1/FirmwareDeploymentGroupAssignReleaseRequest

Firmware Deployment Group Assign Release Request

The firmware deployment group assign release request assigns a firmware release to a firmware deployment group. To assign a firmware release to a firmware deployment group, two subequent calls with message `FirmwareDeploymentGroupAssignReleaseRequest` must be made. The first call must specify the action `PREPARE`. The integrity value must be omitted. The `FirmwareDeploymentGroupAssignReleaseResponse` lists the firmware release that will be part of the assignment along with an integrity value. The second call must specify the action `COMMIT`. The integrity value obtained in the response from the first call must be provided. For unassigning a firmware release from the firmware deployment group, the firmware release identifier must be set to 0.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroupId": 1,
  "firmwareReleaseId": 1,
  "action": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "previousFirmwareRelease": {
    "firmwareReleaseId": 1,
    "firmwareTemplateId": 1,
    "firmwareReleaseType": 1,
    "firmwareReleaseTag": "v1.0.0",
    "description": "The FlexHome Energy control management system firmware release 1.0.0.",
    "firmwareFiles": [
      {
        "firmwareFileId": 1,
        "firmwareFileTypeId": 1,
        "firmwareFileBuildType": 1,
        "name": "fw.bin",
        "description": "FlexHome Energy CMS firmware autogenerated by pipeline."
      }
    ],
    "productModelId": 1
  },
  "newFirmwareRelease": {
    "firmwareReleaseId": 1,
    "firmwareTemplateId": 1,
    "firmwareReleaseType": 1,
    "firmwareReleaseTag": "v1.0.0",
    "description": "The FlexHome Energy control management system firmware release 1.0.0.",
    "firmwareFiles": [
      {
        "firmwareFileId": 1,
        "firmwareFileTypeId": 1,
        "firmwareFileBuildType": 1,
        "name": "fw.bin",
        "description": "FlexHome Energy CMS firmware autogenerated by pipeline."
      }
    ],
    "productModelId": 1
  },
  "integrityValue": "1234567890"
}

POST/app/v1/FirmwareDeploymentGroupCreateRequest

Firmware Deployment Group Create Request

The firmware deployment group create request creates a new firmware deployment group.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroup": {
    "productModelId": 1,
    "name": "FlexHome Energy CMS",
    "description": "The FlexHome Energy control management system firmware deployment group.",
    "firmwareDeploymentFileLocationConfigIds": [
      1,
      2
    ]
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroup": {
    "firmwareDeploymentGroupId": 1,
    "productModelId": 1,
    "name": "FlexHome Energy CMS",
    "description": "The FlexHome Energy control management system firmware deployment group.",
    "numDevices": 0,
    "firmwareDeploymentFileLocationConfigIds": [
      1,
      2
    ]
  }
}

POST/app/v1/FirmwareDeploymentGroupDeleteRequest

Firmware Deployment Group Delete Request

The firmware deployment group delete request deletes an existing firmware deployment group.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroupId": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/FirmwareDeploymentGroupListRequest

Firmware Deployment Group List Request

The firmware deployment group list request obtains firmware deployment groups according to the specified filter.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "filter": {
    "firmwareReleaseIds": []
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroups": [
    {
      "firmwareDeploymentGroupId": 1,
      "productModelId": 1,
      "name": "FlexHome Energy CMS",
      "description": "The FlexHome Energy control management system firmware deployment group.",
      "firmwareRelease": {
        "firmwareReleaseId": 1,
        "firmwareTemplateId": 1,
        "firmwareReleaseType": 1,
        "firmwareReleaseTag": "v1.0.0",
        "description": "The FlexHome Energy control management system firmware release 1.0.0.",
        "firmwareFiles": [
          {
            "firmwareFileId": 1,
            "firmwareFileTypeId": 1,
            "firmwareFileBuildType": 1,
            "name": "fw.bin",
            "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
            "version": "1.0.0",
            "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
            "size": 123456
          }
        ],
        "productModelId": 1
      },
      "numDevices": 10,
      "firmwareDeploymentFileLocationConfigIds": [
        1,
        2
      ]
    }
  ]
}

POST/app/v1/FirmwareDeploymentGroupModifyRequest

Firmware Deployment Group Modify Request

The firmware deployment group modify request modifies an existing firmware deployment group.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroupId": 1,
  "name": "FlexHome Energy CMS",
  "description": "The FlexHome Energy control management system firmware deployment group.",
  "firmwareDeploymentFileLocationConfigIds": [
    1,
    2
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareDeploymentGroup": {
    "firmwareDeploymentGroupId": 1,
    "productModelId": 1,
    "name": "FlexHome Energy CMS",
    "description": "The FlexHome Energy control management system firmware deployment group.",
    "firmwareRelease": {
      "firmwareReleaseId": 1,
      "firmwareTemplateId": 1,
      "firmwareReleaseType": 1,
      "firmwareReleaseTag": "v1.0.0",
      "description": "The FlexHome Energy control management system firmware release 1.0.0.",
      "firmwareFiles": [
        {
          "firmwareFileId": 1,
          "firmwareFileTypeId": 1,
          "firmwareFileBuildType": 1,
          "name": "fw.bin",
          "description": "FlexHome Energy CMS firmware autogenerated by pipeline."
        }
      ],
      "productModelId": 1
    },
    "numDevices": 0,
    "firmwareDeploymentFileLocationConfigIds": [
      1,
      2
    ]
  }
}

POST/app/v1/FirmwareFileCreateRequest

Firmware File Create Request

The firmware file create request creates a new firmware file. The primary key for a file comprises the firmware_file_type_id, and the hash value. This endpoint may be called for the same file multiple times in order to obtain an upload location, given that the file has not been uploaded. The attributes name, description, version, and size may be modified in these subsequent calls.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFile": {
    "firmwareFileTypeId": 1,
    "firmwareFileBuildType": 1,
    "name": "fw.bin",
    "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
    "version": "1.0.0",
    "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
    "size": 123456
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "file": {
    "fileId": 1,
    "firmwareFileTypeId": 1,
    "firmwareFileBuildType": 1,
    "name": "fw.bin",
    "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
    "version": "1.0.0",
    "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
    "size": 123456,
    "location": {
      "method": 3,
      "path": "https://firmware.flexhome.energy/some-firmware-release/firmware.bin",
      "encryptionKey": "9df210a3509457f05bde11db338dc51530686875fd411da26c09ed21fed44146",
      "expiry": 1716393600000
    }
  }
}

POST/app/v1/FirmwareFileDeleteRequest

Firmware File Delete Request

The firmware file delete request deletes an existing firmware file. The firmware file must not be assigned to any firmware release.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFileId": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/FirmwareFileListRequest

Firmware File List Request

The firmware file list request obtains firmware files according to the specified filter. The firmware file details in the response are set according to the specified detail types.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "filter": {
    "firmwareFileTypeIds": [],
    "firmwareFileBuildTypes": []
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "files": [
    {
      "firmwareFileId": 1,
      "firmwareFileTypeId": 1,
      "firmwareFileBuildType": 1,
      "name": "fw.bin",
      "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
      "version": "1.0.0",
      "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
      "size": 123456,
      "location": {
        "method": 1,
        "path": "https://firmware.flexhome.energy/some-firmware-release/firmware.bin",
        "encryptionKey": "9df210a3509457f05bde11db338dc51530686875fd411da26c09ed21fed44146",
        "expiry": 1716393600000
      },
      "assignment": {
        "assignedFirmwareReleases": 2,
        "assignedDeploymentGroups": 1,
        "appliedDevices": 23
      }
    }
  ]
}

POST/app/v1/FirmwareFileModifyRequest

Firmware File Modify Request

The firmware file modify request modifies an existing firmware file.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFileId": 1,
  "name": "fw.bin",
  "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
  "version": "1.0.0"
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "file": {
    "firmwareFileId": 1,
    "firmwareFileTypeId": 1,
    "firmwareFileBuildType": 1,
    "name": "fw.bin",
    "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
    "version": "1.0.0",
    "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
    "size": 123456
  }
}

POST/app/v1/FirmwareFileTypeCreateRequest

Firmware File Type Create Request

The firmware file type create request creates a new firmware file type.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "name": "FlexHome Energy CMS",
  "description": "The FlexHome Energy control management system firmware file type.",
  "encoding": "application/octet-stream",
  "productModelIds": [
    1,
    2
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFileType": {
    "firmwareFileTypeId": 1,
    "name": "FlexHome Energy CMS",
    "description": "The FlexHome Energy control management system firmware file type.",
    "encoding": "application/octet-stream",
    "productModelIds": [
      1,
      2
    ]
  }
}

POST/app/v1/FirmwareFileTypeDeleteRequest

Firmware File Type Delete Request

The firmware file type delete request deletes an existing firmware file type.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFileTypeId": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/FirmwareFileTypeListRequest

Firmware File Type List Request

The firmware file type list request obtains all firmware file types.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFileTypes": [
    {
      "firmwareFileTypeId": 1,
      "name": "FlexHome Energy CMS",
      "description": "The FlexHome Energy control management system firmware file type.",
      "encoding": "application/octet-stream",
      "assignment": {
        "assignedFirmwareFiles": 1,
        "assignedFirmwareReleases": 2,
        "assignedFirmwareTemplates": 3
      },
      "productModelIds": [
        1,
        2
      ]
    }
  ]
}

POST/app/v1/FirmwareFileTypeModifyRequest

Firmware File Type Modify Request

The firmware file type modify request modifies an existing firmware file type.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFileTypeId": 1,
  "name": "FlexHome Energy CMS",
  "description": "The FlexHome Energy control management system firmware file type.",
  "encoding": "application/octet-stream",
  "productModelIds": [
    1,
    2
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareFileType": {
    "firmwareFileTypeId": 1,
    "name": "FlexHome Energy CMS",
    "description": "The FlexHome Energy control management system firmware file type.",
    "encoding": "application/octet-stream",
    "productModelIds": [
      1,
      2
    ]
  }
}

POST/app/v1/FirmwareReleaseCreateRequest

Firmware Release Create Request

The firmware release create request creates a new firmware release.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareTemplateId": 1,
  "firmwareReleaseType": 1,
  "firmwareReleaseTag": "v1.0.0",
  "description": "The FlexHome Energy control management system firmware release 1.0.0.",
  "firmwareFileIds": [
    1,
    2
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareRelease": {
    "firmwareReleaseId": 1,
    "firmwareTemplateId": 1,
    "firmwareReleaseType": 1,
    "firmwareReleaseTag": "v1.0.0",
    "description": "The FlexHome Energy control management system firmware release 1.0.0.",
    "firmwareFiles": [
      {
        "firmwareFileId": 1,
        "firmwareFileTypeId": 1,
        "firmwareFileBuildType": 1,
        "name": "fw.bin",
        "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
        "version": "1.0.0",
        "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
        "size": 123456
      }
    ],
    "productModelId": 1
  }
}

POST/app/v1/FirmwareReleaseDeleteRequest

Firmware Release Delete Request

The firmware release delete request deletes an existing firmware release. The firmware release must not be assigned to any firmware deployment group or to any device.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareReleaseId": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/FirmwareReleaseListRequest

Firmware Release List Request

The firmware release list request obtains firmware releases according to the specified filter.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "filter": {
    "firmwareReleaseIds": []
  },
  "detailTypes": []
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareReleases": [
    {
      "firmwareReleaseId": 1,
      "firmwareTemplateId": 1,
      "firmwareReleaseType": 1,
      "firmwareReleaseTag": "v1.0.0",
      "description": "The FlexHome Energy control management system firmware release 1.0.0.",
      "firmwareFiles": [
        {
          "firmwareFileId": 1,
          "firmwareFileTypeId": 1,
          "firmwareFileBuildType": 1,
          "name": "fw.bin",
          "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
          "version": "1.0.0",
          "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
          "size": 123456
        }
      ],
      "productModelId": 1,
      "assignment": {
        "appliedDevices": 10,
        "assignedDeploymentGroups": 1
      }
    }
  ]
}

POST/app/v1/FirmwareReleaseModifyRequest

Firmware Release Modify Request

The firmware release modify request modifies an existing firmware release.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareRelease": {
    "firmwareReleaseId": 1,
    "firmwareTemplateId": 1,
    "firmwareReleaseType": 1,
    "firmwareReleaseTag": "v1.0.0",
    "description": "The FlexHome Energy control management system firmware release 1.0.0.",
    "firmwareFiles": [
      {
        "firmwareFileId": 1,
        "firmwareFileTypeId": 1,
        "firmwareFileBuildType": 1,
        "name": "fw.bin",
        "description": "FlexHome Energy CMS firmware autogenerated by pipeline.",
        "version": "1.0.0",
        "hash": "f3656001da528100b5a23f807a3abe1c52025761c940b1c20648447827d96ac1",
        "size": 123456
      }
    ],
    "productModelId": 1
  }
}

POST/app/v1/FirmwareReleaseTypeListRequest

Firmware Release Type List Request

The firmware release type list request.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareReleaseTypes": [
    {
      "id": 1,
      "name": "production",
      "description": "The firmware release type for production firmware."
    }
  ]
}

POST/app/v1/FirmwareTemplateCreateRequest

Firmware Template Create Request

The firmware template create request creates a new firmware template.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "productModelId": 1,
  "name": "FlexHome Energy CMS",
  "description": "The FlexHome Energy control management system firmware template.",
  "firmwareFileTypeIds": []
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareTemplate": {
    "firmwareTemplateId": 1,
    "productModelId": 1,
    "name": "FlexHome Energy CMS",
    "description": "The FlexHome Energy control management system firmware template.",
    "firmwareFileTypeIds": []
  }
}

POST/app/v1/FirmwareTemplateDeleteRequest

Firmware Template Delete Request

The firmware template delete request deletes an existing firmware template. The firmware template must not be used in any firmware release.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareTemplateId": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/FirmwareTemplateListRequest

Firmware Template List Request

The firmware template list request obtains a list of all firmware templates.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareTemplates": [
    {
      "firmwareTemplateId": 1,
      "productModelId": 1,
      "name": "FlexHome Energy CMS",
      "description": "The FlexHome Energy control management system firmware.",
      "firmwareFileTypeIds": [],
      "assignment": {
        "assignedFirmwareReleases": 2
      }
    }
  ]
}

POST/app/v1/FirmwareTemplateModifyRequest

Firmware Template Modify Request

The firmware template modify request modifies an existing firmware template.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareTemplateId": 1,
  "name": "FlexHome Energy CMS",
  "description": "The FlexHome Energy control management system firmware template."
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "firmwareTemplate": {
    "firmwareTemplateId": 1,
    "productModelId": 1,
    "name": "FlexHome Energy CMS",
    "description": "The FlexHome Energy control management system firmware template.",
    "firmwareFileTypeIds": []
  }
}

POST/app/v1/IdentifierTypeListRequest

Identifier Type List Request

Request to obtain the list of available identifier types.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "identifierTypes": [
    {
      "id": 2,
      "identifierValueTypeId": 3,
      "name": "SKI",
      "description": "Subject key identifier as used by the EEBus protocol, e.g. D13493A9BE2949D78597342AD5ED2133."
    }
  ]
}

POST/app/v1/IdentifierValueTypeListRequest

Identifier Value Type List Request

Request to obtain the list of available identifier value types.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "identifierValueTypes": [
    {
      "id": 1,
      "name": "INT32",
      "description": "A 32 bit signed integer value."
    }
  ]
}

POST/app/v1/ModbusFunctionListRequest

Modbus Function List Request

The modbus function list request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "modbusFunctions": [
    {
      "id": 1,
      "functionCode": "0x01",
      "name": "MODBUS_FUNCTION_READ_COILS",
      "description": "Read the status of writable discrete outputs, i.e. coils that represent single-bit values. Typically used to read on/off or true/false states.",
      "registerTypeIds": []
    }
  ]
}

POST/app/v1/ModbusRegisterCreateRequest

Modbus Register Create Request

The modbus register create request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "registerTypeId": 1,
  "registerAddress": 1016,
  "registerState": 1,
  "name": "Battery overvoltage alarm",
  "description": "Battery overvoltage alarm, 1=error, 0=no error",
  "productModelIds": [],
  "functionIds": []
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "modbusRegister": {
    "id": 1,
    "registerTypeId": 1,
    "registerAddress": 1016,
    "registerState": 1,
    "name": "Battery overvoltage alarm",
    "description": "Battery overvoltage alarm, 1=error, 0=no error",
    "productModelIds": [],
    "assignment": {
      "assignedModbusFields": 0
    },
    "functionIds": []
  }
}

POST/app/v1/ModbusRegisterDeleteRequest

Modbus Register Delete Request

The modbus register delete request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/ModbusRegisterListRequest

Modbus Register List Request

The modbus register list request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "limit": 100
  },
  "filter": {
    "registerAddresses": [],
    "registerIds": [],
    "registertypeIds": [],
    "productModelIds": []
  },
  "detailTypes": []
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "modbusRegisters": [
    {
      "id": 1,
      "registerTypeId": 1,
      "registerAddress": 1016,
      "registerState": 1,
      "name": "Battery overvoltage alarm",
      "description": "Battery overvoltage alarm, 1=error, 0=no error",
      "productModelIds": [],
      "assignment": {
        "assignedModbusFields": 4
      },
      "functionIds": []
    }
  ]
}

POST/app/v1/ModbusRegisterModifyRequest

Modbus Register Modify Request

The modbus register modify request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": 1,
  "registerState": 1,
  "name": "Battery overvoltage alarm",
  "description": "Battery overvoltage alarm, 1=error, 0=no error",
  "productModelIds": [],
  "functionIds": []
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "modbusRegister": {
    "id": 1,
    "registerTypeId": 1,
    "registerAddress": 1016,
    "registerState": 1,
    "name": "Battery overvoltage alarm",
    "description": "Battery overvoltage alarm, 1=error, 0=no error",
    "productModelIds": [],
    "assignment": {
      "assignedModbusFields": 0
    },
    "functionIds": []
  }
}

POST/app/v1/ModbusRegisterTypeListRequest

Modbus Register Type List Request

The modbus register type list request.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "modbusRegisterTypes": [
    {
      "id": 1,
      "name": "coil",
      "description": "Single bit read / write register representing a discrete output like a switch.",
      "size": 1
    }
  ]
}

POST/app/v1/NodeControlPowerScheduleModifyRequest

Node Control Power Schedule Modify Request

The request to modify the power schedule of one or more nodes.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "filter": {
    "ids": [
      {
        "type": {
          "id": 2
        },
        "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
      }
    ]
  },
  "adHocDefinition": {
    "scheduleSetId": 8,
    "definition": {
      "priority": 35,
      "controlState": 3,
      "elements": [
        {
          "startTime": 1740268800,
          "endTime": 1740285000,
          "desiredPowerSetpoint": {
            "number": 600
          }
        }
      ]
    }
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "ids": [
    {
      "type": {
        "id": 2
      },
      "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
    }
  ],
  "scheduleId": 582
}

POST/app/v1/NodeMeterReadingListRequest

Node Meter Reading List Request

The request to list the meter readings.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "limit": 100
  },
  "filter": {
    "id": {
      "type": {
        "id": 2
      },
      "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
    }
  },
  "startTime": 1779288295,
  "endTime": 1740285000
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "pagination": {
    "cursorNext": "1wsf="
  },
  "nodeMeterReadings": {
    "id": {
      "type": {
        "id": 2
      },
      "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
    },
    "timestamp": [
      1740268800,
      1740268801,
      1740268802
    ],
    "positiveEnergy": [
      1000,
      1001,
      1002
    ],
    "negativeEnergy": [
      2000,
      2001,
      2002
    ]
  }
}

POST/app/v1/NodeStateListRequest

Node State List Request

The request to list the node states.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "limit": 100
  },
  "filter": {
    "ids": [
      {
        "type": {
          "id": 2
        },
        "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
      }
    ]
  },
  "detailTypes": [
    1,
    2,
    3,
    4,
    5,
    6
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "pagination": {
    "cursorNext": "1wsf="
  },
  "nodeStates": [
    {
      "id": {
        "type": {
          "id": 2
        },
        "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
      },
      "connectionState": {
        "state": 1,
        "timestamp": 1740268800000
      },
      "operationState": {
        "state": 1,
        "timestamp": 1740268800000
      },
      "controlState": {
        "state": 3,
        "timestamp": 1740268800000
      },
      "batteryState": {
        "state": {
          "currentCapacity": {
            "number": 1677
          },
          "maximumUsableCapacity": {
            "number": 1842
          },
          "stateOfHealth": {
            "number": 912,
            "scale": -1
          }
        },
        "timestamp": 1740268800000
      },
      "powerState": {
        "state": {
          "desiredPowerSetpoint": {
            "number": 600
          },
          "currentActivePower": {
            "number": 500
          },
          "scheduleId": 582
        },
        "timestamp": 1740268800000
      },
      "uptimeSeconds": 62415
    }
  ]
}

POST/app/v1/PowerEnvelopeConstraintsRequest

Power Envelope Constraints Request

Request to obtain the constraints for the power envelope.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  }
}

200 Response Example

Success

No example available

POST/app/v1/PowerEnvelopeModifyRequest

Power Envelope Modify Request

Request to modify the current power envelope of a device. Each provided curve replaces the existing curve of the same type. Following rules apply for each curve: - A curve with no slots is ignored and does not replace the active curve. An error is raised and no curve is replaced if one or more of the following conditions are met: - All curves have no elements. - At least one curve is malformed by violating one or more rules defined in the PowerEnvelope message. - The consumption and production limit curves are incompatible. - The fallback consumption and the fallback production limit curves are incompatible.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "envelope": {
    "consumptionLimitCurve": [
      {
        "period": {
          "startTime": 1740268800000,
          "endTime": 1740285000000
        },
        "maxValue": {
          "number": 1000
        }
      },
      {
        "period": {
          "startTime": 1740285000000,
          "endTime": 1740306600000
        },
        "maxValue": {
          "number": 0
        }
      },
      {
        "period": {
          "startTime": 1740306600000,
          "endTime": 1740310200000
        },
        "maxValue": {
          "number": 500
        }
      },
      {
        "period": {
          "startTime": 1740310200000,
          "endTime": 1740322800000
        },
        "maxValue": {
          "number": 2000
        }
      },
      {
        "period": {
          "startTime": 1740322800000,
          "endTime": 1740355200000
        },
        "maxValue": {
          "number": 0
        }
      }
    ]
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/PowerEnvelopeRequest

Power Envelope Request

Request to obtain the current power envelope.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "deviceId": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "envelope": {
    "consumptionLimitCurve": [
      {
        "period": {
          "startTime": 1740268800000,
          "endTime": 1740285000000
        },
        "maxValue": {
          "number": 1000
        }
      },
      {
        "period": {
          "startTime": 1740285000000,
          "endTime": 1740306600000
        },
        "maxValue": {
          "number": 0
        }
      },
      {
        "period": {
          "startTime": 1740306600000,
          "endTime": 1740310200000
        },
        "maxValue": {
          "number": 500
        }
      },
      {
        "period": {
          "startTime": 1740310200000,
          "endTime": 1740322800000
        },
        "maxValue": {
          "number": 2000
        }
      },
      {
        "period": {
          "startTime": 1740322800000,
          "endTime": 1740355200000
        },
        "maxValue": {
          "number": 0
        }
      }
    ],
    "productionLimitCurve": [
      {
        "period": {
          "startTime": 1740268800000,
          "endTime": 1740285000000
        },
        "maxValue": {
          "number": 0
        }
      },
      {
        "period": {
          "startTime": 1740285000000,
          "endTime": 1740306600000
        },
        "maxValue": {
          "number": 800
        }
      },
      {
        "period": {
          "startTime": 1740306600000,
          "endTime": 1740333600000
        },
        "maxValue": {
          "number": 0
        }
      },
      {
        "period": {
          "startTime": 1740333600000,
          "endTime": 1740355200000
        },
        "maxValue": {
          "number": 800
        }
      }
    ],
    "fallbackConsumptionLimitCurve": [
      {
        "duration": 16200000,
        "maxValue": {
          "number": 1000
        }
      },
      {
        "duration": 21600000,
        "maxValue": {
          "number": 0
        }
      },
      {
        "duration": 19800000,
        "maxValue": {
          "number": 2000
        }
      },
      {
        "duration": 23400000,
        "maxValue": {
          "number": 0
        }
      },
      {
        "duration": 5400000,
        "maxValue": {
          "number": 500
        }
      }
    ],
    "fallbackProductionLimitCurve": [
      {
        "duration": 16200000,
        "maxValue": {
          "number": 0
        }
      },
      {
        "duration": 21600000,
        "maxValue": {
          "number": 800
        }
      },
      {
        "duration": 19800000,
        "maxValue": {
          "number": 0
        }
      },
      {
        "duration": 23400000,
        "maxValue": {
          "number": 800
        }
      },
      {
        "duration": 5400000,
        "maxValue": {
          "number": 0
        }
      }
    ]
  }
}

POST/app/v1/PowerScheduleCreateRequest

Power Schedule Create Request

The request to create a power schedule.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "scheduleSetId": 8,
  "definition": {
    "priority": 35,
    "controlState": 3,
    "elements": [
      {
        "startTime": 1740268800,
        "endTime": 1740285000,
        "desiredPowerSetpoint": {
          "number": 600
        }
      }
    ]
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "schedule": {
    "id": 582,
    "scheduleSetId": 8,
    "definition": {
      "priority": 35,
      "controlState": 3,
      "elements": [
        {
          "startTime": 1740268800,
          "endTime": 1740285000,
          "desiredPowerSetpoint": {
            "number": 600
          }
        }
      ]
    }
  }
}

POST/app/v1/PowerScheduleListRequest

Power Schedule List Request

The request to list the power schedules.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "limit": 2
  },
  "filter": {
    "scheduleIds": [
      582,
      583,
      584
    ],
    "scheduleSetIds": []
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "cursorNext": "1wsf="
  },
  "schedules": [
    {
      "id": 582,
      "scheduleSetId": 8,
      "definition": {
        "priority": 35,
        "controlState": 3,
        "elements": [
          {
            "startTime": 1740268800,
            "endTime": 1740285000,
            "desiredPowerSetpoint": {
              "number": 600
            }
          }
        ]
      }
    },
    {
      "id": 583,
      "scheduleSetId": 8,
      "definition": {
        "priority": 35,
        "controlState": 3,
        "elements": [
          {
            "startTime": 1740285000,
            "endTime": 1740301200,
            "desiredEnergy": {
              "number": -1200
            }
          }
        ]
      }
    }
  ]
}

POST/app/v1/PowerScheduleSetCreateRequest

Power Schedule Set Create Request

The request to create a power schedule set.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "name": "My energy-trading related power schedule set",
  "description": "This power schedule set is used for energy trading related power schedules.",
  "constraints": {
    "priorityMinimum": 10,
    "priorityMaximum": 59,
    "controlStates": [
      3,
      4
    ]
  },
  "groups": [
    {
      "id": 1
    }
  ],
  "tags": [
    {
      "id": 1
    }
  ],
  "attributes": [
    {
      "id": 1,
      "value": "This set is used for energy trading related power schedules."
    }
  ]
}

200 Response Example

Success

No example available

POST/app/v1/PowerScheduleSetDeleteRequest

Power Schedule Set Delete Request

The request to delete a power schedule set.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": 1234
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/PowerScheduleSetListRequest

Power Schedule Set List Request

The request to list the power schedule sets.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "pagination": {
    "limit": 100
  },
  "filter": {
    "scheduleSetIds": []
  },
  "detailTypes": []
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "scheduleSets": [
    {
      "id": 1234,
      "name": "Energy-trading schedule-set 1",
      "description": "This set is used for energy trading related power schedules.",
      "constraints": {
        "priorityMinimum": 10,
        "priorityMaximum": 59,
        "controlStates": [
          3,
          4
        ]
      },
      "groups": [
        {
          "id": 1,
          "name": "Energy-trading"
        }
      ],
      "tags": [
        {
          "id": 1,
          "name": "Energy-trading"
        }
      ],
      "attributes": [
        {
          "id": 1,
          "name": "Energy-trading",
          "value": "This set is used for energy trading related power schedules."
        }
      ],
      "permissions": [
        {
          "permissionTypeId": 1,
          "permissionCodeId": 1
        }
      ]
    }
  ]
}

POST/app/v1/PowerScheduleSetModifyRequest

Power Schedule Set Modify Request

The request to modify a power schedule set.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": 1234,
  "name": "Energy-trading schedule-set 1",
  "description": "This set is used for energy trading related power schedules.",
  "constraints": {
    "priorityMinimum": 10,
    "priorityMaximum": 59,
    "controlStates": []
  },
  "groups": [
    {
      "id": 1
    }
  ],
  "tags": [
    {
      "id": 1
    }
  ],
  "attributes": [
    {
      "id": 1,
      "value": "This set is used for energy trading related power schedules."
    }
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "scheduleSet": {
    "id": 1234,
    "name": "Energy-trading schedule-set 1",
    "description": "This set is used for energy trading related power schedules.",
    "constraints": {
      "priorityMinimum": 10,
      "priorityMaximum": 59,
      "controlStates": []
    },
    "groups": [
      {
        "id": 1,
        "name": "Energy-trading"
      }
    ],
    "tags": [
      {
        "id": 1,
        "name": "Energy-trading"
      }
    ],
    "attributes": [
      {
        "id": 1,
        "name": "Energy-trading",
        "value": "This set is used for energy trading related power schedules."
      }
    ],
    "permissions": [
      {
        "permissionTypeId": 1,
        "permissionCodeId": 1
      }
    ]
  }
}

POST/app/v1/ProductModelCreateRequest

Product Model Create Request

The product model create request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "productTypeId": 1,
  "name": "BAT-2000",
  "description": "BAT-2000 with limits of 800W max AC power output and 4 A max AC current.",
  "identifierTypes": [
    {
      "id": 1
    }
  ],
  "groups": [
    {
      "id": 1
    }
  ],
  "tags": [
    {
      "id": 1
    }
  ],
  "attributes": [
    {
      "id": 1,
      "value": "abcd"
    }
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "productModel": {
    "id": 2,
    "productTypeId": 1,
    "name": "BAT-2000",
    "description": "BAT-2000 with limits of 800W max AC power output and 4 A max AC current.",
    "identifierTypes": [
      {
        "id": 1
      }
    ],
    "groups": [
      {
        "id": 1
      }
    ],
    "tags": [
      {
        "id": 1
      }
    ],
    "attributes": [
      {
        "id": 1,
        "value": "abcd"
      }
    ]
  }
}

POST/app/v1/ProductModelDeleteRequest

Product Model Delete Request

The product model delete request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "id": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/ProductModelListRequest

Product Model List Request

The product model list request.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "productModels": [
    {
      "id": 2,
      "productTypeId": 1,
      "name": "BAT-2000",
      "description": "BAT-2000 with limits of 800W max AC power output and 4 A max AC current.",
      "identifierTypes": [
        {
          "id": 1
        }
      ],
      "groups": [
        {
          "id": 1
        }
      ],
      "tags": [
        {
          "id": 1
        }
      ],
      "attributes": [
        {
          "id": 1,
          "value": "abcd"
        }
      ],
      "permissions": [
        {
          "permissionTypeId": 1,
          "permissionCodeId": 1
        }
      ]
    }
  ]
}

POST/app/v1/ProductModelModifyRequest

Product Model Modify Request

The product model modify request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "id": 1,
  "name": "BAT-2000",
  "description": "BAT-2000 with limits of 800W max AC power output and 4 A max AC current.",
  "identifierTypes": [
    {
      "id": 1
    }
  ],
  "groups": [
    {
      "id": 1
    }
  ],
  "tags": [
    {
      "id": 1
    }
  ],
  "attributes": [
    {
      "id": 1,
      "value": "abcd"
    }
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "productModel": {
    "id": 2,
    "productTypeId": 1,
    "name": "BAT-2000",
    "description": "BAT-2000 with limits of 800W max AC power output and 4 A max AC current.",
    "identifierTypes": [
      {
        "id": 1
      }
    ],
    "groups": [
      {
        "id": 1
      }
    ],
    "tags": [
      {
        "id": 1
      }
    ],
    "attributes": [
      {
        "id": 1,
        "value": "abcd"
      }
    ],
    "permissions": [
      {
        "permissionTypeId": 1,
        "permissionCodeId": 1
      }
    ]
  }
}

POST/app/v1/ProductTypeListRequest

Product Type List Request

Request to obtain the list of available product types.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/ProductVariantCreateRequest

Product Variant Create Request

The product variant create request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "productModelId": 2,
  "name": "pp",
  "description": "Pre-production for RnD."
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "productVariant": {
    "id": 2,
    "productModelId": 2,
    "name": "pp",
    "description": "Pre-production for RnD."
  }
}

POST/app/v1/ProductVariantDeleteRequest

Product Variant Delete Request

The product variant delete request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "id": 1
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/ProductVariantListRequest

Product Variant List Request

The product variant list request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "filter": {
    "productModelIds": []
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "productVariants": [
    {
      "id": 2,
      "productModelId": 2,
      "name": "pp",
      "description": "Pre-production for RnD."
    }
  ]
}

POST/app/v1/ProductVariantModifyRequest

Product Variant Modify Request

The product variant modify request.

Request Example

json
{
  "header": {
    "reqId": 1234
  },
  "id": 1,
  "name": "pp",
  "description": "Pre-production for RnD."
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "productVariant": {
    "id": 2,
    "productModelId": 2,
    "name": "pp",
    "description": "Pre-production for RnD."
  }
}

POST/app/v1/ResourceTypeListRequest

Resource Type List Request

The resource type list request.

Request Example

json
{
  "header": {
    "reqId": 1234
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "resourceTypes": [
    {
      "id": 1,
      "name": "device",
      "description": "The device resource type."
    }
  ]
}

POST/app/v1/SystemConfigModifyRequest

System Config Modify Request

The system configuration modify request modifies writable fields of a device that represent the device configuration. Exactly one value field of each field value element must be set.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "fieldValues": [
    {
      "id": 1,
      "valueInt": 1234
    }
  ]
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/SystemLogControlModifyRequest

System Log Control Modify Request

The system log control modify request specifies the log setting of a device.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  },
  "fieldIds": [
    1,
    2
  ],
  "interval": 60,
  "endTimestamp": 1719859200000
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  }
}

POST/app/v1/SystemLogControlRequest

System Log Control Request

The system log control request obtains the state of the current log control of a device.

Request Example

json
{
  "header": {
    "reqId": 1234,
    "timeoutMs": 10000
  },
  "id": {
    "type": {
      "id": 2
    },
    "stringValue": "609FE0C1B6F4A36E561A7FD061C6554191E6E393"
  }
}

200 Response Example

Success

json
{
  "header": {
    "reqId": 1234
  },
  "fieldIds": [
    1,
    2
  ],
  "interval": 60,
  "endTimestamp": 1719859200000,
  "timestamp": 1719859200000
}