Enphase Energy EV Charger Monitoring API

The EV Charger Monitoring API from Enphase Energy — 6 operation(s) for ev charger monitoring.

OpenAPI Specification

enphase-energy-ev-charger-monitoring-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: The Enlighten Systems Device Level Production Monitoring EV Charger Monitoring API
  description: 'The Enlighten Systems API is a JSON-based API that provides access to performance data for a PV system. By using the Enlighten Systems API, you agree to the Enphase Energy API License Agreement.


    Please note that the Enlighten Systems API does not provide performance data at a panel or microinverter level.'
  version: '2.0'
  termsOfService: https://developer.enphase.com/docs#Display-Requirements
  license:
    name: Enphase API License Agreement
    url: https://www.enphase.com/en-us/legal/api-license-agreement
servers:
- url: https://api.enphaseenergy.com/api/v2
security:
- ApiKey: []
tags:
- name: EV Charger Monitoring
paths:
  /api/v4/systems/{system_id}/ev_charger/devices:
    get:
      tags:
      - EV Charger Monitoring
      summary: Fetch active chargers for a system
      description: API to fetch all active EV Chargers for a system
      operationId: fetchChargersSummary
      parameters:
      - name: system_id
        in: path
        description: The unique numeric ID of the system
        required: true
        example: 698989834
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Active chargers
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ChargerSummaryResponse'
        '400':
          description: Invalid system_id
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Bad request
                    code: '400'
                    details: Invalid system_id
        '401':
          description: Unauthorised
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Not Authorized
                    code: '401'
                    details: User is not authorized
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Forbidden
                    code: '403'
                    details: Not authorized to access this resource
        '405':
          description: Method Not Allowed
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseArray'
        '500':
          description: Internal Server Error
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Internal Server Error
                    code: '500'
                    details: Internal Server Error
  /api/v4/systems/{system_id}/ev_charger/events:
    get:
      tags:
      - EV Charger Monitoring
      summary: Fetch events
      description: API to fetch all the events related to EV Charger
      operationId: fetchEvents
      parameters:
      - name: system_id
        in: path
        description: The unique numeric ID of the system
        required: true
        example: 701052773
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      - name: serial_num
        in: query
        description: Serial Number of the EV Charger
        required: false
        example: 202312100006
        schema:
          type: string
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: List of events
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/EVEventsResponse'
        '400':
          description: Possible Bad request reasons
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseDetailArray'
              examples:
                response:
                  value:
                    message: Bad request
                    code: '400'
                    details:
                    - Invalid system_id
                    - Invalid offset/limit
        '401':
          description: Unauthorised
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Not Authorized
                    code: '401'
                    details: User is not authorized
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Forbidden
                    code: '403'
                    details: Not authorized to access this resource
        '405':
          description: Method Not Allowed
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseArray'
        '500':
          description: Internal Server Error
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Internal Server Error
                    code: '500'
                    details: Internal Server Error
  /api/v4/systems/{system_id}/ev_charger/{serial_no}/sessions:
    get:
      tags:
      - EV Charger Monitoring
      summary: Charger session history
      description: Get list of sessions for a single EV Charger
      operationId: fetchChargerSessionHistory
      parameters:
      - name: system_id
        in: path
        required: true
        example: 698989834
        schema:
          type: integer
          format: int32
      - name: serial_no
        in: path
        required: true
        example: 202320010308
        schema:
          type: string
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          format: int32
          default: 20
      responses:
        '200':
          description: Charger sessions list
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ChargeSessionDetailsResponse'
        '400':
          description: Possible Bad request reasons
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseDetailArray'
              examples:
                response:
                  value:
                    message: Bad request
                    code: '400'
                    details:
                    - Invalid system_id or serial_no
                    - Invalid offset/limit
        '401':
          description: Unauthorised
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Not Authorized
                    code: '401'
                    details: User is not authorized
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Forbidden
                    code: '403'
                    details: Not authorized to access this resource
        '405':
          description: Method Not Allowed
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseArray'
        '500':
          description: Internal Server Error
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Internal Server Error
                    code: '500'
                    details: Internal Server Error
  /api/v4/systems/{system_id}/ev_charger/{serial_no}/schedules:
    get:
      tags:
      - EV Charger Monitoring
      summary: Get Schedule
      description: API to fetch all EV Charger Schedules for a Device By System id and Serial Number
      operationId: fetchSchedules
      parameters:
      - name: system_id
        in: path
        description: The unique numeric ID of the system
        required: true
        example: 698989834
        schema:
          type: integer
          format: int32
      - name: serial_no
        in: path
        description: Serial Number of the EV Charger
        required: true
        example: 202320010308
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/SchedulesBodyResponse'
        '400':
          description: Invalid system_id or serial_no
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Bad request
                    code: '400'
                    details: Invalid system_id or serial_no
        '401':
          description: Unauthorised
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Not Authorized
                    code: '401'
                    details: User is not authorized
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Forbidden
                    code: '403'
                    details: Not authorized to access this resource
        '405':
          description: Method Not Allowed
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseArray'
        '500':
          description: Internal Server Error
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Internal Server Error
                    code: '500'
                    details: Internal Server Error
  /api/v4/systems/{system_id}/ev_charger/{serial_no}/lifetime:
    get:
      tags:
      - EV Charger Monitoring
      summary: Daily energy api
      description: 'Retrieves the daily telemetry for a single EV Charger.

        The number of data points returned in the response corresponds to

        days spanned between the start_date and end_date parameter mentioned in the request.'
      operationId: fetchDailyEnergyConsumptionData
      parameters:
      - name: system_id
        in: path
        description: The unique numeric ID of the system
        required: true
        example: 698989834
        schema:
          type: integer
          format: int32
      - name: serial_no
        in: path
        description: Serial Number of the EV Charger
        required: true
        example: 190179855
        schema:
          type: string
      - name: start_date
        in: query
        description: Requested start date of the time series data. If the start_date is not provided, then the response data begins with the previous date as start_date. Pass as String date format YYYYMMDD.
        required: true
        example: 20240101
        schema:
          type: string
      - name: end_date
        in: query
        description: End date of the time series data. Defaults to yesterday. Pass as String date format YYYYMMDD.
        required: false
        example: 20240106
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/EVEnergyResponse'
        '400':
          description: Possible Bad request reasons
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseDetailArray'
              examples:
                response:
                  value:
                    message: Bad request
                    code: '400'
                    details:
                    - Invalid system_id
                    - Invalid start_date/end_date
        '401':
          description: Unauthorised
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Not Authorized
                    code: '401'
                    details: User is not authorized
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Forbidden
                    code: '403'
                    details: Not authorized to access this resource
        '405':
          description: Method Not Allowed
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseArray'
        '500':
          description: Internal Server Error
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Internal Server Error
                    code: '500'
                    details: Internal Server Error
  /api/v4/systems/{system_id}/ev_charger/{serial_no}/telemetry:
    get:
      tags:
      - EV Charger Monitoring
      summary: Interval energy api
      description: 'Retrieves telemetry for single EV Charger.

        If no start_at is specified, defaults to previous days date, in the timezone of the system.

        The end_at is calculated as the minimum of the time of the request and (start time + granularity).

        The meaning of granularity is as follow:


        If granularity is day, maximum 392 intervals will appear in response where each interval is of 15 mins duration. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response.

        By default end_at will appear in response. If end_date parameter is passed in the url then end_date field will appear in response.'
      operationId: fetchEnergyConsumptionData
      parameters:
      - name: system_id
        in: path
        description: The unique numeric ID of the system
        required: true
        example: 700460094
        schema:
          type: integer
          format: int32
      - name: serial_no
        in: path
        description: Serial Number of the EV Charger
        required: true
        example: 202109116909
        schema:
          type: string
      - name: granularity
        in: query
        description: The granularity of the telemetry data. Possible values are 'week', 'day'. Default is 'day'
        required: false
        example: day
        schema:
          type: string
      - name: start_date
        in: query
        description: Requested start date of the time series data. If the start_date and start_at is not provided, then the response data begins with the previous date as start_date. Pass as String date format YYYYMMDD.
        required: false
        example: 20240116
        schema:
          type: string
      - name: start_at
        in: query
        description: Start time for fetching the telemetry data in Epoch time format. Alternatively one can use start_date in place of start_at for passing the start date as String in YYYYMMDD format. By default start_at will appear in response. If start_date parameter is passed in the url, then start_date field will appear in response.
        required: false
        example: 1705425848
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/EVIntervalEnergyResponse'
        '400':
          description: Possible Bad request reasons
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseDetailArray'
              examples:
                response:
                  value:
                    message: Bad request
                    code: '400'
                    details:
                    - Invalid granularity
                    - Invalid system_id
                    - Invalid start_date
        '401':
          description: Unauthorised
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Not Authorized
                    code: '401'
                    details: User is not authorized
        '403':
          description: Forbidden
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Forbidden
                    code: '403'
                    details: Not authorized to access this resource
        '405':
          description: Method Not Allowed
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponseArray'
        '500':
          description: Internal Server Error
          content:
            application/octet-stream:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    message: Internal Server Error
                    code: '500'
                    details: Internal Server Error
