# ☀️ Przewidywanie produkcji PV dla inteligentnego zarządzania Deye
## 🎯 Cel
Dodać integrację przewidującą produkcję słoneczną, aby inteligentnie zarządzać ładowaniem baterii:
- Jeśli jutro będzie słonecznie → nie ładuj z sieci w nocy
- Jeśli jutro pochmurnie → doładuj baterię z taniej taryfy
- Optymalizacja kosztów energii
---
## 🌤️ Rekomendowane integracje
### 1. **Forecast.Solar** ⭐ NAJLEPSZY START
**Zalety:**
- ✅ Całkowicie darmowy
- ✅ Łatwa konfiguracja (bez rejestracji)
- ✅ Dokładne prognozy produkcji PV
- ✅ Wbudowana w Home Assistant
- ✅ Aktualizacja co godzinę
- ✅ Uwzględnia: nachylenie, azymut, moc instalacji
**Dane:**
- Prognoza produkcji na dziś/jutro (kWh)
- Moc w kolejnych godzinach (W)
- Energia pozostała do wyprodukowania dziś
**Instalacja:**
```yaml
1. Settings → Devices & Services → Add Integration
2. Szukaj: "Forecast.Solar"
3. Podaj:
- Latitude/Longitude (automatycznie z HA)
- Nachylenie paneli: np. 35° (kąt do poziomu)
- Azymut: np. 180° (południe), 135° (PŁD-WSC), 225° (PŁD-ZAC)
- Moc instalacji: np. 12 kWp
- Damping: 0 (lub 0.5 dla konserwatywnych prognoz)
4. Gotowe!
```
**Encje:**
```yaml
sensor.energy_production_today # Prognoza na dziś (kWh)
sensor.energy_production_tomorrow # Prognoza na jutro (kWh)
sensor.energy_current_hour # Prognoza dla bieżącej godziny
sensor.power_production_now # Aktualna przewidywana moc (W)
```
---
### 2. **Solcast** ⭐ NAJBARDZIEJ DOKŁADNY
**Zalety:**
- ✅ Bardzo dokładne prognozy
- ✅ Uwzględnia zachmurzenie satelitarne
- ✅ 50 zapytań/dzień (plan darmowy)
- ✅ Do 2 lokalizacji (np. dach wschód + zachód)
- ✅ Aktualizacja co 30 min
**Wady:**
- ⚠️ Wymaga rejestracji (darmowy plan wystarczy)
- ⚠️ Limit 50 zapytań/dzień
**Instalacja:**
```yaml
1. Zarejestruj się: https://solcast.com/ (FREE plan)
2. Dodaj swoją instalację:
- Resource Name: "Dach Południe"
- Latitude/Longitude
- Capacity: 12 kWp
- Tilt: 35°
- Azimuth: 180°
- Install Date
3. Skopiuj API Key z Account → API Key
4. W HA: HACS → Integrations → Szukaj "Solcast PV Forecast"
5. Instaluj → Restart HA
6. Settings → Integrations → Add Integration → "Solcast PV Forecast"
7. Wklej API Key
8. Gotowe!
```
**Encje:**
```yaml
sensor.solcast_pv_forecast_forecast_today # Dziś (kWh)
sensor.solcast_pv_forecast_forecast_tomorrow # Jutro (kWh)
sensor.solcast_pv_forecast_forecast_day_3 # Pojutrze (kWh)
sensor.solcast_pv_forecast_power_now # Teraz (W)
sensor.solcast_pv_forecast_peak_power_today # Szczyt dziś (W)
```
---
### 3. **OpenWeatherMap** - Pogoda + Nasłonecznienie
**Zalety:**
- ✅ Darmowy (do 1000 zapytań/dzień)
- ✅ Cloud coverage (% zachmurzenia)
- ✅ UV index
- ✅ Szczegółowa pogoda
**Instalacja:**
```yaml
1. Zarejestruj się: https://openweathermap.org/api
2. Skopiuj API Key (FREE plan)
3. HA: Settings → Integrations → Add Integration
4. Szukaj: "OpenWeatherMap"
5. Wklej API Key
6. Wybierz tryb: "Forecast + Current"
```
**Encje:**
```yaml
weather.openweathermap # Główna pogoda
sensor.openweathermap_cloud_coverage # Zachmurzenie (%)
sensor.openweathermap_uv_index # Indeks UV
sensor.openweathermap_forecast_temperature # Prognoza temperatura
sensor.openweathermap_forecast_clouds # Prognoza chmur
```
---
## 🤖 Inteligentne automatyzacje z prognozą
### Scenariusz 1: Ładuj z sieci jeśli jutro pochmurnie
```yaml
automation:
- alias: "Deye - Inteligentne ładowanie oparte na prognozie"
description: "Doładuj baterię jeśli jutro mała produkcja PV"
trigger:
- platform: time
at: "22:00:00" # Sprawdź wieczorem
condition:
# Jeśli prognoza na jutro < 10 kWh
- condition: numeric_state
entity_id: sensor.energy_production_tomorrow
below: 10
# I bateria nie jest pełna
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
below: 80
action:
# Włącz ładowanie w nocy
- service: switch.turn_on
target:
entity_id: switch.inverter_deye_battery_grid_charging
# Ustaw program nocny
- 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"
# Powiadomienie
- service: notify.notify
data:
title: "🌥️ Mała produkcja PV jutro"
message: |
Prognoza na jutro: {{ states('sensor.energy_production_tomorrow') }} kWh
Włączono ładowanie z sieci w nocy (01:00-07:00)
```
---
### Scenariusz 2: Nie ładuj jeśli jutro słonecznie
```yaml
automation:
- alias: "Deye - Wyłącz ładowanie gdy słonecznie"
description: "Nie marnuj pieniędzy gdy jutro dużo słońca"
trigger:
- platform: time
at: "22:00:00"
condition:
# Jeśli prognoza na jutro > 30 kWh (dużo słońca)
- condition: numeric_state
entity_id: sensor.energy_production_tomorrow
above: 30
# I bateria ma przynajmniej 40%
- condition: numeric_state
entity_id: sensor.inverter_deye_battery_soc
above: 40
action:
# Wyłącz ładowanie nocne
- 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.notify
data:
title: "☀️ Duża produkcja PV jutro!"
message: |
Prognoza: {{ states('sensor.energy_production_tomorrow') }} kWh
Ładowanie z sieci wyłączone - zaoszczędzisz na prądzie!
```
---
### Scenariusz 3: Dynamiczny limit ładowania
```yaml
automation:
- alias: "Deye - Dynamiczny SOC target"
description: "Dostosuj cel ładowania do prognozy"
trigger:
- platform: time
at: "23:00:00"
action:
- choose:
# Jeśli jutro bardzo pochmurnie (< 5 kWh)
- conditions:
- condition: numeric_state
entity_id: sensor.energy_production_tomorrow
below: 5
sequence:
# Naładuj do 95%
- service: notify.notify
data:
message: "🌧️ Bardzo pochmurnie - ładuję do 95%"
# Tu można dodać logikę stop przy 95%
# Jeśli średnio (5-20 kWh)
- conditions:
- condition: numeric_state
entity_id: sensor.energy_production_tomorrow
above: 5
below: 20
sequence:
# Naładuj do 70%
- service: notify.notify
data:
message: "🌤️ Średnie nasłonecznienie - ładuję do 70%"
# Jeśli słonecznie (> 20 kWh)
- conditions:
- condition: numeric_state
entity_id: sensor.energy_production_tomorrow
above: 20
sequence:
# Zostaw jak jest
- service: notify.notify
data:
message: "☀️ Będzie słonecznie - nie ładuję z sieci"
```
---
### Scenariusz 4: Adaptacyjne harmonogramy na weekend
```yaml
automation:
- alias: "Deye - Weekend z prognozą"
description: "W weekend dostosuj strategię do pogody"
trigger:
- platform: time
at: "20:00:00"
id: "check_forecast"
condition:
# Tylko piątek wieczorem
- condition: time
weekday:
- fri
action:
- choose:
# Jeśli weekend będzie słoneczny
- conditions:
- condition: numeric_state
entity_id: sensor.energy_production_tomorrow
above: 25
sequence:
- service: select.select_option
target:
entity_id: select.inverter_deye_time_of_use
data:
option: "Weekend" # Specjalny tryb weekendowy
- service: notify.notify
data:
message: "🎉 Słoneczny weekend - przełączam na tryb Weekend"
```
---
## 📊 Dashboard z prognozą
```yaml
# Dodaj do Lovelace Dashboard
- type: entities
title: ☀️ Prognoza produkcji PV
entities:
- entity: sensor.energy_production_today
name: Dziś (prognoza)
icon: mdi:solar-power
- entity: sensor.energy_production_tomorrow
name: Jutro (prognoza)
icon: mdi:weather-sunny
- entity: sensor.power_production_now
name: Moc teraz (prognoza)
icon: mdi:flash
- type: divider
- entity: sensor.inverter_deye_daily_production
name: Dziś (rzeczywista)
icon: mdi:chart-line
- entity: sensor.inverter_deye_battery_soc
name: Bateria SOC
icon: mdi:battery
# Wykres porównawczy
- type: history-graph
title: Prognoza vs Rzeczywistość
hours_to_show: 48
entities:
- entity: sensor.energy_production_today
name: Prognoza
- entity: sensor.inverter_deye_pv_power
name: Rzeczywista moc
```
---
## 🧮 Sensor obliczający "godziny słoneczne"
```yaml
# configuration.yaml
template:
- sensor:
- name: "Słoneczne godziny jutro"
unique_id: sunny_hours_tomorrow
unit_of_measurement: "h"
state: >
{% set forecast = states('sensor.energy_production_tomorrow') | float(0) %}
{% set peak_power = 12 %} {# Twoja moc instalacji w kWp #}
{# Szacowane pełne godziny = energia / moc szczytowa #}
{{ (forecast / peak_power) | round(1) }}
icon: mdi:weather-sunny
attributes:
forecast_kwh: "{{ states('sensor.energy_production_tomorrow') }}"
rating: >
{% set hours = (states('sensor.energy_production_tomorrow') | float(0) / 12) %}
{% if hours > 6 %}Doskonale☀️
{% elif hours > 4 %}Dobrze🌤️
{% elif hours > 2 %}Średnio⛅
{% else %}Słabo🌧️{% endif %}
- sensor:
- name: "Strategia ładowania baterii"
unique_id: battery_charging_strategy
state: >
{% set forecast = states('sensor.energy_production_tomorrow') | float(0) %}
{% set soc = states('sensor.inverter_deye_battery_soc') | float(0) %}
{% if forecast < 5 and soc < 80 %}
Ładuj do maksimum
{% elif forecast < 15 and soc < 60 %}
Ładuj do 70%
{% elif forecast > 25 %}
Nie ładuj
{% else %}
Standardowo
{% endif %}
icon: mdi:strategy
```
---
## 🎯 Progi decyzyjne (dostosuj do swoich potrzeb)
```yaml
Prognoza produkcji PV na jutro:
┌────────────────────────────────────────────────┐
│ > 30 kWh 🌞 Doskonale → NIE ładuj │
│ 20-30 kWh ☀️ Dobrze → Ładuj minimalnie │
│ 10-20 kWh ⛅ Średnio → Ładuj do 60-70% │
│ 5-10 kWh 🌥️ Słabo → Ładuj do 80% │
│ < 5 kWh 🌧️ Bardzo źle → Ładuj do 95% │
└────────────────────────────────────────────────┘
Dla instalacji 12 kWp w Polsce (zima/lato):
- Grudzień/Styczeń: 2-8 kWh/dzień
- Marzec/Wrzesień: 20-40 kWh/dzień
- Czerwiec/Lipiec: 50-80 kWh/dzień
```
---
## 🚀 Quick Start
### Krok 1: Zainstaluj Forecast.Solar
```yaml
1. Settings → Devices & Services → Add Integration
2. "Forecast.Solar"
3. Podaj parametry instalacji PV
4. Gotowe! (bez rejestracji)
```
### Krok 2: Dodaj sensory do Dashboard
```yaml
Dodaj kartę z sensor.energy_production_tomorrow
```
### Krok 3: Utwórz automatyzację
```yaml
Skopiuj "Scenariusz 1" i dostosuj progi
```
### Krok 4: Testuj!
```yaml
Sprawdź przez tydzień jak sprawdza się prognoza
Dostosuj progi do swoich potrzeb
```
---
## 💰 Szacunkowe oszczędności
```yaml
Przykład (taryfa G12):
- Droga taryfa: 0.80 zł/kWh
- Tania taryfa: 0.40 zł/kWh
Scenariusz A (bez prognozy):
- Ładujesz co noc: 15 kWh × 0.40 zł = 6 zł
- Przez miesiąc: 6 zł × 30 = 180 zł
Scenariusz B (z prognozą):
- Ładujesz tylko gdy potrzeba (60% dni): 6 zł × 18 = 108 zł
- Oszczędność: 72 zł/miesiąc = 864 zł/rok 💰
Dodatkowa korzyść:
- Mniejsze zużycie baterii (mniej cykli)
- Dłuższa żywotność baterii
- Lepszy ROI instalacji PV
```
---
## 📚 Dodatkowe zasoby
**Integracje HACS:**
- Solcast PV Forecast: https://github.com/BJReplay/ha-solcast-solar
- Forecast.Solar: wbudowana w HA
- Sun2: https://github.com/pnbruckner/ha-sun2 (zaawansowane dane słoneczne)
**Kalkulatory:**
- PVGIS (EU): https://re.jrc.ec.europa.eu/pvg_tools/en/
- PVWatts Calculator: https://pvwatts.nrel.gov/
**Tutoriale:**
- Forecast.Solar setup: https://www.home-assistant.io/integrations/forecast_solar/
- Solcast Community: https://community.home-assistant.io/
---
**Autor:** Copilot CLI
**Data:** 2026-02-05
**Wersja:** 1.0