# 🔋 Automatyzacje Solcast + Taryfa G12W
# Instalacja: 5.0 kWp, Żarki
# Taryfa: G12W (22:00-06:00 + 13:00-15:00 + weekendy całą dobę)
automation:
# ============================================
# INTELIGENTNE ŁADOWANIE - DNI POWSZEDNIE
# ============================================
- alias: "Solcast G12W - Bardzo pochmurnie (Pn-Pt)"
description: "Maksymalne ładowanie gdy jutro < 3 kWh, dni powszednie"
trigger:
- platform: time
at: "21:30:00" # Wcześniej, żeby zdążyć przed 22:00
condition:
# Dni powszednie (Pn-Pt)
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
# Bardzo mała produkcja jutro
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_prognoza_na_jutro
below: 3
# Bateria nie pełna
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
below: 95
action:
# Włącz ładowanie z sieci
- service: switch.turn_on
target:
entity_id: switch.inverter_deye_battery_grid_charging
# Program 1: Start 22:00 (główne okno nocne)
- 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: "22:00:00"
# Ustaw cel SOC na 100%
- service: number.set_value
target:
entity_id: number.inverter_deye_program_1_soc
data:
value: 100
# Program 2: Start 13:00 (okno popołudniowe - doładowanie)
- service: select.select_option
target:
entity_id: select.inverter_deye_program_2_charging
data:
option: "Grid"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_2_time
data:
time: "13:00:00"
# Program 3: Stop 15:00 (koniec okna popołudniowego)
- service: select.select_option
target:
entity_id: select.inverter_deye_program_3_charging
data:
option: "Disabled"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_3_time
data:
time: "15:00:00"
# Program 4: Stop 07:00 (koniec okna nocnego)
- service: select.select_option
target:
entity_id: select.inverter_deye_program_4_charging
data:
option: "Disabled"
- service: time.set_value
target:
entity_id: time.inverter_deye_program_4_time
data:
time: "06:00:00"
# Powiadomienie
- service: notify.persistent_notification
data:
title: "🌧️ Solcast G12W: Bardzo pochmurnie!"
message: |
Prognoza na jutro: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
⚡ Pełne ładowanie z sieci:
• 22:00-06:00 (9h nocne)
• 13:00-15:00 (2h popołudniowe)
🎯 Cel: 95% SOC
💰 Taryfa: G12W (tania)
- alias: "Solcast G12W - Pochmurnie (Pn-Pt)"
description: "Ładuj do 80% gdy jutro 3-6 kWh, dni powszednie"
trigger:
- platform: time
at: "21:30:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_prognoza_na_jutro
above: 3
below: 6
- 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
# Program 1: 22:00 Grid (tylko główne okno nocne)
- 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: "22:00:00"
# Program 2: 07:00 Stop (koniec nocnego)
- 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: "06:00:00"
# Program 3: Disabled
- service: select.select_option
target:
entity_id: select.inverter_deye_program_3_charging
data:
option: "Disabled"
- service: notify.persistent_notification
data:
title: "🌥️ Solcast G12W: Pochmurnie"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
⚡ Ładowanie 22:00-06:00
🎯 Cel: 80% SOC
💰 Oszczędność: pominięcie okna 13:00-15:00
- alias: "Solcast G12W - Średnie nasłonecznienie (Pn-Pt)"
description: "Ładuj do 60% gdy jutro 6-13 kWh"
trigger:
- platform: time
at: "21:30:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_prognoza_na_jutro
above: 6
below: 13
- 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
# Program 1: 22:00 Grid
- 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: "22:00:00"
# Program 2: 04:00 Stop (skrócone okno)
- 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 G12W: Średnio"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
⚡ Ładowanie 22:00-04:00 (6h)
🎯 Cel: 60% SOC
- alias: "Solcast G12W - Słonecznie (Pn-Pt)"
description: "Wyłącz ładowanie gdy jutro > 13 kWh"
trigger:
- platform: time
at: "21:30:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_prognoza_na_jutro
above: 13
- 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
# Wszystkie programy disabled
- service: select.select_option
target:
entity_id: select.inverter_deye_program_1_charging
data:
option: "Disabled"
- service: notify.persistent_notification
data:
title: "☀️ Solcast G12W: Słonecznie!"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
🚫 Ładowanie z sieci WYŁĄCZONE
☀️ Tylko PV!
💰 Maksymalne oszczędności!
# ============================================
# WEEKENDY - CAŁA DOBA W TANIEJ TARYFIE
# ============================================
- alias: "Solcast G12W - Weekend pochmurnie"
description: "Ładowanie w weekend (tania taryfa całą dobę)"
trigger:
- platform: time
at: "21:30:00"
condition:
# Weekend (Sob-Nd)
- condition: time
weekday:
- sat
- sun
# Mało słońca jutro
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_prognoza_na_jutro
below: 6
- 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
# W weekend - ładuj rano przed szczytem PV (elastyczność!)
# Program 1: 06:00 Grid (rano)
- 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: "06:00:00"
# Program 2: 09:00 Stop (przed szczytem PV)
- 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: "09:00:00"
- service: notify.persistent_notification
data:
title: "🌥️ Solcast G12W: Weekend"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
⚡ Ładowanie 06:00-09:00 (3h)
💰 Weekend = taryfa nocna całą dobę!
🎯 Cel: 80% SOC przed wschodem słońca
- alias: "Solcast G12W - Weekend słonecznie"
description: "Minimalnie ładuj w weekend gdy słonecznie"
trigger:
- platform: time
at: "21:30:00"
condition:
- condition: time
weekday:
- sat
- sun
# Dużo słońca jutro
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_prognoza_na_jutro
above: 6
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
above: 40
action:
# Wyłącz ładowanie - nawet w weekend nie trzeba
- service: switch.turn_off
target:
entity_id: switch.inverter_deye_battery_grid_charging
- service: notify.persistent_notification
data:
title: "☀️ Solcast G12W: Weekend słonecznie!"
message: |
Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
🚫 Ładowanie wyłączone
☀️ Wystarczy PV!
# ============================================
# RAPORTY
# ============================================
- alias: "Solcast G12W - Raport poranny"
description: "Raport o 7:00 z informacją o taryfie"
trigger:
- platform: time
at: "06:00:00"
action:
- service: notify.persistent_notification
data:
title: "☀️ Prognoza PV + Taryfa G12W"
message: |
📅 Dzisiaj: {{ states('sensor.solcast_pv_forecast_prognoza_na_dzisiaj') }} kWh
📅 Jutro: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
🔋 Bateria: {{ states('sensor.inverter_deye_battery_soc') }}%
{% if now().weekday() < 5 %}
💰 Dziś: Dni powszedni
⚡ Tania taryfa: 13:00-15:00, 22:00-06:00
{% else %}
💰 Dziś: Weekend
⚡ Tania taryfa: CAŁA DOBA! 🎉
{% endif %}
{% set forecast = states('sensor.solcast_pv_forecast_prognoza_na_dzisiaj') | float(0) %}
{% if forecast > 15 %}☀️ Doskonale!
{% elif forecast > 10 %}🌤️ Dobrze
{% elif forecast > 5 %}⛅ Średnio
{% else %}🌥️ Słabo{% endif %}
- alias: "Solcast G12W - Raport wieczorny"
description: "Dokładność + oszczędności"
trigger:
- platform: time
at: "23:00:00"
action:
- service: notify.persistent_notification
data:
title: "📊 Solcast G12W: Podsumowanie"
message: |
📈 Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_dzisiaj') }} kWh
📊 Rzeczywista: {{ states('sensor.inverter_deye_daily_production') }} kWh
{% set forecast = states('sensor.solcast_pv_forecast_prognoza_na_dzisiaj') | 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 }}%
💰 Ładowanie z sieci:
{% if is_state('switch.inverter_deye_battery_grid_charging', 'on') %}
✅ Było aktywne (taryfa G12W)
{% else %}
🚫 Wyłączone (PV wystarczyło)
{% endif %}
{% if now().weekday() < 5 %}
📅 Jutro: Dzień powszedni (11h taniej)
{% else %}
📅 Jutro: Weekend (24h taniej!) 🎉
{% endif %}
# ============================================
# BEZPIECZEŃSTWO - OCHRONA BATERII
# ============================================
- alias: "Solcast G12W - Awaryjne ładowanie SOC<15%"
description: "Bezpieczeństwo: ładuj natychmiast gdy bateria niska"
trigger:
- platform: numeric_state
entity_id: sensor.inverter_deye_battery_soc
below: 15
condition:
# Tylko w godzinach taniej taryfy
- condition: or
conditions:
# Dni powszednie: 22:00-06:00 lub 13:00-15:00
- condition: and
conditions:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: or
conditions:
- condition: time
after: "22:00:00"
before: "23:59:59"
- condition: time
after: "00:00:00"
before: "06:00:00"
- condition: time
after: "13:00:00"
before: "15:00:00"
# Weekend: cała doba
- condition: time
weekday:
- sat
- sun
action:
- service: switch.turn_on
target:
entity_id: switch.inverter_deye_battery_grid_charging
- service: notify.persistent_notification
data:
title: "⚠️ AWARYJNE ŁADOWANIE!"
message: |
🔋 Bateria: {{ states('sensor.inverter_deye_battery_soc') }}%
⚡ Włączono ładowanie z sieci (G12W taryfa)
Bezpieczeństwo baterii!