components:
  schemas:
    ErrorResponseDetailArray:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        details:
          type: array
          description: Additional error detail(s).
          items:
            type: string
    EVEnergyResponse:
      type: object
      properties:
        system_id:
          type: integer
          format: int64
          example: 698989834
        start_date:
          type: string
          example: 2024-01-01
        consumption:
          type: object
          description: All these values are in Wh
          example:
          - 3494
          - 21929
          - 0
          - 0
          - 0
          - 0
    SchedulesBodyResponse:
      type: object
      properties:
        system_id:
          type: integer
          format: int32
          example: 698989834
        charger_schedules:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleList'
    EVIntervalEnergyResponse:
      type: object
      properties:
        granularity:
          allOf:
          - $ref: '#/components/schemas/TelemetryGranularity'
          example: day
        consumption:
          type: array
          example:
          - consumption: 0
            end_at: 1705385700
          - consumption: 0
            end_at: 1705386600
          - consumption: 0
            end_at: 1705387500
          - consumption: 0
            end_at: 1705388400
          - consumption: 0
            end_at: 1705389300
          - consumption: 0
            end_at: 1705390200
          - consumption: 0
            end_at: 1705391100
          - consumption: 0
            end_at: 1705392000
          - consumption: 0
            end_at: 1705392900
          - consumption: 0
            end_at: 1705393800
          - consumption: 0
            end_at: 1705394700
          - consumption: 0
            end_at: 1705395600
          - consumption: 0
            end_at: 1705396500
          - consumption: 0
            end_at: 1705397400
          - consumption: 0
            end_at: 1705398300
          - consumption: 0
            end_at: 1705399200
          - consumption: 38
            end_at: 1705400100
          - consumption: 201
            end_at: 1705401000
          - consumption: 202
            end_at: 1705401900
          - consumption: 202
            end_at: 1705402800
          - consumption: 202
            end_at: 1705403700
          - consumption: 202
            end_at: 1705404600
          - consumption: 202
            end_at: 1705405500
          - consumption: 202
            end_at: 1705406400
          - consumption: 202
            end_at: 1705407300
          - consumption: 202
            end_at: 1705408200
          - consumption: 202
            end_at: 1705409100
          - consumption: 202
            end_at: 1705410000
          - consumption: 202
            end_at: 1705410900
          - consumption: 202
            end_at: 1705411800
          - consumption: 202
            end_at: 1705412700
          - consumption: 202
            end_at: 1705413600
          - consumption: 202
            end_at: 1705414500
          - consumption: 202
            end_at: 1705415400
          - consumption: 202
            end_at: 1705416300
          - consumption: 202
            end_at: 1705417200
          - consumption: 202
            end_at: 1705418100
          - consumption: 202
            end_at: 1705419000
          - consumption: 202
            end_at: 1705419900
          - consumption: 202
            end_at: 1705420800
          - consumption: 202
            end_at: 1705421700
          - consumption: 202
            end_at: 1705422600
          - consumption: 202
            end_at: 1705423500
          - consumption: 202
            end_at: 1705424400
          - consumption: 202
            end_at: 1705425300
          - consumption: 202
            end_at: 1705426200
          - consumption: 202
            end_at: 1705427100
          - consumption: 202
            end_at: 1705428000
          - consumption: 202
            end_at: 1705428900
          - consumption: 202
            end_at: 1705429800
          - consumption: 202
            end_at: 1705430700
          - consumption: 202
            end_at: 1705431600
          - consumption: 202
            end_at: 1705432500
          - consumption: 202
            end_at: 1705433400
          - consumption: 202
            end_at: 1705434300
          - consumption: 202
            end_at: 1705435200
          - consumption: 203
            end_at: 1705436100
          - consumption: 202
            end_at: 1705437000
          - consumption: 202
            end_at: 1705437900
          - consumption: 202
            end_at: 1705438800
          - consumption: 202
            end_at: 1705439700
          - consumption: 202
            end_at: 1705440600
          - consumption: 202
            end_at: 1705441500
          - consumption: 202
            end_at: 1705442400
          - consumption: 202
            end_at: 1705443300
          - consumption: 202
            end_at: 1705444200
          - consumption: 202
            end_at: 1705445100
          - consumption: 202
            end_at: 1705446000
          - consumption: 202
            end_at: 1705446900
          - consumption: 202
            end_at: 1705447800
          - consumption: 202
            end_at: 1705448700
          - consumption: 202
            end_at: 1705449600
          - consumption: 202
            end_at: 1705450500
          - consumption: 202
            end_at: 1705451400
          - consumption: 202
            end_at: 1705452300
          - consumption: 202
            end_at: 1705453200
          - consumption: 202
            end_at: 1705454100
          - consumption: 202
            end_at: 1705455000
          - consumption: 202
            end_at: 1705455900
          - consumption: 202
            end_at: 1705456800
          - consumption: 202
            end_at: 1705457700
          - consumption: 202
            end_at: 1705458600
          - consumption: 202
            end_at: 1705459500
          - consumption: 202
            end_at: 1705460400
          - consumption: 202
            end_at: 1705461300
          - consumption: 202
            end_at: 1705462200
          - consumption: 202
            end_at: 1705463100
          - consumption: 202
            end_at: 1705464000
          - consumption: 202
            end_at: 1705464900
          - consumption: 202
            end_at: 1705465800
          - consumption: 202
            end_at: 1705466700
          - consumption: 202
            end_at: 1705467600
          - consumption: 104
            end_at: 1705468500
          - consumption: 0
            end_at: 1705469400
          - consumption: 0
            end_at: 1705470300
          - consumption: 0
            end_at: 1705471200
          items:
            $ref: '#/components/schemas/EnergyConsumption'
        system_id:
          type: integer
          format: int32
          example: 700460094
        start_date:
          type: string
          example: 2024-01-16
        end_date:
          type: string
          example: 2024-01-16
        start_at:
          type: integer
          format: int64
        end_at:
          type: integer
          format: int64
    ScheduleList:
      type: object
      properties:
        schedules:
          type: array
          example:
          - days:
            - 1
            - 2
            start_time: 60
            end_time: 120
            charging_level: 70
          - days:
            - 3
            - 4
            - 5
            - 6
            - 7
            start_time: 120
            end_time: 180
            charging_level: 80
          items:
            $ref: '#/components/schemas/Schedule'
        type:
          type: string
          example: Custom
        is_active:
          type: boolean
          example: false
        reminder_flag:
          type: boolean
          example: true
        reminder_timer:
          type: integer
          format: int32
          example: 10
    TelemetryGranularity:
      type: string
      description: Interval size used when returning telemetry time series.
      enum:
      - 5mins
      - 15mins
      - day
      - week
    EventDetail:
      type: object
      properties:
        status:
          allOf:
          - $ref: '#/components/schemas/EventStatus'
          example: Info
        triggered_date:
          type: integer
          format: int64
          example: 1705399759
        cleared_date:
          type: integer
          format: int64
          example: 1705399759
        details:
          type: string
          example: Charging started on IQ EV Charger (SNo. 202312100006).
    EventStatus:
      type: string
      description: Lifecycle state reported for events.
      enum:
      - Info
      - Open
      - Closed
    EnergyConsumption:
      type: object
      properties:
        consumption:
          type: integer
          format: int32
        end_at:
          type: integer
          format: int64
      example:
      - consumption: 0
        end_at: 1705385700
      - consumption: 0
        end_at: 1705386600
      - consumption: 0
        end_at: 1705387500
      - consumption: 0
        end_at: 1705388400
      - consumption: 0
        end_at: 1705389300
      - consumption: 0
        end_at: 1705390200
      - consumption: 0
        end_at: 1705391100
      - consumption: 0
        end_at: 1705392000
      - consumption: 0
        end_at: 1705392900
      - consumption: 0
        end_at: 1705393800
      - consumption: 0
        end_at: 1705394700
      - consumption: 0
        end_at: 1705395600
      - consumption: 0
        end_at: 1705396500
      - consumption: 0
        end_at: 1705397400
      - consumption: 0
        end_at: 1705398300
      - consumption: 0
        end_at: 1705399200
      - consumption: 38
        end_at: 1705400100
      - consumption: 201
        end_at: 1705401000
      - consumption: 202
        end_at: 1705401900
      - consumption: 202
        end_at: 1705402800
      - consumption: 202
        end_at: 1705403700
      - consumption: 202
        end_at: 1705404600
      - consumption: 202
        end_at: 1705405500
      - consumption: 202
        end_at: 1705406400
      - consumption: 202
        end_at: 1705407300
      - consumption: 202
        end_at: 1705408200
      - consumption: 202
        end_at: 1705409100
      - consumption: 202
        end_at: 1705410000
      - consumption: 202
        end_at: 1705410900
      - consumption: 202
        end_at: 1705411800
      - consumption: 202
        end_at: 1705412700
      - consumption: 202
        end_at: 1705413600
      - consumption: 202
        end_at: 1705414500
      - consumption: 202
        end_at: 1705415400
      - consumption: 202
        end_at: 1705416300
      - consumption: 202
        end_at: 1705417200
      - consumption: 202
        end_at: 1705418100
      - consumption: 202
        end_at: 1705419000
      - consumption: 202
        end_at: 1705419900
      - consumption: 202
        end_at: 1705420800
      - consumption: 202
        end_at: 1705421700
      - consumption: 202
        end_at: 1705422600
      - consumption: 202
        end_at: 1705423500
      - consumption: 202
        end_at: 1705424400
      - consumption: 202
        end_at: 1705425300
      - consumption: 202
        end_at: 1705426200
      - consumption: 202
        end_at: 1705427100
      - consumption: 202
        end_at: 1705428000
      - consumption: 202
        end_at: 1705428900
      - consumption: 202
        end_at: 1705429800
      - consumption: 202
        end_at: 1705430700
      - consumption: 202
        end_at: 1705431600
      - consumption: 202
        end_at: 1705432500
      - consumption: 202
        end_at: 1705433400
      - consumption: 202
        end_at: 1705434300
      - consumption: 202
        end_at: 1705435200
      - consumption: 203
        end_at: 1705436100
      - consumption: 202
        end_at: 1705437000
      - consumption: 202
        end_at: 1705437900
      - consumption: 202
        end_at: 1705438800
      - consumption: 202
        end_at: 1705439700
      - consumption: 202
        end_at: 1705440600
      - consumption: 202
        end_at: 1705441500
      - consumption: 202
        end_at: 1705442400
      - consumption: 202
        end_at: 1705443300
      - consumption: 202
        end_at: 1705444200
      - consumption: 202
        end_at: 1705445100
      - consumption: 202
        end_at: 1

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/enphase-energy/refs/heads/main/openapi/enphase-energy-ev-charger-monitoring-api-openapi.yml