Newer
Older
homeassistant-infra / ha-configs / deye_battery_automations.yaml
# 🤖 Przykładowe automatyzacje dla Deye Battery Control
# Skopiuj do configuration.yaml lub stwórz przez UI

automation:
  # ============================================
  # 1. ŁADOWANIE W TANIEJ TARYFIE (G12)
  # ============================================
  
  - alias: "Deye - Ładowanie w nocy (01:00-07:00)"
    description: "Włącz ładowanie z sieci w taniej taryfie nocnej"
    trigger:
      - platform: time
        at: "01:00:00"
    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: notify.notify
        data:
          message: "🔋 Rozpoczęto ładowanie baterii z sieci (tania taryfa)"
  
  - alias: "Deye - Koniec ładowania nocnego (07:00)"
    description: "Wyłącz ładowanie z sieci po taniej taryfie"
    trigger:
      - platform: time
        at: "07:00:00"
    action:
      - 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"
  
  - alias: "Deye - Ładowanie popołudniowe (13:00-15:00)"
    description: "Włącz ładowanie w popołudniowej taniej taryfie"
    trigger:
      - platform: time
        at: "13:00:00"
    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_3_charging
        data:
          option: "Grid"
  
  - alias: "Deye - Koniec ładowania popołudniowego (15:00)"
    description: "Wyłącz ładowanie po taniej taryfie"
    trigger:
      - platform: time
        at: "15:00:00"
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.inverter_deye_battery_grid_charging

  # ============================================
  # 2. PRIORYTET BATERII W SZCZYCIE
  # ============================================
  
  - alias: "Deye - Bateria priorytetem wieczorem"
    description: "Od 17:00 używaj baterii zamiast sieci"
    trigger:
      - platform: time
        at: "17:00:00"
    condition:
      - condition: numeric_state
        entity_id: sensor.inverter_deye_battery_soc
        above: 30
    action:
      - service: select.select_option
        target:
          entity_id: select.inverter_deye_energy_pattern
        data:
          option: "Battery First"
      - service: notify.notify
        data:
          message: "🔋 Priorytet baterii włączony (szczyt wieczorny)"
  
  - alias: "Deye - Przywróć Load First"
    description: "Po 22:00 przywróć normalny tryb"
    trigger:
      - platform: time
        at: "22:00:00"
    action:
      - service: select.select_option
        target:
          entity_id: select.inverter_deye_energy_pattern
        data:
          option: "Load First"

  # ============================================
  # 3. OCHRONA BATERII
  # ============================================
  
  - alias: "Deye - Ochrona przed głębokim rozładowaniem"
    description: "Zatrzymaj rozładowanie przy niskim SOC"
    trigger:
      - platform: numeric_state
        entity_id: sensor.inverter_deye_battery_soc
        below: 20
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.inverter_deye_battery_grid_charging
      - service: notify.notify
        data:
          title: "⚠️ Ostrzeżenie baterii"
          message: "Bateria poniżej 20% - włączono ładowanie z sieci"
  
  - alias: "Deye - Alert wysokiej temperatury"
    description: "Powiadom gdy bateria jest zbyt gorąca"
    trigger:
      - platform: numeric_state
        entity_id: sensor.inverter_deye_battery_temperature
        above: 45
    action:
      - service: notify.notify
        data:
          title: "🌡️ Alert temperatury baterii"
          message: "Temperatura baterii: {{ states('sensor.inverter_deye_battery_temperature') }}°C - sprawdź wentylację!"

  # ============================================
  # 4. INTELIGENTNE ŁADOWANIE
  # ============================================
  
  - alias: "Deye - Doładuj baterię gdy SOC < 30% w tańszej taryfie"
    description: "Automatyczne ładowanie gdy bateria niska i taryfa korzystna"
    trigger:
      - platform: numeric_state
        entity_id: sensor.inverter_deye_battery_soc
        below: 30
    condition:
      - condition: time
        after: "01:00:00"
        before: "07:00:00"
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.inverter_deye_battery_grid_charging
      - service: notify.notify
        data:
          message: "🔋 Doładowywanie baterii (SOC < 30%, tania taryfa)"
  
  - alias: "Deye - Zatrzymaj ładowanie przy 95% SOC"
    description: "Nie ładuj powyżej 95% aby chronić baterię"
    trigger:
      - platform: numeric_state
        entity_id: sensor.inverter_deye_battery_soc
        above: 95
    condition:
      - condition: state
        entity_id: switch.inverter_deye_battery_grid_charging
        state: "on"
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.inverter_deye_battery_grid_charging
      - service: notify.notify
        data:
          message: "✅ Bateria naładowana do 95% - zatrzymano ładowanie"

  # ============================================
  # 5. ZERO EXPORT
  # ============================================
  
  - alias: "Deye - Zero Export gdy nadwyżka"
    description: "Automatycznie przełącz na Zero Export gdy produkcja > zużycie"
    trigger:
      - platform: template
        value_template: "{{ states('sensor.inverter_deye_pv_power')|float > states('sensor.inverter_deye_load_power')|float + 500 }}"
        for:
          minutes: 5
    condition:
      - condition: numeric_state
        entity_id: sensor.inverter_deye_battery_soc
        below: 95
    action:
      - service: select.select_option
        target:
          entity_id: select.inverter_deye_work_mode
        data:
          option: "Zero Export To Load"

  # ============================================
  # 6. POWIADOMIENIA DZIENNE
  # ============================================
  
  - alias: "Deye - Raport dzienny"
    description: "Wyślij podsumowanie dnia o 23:00"
    trigger:
      - platform: time
        at: "23:00:00"
    action:
      - service: notify.notify
        data:
          title: "📊 Raport dzienny Deye"
          message: |
            🌞 Produkcja: {{ states('sensor.inverter_deye_daily_production') }} kWh
            🔋 Naładowano: {{ states('sensor.inverter_deye_daily_battery_charge') }} kWh
            🏠 Zużycie: {{ states('sensor.inverter_deye_daily_consumption') }} kWh
            ⚡ Import z sieci: {{ states('sensor.inverter_deye_daily_grid_import') }} kWh
            💰 Eksport do sieci: {{ states('sensor.inverter_deye_daily_grid_export') }} kWh
            🔋 SOC: {{ states('sensor.inverter_deye_battery_soc') }}%

  # ============================================
  # 7. ADAPTACYJNE ŁADOWANIE (Zaawansowane)
  # ============================================
  
  - alias: "Deye - Inteligentne ładowanie oparte na pogodzie"
    description: "Ładuj z sieci jeśli jutro ma być pochmurnie"
    trigger:
      - platform: time
        at: "22:00:00"
    condition:
      # Wymaga integracji pogodowej (np. Met.no)
      - condition: numeric_state
        entity_id: weather.home
        attribute: forecast_cloudiness_tomorrow
        above: 70
      - 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: notify.notify
        data:
          message: "☁️ Jutro pochmurnie - ładuję baterię z sieci"

  # ============================================
  # 8. AWARYJNE PRZEŁĄCZENIA
  # ============================================
  
  - alias: "Deye - Awaria sieci - tryb Off-Grid"
    description: "Automatycznie przełącz na baterię gdy brak zasilania"
    trigger:
      - platform: numeric_state
        entity_id: sensor.inverter_deye_grid_voltage
        below: 180
        for:
          seconds: 30
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.inverter_deye_off_grid
      - service: notify.notify
        data:
          title: "⚠️ Awaria sieci!"
          message: "Przełączono na zasilanie bateryjne"
  
  - alias: "Deye - Powrót zasilania - tryb On-Grid"
    description: "Wróć do normalnego trybu gdy sieć wróci"
    trigger:
      - platform: numeric_state
        entity_id: sensor.inverter_deye_grid_voltage
        above: 210
        for:
          minutes: 2
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.inverter_deye_off_grid
      - service: notify.notify
        data:
          message: "✅ Sieć przywrócona - powrót do normalnego trybu"

