{
  "openapi": "3.1.0",
  "info": {
    "title": "GridSense Application API",
    "version": "1.0.0",
    "description": "Alleen-lezen-API voor installatiegegevens en de laatst bekende apparaattelemetrie. Authenticeer met een API-sleutel voor je applicatie. Vermogen is in W; energie in Wh. Het teken hangt af van het apparaattype: powerAc van een netmeter is positief bij teruglevering en negatief bij afname; powerDc van een batterij is positief bij laden en negatief bij ontladen. Null is niet hetzelfde als nul. De JSON-voorbeelden zijn fictief.",
    "x-gridsense-api-revision": "4f896f9a26d6403620ca5fcd8d29f5200bc371ad"
  },
  "servers": [
    {
      "url": "https://api.gridsense.nl/application/v1",
      "description": "GridSense Application API"
    }
  ],
  "security": [
    {
      "ApiKey": []
    },
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Application API",
      "description": "Lees installatiegegevens en apparaattelemetrie."
    }
  ],
  "paths": {
    "/getInstallations": {
      "get": {
        "operationId": "getInstallations",
        "summary": "Installaties opvragen",
        "description": "Geeft alle installaties terug die de applicatie momenteel mag uitlezen. Zowel een expliciete toewijzing aan de applicatie als blijvende toegang voor de eigenaar zijn vereist. Uitgeschakelde applicaties of ongeldige sleutels krijgen 401. Uitvoeren in het API-testpaneel op deze pagina verstuurt een echt verzoek naar de API.",
        "tags": [
          "Application API"
        ],
        "responses": {
          "200": {
            "description": "Geslaagd antwoord. Het voorbeeld bevat fictieve gegevens; het API-testpaneel toont het echte antwoord van de API.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstallationsResponse"
                },
                "examples": {
                  "Example": {
                    "summary": "Voorbeeld",
                    "value": {
                      "valid": true,
                      "installations": [
                        {
                          "id": 42,
                          "name": "Example installation",
                          "type": "commercial",
                          "address": "Voorbeeldstraat 1",
                          "postalCode": "3500 AA",
                          "city": "Utrecht",
                          "country": "NL",
                          "timezone": "Europe/Amsterdam",
                          "latitude": 52.0907,
                          "longitude": 5.1214,
                          "altitude": 5,
                          "creationDate": "2026-09-01T09:00:00+02:00"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Ontbrekende, verkeerd gevormde, onbekende, ingetrokken of verlopen sleutel, of uitgeschakelde applicatie.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "UNAUTHORIZED": {
                    "summary": "UNAUTHORIZED",
                    "value": {
                      "valid": false,
                      "error": "UNAUTHORIZED"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Fout aan de serverzijde.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "DATABASE_ERROR": {
                    "summary": "DATABASE_ERROR",
                    "value": {
                      "valid": false,
                      "error": "DATABASE_ERROR"
                    }
                  },
                  "INTERNAL_ERROR": {
                    "summary": "INTERNAL_ERROR",
                    "value": {
                      "valid": false,
                      "error": "INTERNAL_ERROR"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/getInstallationDevices": {
      "get": {
        "operationId": "getInstallationDevices",
        "summary": "Installatieapparaten opvragen",
        "description": "Geeft de laatst bekende toestand van alle zes ondersteunde apparaatcategorieën voor één toegankelijke installatie terug. Roep eerst getInstallations aan en kopieer een ontvangen id naar installationId. Het voorbeeld-ID 42 is fictief. Ook offline apparaten worden opgenomen: controleer lastSeenDate en beschouw null als niet-beschikbare telemetrie. Zie de uitleg over vermogensrichting voor de tekens per apparaattype; powerAc van een netmeter is positief bij teruglevering en powerDc van een batterij is positief bij laden.",
        "tags": [
          "Application API"
        ],
        "responses": {
          "200": {
            "description": "Geslaagd antwoord. Het voorbeeld bevat fictieve gegevens; het API-testpaneel toont het echte antwoord van de API.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstallationDevicesResponse"
                },
                "examples": {
                  "Example": {
                    "summary": "Voorbeeld",
                    "value": {
                      "valid": true,
                      "installationId": 42,
                      "inverters": [
                        {
                          "id": 108,
                          "installationId": 42,
                          "gatewayId": 17,
                          "manufacturer": "Example manufacturer",
                          "model": "Example model",
                          "version": null,
                          "serialNumber": "EXAMPLE-108",
                          "firstSeenDate": "2026-09-01T09:00:00+02:00",
                          "lastSeenDate": "2026-09-08T12:00:00+02:00",
                          "status": {
                            "rawValue": 4,
                            "name": "MPPT"
                          },
                          "vendorStatusString": null,
                          "isOffGrid": null,
                          "maxChargePower": null,
                          "maxDischargePower": null,
                          "powerAc": 2000,
                          "powerAcL1": null,
                          "powerAcL2": null,
                          "powerAcL3": null,
                          "voltageAcL1": null,
                          "voltageAcL2": null,
                          "voltageAcL3": null,
                          "currentAcL1": null,
                          "currentAcL2": null,
                          "currentAcL3": null,
                          "frequency": null,
                          "powerApparentAc": null,
                          "powerReactiveAc": null,
                          "powerFactor": null,
                          "backupPowerAc": null,
                          "powerDc": 2100,
                          "powerDcPvTotal": 3600,
                          "powerDcPv1": null,
                          "powerDcPv2": null,
                          "powerDcPv3": null,
                          "powerDcPv4": null,
                          "powerDcPv5": null,
                          "powerDcPv6": null,
                          "voltageDcPv1": null,
                          "voltageDcPv2": null,
                          "voltageDcPv3": null,
                          "voltageDcPv4": null,
                          "voltageDcPv5": null,
                          "voltageDcPv6": null,
                          "currentDcPv1": null,
                          "currentDcPv2": null,
                          "currentDcPv3": null,
                          "currentDcPv4": null,
                          "currentDcPv5": null,
                          "currentDcPv6": null,
                          "temperature": 38
                        }
                      ],
                      "batteries": [
                        {
                          "id": 109,
                          "installationId": 42,
                          "gatewayId": 17,
                          "inverterId": 108,
                          "manufacturer": "Example manufacturer",
                          "model": "Example model",
                          "version": null,
                          "serialNumber": "EXAMPLE-109",
                          "firstSeenDate": "2026-09-01T09:00:00+02:00",
                          "lastSeenDate": "2026-09-08T12:00:00+02:00",
                          "status": null,
                          "powerDc": 1500,
                          "voltageDc": null,
                          "currentDc": null,
                          "soe": 65,
                          "soh": 98,
                          "temperature": null,
                          "minCellTemperature": null,
                          "avgCellTemperature": null,
                          "maxCellTemperature": null,
                          "minCellVoltage": null,
                          "avgCellVoltage": null,
                          "maxCellVoltage": null,
                          "ratedEnergy": 10000,
                          "maximumEnergy": null,
                          "availableEnergy": null,
                          "maxChargeContinuousPower": null,
                          "maxDischargeContinuousPower": null,
                          "minSoe": null,
                          "maxSoe": null
                        }
                      ],
                      "energyMeters": [
                        {
                          "id": 110,
                          "installationId": 42,
                          "gatewayId": 17,
                          "manufacturer": "Example manufacturer",
                          "model": "Example model",
                          "version": null,
                          "serialNumber": "EXAMPLE-110",
                          "firstSeenDate": "2026-09-01T09:00:00+02:00",
                          "lastSeenDate": "2026-09-08T12:00:00+02:00",
                          "powerAc": -500,
                          "powerAcL1": null,
                          "powerAcL2": null,
                          "powerAcL3": null,
                          "voltageAcL1": null,
                          "voltageAcL2": null,
                          "voltageAcL3": null,
                          "currentAcL1": null,
                          "currentAcL2": null,
                          "currentAcL3": null,
                          "frequency": null,
                          "totalImportAc": null,
                          "totalExportAc": null,
                          "dailyImportAc": null,
                          "dailyExportAc": null,
                          "options": "Export+Import"
                        }
                      ],
                      "evChargers": [
                        {
                          "id": 111,
                          "installationId": 42,
                          "gatewayId": 17,
                          "manufacturer": "Example manufacturer",
                          "model": "Example model",
                          "version": null,
                          "serialNumber": "EXAMPLE-111",
                          "firstSeenDate": "2026-09-01T09:00:00+02:00",
                          "lastSeenDate": "2026-09-08T12:00:00+02:00",
                          "mode": "ALWAYS_ON",
                          "requireAuthorization": null,
                          "supportsBiDirectionalCharging": false,
                          "maxChargingCurrent": null,
                          "currentMaxChargingCurrent": null,
                          "status": null,
                          "vendorStatusString": null,
                          "powerOffered": null,
                          "powerAc": 1000,
                          "powerAcL1": null,
                          "powerAcL2": null,
                          "powerAcL3": null,
                          "voltageAcL1": null,
                          "voltageAcL2": null,
                          "voltageAcL3": null,
                          "currentAcL1": null,
                          "currentAcL2": null,
                          "currentAcL3": null,
                          "frequencyAc": null,
                          "powerDc": null,
                          "voltageDc": null,
                          "currentDc": null,
                          "temperature": null
                        }
                      ],
                      "relays": [
                        {
                          "id": 112,
                          "installationId": 42,
                          "gatewayId": 17,
                          "manufacturer": "Example manufacturer",
                          "model": "Example model",
                          "version": null,
                          "serialNumber": "EXAMPLE-112",
                          "firstSeenDate": "2026-09-01T09:00:00+02:00",
                          "lastSeenDate": "2026-09-08T12:00:00+02:00",
                          "relayCount": 2,
                          "currentState": [
                            true,
                            false
                          ],
                          "desiredState": [
                            null,
                            false
                          ]
                        }
                      ],
                      "boilers": [
                        {
                          "id": 113,
                          "installationId": 42,
                          "gatewayId": 17,
                          "manufacturer": "Example manufacturer",
                          "model": "Example model",
                          "version": null,
                          "serialNumber": "EXAMPLE-113",
                          "firstSeenDate": "2026-09-01T09:00:00+02:00",
                          "lastSeenDate": "2026-09-08T12:00:00+02:00",
                          "status": null,
                          "vendorStatusString": null,
                          "boilerMode": "EXCESS_PV_BATTERY_PREFERRED",
                          "powerAc": 500,
                          "powerAcL1": null,
                          "powerAcL2": null,
                          "powerAcL3": null,
                          "voltageAcL1": null,
                          "voltageAcL2": null,
                          "voltageAcL3": null,
                          "currentAcL1": null,
                          "currentAcL2": null,
                          "currentAcL3": null,
                          "frequency": null,
                          "temperature": 52,
                          "temperature2": null,
                          "temperature3": null,
                          "temperature4": null,
                          "targetTemperature": null,
                          "minimumTemperature": null,
                          "availablePower": null,
                          "effectiveMaxPower": null,
                          "operationMode": null,
                          "operationState": null,
                          "deviceState": null,
                          "relayState": null,
                          "loadState": null,
                          "pwmPercent": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Het verplichte installationId ontbreekt of is geen geldig geheel getal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "MISSING_PARAMETERS": {
                    "summary": "MISSING_PARAMETERS",
                    "value": {
                      "valid": false,
                      "error": "MISSING_PARAMETERS"
                    }
                  },
                  "INVALID_PARAMETERS": {
                    "summary": "INVALID_PARAMETERS",
                    "value": {
                      "valid": false,
                      "error": "INVALID_PARAMETERS"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Ontbrekende, verkeerd gevormde, onbekende, ingetrokken of verlopen sleutel, of uitgeschakelde applicatie.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "UNAUTHORIZED": {
                    "summary": "UNAUTHORIZED",
                    "value": {
                      "valid": false,
                      "error": "UNAUTHORIZED"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "De installatie bestaat niet of deze applicatie heeft geen toegang. Beide gevallen geven bewust dezelfde fout.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "DOESNT_EXIST": {
                    "summary": "DOESNT_EXIST",
                    "value": {
                      "valid": false,
                      "error": "DOESNT_EXIST"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Fout bij serialisatie of het ophalen van apparaten aan de serverzijde.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "INTERNAL_ERROR": {
                    "summary": "INTERNAL_ERROR",
                    "value": {
                      "valid": false,
                      "error": "INTERNAL_ERROR"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "installationId",
            "in": "query",
            "required": true,
            "description": "Geheel installatie-ID uit getInstallations. Vervang het fictieve voorbeeld door een ID waartoe je applicatie toegang heeft. Getallen met een decimaal worden geweigerd.",
            "schema": {
              "type": "integer"
            },
            "example": 42
          }
        ]
      }
    },
    "/getInstallationCurrentEnergyFlow": {
      "get": {
        "operationId": "getInstallationCurrentEnergyFlow",
        "summary": "Actuele energiestroom opvragen",
        "description": "Geeft de geaggregeerde energiestroom van een toegankelijke installatie terug met dezelfde berekening als de app-API. Roep eerst getInstallations aan en vul een ontvangen id in als installationId. Alleen online apparaten dragen bij; data is null als geen apparaten online zijn. Alle vermogensvelden zijn in W. gridPower is positief bij afname en negatief bij teruglevering, tegengesteld aan powerAc van een ruwe netmeter. batteryPower is positief bij laden en negatief bij ontladen. housePower is exclusief laadpaal- en boilerverbruik. Zie de uitleg over vermogensrichting voor berekeningen en kanttekeningen bij ontbrekende metingen.",
        "tags": [
          "Application API"
        ],
        "responses": {
          "200": {
            "description": "Actuele energiestroom, of data met null als geen relevante apparaten online zijn.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstallationCurrentEnergyFlowResponse"
                },
                "examples": {
                  "Example": {
                    "summary": "Fictieve installatie die teruglevert aan het net terwijl een batterij laadt",
                    "value": {
                      "valid": true,
                      "installationId": 42,
                      "data": {
                        "inverterPower": 4200,
                        "solarPower": 5000,
                        "batteryPower": 800,
                        "batterySoe": 65,
                        "gridPower": -1200,
                        "housePower": 2000,
                        "evChargerPower": 600,
                        "boilerPower": 400,
                        "lastUpdated": "2026-09-09T14:05:11+02:00"
                      }
                    }
                  },
                  "NoOnlineDevices": {
                    "summary": "Geen online apparaten",
                    "value": {
                      "valid": true,
                      "installationId": 42,
                      "data": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Het verplichte installationId ontbreekt of is geen geldig geheel getal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "MISSING_PARAMETERS": {
                    "summary": "MISSING_PARAMETERS",
                    "value": {
                      "valid": false,
                      "error": "MISSING_PARAMETERS"
                    }
                  },
                  "INVALID_PARAMETERS": {
                    "summary": "INVALID_PARAMETERS",
                    "value": {
                      "valid": false,
                      "error": "INVALID_PARAMETERS"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Ontbrekende, verkeerd gevormde, onbekende, ingetrokken of verlopen sleutel, of uitgeschakelde applicatie.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "UNAUTHORIZED": {
                    "summary": "UNAUTHORIZED",
                    "value": {
                      "valid": false,
                      "error": "UNAUTHORIZED"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "De installatie bestaat niet of deze applicatie heeft geen toegang. Beide gevallen geven bewust dezelfde fout.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "DOESNT_EXIST": {
                    "summary": "DOESNT_EXIST",
                    "value": {
                      "valid": false,
                      "error": "DOESNT_EXIST"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "De energiestroomberekening of JSON-codering is mislukt.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "INTERNAL_ERROR": {
                    "summary": "INTERNAL_ERROR",
                    "value": {
                      "valid": false,
                      "error": "INTERNAL_ERROR"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "installationId",
            "in": "query",
            "required": true,
            "description": "Geheel installatie-ID uit getInstallations. Vervang het fictieve voorbeeld door een ID waartoe je applicatie toegang heeft. Getallen met een decimaal worden geweigerd.",
            "schema": {
              "type": "integer"
            },
            "example": 42
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "Api-Key",
        "description": "Plak de volledige gsak_-API-sleutel van je applicatie."
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "GridSense application API key",
        "description": "Gebruik dezelfde volledige gsak_-API-sleutel als bearer-token. Het is een ondoorzichtige API-sleutel, geen JWT. Gebruik deze methode of Api-Key; als beide worden meegestuurd, heeft de Bearer-Authorization-header voorrang."
      }
    },
    "schemas": {
      "Installation": {
        "type": "object",
        "description": "Installatievelden die expliciet via de Application API beschikbaar zijn. Velden met null zijn onbekend, niet beschikbaar of niet ondersteund; null is niet hetzelfde als nul.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unieke identificatie van dit record."
          },
          "name": {
            "type": "string",
            "description": "Weergavenaam van de installatie."
          },
          "type": {
            "type": "string",
            "description": "Installatiecategorie: private (particulier) of commercial (zakelijk).",
            "enum": [
              "private",
              "commercial"
            ]
          },
          "address": {
            "type": "string",
            "description": "Straatadres van de installatie."
          },
          "postalCode": {
            "type": "string",
            "description": "Postcode van de installatie."
          },
          "city": {
            "type": "string",
            "description": "Plaats van de installatie."
          },
          "country": {
            "type": "string",
            "description": "Landcode van de installatie, bijvoorbeeld NL."
          },
          "timezone": {
            "type": "string",
            "description": "IANA-tijdzone van de installatie, bijvoorbeeld Europe/Amsterdam."
          },
          "latitude": {
            "type": [
              "number",
              "null"
            ],
            "description": "Breedtegraad in decimale graden."
          },
          "longitude": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lengtegraad in decimale graden."
          },
          "altitude": {
            "type": [
              "number",
              "null"
            ],
            "description": "Hoogte van de installatie in meter."
          },
          "creationDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Aanmaaktijd van de installatie als ISO 8601-tijdstempel met UTC-offset.",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "address",
          "postalCode",
          "city",
          "country",
          "timezone",
          "latitude",
          "longitude",
          "altitude",
          "creationDate"
        ]
      },
      "Inverter": {
        "type": "object",
        "description": "Omvormervelden die expliciet via de Application API beschikbaar zijn. Velden met null zijn onbekend, niet beschikbaar of niet ondersteund; null is niet hetzelfde als nul.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unieke identificatie van dit record."
          },
          "installationId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de installatie waartoe dit apparaat behoort."
          },
          "gatewayId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de gekoppelde gateway; null als er geen gateway is toegewezen."
          },
          "manufacturer": {
            "type": [
              "string",
              "null"
            ],
            "description": "Fabrikant van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "model": {
            "type": [
              "string",
              "null"
            ],
            "description": "Model van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "version": {
            "type": [
              "string",
              "null"
            ],
            "description": "Gemelde firmware-/softwareversie. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "serialNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "Serienummer van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "firstSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Eerste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset.",
            "format": "date-time"
          },
          "lastSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laatste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset. Controleer de actualiteit voordat je telemetrie interpreteert; dit endpoint bevat ook offline apparaten.",
            "format": "date-time"
          },
          "status": {
            "description": "Genormaliseerde SunSpec-status van de omvormer, of null bij een ontbrekende of onbekende status.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/InverterStatus"
              },
              {
                "type": "null"
              }
            ]
          },
          "vendorStatusString": {
            "type": [
              "string",
              "null"
            ],
            "description": "Statusomschrijving van het apparaat of de fabrikant; geen vaste verzameling waarden."
          },
          "isOffGrid": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Of de omvormer meldt dat hij los van het net werkt."
          },
          "maxChargePower": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Maximaal laadvermogen van de omvormer in W, als grootte zonder richtingsteken."
          },
          "maxDischargePower": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Maximaal ontlaadvermogen van de omvormer in W, als grootte zonder richtingsteken."
          },
          "powerAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Totaal actief AC-vermogen in W. Positief = vermogen dat de omvormer levert aan de AC-zijde van de installatie (PV-productie en/of batterijontlading). Negatief = vermogen dat wordt opgenomen van de AC-zijde (bijvoorbeeld laden van de batterij of stand-byverbruik). Dit geeft op zichzelf niet de teruglevering/afname op de netaansluiting aan."
          },
          "powerAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L1 in W. Positief = vermogen dat de omvormer levert aan de AC-zijde van de installatie (PV-productie en/of batterijontlading). Negatief = vermogen dat wordt opgenomen van de AC-zijde (bijvoorbeeld laden van de batterij of stand-byverbruik). Dit geeft op zichzelf niet de teruglevering/afname op de netaansluiting aan."
          },
          "powerAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L2 in W. Positief = vermogen dat de omvormer levert aan de AC-zijde van de installatie (PV-productie en/of batterijontlading). Negatief = vermogen dat wordt opgenomen van de AC-zijde (bijvoorbeeld laden van de batterij of stand-byverbruik). Dit geeft op zichzelf niet de teruglevering/afname op de netaansluiting aan."
          },
          "powerAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L3 in W. Positief = vermogen dat de omvormer levert aan de AC-zijde van de installatie (PV-productie en/of batterijontlading). Negatief = vermogen dat wordt opgenomen van de AC-zijde (bijvoorbeeld laden van de batterij of stand-byverbruik). Dit geeft op zichzelf niet de teruglevering/afname op de netaansluiting aan."
          },
          "voltageAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L1 in V."
          },
          "voltageAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L2 in V."
          },
          "voltageAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L3 in V."
          },
          "currentAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L1 in A. Gebruik powerAcL1 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L2 in A. Gebruik powerAcL2 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L3 in A. Gebruik powerAcL3 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "frequency": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-frequentie in Hz."
          },
          "powerApparentAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Totaal schijnbaar AC-vermogen in VA. Gebruik het teken niet om de richting van actief vermogen (afname/teruglevering) te bepalen."
          },
          "powerReactiveAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Totaal reactief AC-vermogen in var. De API neemt de conventie van het apparaat over; een uniforme tekenconventie voor inductief/capacitief is niet gegarandeerd. Gebruik powerAc voor de richting van actief vermogen."
          },
          "powerFactor": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-vermogensfactor, dimensieloos. Het teken is apparaatafhankelijk; gebruik powerAc voor de richting van actief vermogen."
          },
          "backupPowerAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-vermogen op de back-up-/EPS-uitgang in W. Positief betekent levering aan back-upverbruikers; negatief betekent omgekeerde stroom naar die uitgang, indien gemeld door het apparaat. Dit is niet de meting op de netaansluiting."
          },
          "powerDc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Door het apparaat gemeld DC-vermogen van de omvormer in W. Bij apparaten die netto DC-omzetting melden (bijvoorbeeld SolarEdge), betekent positief DC-vermogen naar de omvormer voor AC-omzetting en negatief omgekeerde omzetting van AC naar DC. Andere integraties gebruiken dit veld voor PV-productie. Het is geen universele meting voor laden/ontladen van de batterij: gebruik daarvoor batteries[].powerDc en voor PV-productie powerDcPvTotal."
          },
          "powerDcPvTotal": {
            "type": [
              "number",
              "null"
            ],
            "description": "Totaal DC-productievermogen van PV in W. Positief betekent zonneproductie naar de omvormer; nul betekent geen gemeten productie. Negatieve waarden hebben geen vastgelegde betekenis voor laden of afname. Gebruik bij voorkeur dit veld voor zonneproductie in plaats van powerDc; bij niet-ondersteunde apparaten kan het null zijn."
          },
          "powerDcPv1": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-vermogen van PV-ingang 1 in W. Positief = zonneproductie naar de omvormer. Negatief heeft geen vastgelegde betekenis voor laden/afname."
          },
          "powerDcPv2": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-vermogen van PV-ingang 2 in W. Positief = zonneproductie naar de omvormer. Negatief heeft geen vastgelegde betekenis voor laden/afname."
          },
          "powerDcPv3": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-vermogen van PV-ingang 3 in W. Positief = zonneproductie naar de omvormer. Negatief heeft geen vastgelegde betekenis voor laden/afname."
          },
          "powerDcPv4": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-vermogen van PV-ingang 4 in W. Positief = zonneproductie naar de omvormer. Negatief heeft geen vastgelegde betekenis voor laden/afname."
          },
          "powerDcPv5": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-vermogen van PV-ingang 5 in W. Positief = zonneproductie naar de omvormer. Negatief heeft geen vastgelegde betekenis voor laden/afname."
          },
          "powerDcPv6": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-vermogen van PV-ingang 6 in W. Positief = zonneproductie naar de omvormer. Negatief heeft geen vastgelegde betekenis voor laden/afname."
          },
          "voltageDcPv1": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning van PV-ingang 1 in V."
          },
          "voltageDcPv2": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning van PV-ingang 2 in V."
          },
          "voltageDcPv3": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning van PV-ingang 3 in V."
          },
          "voltageDcPv4": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning van PV-ingang 4 in V."
          },
          "voltageDcPv5": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning van PV-ingang 5 in V."
          },
          "voltageDcPv6": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning van PV-ingang 6 in V."
          },
          "currentDcPv1": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom van PV-ingang 1 in A; gebruik het bijbehorende powerDcPv-veld voor productie."
          },
          "currentDcPv2": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom van PV-ingang 2 in A; gebruik het bijbehorende powerDcPv-veld voor productie."
          },
          "currentDcPv3": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom van PV-ingang 3 in A; gebruik het bijbehorende powerDcPv-veld voor productie."
          },
          "currentDcPv4": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom van PV-ingang 4 in A; gebruik het bijbehorende powerDcPv-veld voor productie."
          },
          "currentDcPv5": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom van PV-ingang 5 in A; gebruik het bijbehorende powerDcPv-veld voor productie."
          },
          "currentDcPv6": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom van PV-ingang 6 in A; gebruik het bijbehorende powerDcPv-veld voor productie."
          },
          "temperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Apparaattemperatuur in °C."
          }
        },
        "required": [
          "id",
          "installationId",
          "gatewayId",
          "manufacturer",
          "model",
          "version",
          "serialNumber",
          "firstSeenDate",
          "lastSeenDate",
          "status",
          "vendorStatusString",
          "isOffGrid",
          "maxChargePower",
          "maxDischargePower",
          "powerAc",
          "powerAcL1",
          "powerAcL2",
          "powerAcL3",
          "voltageAcL1",
          "voltageAcL2",
          "voltageAcL3",
          "currentAcL1",
          "currentAcL2",
          "currentAcL3",
          "frequency",
          "powerApparentAc",
          "powerReactiveAc",
          "powerFactor",
          "backupPowerAc",
          "powerDc",
          "powerDcPvTotal",
          "powerDcPv1",
          "powerDcPv2",
          "powerDcPv3",
          "powerDcPv4",
          "powerDcPv5",
          "powerDcPv6",
          "voltageDcPv1",
          "voltageDcPv2",
          "voltageDcPv3",
          "voltageDcPv4",
          "voltageDcPv5",
          "voltageDcPv6",
          "currentDcPv1",
          "currentDcPv2",
          "currentDcPv3",
          "currentDcPv4",
          "currentDcPv5",
          "currentDcPv6",
          "temperature"
        ]
      },
      "Battery": {
        "type": "object",
        "description": "Batterijvelden die expliciet via de Application API beschikbaar zijn. Velden met null zijn onbekend, niet beschikbaar of niet ondersteund; null is niet hetzelfde als nul.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unieke identificatie van dit record."
          },
          "installationId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de installatie waartoe dit apparaat behoort."
          },
          "gatewayId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de gekoppelde gateway; null als er geen gateway is toegewezen."
          },
          "inverterId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de gekoppelde omvormer; null als er geen omvormer is toegewezen."
          },
          "manufacturer": {
            "type": [
              "string",
              "null"
            ],
            "description": "Fabrikant van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "model": {
            "type": [
              "string",
              "null"
            ],
            "description": "Model van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "version": {
            "type": [
              "string",
              "null"
            ],
            "description": "Gemelde firmware-/softwareversie. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "serialNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "Serienummer van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "firstSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Eerste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset.",
            "format": "date-time"
          },
          "lastSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laatste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset. Controleer de actualiteit voordat je telemetrie interpreteert; dit endpoint bevat ook offline apparaten.",
            "format": "date-time"
          },
          "status": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Door het apparaat gemelde numerieke batterijstatus. De Application API normaliseert geen gemeenschappelijke status-enum voor alle fabrikanten."
          },
          "powerDc": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-vermogen van de batterij in W. Positief = laden (energie de batterij in); negatief = ontladen (energie de batterij uit). Nul = geen gemeten netto vermogensstroom. Bij werking op alleen de batterij is dit teken tegengesteld aan het AC-uitgangsvermogen van de omvormer."
          },
          "voltageDc": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning in V."
          },
          "currentDc": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom van de batterij in A. Waar stroom met een richtingsteken wordt ondersteund, betekent positief laden en negatief ontladen. Gebruik powerDc als primaire meting voor de vermogensrichting."
          },
          "soe": {
            "type": [
              "number",
              "null"
            ],
            "description": "Energieniveau in procent (0–100), geen fractie van 0–1. Bijvoorbeeld: 50 betekent 50%."
          },
          "soh": {
            "type": [
              "number",
              "null"
            ],
            "description": "Batterijgezondheid in procent (0–100), geen fractie van 0–1."
          },
          "temperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Apparaattemperatuur in °C."
          },
          "minCellTemperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Minimale temperatuur van de batterijcellen in °C."
          },
          "avgCellTemperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Gemiddelde temperatuur van de batterijcellen in °C."
          },
          "maxCellTemperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Maximale temperatuur van de batterijcellen in °C."
          },
          "minCellVoltage": {
            "type": [
              "number",
              "null"
            ],
            "description": "Minimale spanning van de batterijcellen in V."
          },
          "avgCellVoltage": {
            "type": [
              "number",
              "null"
            ],
            "description": "Gemiddelde spanning van de batterijcellen in V."
          },
          "maxCellVoltage": {
            "type": [
              "number",
              "null"
            ],
            "description": "Maximale spanning van de batterijcellen in V."
          },
          "ratedEnergy": {
            "type": [
              "number",
              "null"
            ],
            "description": "Nominale batterijcapaciteit in Wh. Geeft de ingestelde capaciteitscorrectie terug indien aanwezig, anders de door het apparaat gemelde nominale energie."
          },
          "maximumEnergy": {
            "type": [
              "number",
              "null"
            ],
            "description": "Door het apparaat gemelde maximale energiecapaciteit in Wh."
          },
          "availableEnergy": {
            "type": [
              "number",
              "null"
            ],
            "description": "Door het apparaat gemelde beschikbare opgeslagen energie in Wh."
          },
          "maxChargeContinuousPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Maximaal continu laadvermogen in W, als grootte zonder richtingsteken."
          },
          "maxDischargeContinuousPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Maximaal continu ontlaadvermogen in W, als grootte zonder richtingsteken."
          },
          "minSoe": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Ondergrens voor het energieniveau in procent (0–100)."
          },
          "maxSoe": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Bovengrens voor het energieniveau in procent (0–100)."
          }
        },
        "required": [
          "id",
          "installationId",
          "gatewayId",
          "inverterId",
          "manufacturer",
          "model",
          "version",
          "serialNumber",
          "firstSeenDate",
          "lastSeenDate",
          "status",
          "powerDc",
          "voltageDc",
          "currentDc",
          "soe",
          "soh",
          "temperature",
          "minCellTemperature",
          "avgCellTemperature",
          "maxCellTemperature",
          "minCellVoltage",
          "avgCellVoltage",
          "maxCellVoltage",
          "ratedEnergy",
          "maximumEnergy",
          "availableEnergy",
          "maxChargeContinuousPower",
          "maxDischargeContinuousPower",
          "minSoe",
          "maxSoe"
        ]
      },
      "EnergyMeter": {
        "type": "object",
        "description": "Energiemetervelden die expliciet via de Application API beschikbaar zijn. Velden met null zijn onbekend, niet beschikbaar of niet ondersteund; null is niet hetzelfde als nul.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unieke identificatie van dit record."
          },
          "installationId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de installatie waartoe dit apparaat behoort."
          },
          "gatewayId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de gekoppelde gateway; null als er geen gateway is toegewezen."
          },
          "manufacturer": {
            "type": [
              "string",
              "null"
            ],
            "description": "Fabrikant van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "model": {
            "type": [
              "string",
              "null"
            ],
            "description": "Model van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "version": {
            "type": [
              "string",
              "null"
            ],
            "description": "Gemelde firmware-/softwareversie. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "serialNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "Serienummer van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "options": {
            "type": [
              "string",
              "null"
            ],
            "description": "Meterfunctie/opties zoals gemeld door de integratie, als tekst of null. Null-bytes en omringende witruimte worden verwijderd; een lege tekst blijft leeg. Export+Import duidt de hoofdnetmeter voor afname en teruglevering aan; Boiler consumption duidt een boilerverbruiksmeter aan; tekst met Production ext duidt externe productie aan. Dit is vrije tekst, geen vaste enum. Controleer bij null, lege of onbekende waarden de meterfunctie en bekabeling voordat je het vermogen interpreteert."
          },
          "firstSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Eerste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset.",
            "format": "date-time"
          },
          "lastSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laatste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset. Controleer de actualiteit voordat je telemetrie interpreteert; dit endpoint bevat ook offline apparaten.",
            "format": "date-time"
          },
          "powerAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Totaal actief AC-vermogen in W. Bij een netmeter: positief = teruglevering aan het net; negatief = afname van het net. Bij een productiemeter: positief = productie naar de installatie. Andere meterfuncties hangen af van de installatie/bekabeling. Gebruik options om de meterfunctie te herkennen; neem niet aan dat elke meter de netaansluiting meet. Controleer de functie en bekabeling als options null, leeg of onbekend is."
          },
          "powerAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L1 in W. Bij een netmeter: positief = teruglevering aan het net; negatief = afname van het net. Bij een productiemeter: positief = productie naar de installatie. Andere meterfuncties hangen af van de installatie/bekabeling. Gebruik options om de meterfunctie te herkennen; neem niet aan dat elke meter de netaansluiting meet. Controleer de functie en bekabeling als options null, leeg of onbekend is."
          },
          "powerAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L2 in W. Bij een netmeter: positief = teruglevering aan het net; negatief = afname van het net. Bij een productiemeter: positief = productie naar de installatie. Andere meterfuncties hangen af van de installatie/bekabeling. Gebruik options om de meterfunctie te herkennen; neem niet aan dat elke meter de netaansluiting meet. Controleer de functie en bekabeling als options null, leeg of onbekend is."
          },
          "powerAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L3 in W. Bij een netmeter: positief = teruglevering aan het net; negatief = afname van het net. Bij een productiemeter: positief = productie naar de installatie. Andere meterfuncties hangen af van de installatie/bekabeling. Gebruik options om de meterfunctie te herkennen; neem niet aan dat elke meter de netaansluiting meet. Controleer de functie en bekabeling als options null, leeg of onbekend is."
          },
          "voltageAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L1 in V."
          },
          "voltageAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L2 in V."
          },
          "voltageAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L3 in V."
          },
          "currentAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L1 in A. Gebruik powerAcL1 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L2 in A. Gebruik powerAcL2 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L3 in A. Gebruik powerAcL3 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "frequency": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-frequentie in Hz."
          },
          "totalImportAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Cumulatieve afgenomen AC-energie in Wh, als grootte zonder richtingsteken. De richting staat in de veldnaam, niet in het teken; de meterfunctie/bekabeling bepaalt het meetpunt."
          },
          "totalExportAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Cumulatieve teruggeleverde AC-energie in Wh, als grootte zonder richtingsteken. De richting staat in de veldnaam, niet in het teken; de meterfunctie/bekabeling bepaalt het meetpunt."
          },
          "dailyImportAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Dagelijkse afgenomen AC-energie in Wh, als grootte zonder richtingsteken. De richting staat in de veldnaam, niet in het teken; de meterfunctie/bekabeling bepaalt het meetpunt. Het resetmoment hangt af van het apparaat; de Application API definieert geen universeel middernachtmoment of tijdzone."
          },
          "dailyExportAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Dagelijkse teruggeleverde AC-energie in Wh, als grootte zonder richtingsteken. De richting staat in de veldnaam, niet in het teken; de meterfunctie/bekabeling bepaalt het meetpunt. Het resetmoment hangt af van het apparaat; de Application API definieert geen universeel middernachtmoment of tijdzone."
          }
        },
        "required": [
          "id",
          "installationId",
          "gatewayId",
          "manufacturer",
          "model",
          "version",
          "serialNumber",
          "options",
          "firstSeenDate",
          "lastSeenDate",
          "powerAc",
          "powerAcL1",
          "powerAcL2",
          "powerAcL3",
          "voltageAcL1",
          "voltageAcL2",
          "voltageAcL3",
          "currentAcL1",
          "currentAcL2",
          "currentAcL3",
          "frequency",
          "totalImportAc",
          "totalExportAc",
          "dailyImportAc",
          "dailyExportAc"
        ]
      },
      "EVCharger": {
        "type": "object",
        "description": "Laadpaalvelden die expliciet via de Application API beschikbaar zijn. Velden met null zijn onbekend, niet beschikbaar of niet ondersteund; null is niet hetzelfde als nul.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unieke identificatie van dit record."
          },
          "installationId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de installatie waartoe dit apparaat behoort."
          },
          "gatewayId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de gekoppelde gateway; null als er geen gateway is toegewezen."
          },
          "manufacturer": {
            "type": "string",
            "description": "Fabrikant van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "model": {
            "type": [
              "string",
              "null"
            ],
            "description": "Model van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "version": {
            "type": [
              "string",
              "null"
            ],
            "description": "Gemelde firmware-/softwareversie. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "serialNumber": {
            "type": "string",
            "description": "Serienummer van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "firstSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Eerste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset.",
            "format": "date-time"
          },
          "lastSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laatste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset. Controleer de actualiteit voordat je telemetrie interpreteert; dit endpoint bevat ook offline apparaten.",
            "format": "date-time"
          },
          "mode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Geselecteerde laadmodus voor het voertuig. Alleen-lezen; dit endpoint kan de modus niet wijzigen.",
            "enum": [
              "ALWAYS_ON",
              "CHARGE_EXCESS_PV_AND_LOWEST_PRICE",
              "CHARGE_LOWEST_PRICE",
              "CHARGE_EXCESS_PV",
              "ALWAYS_OFF",
              null
            ]
          },
          "requireAuthorization": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Of autorisatie nodig is om het laden van het voertuig te starten."
          },
          "supportsBiDirectionalCharging": {
            "type": "boolean",
            "description": "Of bidirectioneel laden wordt ondersteund. Altijd false in de huidige implementatie van de Application API."
          },
          "maxChargingCurrent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Ingestelde maximale laadstroom in A."
          },
          "currentMaxChargingCurrent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actuele laadstroomlimiet in A, berekend uit de geselecteerde modus en het schema; kan afwijken van maxChargingCurrent. Nul betekent dat laden momenteel niet is toegestaan."
          },
          "status": {
            "type": [
              "string",
              "null"
            ],
            "description": "Door het apparaat gemelde statusomschrijving van de laadpaal. De Application API dwingt geen gemeenschappelijke enum af voor alle integraties."
          },
          "vendorStatusString": {
            "type": [
              "string",
              "null"
            ],
            "description": "Statusomschrijving van het apparaat of de fabrikant; geen vaste verzameling waarden."
          },
          "powerOffered": {
            "type": [
              "number",
              "null"
            ],
            "description": "Aan het voertuig aangeboden laadvermogen in W; een limiet/aanbod, geen werkelijk verbruik."
          },
          "powerAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Totaal actief AC-vermogen in W. Positief = verbruik voor het laden van een voertuig. Bidirectioneel laden wordt in deze versie niet ondersteund (supportsBiDirectionalCharging is false); een negatieve waarde heeft geen ondersteunde betekenis voor voertuigontlading/V2G."
          },
          "powerAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L1 in W. Positief = verbruik voor het laden van een voertuig. Bidirectioneel laden wordt in deze versie niet ondersteund (supportsBiDirectionalCharging is false); een negatieve waarde heeft geen ondersteunde betekenis voor voertuigontlading/V2G."
          },
          "powerAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L2 in W. Positief = verbruik voor het laden van een voertuig. Bidirectioneel laden wordt in deze versie niet ondersteund (supportsBiDirectionalCharging is false); een negatieve waarde heeft geen ondersteunde betekenis voor voertuigontlading/V2G."
          },
          "powerAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L3 in W. Positief = verbruik voor het laden van een voertuig. Bidirectioneel laden wordt in deze versie niet ondersteund (supportsBiDirectionalCharging is false); een negatieve waarde heeft geen ondersteunde betekenis voor voertuigontlading/V2G."
          },
          "voltageAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L1 in V."
          },
          "voltageAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L2 in V."
          },
          "voltageAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L3 in V."
          },
          "currentAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L1 in A. Gebruik powerAcL1 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L2 in A. Gebruik powerAcL2 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L3 in A. Gebruik powerAcL3 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "frequencyAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-frequentie in Hz."
          },
          "powerDc": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-laadvermogen in W. Positief = vermogen naar het voertuig om te laden. Bidirectioneel laden wordt in deze versie niet ondersteund; een negatieve waarde heeft geen ondersteunde betekenis voor voertuigontlading/V2G."
          },
          "voltageDc": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-spanning in V."
          },
          "currentDc": {
            "type": [
              "number",
              "null"
            ],
            "description": "DC-stroom in A. Gebruik powerDc voor de vermogensrichting; de tekenconventie voor stroom kan per apparaat verschillen."
          },
          "temperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Apparaattemperatuur in °C."
          }
        },
        "required": [
          "id",
          "installationId",
          "gatewayId",
          "manufacturer",
          "model",
          "version",
          "serialNumber",
          "firstSeenDate",
          "lastSeenDate",
          "mode",
          "requireAuthorization",
          "supportsBiDirectionalCharging",
          "maxChargingCurrent",
          "currentMaxChargingCurrent",
          "status",
          "vendorStatusString",
          "powerOffered",
          "powerAc",
          "powerAcL1",
          "powerAcL2",
          "powerAcL3",
          "voltageAcL1",
          "voltageAcL2",
          "voltageAcL3",
          "currentAcL1",
          "currentAcL2",
          "currentAcL3",
          "frequencyAc",
          "powerDc",
          "voltageDc",
          "currentDc",
          "temperature"
        ]
      },
      "Relay": {
        "type": "object",
        "description": "Relaisvelden die expliciet via de Application API beschikbaar zijn. Velden met null zijn onbekend, niet beschikbaar of niet ondersteund; null is niet hetzelfde als nul.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unieke identificatie van dit record."
          },
          "installationId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de installatie waartoe dit apparaat behoort."
          },
          "gatewayId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de gekoppelde gateway; null als er geen gateway is toegewezen."
          },
          "manufacturer": {
            "type": [
              "string",
              "null"
            ],
            "description": "Fabrikant van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "model": {
            "type": [
              "string",
              "null"
            ],
            "description": "Model van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "version": {
            "type": [
              "string",
              "null"
            ],
            "description": "Gemelde firmware-/softwareversie. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "serialNumber": {
            "type": [
              "string",
              "null"
            ],
            "description": "Serienummer van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "firstSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Eerste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset.",
            "format": "date-time"
          },
          "lastSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laatste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset. Controleer de actualiteit voordat je telemetrie interpreteert; dit endpoint bevat ook offline apparaten.",
            "format": "date-time"
          },
          "relayCount": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Aantal relaiskanalen."
          },
          "currentState": {
            "type": [
              "array",
              "null"
            ],
            "description": "Gemelde toestand van elk relais, geïndexeerd vanaf nul: true = aan, false = uit. Null betekent niet beschikbaar.",
            "items": {
              "type": "boolean"
            }
          },
          "desiredState": {
            "type": [
              "array",
              "null"
            ],
            "description": "Gevraagde handmatige toestand van elk relais, geïndexeerd vanaf nul: true = aan, false = uit, null = automatische regeling/geen handmatige overschrijving voor dat kanaal. De volledige waarde kan ook null zijn. Dit is niet noodzakelijk de werkelijke toestand of het resultaat van de automatisering.",
            "items": {
              "type": [
                "boolean",
                "null"
              ]
            }
          }
        },
        "required": [
          "id",
          "installationId",
          "gatewayId",
          "manufacturer",
          "model",
          "version",
          "serialNumber",
          "firstSeenDate",
          "lastSeenDate",
          "relayCount",
          "currentState",
          "desiredState"
        ]
      },
      "Boiler": {
        "type": "object",
        "description": "Boilervelden die expliciet via de Application API beschikbaar zijn. Velden met null zijn onbekend, niet beschikbaar of niet ondersteund; null is niet hetzelfde als nul.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unieke identificatie van dit record."
          },
          "installationId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de installatie waartoe dit apparaat behoort."
          },
          "gatewayId": {
            "type": [
              "integer",
              "null"
            ],
            "description": "ID van de gekoppelde gateway; null als er geen gateway is toegewezen."
          },
          "manufacturer": {
            "type": "string",
            "description": "Fabrikant van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "model": {
            "type": [
              "string",
              "null"
            ],
            "description": "Model van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "version": {
            "type": [
              "string",
              "null"
            ],
            "description": "Gemelde firmware-/softwareversie. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "serialNumber": {
            "type": "string",
            "description": "Serienummer van het apparaat. Nulbytes en witruimte aan het begin en einde worden verwijderd."
          },
          "firstSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Eerste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset.",
            "format": "date-time"
          },
          "lastSeenDate": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laatste keer dat dit apparaat is gezien, als ISO 8601-tijdstempel met UTC-offset. Controleer de actualiteit voordat je telemetrie interpreteert; dit endpoint bevat ook offline apparaten.",
            "format": "date-time"
          },
          "status": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Door het apparaat gemelde numerieke boilerstatus. De Application API normaliseert geen gemeenschappelijke status-enum voor alle fabrikanten."
          },
          "vendorStatusString": {
            "type": [
              "string",
              "null"
            ],
            "description": "Statusomschrijving van het apparaat of de fabrikant; geen vaste verzameling waarden."
          },
          "boilerMode": {
            "type": [
              "string",
              "null"
            ],
            "description": "Actuele regelmodus van de boiler. Alleen-lezen; dit endpoint kan de modus niet wijzigen.",
            "enum": [
              "FORCE_ON",
              "FORCE_OFF",
              "EXCESS_PV_BATTERY_PREFERRED",
              "EXCESS_PV_BOILER_PREFERRED",
              null
            ]
          },
          "powerAc": {
            "type": [
              "number",
              "null"
            ],
            "description": "Totaal actief AC-vermogen in W. Positief = elektriciteitsverbruik voor verwarming. Boilers produceren geen elektriciteit en leveren niet terug; een negatieve waarde heeft geen vastgelegde betekenis voor teruglevering of ontladen."
          },
          "powerAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L1 in W. Positief = elektriciteitsverbruik voor verwarming. Boilers produceren geen elektriciteit en leveren niet terug; een negatieve waarde heeft geen vastgelegde betekenis voor teruglevering of ontladen."
          },
          "powerAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L2 in W. Positief = elektriciteitsverbruik voor verwarming. Boilers produceren geen elektriciteit en leveren niet terug; een negatieve waarde heeft geen vastgelegde betekenis voor teruglevering of ontladen."
          },
          "powerAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "Actief AC-vermogen op fase L3 in W. Positief = elektriciteitsverbruik voor verwarming. Boilers produceren geen elektriciteit en leveren niet terug; een negatieve waarde heeft geen vastgelegde betekenis voor teruglevering of ontladen."
          },
          "voltageAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L1 in V."
          },
          "voltageAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L2 in V."
          },
          "voltageAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-spanning op fase L3 in V."
          },
          "currentAcL1": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L1 in A. Gebruik powerAcL1 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL2": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L2 in A. Gebruik powerAcL2 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "currentAcL3": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-stroom op fase L3 in A. Gebruik powerAcL3 voor de richting van actief vermogen; de tekenconventie voor stroom hangt af van het apparaat."
          },
          "frequency": {
            "type": [
              "number",
              "null"
            ],
            "description": "AC-frequentie in Hz."
          },
          "temperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Apparaattemperatuur in °C."
          },
          "temperature2": {
            "type": [
              "number",
              "null"
            ],
            "description": "Temperatuursensor 2 in °C."
          },
          "temperature3": {
            "type": [
              "number",
              "null"
            ],
            "description": "Temperatuursensor 3 in °C."
          },
          "temperature4": {
            "type": [
              "number",
              "null"
            ],
            "description": "Temperatuursensor 4 in °C."
          },
          "targetTemperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Gewenste watertemperatuur in °C."
          },
          "minimumTemperature": {
            "type": [
              "number",
              "null"
            ],
            "description": "Minimale watertemperatuur in °C."
          },
          "availablePower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Door de boiler gemeld beschikbaar vermogen in W; een grootte zonder richtingsteken voor afname/teruglevering."
          },
          "effectiveMaxPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Effectief maximaal boilervermogen in W; een grootte, geen gemeten verbruik."
          },
          "operationMode": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Fabrikantspecifieke numerieke bedrijfsmodus. De Application API definieert geen gemeenschappelijke enum."
          },
          "operationState": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Fabrikantspecifieke numerieke bedrijfstoestand. De Application API definieert geen gemeenschappelijke enum."
          },
          "deviceState": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Door de fabrikant gemelde aan-/ingeschakelde toestand van het apparaat."
          },
          "relayState": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Door de fabrikant gemelde aan-/uittoestand van het relais."
          },
          "loadState": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Fabrikantspecifieke numerieke belastingstoestand. De Application API definieert geen gemeenschappelijke enum."
          },
          "pwmPercent": {
            "type": [
              "number",
              "null"
            ],
            "description": "Inschakelduur van de pulsbreedtemodulatie in procent (0–100)."
          }
        },
        "required": [
          "id",
          "installationId",
          "gatewayId",
          "manufacturer",
          "model",
          "version",
          "serialNumber",
          "firstSeenDate",
          "lastSeenDate",
          "status",
          "vendorStatusString",
          "boilerMode",
          "powerAc",
          "powerAcL1",
          "powerAcL2",
          "powerAcL3",
          "voltageAcL1",
          "voltageAcL2",
          "voltageAcL3",
          "currentAcL1",
          "currentAcL2",
          "currentAcL3",
          "frequency",
          "temperature",
          "temperature2",
          "temperature3",
          "temperature4",
          "targetTemperature",
          "minimumTemperature",
          "availablePower",
          "effectiveMaxPower",
          "operationMode",
          "operationState",
          "deviceState",
          "relayState",
          "loadState",
          "pwmPercent"
        ]
      },
      "InverterStatus": {
        "type": "object",
        "description": "Genormaliseerde SunSpec-status van de omvormer.",
        "properties": {
          "rawValue": {
            "type": "integer",
            "description": "SunSpec-status: 1 Off (uit), 2 Sleeping (slaapstand), 3 Starting (opstarten), 4 MPPT, 5 Throttled (begrensd), 6 Shutting Down (uitschakelen), 7 Fault (storing), 8 Standby (stand-by).",
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7,
              8
            ]
          },
          "name": {
            "type": "string",
            "description": "Leesbaar label dat overeenkomt met rawValue.",
            "enum": [
              "Off",
              "Sleeping",
              "Starting",
              "MPPT",
              "Throttled",
              "Shutting Down",
              "Fault",
              "Standby"
            ]
          }
        },
        "required": [
          "rawValue",
          "name"
        ]
      },
      "InstallationsResponse": {
        "type": "object",
        "description": "Installaties die deze applicatie momenteel mag uitlezen.",
        "properties": {
          "valid": {
            "type": "boolean",
            "description": "Verzoek geslaagd.",
            "const": true
          },
          "installations": {
            "type": "array",
            "description": "Toegankelijke installaties. Een lege array betekent dat de applicatie momenteel geen toegankelijke installaties heeft.",
            "items": {
              "$ref": "#/components/schemas/Installation"
            }
          }
        },
        "required": [
          "valid",
          "installations"
        ]
      },
      "InstallationDevicesResponse": {
        "type": "object",
        "description": "Laatst bekende apparaattoestand. Alleen-lezen-momentopname; metingen zijn niet gegarandeerd gelijktijdig of actueel.",
        "properties": {
          "valid": {
            "type": "boolean",
            "description": "Verzoek geslaagd.",
            "const": true
          },
          "installationId": {
            "type": "integer",
            "description": "ID van de opgevraagde toegankelijke installatie."
          },
          "inverters": {
            "type": "array",
            "description": "Alle omvormers van deze installatie, inclusief offline apparaten met hun laatst bekende toestand. Leeg als er geen worden teruggegeven.",
            "items": {
              "$ref": "#/components/schemas/Inverter"
            }
          },
          "batteries": {
            "type": "array",
            "description": "Alle batterijen van deze installatie, inclusief offline apparaten met hun laatst bekende toestand. Leeg als er geen worden teruggegeven.",
            "items": {
              "$ref": "#/components/schemas/Battery"
            }
          },
          "energyMeters": {
            "type": "array",
            "description": "Alle energiemeters van deze installatie, inclusief offline apparaten met hun laatst bekende toestand. Leeg als er geen worden teruggegeven.",
            "items": {
              "$ref": "#/components/schemas/EnergyMeter"
            }
          },
          "evChargers": {
            "type": "array",
            "description": "Alle laadpalen van deze installatie, inclusief offline apparaten met hun laatst bekende toestand. Leeg als er geen worden teruggegeven.",
            "items": {
              "$ref": "#/components/schemas/EVCharger"
            }
          },
          "relays": {
            "type": "array",
            "description": "Alle relais van deze installatie, inclusief offline apparaten met hun laatst bekende toestand. Leeg als er geen worden teruggegeven.",
            "items": {
              "$ref": "#/components/schemas/Relay"
            }
          },
          "boilers": {
            "type": "array",
            "description": "Alle boilers van deze installatie, inclusief offline apparaten met hun laatst bekende toestand. Leeg als er geen worden teruggegeven.",
            "items": {
              "$ref": "#/components/schemas/Boiler"
            }
          }
        },
        "required": [
          "valid",
          "installationId",
          "inverters",
          "batteries",
          "energyMeters",
          "evChargers",
          "relays",
          "boilers"
        ]
      },
      "Error": {
        "type": "object",
        "description": "Fout van de Application API. Controleer zowel de HTTP-status als de foutcode.",
        "properties": {
          "valid": {
            "type": "boolean",
            "description": "Verzoek mislukt.",
            "const": false
          },
          "error": {
            "type": "string",
            "description": "Machineleesbare foutcode.",
            "enum": [
              "UNAUTHORIZED",
              "MISSING_PARAMETERS",
              "INVALID_PARAMETERS",
              "DOESNT_EXIST",
              "DATABASE_ERROR",
              "INTERNAL_ERROR"
            ]
          }
        },
        "required": [
          "valid",
          "error"
        ]
      },
      "InstallationCurrentEnergyFlow": {
        "type": "object",
        "description": "Geaggregeerde energiestroom van uitsluitend online apparaten. Elk veld is aanwezig maar kan null zijn. Sommige sommen beginnen bij nul en behandelen ontbrekende metingen als nul; een numerieke nul betekent dus niet altijd een gemeten nul. Apparaatmetingen zijn niet gesynchroniseerd.",
        "properties": {
          "inverterPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Gezamenlijk AC-vermogen van online omvormers plus externe productiemeters, in W. Positief = levering aan de installatie; negatief = opname van de AC-bus. Null als geen van beide bronnen bijdraagt."
          },
          "solarPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Geschat zonnevermogen in W, afgeleid van powerDc van online omvormers met integratiespecifieke batterijcorrecties. Het omvormer-/batterijsubtotaal wordt begrensd op minimaal nul voordat powerAc van externe productiemeters wordt toegevoegd. Dit is niet simpelweg de som van powerDcPvTotal. Null als geen bron bijdraagt."
          },
          "batteryPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Som van powerDc van online batterijen in W. Positief = laden; negatief = ontladen. Null als geen batterijen online zijn."
          },
          "batterySoe": {
            "type": [
              "number",
              "null"
            ],
            "description": "Rekenkundig gemiddelde van soe over online batterijen, in procent; niet gewogen naar capaciteit. Null als geen batterijen online zijn. Ontbrekende afzonderlijke soe-waarden tellen als nul, terwijl die batterijen wel meetellen in de deler."
          },
          "gridPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Netvermogen in W: positief = afname; negatief = teruglevering. Dit is het omgekeerde teken van powerAc van een ruwe netmeter. Berekend als het negatieve gemiddelde van powerAc van online meters met options Export+Import. Null als geen energiemeters online zijn; nul als wel meters online zijn maar geen ervan die functie heeft. Nul bewijst op zichzelf geen gemeten evenwicht op de netaansluiting."
          },
          "housePower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Geschat verbruik in W, exclusief laadpalen en boilers: gridPower plus beschikbaar inverterPower, min beschikbaar evChargerPower en boilerPower, begrensd op minimaal nul. Null als geen energiemeters online zijn. Dit is een afgeleide schatting, geen afzonderlijke meting van het huisverbruik."
          },
          "evChargerPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Gezamenlijk vermogen van online laadpalen in W, per laadpaal op basis van powerDc indien beschikbaar en anders powerAc. Positief = laadverbruik; geen ondersteunde betekenis voor negatieve waarden/V2G. Null als geen laadpalen online zijn."
          },
          "boilerPower": {
            "type": [
              "number",
              "null"
            ],
            "description": "Boilerverbruik in W. Gebruikt de som van niet-null powerAc-waarden van online boilers; alleen als geen waarde beschikbaar is, wordt de som van absolute powerAc van online Boiler consumption-meters gebruikt. De twee bronnen worden niet bij elkaar opgeteld. Positief = verbruik; waarden van boilerapparaten worden zonder tekennormalisatie doorgegeven. Null als geen van beide bronnen een meting heeft."
          },
          "lastUpdated": {
            "type": [
              "string",
              "null"
            ],
            "description": "Meest recente lastSeenDate van de online omvormers, batterijen, energiemeters, laadpalen en boilers in de berekening, als ISO 8601-tijdstempel met UTC-offset. Null als geen tijdstempel beschikbaar is. Niet het tijdstip van het verzoek of bewijs dat elke meting even actueel is.",
            "format": "date-time"
          }
        },
        "required": [
          "inverterPower",
          "solarPower",
          "batteryPower",
          "batterySoe",
          "gridPower",
          "housePower",
          "evChargerPower",
          "boilerPower",
          "lastUpdated"
        ]
      },
      "InstallationCurrentEnergyFlowResponse": {
        "type": "object",
        "description": "Actuele geaggregeerde energiestroom van de installatie. Een geslaagd antwoord kan data: null bevatten.",
        "properties": {
          "valid": {
            "type": "boolean",
            "description": "Verzoek geslaagd.",
            "const": true
          },
          "installationId": {
            "type": "integer",
            "description": "ID van de opgevraagde toegankelijke installatie."
          },
          "data": {
            "description": "Energiestroomobject, of null als geen omvormers, batterijen, energiemeters, laadpalen of boilers online zijn. Relais dragen niet bij.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/InstallationCurrentEnergyFlow"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "valid",
          "installationId",
          "data"
        ]
      }
    }
  }
}
