Newer
Older
homeassistant-infra / ha-configs / solcast_automations_g12w_v9_chronological.yaml
# ============================================
# SOLCAST + TARYFA G12W v9
# Inteligentne ładowanie baterii
# Żarki, 5.0 kWp
# 
# WAŻNE: Deye wymaga programów w kolejności chronologicznej!
# Program 1: 22:01 → Grid (start nocny)
# Program 2: 00:00 → Grid (kontynuacja po północy)
# Program 3: 06:00 → Disabled (stop nocny)
# Program 4: 13:00 → Grid (start popołudniowy - opcjonalnie)
# Program 5: 15:00 → Disabled (stop popołudniowy)
# ============================================

- alias: "Solcast - Raport poranny"
  description: "Dzienny raport o 7:00"
  trigger:
    - platform: time
      at: "07:00:00"
  action:
    - service: notify.persistent_notification
      data:
        title: "☀️ Prognoza PV"
        message: |
          Dziś: {{ 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') }}%

# ============================================
# DNI POWSZEDNIE (Pn-Pt) - BARDZO POCHMURNIE (<3 kWh)
# Ładowanie: 22:01-06:00 + 13:00-15:00
# ============================================

- alias: "Solcast G12W - Bardzo pochmurnie (Pn-Pt)"
  description: "Maksymalne ładowanie gdy < 3 kWh + okno 13-15"
  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
      below: 3
    - condition: numeric_state
      entity_id: sensor.inverter_deye_battery
      below: 95
  action:
    - service: switch.turn_on
      target:
        entity_id: switch.inverter_deye_battery_grid_charging
    
    # Program 1: 22:01 Start ładowania nocnego
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_1_time
      data:
        time: "22:01:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_1_charging
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_1_soc
      data:
        value: 100
    
    # Program 2: 00:00 Kontynuacja po północy
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_2_time
      data:
        time: "00:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_2_charging
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_2_soc
      data:
        value: 100
    
    # Program 3: 06:00 Stop ładowania nocnego
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_3_time
      data:
        time: "06:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_3_charging
      data:
        option: "Disabled"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_3_soc
      data:
        value: 15
    
    # Program 4: 13:00 Start ładowania popołudniowego (5kW!)
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_4_time
      data:
        time: "13:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_4_charging
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_4_soc
      data:
        value: 100
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_4_power
      data:
        value: 5000
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_battery_grid_charging_current
      data:
        value: 100
    
    # Program 5: 15:00 Stop ładowania popołudniowego
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_5_time
      data:
        time: "15:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_5_charging
      data:
        option: "Disabled"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_5_soc
      data:
        value: 15
    
    # Program 6: wyłączony
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_6_charging
      data:
        option: "Disabled"
    
    - service: notify.persistent_notification
      data:
        title: "🌧️ G12W: Bardzo pochmurnie!"
        message: "Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh. Ładowanie 22:01-06:00 + 13:00-15:00 (5kW)!"

# ============================================
# DNI POWSZEDNIE (Pn-Pt) - POCHMURNIE (>=3 kWh)
# Ładowanie: tylko 22:01-06:00
# ============================================

- alias: "Solcast G12W - Pochmurnie (Pn-Pt)"
  description: "Standardowe ładowanie nocne gdy >= 3 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: 3
    - condition: numeric_state
      entity_id: sensor.inverter_deye_battery
      below: 95
  action:
    - service: switch.turn_on
      target:
        entity_id: switch.inverter_deye_battery_grid_charging
    
    # Program 1: 22:01 Start ładowania
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_1_time
      data:
        time: "22:01:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_1_charging
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_1_soc
      data:
        value: 100
    
    # Program 2: 00:00 Kontynuacja po północy
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_2_time
      data:
        time: "00:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_2_charging
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_2_soc
      data:
        value: 100
    
    # Program 3: 06:00 Stop ładowania
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_3_time
      data:
        time: "06:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_3_charging
      data:
        option: "Disabled"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_3_soc
      data:
        value: 15
    
    # Wyłącz programy 4-6 (brak ładowania popołudniowego)
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_4_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_5_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_6_charging
      data:
        option: "Disabled"
    
    - service: notify.persistent_notification
      data:
        title: "⛅ G12W: Pochmurnie"
        message: "Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh. Ładowanie 22:01-06:00."

# ============================================
# RESET PRĄDU PO 15:00
# ============================================

- alias: "Solcast G12W - Reset prądu po 15:00"
  description: "Przywróć prąd ładowania do 80A po oknie 13-15"
  trigger:
    - platform: time
      at: "15:00:00"
  condition:
    - condition: time
      weekday: [mon, tue, wed, thu, fri]
  action:
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_battery_grid_charging_current
      data:
        value: 80

# ============================================
# SOBOTA - bez ładowania (cały weekend tani)
# ============================================

- alias: "Solcast G12W - Sobota bez ładowania"
  description: "Weekend = tania energia, nie ładujemy"
  trigger:
    - platform: time
      at: "21:30:00"
  condition:
    - condition: time
      weekday: [sat]
  action:
    # Wyłącz wszystkie programy
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_1_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_2_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_3_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_4_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_5_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_6_charging
      data:
        option: "Disabled"
    
    - service: notify.persistent_notification
      data:
        title: "🎉 G12W: Sobota - tani weekend!"
        message: "Cały weekend tania energia. Brak ładowania baterii."

# ============================================
# NIEDZIELA - ładowanie na poniedziałek
# ============================================

- alias: "Solcast G12W - Niedziela ładowanie na poniedziałek"
  description: "Niedziela w nocy = ładowanie na poniedziałek"
  trigger:
    - platform: time
      at: "21:30:00"
  condition:
    - condition: time
      weekday: [sun]
  action:
    - service: switch.turn_on
      target:
        entity_id: switch.inverter_deye_battery_grid_charging
    
    # Program 1: 22:01 Start
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_1_time
      data:
        time: "22:01:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_1_charging
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_1_soc
      data:
        value: 100
    
    # Program 2: 00:00 Kontynuacja
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_2_time
      data:
        time: "00:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_2_charging
      data:
        option: "Grid"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_2_soc
      data:
        value: 100
    
    # Program 3: 06:00 Stop
    - service: time.set_value
      target:
        entity_id: time.inverter_deye_program_3_time
      data:
        time: "06:00:00"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_3_charging
      data:
        option: "Disabled"
    - service: number.set_value
      target:
        entity_id: number.inverter_deye_program_3_soc
      data:
        value: 15
    
    # Wyłącz pozostałe
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_4_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_5_charging
      data:
        option: "Disabled"
    - service: select.select_option
      target:
        entity_id: select.inverter_deye_program_6_charging
      data:
        option: "Disabled"
    
    - service: notify.persistent_notification
      data:
        title: "🌙 G12W: Niedziela → Poniedziałek"
        message: |
          🔋 Bateria: {{ states('sensor.inverter_deye_battery') }}%
          ☀️ Prognoza pon: {{ states('sensor.solcast_pv_forecast_prognoza_na_jutro') }} kWh
          ⚡ Ładowanie 22:01-06:00
          🎯 Cel: 100% SOC na poniedziałek

# ============================================
# RAPORT PORANNY
# ============================================

- alias: "Solcast G12W - Raport poranny"
  description: "Status ładowania o 6:05"
  trigger:
    - platform: time
      at: "06:05:00"
  action:
    - service: notify.persistent_notification
      data:
        title: "🌅 G12W: Raport poranny"
        message: |
          🔋 SOC: {{ states('sensor.inverter_deye_battery') }}%
          ⚡ Naładowano: {{ states('sensor.inverter_deye_today_battery_charge') }} kWh
          ☀️ Prognoza: {{ states('sensor.solcast_pv_forecast_prognoza_na_dzisiaj') }} kWh