> ## Documentation Index
> Fetch the complete documentation index at: https://developer.energy-hub.io/llms.txt
> Use this file to discover all available pages before exploring further.

# All HVACs

> Returns a paginated and searchable list of all hvac's of the subscription. Supports filtering by UUID, user ID, online status, name, vendor, model, last updated date and type. Text searches are case-insensitive and support partial matching.



## OpenAPI

````yaml get /v1.0.0/hvacs
openapi: 3.0.1
info:
  description: A service used for HVAC devices
  title: hvac-service
  version: 1.0.0
servers:
  - description: Generated server url
    url: https://api.energy-hub.io
security: []
paths:
  /v1.0.0/hvacs:
    get:
      tags:
        - Hvac Controller
      summary: All HVACs
      description: >-
        Returns a paginated and searchable list of all hvac's of the
        subscription. Supports filtering by UUID, user ID, online status, name,
        vendor, model, last updated date and type. Text searches are
        case-insensitive and support partial matching.
      operationId: getAllHvacs
      parameters:
        - schema:
            type: string
            enum:
              - USER_ID
              - VENDOR
              - IS_ONLINE
              - LAST_UPDATED
          in: query
          name: sortField
          description: Sorting field. Default value is USER_ID
          required: true
          example: USER_ID
        - schema:
            format: uuid
            type: string
          in: query
          name: uuid
          description: Search by hvac UUID
          required: false
          example: 287910c8-95fd-4321-842a-ed6586469fa3
        - schema:
            type: string
          in: query
          name: userId
          description: Search by user ID (partial match, case-insensitive)
          required: false
          example: user123
        - schema:
            type: boolean
          in: query
          name: isOnline
          description: Filter by online status
          required: false
          example: true
        - schema:
            type: string
          in: query
          name: name
          description: Search by hvac display name (partial match, case-insensitive)
          required: false
          example: My HVAC
        - schema:
            type: string
            enum:
              - VIESSMANN
              - DAIKIN
              - VAILLANT
          in: query
          name: vendor
          description: Filter by vendor
          required: false
          example: VIESSMANN
        - schema:
            type: string
          in: query
          name: model
          description: Search by vehicle model (partial match, case-insensitive)
          required: false
          example: Model
        - schema:
            format: date-time
            type: string
          in: query
          name: lastUpdatedFrom
          description: Filter by UTC last updated date (from this date onwards).
          required: false
          example: '2025-09-17T10:30:00Z'
        - schema:
            format: date-time
            type: string
          in: query
          name: lastUpdatedTo
          description: Filter by UTC last updated date (To this date).
          required: false
          example: '2025-09-19T10:30:00Z'
        - schema:
            type: string
            enum:
              - AC
              - HEATING_CIRCUIT
              - DHW
              - THERMOSTAT
          in: query
          name: type
          description: Filter by type
          required: false
          example: HEATING_CIRCUIT
        - schema:
            type: string
            enum:
              - ASC
              - DESC
          in: query
          name: sortOrder
          description: Sorting order. Default value is DESC.
          required: true
          example: DESC
        - schema:
            format: int32
            type: integer
            minimum: 0
          in: query
          name: page
          description: Zero-based page index (0..N)
          required: true
          example: 0
        - schema:
            format: int32
            maximum: 100
            type: integer
            minimum: 1
          in: query
          name: size
          description: >-
            The size of the page to be returned. Default value is 10. Maximum
            value is 100.
          required: true
          example: 10
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageResponseHvacShortResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorMessageDto'
              examples:
                BAD_REQUEST:
                  $ref: '#/components/examples/BAD_REQUEST'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessageDto'
              examples:
                UNAUTHORIZED:
                  $ref: '#/components/examples/UNAUTHORIZED'
      security:
        - API_Key: []
components:
  schemas:
    PageResponseHvacShortResponse:
      type: object
      required:
        - content
        - totalElements
        - totalPages
      properties:
        totalPages:
          format: int64
          description: Total number of pages.
          type: integer
          example: 1
        content:
          description: >-
            Elements in the page. If there is no elements the list will be
            empty.
          type: array
          items:
            $ref: '#/components/schemas/HvacShortResponse'
        totalElements:
          format: int64
          description: Total number of elements.
          type: integer
          example: 1
    ValidationErrorMessageDto:
      allOf:
        - $ref: '#/components/schemas/ErrorMessageDto'
        - type: object
          properties:
            errorCode:
              description: The error code
              type: string
              example: EXAMPLE_ERROR_CODE
            validationErrors:
              description: List of validation errors
              type: array
              items:
                $ref: '#/components/schemas/ValidationError'
            id:
              format: uuid
              description: The error identifier
              type: string
              example: 7958818d-64d2-4ede-b12b-4786dd2f348b
            message:
              description: The error message
              type: string
              example: Example error message
      type: object
      required:
        - errorCode
        - id
        - message
    ErrorMessageDto:
      type: object
      required:
        - errorCode
        - id
        - message
      properties:
        errorCode:
          description: The error code
          type: string
          example: EXAMPLE_ERROR_CODE
        id:
          format: uuid
          description: The error identifier
          type: string
          example: 7958818d-64d2-4ede-b12b-4786dd2f348b
        message:
          description: The error message
          type: string
          example: Example error message
    HvacShortResponse:
      description: Elements in the page. If there is no elements the list will be empty.
      type: object
      required:
        - id
        - isOnline
        - model
        - userId
        - vendor
      properties:
        lastUpdated:
          format: date-time
          description: The timestamp of the last update of any variable of the HVAC.
          type: string
        vendor:
          description: The vendor of the HVAC.
          type: string
          enum:
            - VIESSMANN
            - DAIKIN
            - VAILLANT
        name:
          description: The name of the HVAC in human-readable format.
          type: string
          example: Viessmann Vitotronic 200
        isOnline:
          description: Indicates if the HVAC is reachable trough the vendor system.
          type: boolean
          example: true
        model:
          description: The model of the HVAC.
          type: string
          example: Vitotronic 200
        id:
          format: uuid
          description: The ID of the HVAC.
          type: string
        type:
          description: The type of the HVAC.
          type: string
          enum:
            - AC
            - HEATING_CIRCUIT
            - DHW
            - THERMOSTAT
        userId:
          description: The ID of the user.
          type: string
          example: 896f9d5a-b618-48a2-98ae-957059bf1bc9
    ValidationError:
      type: object
      properties:
        field:
          description: Affected field
          type: string
        message:
          description: Validation message
          type: string
  examples:
    BAD_REQUEST:
      value:
        errorCode: BAD_REQUEST
        validationErrors:
          - field: Affected field
            message: Validation message
        id: 4c30ae83-182e-4c92-a108-b6ee12619de8
        message: Bad request
    UNAUTHORIZED:
      value:
        errorCode: UNAUTHORIZED
        id: 4c30ae83-182e-4c92-a108-b6ee12619de8
        message: Unauthorized
  securitySchemes:
    API_Key:
      in: header
      name: X-API-KEY
      description: API key used for authorization and authentication.
      type: apiKey

````