Resultaten doorsturen via Zonneplan en Home Assistant

Wil je jouw resultaten live delen op deze site zodat we de opbrengst kunnen vergelijken? Meld je dan aan, voeg je installatie toe en log in. Op je profielpagina staat dan vervolgens de API-key, hiermee kun je de volgende stappen volgen.

Wanneer je je gegevens deelt volgens onderstaande stappenplan dan worden een aantal gegevens vanuit de (onofficiƫle) Zonneplan Home Assistant integratie doorgestuurd naar deze website. Op deze manier worden enkel de gegevens die je instelt doorgestuurd en krijgt niemand toegang tot jouw Zonneplan-account.

Configuratie in Home Assistant

  1. Als het goed is overbodig: installeer Home Assistant.
  2. Installeer de Zonneplan-plugin en voeg jouw Zonneplan-systeem toe. Het onderstaande automation stuurt de metingen van deze plugin door, het is dus vereist dat die actief is en je bent ingelogd met je Zonneplan-account.
  3. Stel je API key in als 'secret' in secrets.yaml:

    mijnbatterij_api_key: Bearer JOUW_API_KEY_HIER
    
  4. Voeg de volgende configuratie toe aan je Home Assistant configuration.yaml configuratiebestand:

    rest_command:
      submit_mijnbatterij_live:
        url: "https://onbalansmarkt.com/api/live"
        method: POST
        headers:
          Content-Type: "application/json"
          Authorization: !secret mijnbatterij_api_key
          Accept: "application/json"
        payload: >
          {
          "timestamp": "{{ states("sensor.thuisbatterij_last_measured") }}",
          "batteryResult": "{{ states("sensor.thuisbatterij_today")}}",
          "batteryResultTotal": "{{ states("sensor.thuisbatterij_total") }}",
          "batteryCharge": "{{ states("sensor.thuisbatterij_percentage") }}",
          "batteryPower": "{{ states("sensor.thuisbatterij_power") }}",
          "chargedToday": "{{ states("sensor.thuisbatterij_delivery_today") }}",
          "dischargedToday": "{{ states("sensor.thuisbatterij_production_today") }}",
          "chargerResult": "{{ states("sensor.daily_charge_laadpaal_result") }}",
          "solarResult": "{{ states("sensor.zonneplan_one_omvormer_powerplay_today") }}",
          "totalBatteryCycles": "{{ states("sensor.thuisbatterij_battery_cycles") }}",
          "mode": {% if states("binary_sensor.thuisbatterij_self_consumption_enabled") == "on" %}"self_consumption"{% elif states("binary_sensor.thuisbatterij_home_optimization_enabled") is defined and states("binary_sensor.thuisbatterij_home_optimization_enabled") == "on" %}"self_consumption_plus"{% else %}null{% endif %},
          "loadBalancingActive": "{{ states("binary_sensor.thuisbatterij_dynamic_load_balancing_overload_active") }}"}
    
      submit_mijnbatterij_month:
        url: "https://onbalansmarkt.com/api/results/monthly"
        method: POST
        headers:
          Authorization: !secret mijnbatterij_api_key
          Content-Type: "application/json"
        payload: >
          {% set s = sensor | default('sensor.thuisbatterij_result_last_month') %}
          {% set days = state_attr(s, 'days') or {} %}
          {
            "yearMonth": "{{ state_attr(s, 'month') }}",
            "batteryCharged": {{ state_attr(s, 'total_delivery_kwh') | float(0) }},
            "batteryDischarged": {{ state_attr(s, 'total_production_kwh') | float(0) }},
            "batteryResult": {{ states(s) | float(0) }},
            "days": {
              {% for day, values in days.items() %}
              "{{ day }}": {
                "batteryResult": {{ values.result | float(0) }},
                "batteryCharged": {{ values.delivery_kwh | float(0) }},
                "batteryDischarged": {{ values.production_kwh | float(0) }}
              }{% if not loop.last %},{% endif %}
              {% endfor %}
            }
          }
    
      submit_mijnbatterij_year:
        url: "https://onbalansmarkt.com/api/results/yearly"
        method: POST
        headers:
          Authorization: !secret mijnbatterij_api_key
          Content-Type: "application/json"
        payload: >
          {% set s = sensor | default('sensor.thuisbatterij_result_this_year') %}
          {% set months = state_attr(s, 'months') or {} %}
          {
            "year": "{{ state_attr(s, 'year') }}",
            "batteryCharged": {{ state_attr(s, 'total_delivery_kwh') | float(0) }},
            "batteryDischarged": {{ state_attr(s, 'total_production_kwh') | float(0) }},
            "batteryResult": {{ states(s) | float(0) }},
            "months": {
              {% for month, values in months.items() %}
              "{{ month }}": {
                "batteryResult": {{ values.result | float(0) }},
                "batteryCharged": {{ values.delivery_kwh | float(0) }},
                "batteryDischarged": {{ values.production_kwh | float(0) }}
              }{% if not loop.last %},{% endif %}
              {% endfor %}
            }
          }
    
    # Optioneel: Houd de dagelijkse opbrengst van je Zonneplan laadpaal met PowerPlay bij (indien aanwezig)
    utility_meter:
      daily_charge_laadpaal_result:
        source: sensor.charge_laadpaal_charge_point_session_flex_result
        name: Dagresultaat PowerPlay laadpaal
        cycle: daily
    
  5. Herstart Home Assistant. Let op, dit is vereist om verder te gaan.
  6. Klik nadat je Home Assistant hebt herstart op deze link om de automatisering toe te voegen met onze blueprint:
    Importeer blueprint
    Klik vervolgens op 'Open link', kies je Home Assistant instantie en klik op 'Voorbeeld', gevolgd door 'Blueprint importeren'.
  7. Kies vervolgens 'Automatisering toevoegen' en kies 'Mijnbatterij - gegevens delen'. Kies vervolgens 'Opslaan' en geef de automation een naam.
  8. Tip: wil je zien of de automatisering zijn werk heeft gedaan? Je kunt hem aanklikken en rechtsboven 'Tracering weergeven' kiezen.

Extra data in Home Assistant

Vind je het interessant om extra data beschikbaar te hebben voor dashboards en dergelijke? We hebben een handleiding voor extra Home Assistant-uitbreidingen beschikbaar. Deze is voor alle Home Assistant koppelingen hetzelfde en staat daarom op een aparte pagina: extra data in Home Assistant.