Newer
Older
homeassistant-infra / ha-configs / solcast_automations_g12w_v10_weekend_fix.yaml
# ============================================
# SOLCAST + TARYFA G12W v10
# Inteligentne ładowanie baterii
# Żarki, 5.0 kWp
# 
# HARMONOGRAM:
# Pn-Czw 21:30: Ustaw ładowanie 22:01-06:00 (+ 13-15 jeśli <3kWh)
# Pt 21:30: WYŁĄCZ programy (sobota = tani weekend)
# Sob 21:30: WYŁĄCZ programy (niedziela = tani weekend)  
# Nd 21:30: Ustaw ładowanie 22:01-06:00 na poniedziałek
# ============================================

- 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') }}%

# ============================================
# PONIEDZIAŁEK-CZWARTEK - BARDZO POCHMURNIE (<3 kWh)
# ============================================

- alias: "Solcast G12W - Bardzo pochmurnie (Pn-Czw)"
  description: "Ładowanie 22:01-06:00 + 13:00-15:00 gdy < 3 kWh"
  trigger:
    - platform: time
      at: "21:30:00"
  condition:
    - condition: time
      weekday: [mon, tue, wed, thu]
    - 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
    - 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
    
    # Program 4: 13:00 Start popołudniowy (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 popołudniowy
    - 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
    
    - 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)!"

# ============================================
# PONIEDZIAŁEK-CZWARTEK - POCHMURNIE (>=3 kWh)
# ============================================

- alias: "Solcast G12W - Pochmurnie (Pn-Czw)"
  description: "Ładowanie 22:01-06:00 gdy >= 3 kWh"
  trigger:
    - platform: time
      at: "21:30:00"
  condition:
    - condition: time
      weekday: [mon, tue, wed, thu]
    - 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
    - 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 4-6
    - 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."

# ============================================
# PIĄTEK 21:30 - WYŁĄCZ ŁADOWANIE (sobota = tani weekend)
# ============================================

- alias: "Solcast G12W - Piątek wyłącz (sobota tania)"
  description: "Piątek wieczór - wyłącz ładowanie bo sobota jest tania cała doba"
  trigger:
    - platform: time
      at: "21:30:00"
  condition:
    - condition: time
      weekday: [fri]
  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: Weekend startuje!"
        message: "Sobota i niedziela = tania energia całą dobę. Brak ładowania baterii do niedzieli 22:01."

# ============================================
# SOBOTA 21:30 - UTRZYMAJ WYŁĄCZONE (niedziela = tani weekend)
# ============================================

- alias: "Solcast G12W - Sobota bez zmian"
  description: "Sobota - niedziela też jest tania, nie zmieniaj"
  trigger:
    - platform: time
      at: "21:30:00"
  condition:
    - condition: time
      weekday: [sat]
  action:
    # Upewnij się że wszystko wyłączone
    - 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: Niedziela też tania!"
        message: "Niedziela = tania energia całą dobę. Ładowanie startuje o 22:01 (na poniedziałek)."

# ============================================
# NIEDZIELA 21:30 - USTAW ŁADOWANIE NA PONIEDZIAŁEK
# ============================================

- alias: "Solcast G12W - Niedziela ładowanie na poniedziałek"
  description: "Niedziela 21:30 - ustaw ładowanie 22:01-06:00 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 (już poniedziałek)
    - 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 4-6
    - 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: Ładowanie na 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

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

- alias: "Solcast G12W - Reset prądu po 15:00"
  description: "Przywróć prąd ładowania do 80A"
  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

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

- alias: "Solcast G12W - Raport poranny"
  description: "Status 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