Boa tarde a todos,
espero que me consigam ajudar, ando às voltas com isto à dias e parece que a minha sanidade está a escoar devagarinho.
Os apex mencionados na wiki da integração são excelentes e dão para ter uma boa ideia das coisas, mas acontecer que algo deve ter mudados porque os que mostram forecast, por algum motivo, deixaram de mostrar os valores de forma correta e por mais que olhe e teste não consigo perceber o que possa estar errado.
Isto é o gráfico para o dia de hoje:
como podem ver, algo de errado ser passa com a curva de forecast, devia estar metade do que mostra, mas por algum motivo a coisa sai sempre com valores disparatados.
O código usado é o seguinte:
- type: custom:apexcharts-card
update_interval: 5m
header:
show: true
title: Today/Now
span:
start: day
graph_span: 1d
all_series_config:
type: area
extend_to: false
stroke_width: 1
group_by:
func: avg
duration: 15m
series:
- entity: sensor.solax_x1_hybrid_g3_pv_power_total
name: Solar
yaxis_id: power
fill_raw: 'null'
transform: return x / 1000
unit: kW
show:
legend_value: false
- entity: sensor.solax_x1_hybrid_g3_house_load
name: Load
yaxis_id: power
fill_raw: zero
transform: return x / 1000
unit: kW
show:
legend_value: false
- entity: sensor.template_ibelectra_familia_simples
name: Buy
float_precision: 2
yaxis_id: price
type: line
curve: stepline
data_generator: |
return Object.entries(entity.attributes.today_hours)
.map(([dateString, price]) => [ new Date(dateString), price ])
show:
extremas: true
legend_value: false
- entity: sensor.template_luzboa_excedente_indexado
name: Sell
float_precision: 2
yaxis_id: price
type: line
curve: stepline
fill_raw: 'null'
data_generator: |
return ((hours) =>
Object.keys(hours)
.map((dateString) => [ new Date(dateString), hours[dateString]])
.map(([date, price]) => [ date, (date.getHours() > 6 && date.getHours() < 21) ? price : null])
)(entity.attributes.today_hours)
show:
extremas: true
legend_value: false
- entity: sensor.solcast_forecast_today
name: Forecast
yaxis_id: power
type: line
curve: smooth
fill_raw: 'null'
data_generator: |
return (() => {
const to_pair = ({period_start,pv_estimate}) => ([
new Date(period_start),
pv_estimate
])
const has_solar = ([,kWh]) => kWh !== 0
const normalize_kW = ({ minutes }) => ([datetime, kWh]) => [datetime, kWh * 60/minutes]
return entity.attributes.detailedForecast
.map(to_pair)
.map(normalize_kW({ minutes: 30 }))
.filter(has_solar)
})()
show:
legend_value: false
yaxis:
- id: power
align_to: 0.5
- id: price
opposite: true
min: '|-5|'
max: '|5|'
align_to: 1
o forecast do dia seguinte também deve estar com algum problema porque esse nem valores apresenta, mas também não é da coisa mais importante para agora
Alguém mais entendido na coisa que eu que consiga perceber que raio de estranho passa-se aqui?