Pretty sure Solcast is a custom integration
Is there a way to integrate the forecast-line (as shown in the energy-sashboard) as entity-card in lovelace?
So basically what I want is something like this:
Yeah, that’s what I thought. The github page suggests it should be available through HACS though, right?
It is available through HACS, you need to add it as custom repository.
Ah, of course - had forgotten about custom repositories!
Got it now. Thanks very much.
There’s a file called solcast.json in the config folder. If you know how to parse it, you can plot it.
I get this error when I add this
Message malformed: extra keys not allowed @ data['automation']
I think you might have “automation:” already somewhere?
In that case, you can try to remove it.
Because I put mine in a separate config file (splitted).
I had the same issue. I remade my API key and deleted the JSON file and this fixed the issue.
Does sensor.solcast_forecast_this_hour
sensor actually update every hour regardless of when the last API update was?
I really am baffled why the raw data used for the energy dashboard isn’t available for general use, as this would be very helpful. I suppose one could manually parse the json file but it just seems silly when the data is clearly already known by HA.
I think that would be based on the API call for “that hour”?
We are limited to the amount of API call per day. Free account is 10 calls. If you have 2 sites configured, it will be counted as 2 API per call.
I have 2 sites, so, I can only call 5 times. When the weather is clear, the forecast is good match with the actual production more or less, otherwise not. Ideally is to call every 30 minutes.
Every API call gets at least 24 hours of predicted data though, so there is no reason to require another API call to update the “this hour” or “next hour” sensors. It’s all in the solcast.json
file.
True, but if you observe the prediction data provided by Solcast at intervals over a 24 hour period there can be quite a bit of change of the daily total and the individual slot energy between successive predictions.
Therefore if wishing to use Solcast predictions to adjust the Target SoC of a storage battery charged overnight, for example, it is best to use Solcast predictions issued around midnight.
Yeah, that doesn’t work that well in my area where the weather can change drastically. I don’t think this kind of situation can be forecasted with 24h basis. As I said, in mostly clear weather, Solcast does good forecast. But that’s the nature of this.
Yep, but then if during the day you want to turn on an appliance based on whether peak solar is in the present, future or past, you need the correct data (even if it might be less accurate than a more recent forecast).
Should update every hour
All the data from the JSON file is in the sensor under attributes. Have a read through this discussion here
Yep, the new version fixes that issue, cheers. Thanks for the link, looks helpful.
Yes…
Because what they think it might be and what it actually changed as the day progressed can be very different.
Might start like
But then what you actually produce might not look like it at all… and its nice to see the forecast altered to the conditions
I’m using the actual Solcast PV Solar version v3.0.40.
Solcast Integration in HA energy dashboard is working fine.
A working APEX chart config for Solcast short and/or long term forcast available to share within this thread???
Any help is appreciated.
I have created a simple Apex-chart showing the estimated production for today and tomorrow:
The following YAML code is used.
type: custom:apexcharts-card
apex_config:
chart:
height: 350px
all_series_config:
unit: ' kWh'
header:
title: Solar forecast
show: true
standard_format: true
show_states: true
colorize_states: true
graph_span: 2d
span:
start: day
offset: '-0h'
now:
show: true
label: Now
yaxis:
- id: kwh
min: 0
apex_config:
tickAmount: 5
- id: header_only
show: false
series:
- entity: sensor.solcast_forecast_today
yaxis_id: kwh
type: area
name: Today
color: orange
data_generator: |
var today = entity.attributes.forecast.map((start, index) => {
return [new Date(start["period_start"]).getTime(), entity.attributes.forecast[index]["pv_estimate"]];
});
var data = today
return data;
show:
legend_value: false
in_header: false
stroke_width: 3
float_precision: 2
extend_to: false
- entity: sensor.solcast_forecast_tomorrow
yaxis_id: kwh
type: area
name: Tomorrow
color: grey
data_generator: |
var today = entity.attributes.forecast.map((start, index) => {
return [new Date(start["period_start"]).getTime(), entity.attributes.forecast[index]["pv_estimate"]];
});
var data = today
return data;
show:
legend_value: false
in_header: false
stroke_width: 3
float_precision: 2
extend_to: false
- entity: sensor.solcast_forecast_today
yaxis_id: header_only
name: Today
color: orange
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solcast_forecast_remaining_today
yaxis_id: header_only
name: Remaining
color: orange
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solcast_forecast_tomorrow
yaxis_id: header_only
name: Tomorrow
color: grey
show:
legend_value: true
in_header: true
in_chart: false
- entity: sensor.solcast_api_last_polled
yaxis_id: header_only
name: Last update
unit: ' min.'
transform: return ((Date.now()) - (new Date(x).getTime())) / 60 / 60 / 24
show:
legend_value: true
in_header: true
in_chart: false
I hope you find it useful