Solcast Global Solar Power Forecast Integration

Anyone else having issues with latest version of Solcast integration and HA? I updated everything last week and it doesn’t appear to be pulling any data. I have checked the log but I can’t see anything obvious (now looking for the not so obvious). Any help or guidance appreciated.

The forecast_today entity stopped listing values, so there is nothing to show but from tomorrow and the following 6 days. If it’s Solcast limiting the API, this graph thing won’t work.

You now need to setup an automation to call the update data service call. This integration no longer automatically downloads the data from SolCast.

1 Like

Thanks for the information. Clearly I hadn’t read the change log correctly 🤦

hello
Have you an example for this automation to update data service?

Nbr? hours? from to?

Thank’s for your help

I have 50 api cals - so every 15 minutes the api refresh is requested
so check your account for the API limit otherwise set it to hourly

alias: Solcast_update
description: New API call Solcast
trigger:
  - platform: time_pattern
    minutes: /15
condition:
  - condition: sun
    before: sunset
    after: sunrise
action:
  - service: solcast_solar.update_forecasts
    data: {}
mode: single

Thanks for the new dampening settings. I have a few panels that catch shade after 13:00 so this is very useful. The question I have is - what is the effect on the total day prognoses in the energy dashboard? I now have a generic dampening in Solcast itself that is about right, so the hourly is often underestimated and the afternoon overestimated. Overall it is fine.

Should I decrease the dampening for solcast itself and just dampen the afternoon myself (but that would likely overestimate each daytotal) or should I leave solcast alone, have >1 dampening in the morning and < 1 in the afternoon?

Hi team!

The dampening settings are great! I’ve got tall neighbours so we’re not able to get the earliest morning sun or the latest afternoon sun.

But it would be nice to be able to increase the forecast if possible (dampening > 1) as we seem to get more afternoon sun than forecast.

You can increase your panels’ max kWp instead.

Yes, I suggested that. But I’m worried that that way the hourly graphs look perfect, while the daily/weekly yield prediction is too high. That is because this dampening seems to be done in HA, not by solcast.

1 Like

I’m not getting any data since a power outage 2 days ago.

My automation is as below and is unchanged.

alias: Solcast Update forcast
description: New API call Solcast
trigger:
  - platform: time_pattern
    hours: /1
condition:
  - condition: sun
    before: sunset
    after: sunrise
action:
  - service: solcast_solar.update_forecasts
    data: {}
mode: single

EDIT: reloading the integration worked. I had already tried restarting the whole of HA but for some reason it was still not working until i reloaded the integration and reran the automation

This does not give me anything in the graph. How to setup this sensor?

Just use

sensor.solcast_forecast_remaining_today

I do not get the forecast graph in my graph. Any help please

There were some changes to the Solcast integration so you should double check your sensor names. The graph needs the detailedForecast attributes for each of the days.

