# 🤖 Automatyzacje Solcast dla instalacji w Żarkach (5.0 kWp)
# Dostosowane progi dla małej instalacji
automation:
# ============================================
# INTELIGENTNE ŁADOWANIE OPARTE NA PROGNOZIE
# ============================================
- alias: "Solcast - Bardzo pochmurnie jutro"
description: "Ładuj do maksimum gdy jutro < 3 kWh"
trigger:
- platform: time
at: "22:00:00"
condition:
# Bardzo mała produkcja jutro
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_forecast_tomorrow
below: 2
# Bateria nie pełna
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
below: 95
action:
# Włącz ładowanie
- service: switch.turn_on
target:
entity_id: switch.inverter_deye_battery_grid_charging
# Ustaw program nocny (01:00-07:00)
- service: select.select_option
target:
entity_id: select.inverter_deye_program_1_charging
data:
option: "Grid"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_1_time
data:
time: "01:00:00"
# Ustaw program koniec (07:00)
- service: select.select_option
target:
entity_id: select.inverter_deye_program_2_charging
data:
option: "Disabled"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_2_time
data:
time: "07:00:00"
# Powiadomienie
- service: notify.persistent_notification
data:
title: "🌧️ Solcast: Bardzo pochmurnie!"
message: |
Prognoza na jutro: {{ states('sensor.solcast_pv_forecast_forecast_tomorrow') }} kWh
Włączono pełne ładowanie z sieci (01:00-07:00)
Cel: 95% SOC
- alias: "Solcast - Pochmurnie jutro"
description: "Ładuj do 80% gdy jutro 3-6 kWh"
trigger:
- platform: time
at: "22:00:00"
condition:
# Mała produkcja
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_forecast_tomorrow
above: 2
below: 5
# Bateria poniżej 80%
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
below: 80
action:
- service: switch.turn_on
target:
entity_id: switch.inverter_deye_battery_grid_charging
- service: select.select_option
target:
entity_id: select.inverter_deye_program_1_charging
data:
option: "Grid"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_1_time
data:
time: "01:00:00"
- service: notify.persistent_notification
data:
title: "🌥️ Solcast: Pochmurnie"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_forecast_tomorrow') }} kWh
Ładowanie do 80% SOC
- alias: "Solcast - Średnie nasłonecznienie"
description: "Ładuj do 60% gdy jutro 6-13 kWh"
trigger:
- platform: time
at: "22:00:00"
condition:
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_forecast_tomorrow
above: 5
below: 12
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
below: 60
action:
- service: switch.turn_on
target:
entity_id: switch.inverter_deye_battery_grid_charging
- service: select.select_option
target:
entity_id: select.inverter_deye_program_1_charging
data:
option: "Grid"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_1_time
data:
time: "01:00:00"
- service: notify.persistent_notification
data:
title: "⛅ Solcast: Średnio"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_forecast_tomorrow') }} kWh
Ładowanie do 60% SOC
- alias: "Solcast - Dobrze słonecznie"
description: "Minimalne ładowanie gdy jutro 13-20 kWh"
trigger:
- platform: time
at: "22:00:00"
condition:
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_forecast_tomorrow
above: 12
below: 18
# Tylko jeśli bateria naprawdę niska
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
below: 40
action:
- service: switch.turn_on
target:
entity_id: switch.inverter_deye_battery_grid_charging
# Tylko krótkie ładowanie (01:00-04:00)
- service: select.select_option
target:
entity_id: select.inverter_deye_program_1_charging
data:
option: "Grid"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_1_time
data:
time: "01:00:00"
- service: select.select_option
target:
entity_id: select.inverter_deye_program_2_charging
data:
option: "Disabled"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_2_time
data:
time: "04:00:00"
- service: notify.persistent_notification
data:
title: "🌤️ Solcast: Dobrze"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_forecast_tomorrow') }} kWh
Minimalne ładowanie (tylko do 40%)
- alias: "Solcast - Słonecznie!"
description: "Wyłącz ładowanie gdy jutro > 20 kWh"
trigger:
- platform: time
at: "22:00:00"
condition:
# Duża produkcja jutro
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_forecast_tomorrow
above: 18
# I bateria ma przynajmniej 30%
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
above: 30
action:
# Wyłącz ładowanie z sieci
- service: switch.turn_off
target:
entity_id: switch.inverter_deye_battery_grid_charging
- service: select.select_option
target:
entity_id: select.inverter_deye_program_1_charging
data:
option: "Disabled"
- service: notify.persistent_notification
data:
title: "☀️ Solcast: Będzie słonecznie!"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_forecast_tomorrow') }} kWh
Ładowanie z sieci WYŁĄCZONE - oszczędzasz! 💰
# ============================================
# RAPORT PORANNY
# ============================================
- alias: "Solcast - Raport poranny"
description: "Dzienny raport prognozy o 7:00"
trigger:
- platform: time
at: "07:00:00"
action:
- service: notify.persistent_notification
data:
title: "☀️ Prognoza produkcji PV"
message: |
📅 Dzisiaj: {{ states('sensor.solcast_pv_forecast_forecast_today') }} kWh
📅 Jutro: {{ states('sensor.solcast_pv_forecast_forecast_tomorrow') }} kWh
🔋 Bateria: {{ states('sensor.inverter_deye_battery_soc') }}%
Strategia dziś:
{% set forecast_today = states('sensor.solcast_pv_forecast_forecast_today') | float(0) %}
{% if forecast_today > 15 %}☀️ Doskonale - dużo słońca!
{% elif forecast_today > 10 %}🌤️ Dobrze - będzie produkcja
{% elif forecast_today > 5 %}⛅ Średnio - trochę słońca
{% else %}🌥️ Słabo - mało produkcji{% endif %}
# ============================================
# MONITORING ACCURACY
# ============================================
- alias: "Solcast - Raport wieczorny accuracy"
description: "Porównaj prognozę z rzeczywistością"
trigger:
- platform: time
at: "23:00:00"
action:
- service: notify.persistent_notification
data:
title: "📊 Solcast: Dokładność prognozy"
message: |
Prognoza dzisiaj: {{ states('sensor.solcast_pv_forecast_forecast_today') }} kWh
Rzeczywista produkcja: {{ states('sensor.inverter_deye_daily_production') }} kWh
{% set forecast = states('sensor.solcast_pv_forecast_forecast_today') | float(0) %}
{% set actual = states('sensor.inverter_deye_daily_production') | float(0) %}
{% set diff = ((actual - forecast) / forecast * 100) | round(1) if forecast > 0 else 0 %}
Różnica: {{ diff }}%
{% if diff | abs < 10 %}✅ Doskonała prognoza!
{% elif diff | abs < 20 %}👍 Dobra prognoza
{% else %}⚠️ Spore odchylenie{% endif %}