Zonneplan ONE custom component

Probably the api published the cost excluding taxes etc?

But to cut a long story short, Why not use the HA energy dashboard instead? It will do this for you, all thats required is a production/consumption sensor and a current price sensor. All of which the zonneplan api provides.

That’s true, but I would also like to place the costs on my own dashboards with power and solar panels information which I use more than the Energy dashboard. But maybe I’ll just use the Energy dashboard for this indeed.

Where does that sensor.zonneplan_cheapest_hours come from? That is not an attribute in my Zonneplan One Component.

I saw the zonneplan card what they are using in the app. I created one in home assistant. Thanks for sharing

afbeelding

1 Like

Would you like to share the code?

I don’t have Zonneplan but i have a Solis Inverter. But if you are a bit handy you can change the sensors. Don’t look a the code it’s still a bit messy and a lot of things double :).

type: custom:stack-in-card
cards:
  - type: horizontal-stack
    cards:
      - square: false
        type: grid
        cards:
          - type: custom:mushroom-title-card
            title: Stroomkosten
            subtitle: vandaag
          - type: custom:mushroom-title-card
            title: >
              € {{ ((states.sensor.verbruik_elektra_dagelijks.state | float *
              0.18646) - (states.sensor.solis_energy_today.state | float *
              0.18646)) | round(2) }}
            card_mod:
              style: |
                .title {
                  text-align: right;
                  font-size: 50px!important;
                  }
        columns: 2
        style: |
          ha-card {
            border: none;
          }
  - type: horizontal-stack
    cards:
      - square: false
        type: grid
        cards:
          - type: custom:mushroom-title-card
            title: VERBRUIK
            subtitle: >-
              {{ states ('sensor.verbruik_elektra_dagelijks') | upper }} kWh x
              18 ct
            card_mod:
              style: |
                .title {
                  font-size: 12px!important;
                  color: rgba(255, 255, 255,0.5)!important;
                  font-weight: 300!important;
                  }
          - type: custom:mushroom-title-card
            title: TERUGLEVERING
            subtitle: |
              {{ states ('sensor.solis_energy_today') }} kWh
            card_mod:
              style: |
                .title {
                  font-size: 12px!important;
                  color: rgba(255, 255, 255,0.5)!important;
                  text-align: right;
                  font-weight: 300!important;
                  }
                .subtitle { 
                  text-align: right!important;
                  color: rgba(255, 255, 255,0.5)!important;
                  }
        columns: 2
        style: |
          ha-card {
            border: none;
          }
card_mod:
  style: |
    ha-card {
      background-color: #00A964;
      --primary-text-color: #FFFFFF;
      --secondary-text-color: #FFFFFF;
      border-radius: 20px;
      padding: 5px 5px;
        }

Hi @ronniebee