This config is working for me

  - type: custom:apexcharts-card
    view_layout:
      grid-area: solar
    header:
      show: true
      standard_format: true
      show_states: true
      colorize_states: true
    apex_config:
      chart:
        height: 350px
      tooltip:
        enabled: true
        shared: true
        followCursor: true
    graph_span: 4d
    now:
      show: true
      label: Now
    span:
      start: day
      offset: '-1day'
    all_series_config:
      type: area
      opacity: 0.3
      stroke_width: 1
    series:
      - entity: sensor.sunsynk_battery_soc
        name: Battery
        float_precision: 0
        type: line
        color: '#f06292'
        opacity: 0.6
        yaxis_id: capacity
        extend_to: now
        show:
          legend_value: true
          in_header: false
        group_by:
          func: last
          duration: 5m
      - entity: sensor.sunsynk_solar_power
        name: Solar Power
        float_precision: 3
        color: '#ff9800'
        yaxis_id: kWh
        unit: kW
        transform: return x/1000;
        extend_to: now
        show:
          legend_value: true
          in_header: false
        group_by:
          func: avg
          duration: 5m
      - entity: sensor.solcast_pv_forecast_forecast_today
        name: Solar Forecast (D1)
        extend_to: false
        color: grey
        opacity: 0.3
        stroke_width: 0
        yaxis_id: kWh
        show:
          legend_value: false
          in_header: false
        data_generator: |
          return entity.attributes.detailedForecast.map((entry) => {
                return [new Date(entry.period_start), entry.pv_estimate];
              });
      - entity: sensor.solcast_pv_forecast_forecast_tomorrow
        name: Solar Forecast (D2)
        float_precision: 3
        extend_to: false
        color: grey
        opacity: 0.3
        stroke_width: 0
        yaxis_id: kWh
        show:
          legend_value: false
          in_header: false
        data_generator: |
          return entity.attributes.detailedForecast.map((entry) => {
                return [new Date(entry.period_start), entry.pv_estimate];
              });
      - entity: sensor.solcast_pv_forecast_forecast_day_3
        name: Solar Forecast (D3)
        float_precision: 3
        extend_to: false
        color: grey
        opacity: 0.3
        stroke_width: 0
        yaxis_id: kWh
        show:
          legend_value: false
          in_header: false
        data_generator: |
          return entity.attributes.detailedForecast.map((entry) => {
                return [new Date(entry.period_start), entry.pv_estimate];
              });
      - entity: sensor.solcast_pv_forecast_forecast_today
        yaxis_id: header_only
        name: Solar Forecast (D1)
        color: grey
        show:
          legend_value: true
          in_header: true
          in_chart: false
      - entity: sensor.solcast_pv_forecast_forecast_remaining_today
        yaxis_id: header_only
        name: Forecast (D1 Remaining)
        color: grey
        show:
          legend_value: true
          in_header: true
          in_chart: false
      - entity: sensor.solcast_pv_forecast_forecast_tomorrow
        yaxis_id: header_only
        name: Forecast (D2)
        color: grey
        show:
          legend_value: true
          in_header: true
          in_chart: false
      - entity: sensor.solcast_pv_forecast_forecast_day_3
        yaxis_id: header_only
        name: Solar Forecast (D3)
        color: grey
        show:
          legend_value: true
          in_header: true
          in_chart: false
      - entity: sensor.solcast_pv_forecast_api_last_polled
        yaxis_id: header_only
        name: Forecast (Last Update)
        color: grey
        unit: ' min.'
        transform: return ((Date.now()) - (new Date(x).getTime())) / 60 / 60 / 24
        show:
          legend_value: true
          in_header: true
          in_chart: false
    yaxis:
      - id: capacity
        show: true
        opposite: true
        decimals: 0
        max: 100
        min: 0
        apex_config:
          tickAmount: 5
      - id: kWh
        show: true
        min: 0
        apex_config:
          tickAmount: 5
      - id: header_only
        show: false
1 Like

These are mine. I only have 10 API calls so I check at sunrise and sunset and then every 1.5 hours in between

image

alias: API Solcast on Sunrise and Sunset
description: New API call Solcast
trigger:
  - platform: sun
    event: sunrise
    offset: 0
  - platform: sun
    event: sunset
    offset: 0
condition: []
action:
  - service: solcast_solar.update_forecasts
    data: {}
mode: single
alias: Solcast_update
description: New API call Solcast
trigger:
  - platform: time_pattern
    minutes: /30
condition:
  - condition: and
    conditions:
      - condition: sun
        before: sunset
        after: sunrise
      - condition: template
        value_template: "{{ (now().hour*60+now().minute)%90==0 }}"
action:
  - service: solcast_solar.update_forecasts
    data: {}
mode: single
1 Like

This worked. Thank you

Is anyone else getting this error from today?

Logger: custom_components.solcast_solar.sensor
Source: custom_components/solcast_solar/sensor.py:297
Integration: Solcast PV Forecast (documentation, issues)
First occurred: 5:18:23 PM (1 occurrences)
Last logged: 5:18:23 PM

SOLCAST - unable to get sensor value tuple index out of range Traceback (most recent call last): File "/config/custom_components/solcast_solar/sensor.py", line 293, in extra_state_attributes return self.coordinator.get_sensor_extra_attributes( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/solcast_solar/coordinator.py", line 123, in get_sensor_extra_attributes return self.solcast.get_forecast_day(0) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/solcast_solar/solcastapi.py", line 303, in get_forecast_day x1 = round((tup[index]["pv_estimate"] + tup[index+1]["pv_estimate"]) /2, 4) ~~~^^^^^^^^^ IndexError: tuple index out of range

I had a random key error on the site ID today and all my sensors were 0.0. I reloaded the integration and all good again.

Yes I’m getting the same error. No amount of reloads fixes it