# ============================================
# SCRIPTS (Wielokrotnego użytku)
# ============================================

script:
  deye_emergency_charge:
    alias: "Deye - Awaryjne ładowanie"
    description: "Maksymalne ładowanie baterii z sieci"
    sequence:
      - service: switch.turn_on
        target:
          entity_id: switch.inverter_deye_battery_grid_charging
      - service: number.set_value
        target:
          entity_id: number.inverter_deye_battery_max_charging_current
        data:
          value: 100
      - service: notify.notify
        data:
          message: "🚨 Rozpoczęto awaryjne ładowanie baterii"
  
  deye_eco_mode:
    alias: "Deye - Tryb ECO"
    description: "Maksymalna oszczędność i wykorzystanie PV"
    sequence:
      - service: select.select_option
        target:
          entity_id: select.inverter_deye_work_mode
        data:
          option: "Zero Export To Load"
      - service: select.select_option
        target:
          entity_id: select.inverter_deye_energy_pattern
        data:
          option: "Load First"
      - service: switch.turn_off
        target:
          entity_id: switch.inverter_deye_battery_grid_charging
      - service: notify.notify
        data:
          message: "🌱 Tryb ECO włączony"
  
  deye_max_self_consumption:
    alias: "Deye - Maksymalna autokonsumpcja"
    description: "Wykorzystaj całą energię z PV"
    sequence:
      - service: select.select_option
        target:
          entity_id: select.inverter_deye_work_mode
        data:
          option: "Zero Export To Load"
      - service: select.select_option
        target:
          entity_id: select.inverter_deye_energy_pattern
        data:
          option: "Battery First"