Extra data in Home Assistant

Met onderstaande voorbeelden kun je extra sensoren maken voor dashboards, zoals je rang in de live-resultaten en actuele onbalans- of energieprijzen.

Rang in de live-resultataten

Je kunt je actuele rang ophalen via de API en als sensors beschikbaar maken in Home Assistant. Gebruik hiervoor het profiel endpoint https://onbalansmarkt.com/api/me (Authorization header met je API-key).

rest:
  - resource: "https://onbalansmarkt.com/api/me"
    method: GET
    headers:
      Authorization: !secret mijnbatterij_api_key
    scan_interval: 300
    sensor:
      - name: "Onbalansmarkt rang totaal"
        value_template: >
          {{ value_json.resultToday.overallRank if value_json.resultToday is not none else 0 }}
      - name: "Onbalansmarkt rang provider"
        value_template: >
          {{ value_json.resultToday.providerRank if value_json.resultToday is not none else 0 }}

Energieprijzen per uur of kwartier

Voor actuele EPEX prijzen kun je de API van epexprijzen.nl gebruiken. Deze geeft zowel uur- als kwartierprijzen zonder dat je een account of extra integratie nodig hebt. Je kunt met dezelfde rest integratie een sensor maken en de data als attributen opslaan voor dashboards.

Actuele onbalansprijzen

De actuele onbalansprijzen zijn beschikbaar via onze API. Gebruik /api/imbalance/simple voor een vereenvoudigde response met tijdstippen en prijs, ideaal voor grafieken.

rest:
  - resource: "https://onbalansmarkt.com/api/imbalance/simple"
    method: GET
    scan_interval: 60
    sensor:
      - name: "Onbalansprijzen (simple)"
        value_template: "{{ value_json.imbalancePrices | count }}"
        json_attributes:
          - imbalancePrices

Je kan deze sensor vervolgens gebruiken met apexcharts-card, bijvoorbeeld met deze configuratie:

type: custom:apexcharts-card
graph_span: 1d
span:
  start: day
header:
  show: true
  title: Onbalansprijzen (vandaag)
series:
  - entity: sensor.onbalansprijzen_simple
    name: Onbalansprijs
    type: line
    data_generator: |
      return entity.attributes.imbalancePrices.map((item) => {
        return [new Date(item.timestamp).getTime(), item.price];
      });
    show:
      legend_value: false
    group_by:
      func: last