I`m trieing for hours to get this nice card to work but no luck, any ideas?

just getting this

image

type: custom:apexcharts-card
apex_config:
  chart:
    height: 200px
experimental:
  color_threshold: true
graph_span: 30h
span:
  start: day
  offset: +4h
update_interval: +1h
header:
  title: Zonneplan Forecast
  show: true
now:
  show: true
  label: nu
series:
  - entity: sensor.zonneplan_current_electricity_tariff
    color_threshold:
      - value: 0
        color: '#228B22'
      - value: 0.25
        color: '#d35400'
      - value: 0.4
        color: '#c0392b'
    type: column
    float_precision: 2
    data_generator: |
      return entity.attributes.forcast.map((entry) => {
         return [new Date(entry.datetime), entry.electricity_price / 10000000];
       });
yaxis:
  - id: '1'
    decimals: 2
    min: 0.1

ApexCharts installed through hacs but this would be te first chart so maybe the problem is in my intergration?

Not sure this is the right place to ask but I seem to have some trouble after installation. Except, there are no errors.
What happens is I do not get the P1 readings. I only see Zonneplan Yield Total
Zonneplan P1 electricity consumption today
Zonneplan P1 electricity returned today

I do have a working P1 connector that shows data using the DSMR Slimme meter integration. Enabling or disabling this integration does not make a difference fot this Zonneplan integration.
Cannot find this issue but perhaps I’m not as good in finding it. Please help.

Most sensors are disabled by default. Are there no disabled sensors shown?

I can’t find any.
Under integrations I see Zonneplan ONE with 1 device. Clicking on that one device I see 5 sensors:

  1. Zonneplan last measured
  2. Zonneplan last measured value
  3. Zonneplan yield today
  4. Zonneplan yield total
  5. Zonneplan first measured.

Do you have the P1 dongle from Zonneplan connected? And are these values visible in the Zonneplan app?

If you have a P1 dongle from Zonneplan (and the contract) you should see a Connect energiemeter device in HomeAssistant.

The values you mention belong to the PV Installatie device (je zonnepanelen :slight_smile: )

No I haven’t. The P1 cable is from the Pi to the ‘slimme meter’. So I guess I also need DSMR slimme meter to read the P1 output. To me the Zonneplan ONE documentation was a little confusing because of this direct connection between my pi and the meter. Thought your software could read the ‘standard’ P1 output and combine it. My bad. I think I have it running now with these 5 sensors in combination with DSMR

Lowest price comming hours;


sensor:
  - platform: template
    sensors:
      laagste_elektriciteit_tarief_zp:
        friendly_name: "Laagste Elektriciteit Tarief ZP"
        unit_of_measurement: "€/kWh"
        value_template: >-
          {% set now_time = now().isoformat() %}
          {% set future_prices = state_attr('sensor.zonneplan_current_electricity_tariff', 'forecast') | selectattr('datetime', '>', now_time) | list %}
          {% set min_future_price = future_prices | map(attribute='electricity_price') | map('float') | min %}

          {{ min_future_price / 10000000 if min_future_price is defined else 'Niet beschikbaar' }}

Ben benieuwd of je al een oplossing gevonden had op het probleem laagste prijs trigger.

  - platform: template
    sensors:
      goedkoopste_tarief:
        friendly_name: "Goedkoopste Tarief"
        value_template: >-
          {% set now_time = now().isoformat() %}
          {% set future_prices = state_attr('sensor.zonneplan_current_electricity_tariff', 'forecast') | selectattr('datetime', '>', now_time) | list %}
          {% set min_future_price_obj = future_prices | min(attribute='electricity_price') %}

          {% if min_future_price_obj is defined %}
            {{ as_timestamp(min_future_price_obj.datetime) | timestamp_custom('%-H:%M') }}
          {% else %}
            Niet beschikbaar
          {% endif %}
      goedkoopste_tarief_prijs:
        friendly_name: "Goedkoopste Tarief Prijs"
        value_template: >-
          {% set now_time = now().isoformat() %}
          {% set future_prices = state_attr('sensor.zonneplan_current_electricity_tariff', 'forecast') | selectattr('datetime', '>', now_time) | list %}
          {% set min_future_price_obj = future_prices | min(attribute='electricity_price') %}

          {% if min_future_price_obj is defined %}
            {{ min_future_price_obj.electricity_price / 10000000 }}
          {% else %}
            Niet beschikbaar
          {% endif %}

Schermafbeelding 2024-02-28 om 12.42.27

alias: AutoLaden laagste prijs
description: ""
trigger:
  - platform: state
    entity_id: sensor.zonneplan_current_electricity_tariff
condition: []
action:
  - variables:
      now_time: "{{ now().isoformat() }}"
      future_prices: >-
        {{ state_attr('sensor.zonneplan_current_electricity_tariff', 'forecast')
        | selectattr('datetime', '>', now_time) | list }}
      min_future_price: >-
        {{ future_prices | map(attribute='electricity_price') | map('float') |
        min }}
  - choose:
      - conditions:
          - condition: template
            value_template: >-
              {{ states('sensor.zonneplan_current_electricity_tariff') | float
              >= (min_future_price / 10000000) + 0.005 }}
        sequence:
          - type: turn_off
            device_id: 67618ac8f9bda649899edf829cb9459e
            entity_id: f8f053aeb1021a8f39f481426cf4c61b
            domain: switch
      - conditions:
          - condition: template
            value_template: >-
              {{ states('sensor.zonneplan_current_electricity_tariff') | float
              <= (min_future_price / 10000000) + 0.005 }}
        sequence:
          - type: turn_on
            device_id: 67618ac8f9bda649899edf829cb9459e
            entity_id: f8f053aeb1021a8f39f481426cf4c61b
            domain: switch
          - service: notify.mobile_app_iphone_rwn1w3gf6k
            metadata: {}
            data:
              message: >-
                Auto laden laagste prijs: {{
                states('sensor.zonneplan_current_electricity_tariff') }} €
mode: single

1 Like

Bedankt voor de code.
Nog wel een opmerking
Als je op tijd (de laagste prijs) een automatisering wilt starten werkt deze sensor niet.
Mijn weergave is 4:00 ipv 04:00
Nu is dat geen probleem maar ik wil op 04:00 een automatisering starten.
alvast bedankt voor het meedenken.
gr Nico

Voor het laden van de auto heb ik laagste prijs+0,5cnt waardoor hij alleen laadt op de goedkope tijden. Voor de vloerverwarmingen doe ik hetzelfde. Ik wil dat nog een keer spe
Het tijd schakelen heb ik inderdaad nog niet gebruikt. De vaat, was, en droger hebben uitgestelde tijd functie en zijn helaas nog niet smart.
Ik zal dit weekend de tijd optie uitproberen.

Dank voor je antwoord,
Je kunt het volgende met de vaatwasser of wasmachine proberen. Bij mij werkt dat.
Kies het programma wat je wilt op de vaat of wasmachine
Schakel de switch die de vaat of wasmachine onder spanning zet uit op je dashboard van Home assistant.
Als in de automatisering de juiste tijd langs komt gaat de switch aan.
Dus niet schakelen op prijs… maar op tijd.
Kan zijn dat jouw vaatwasser het ingestelde programma wist indien hij wordt uitgezet… is simpel te testen… door het instellen en daarna uit en 5 min wachten en dan aanzetten… staat het progr er nog in… dan werkt de automatisering.
Dank voor je inzet…
Gr . Nico

is het gelukt met de laagste prijs?
Ik zal vanavond nog een keer de apparaten bij langs maar ze zijn digitaal dus denk dat bij uitschakelen het geheugen weer gereset wordt.
Overigens wel meer werk, switch inschakelen, apparaat aanschakelen, instellen, apparaat uitschakelen en switch uitschakelen. Het is al heel wat dat mn vrouw de uitgestelde tijd wil instellen. :rofl:

1 Like

Mijn vaatwassen en wasmachine zijn ook digitaal.
En de vrouw is alleen te bewegen indien je zegt het is goedkoper en je kunt er na 2 jaar van op vakantie. Het is een leerproces. Ze houden niet zo van automatisering.
Even terug naar het probleem… het gaat om de sensor die moet tijd en of datum code in de data hebben staan. bv (2024-03-01T07:00:00+00:00)

in de zonneplan sensor staat die wel ( [sensor.zonneplan_current_electricity_tariff](

datetime: ‘2024-02-29T11:00:00.000000Z’

onderstaande code moet dan kunnen werken.
Om {{ as_timestamp(states(‘sensor.zonneplan_goedkoopste_tijd’)) | timestamp_custom(‘%H:%M’) }} uur is/was laagste energie tijd

enfin ik hoor van je…
fijn weekend,
gr Nico