120 lines
3.8 KiB
Markdown
120 lines
3.8 KiB
Markdown
# Integracja Home Assistant z Pstryk API
|
|
|
|
[](https://github.com/twoj_nick/pstryk-homeassistant)
|
|
|
|
Integracja dla Home Assistant umożliwiająca śledzenie aktualnych cen energii elektrycznej oraz prognoz z platformy Pstryk.
|
|
|
|
## Funkcje
|
|
- 🔌 Aktualna cena kupna i sprzedaży energii
|
|
- 📅 Tabela 24h z prognozowanymi cenami
|
|
- ⚙️ Konfigurowalna liczba "najlepszych godzin"
|
|
- ⏰ Automatyczna konwersja czasu UTC → lokalny
|
|
- 🔄 Aktualizuje dane 1 minutę po pełnej godzinie
|
|
- 🛡️ Debug i logowanie
|
|
|
|
## TODO
|
|
- Walidacja kluacza API
|
|
|
|
## Instalacja
|
|
|
|
### Metoda 1: Via HACS
|
|
1. W HACS przejdź do `Integracje`
|
|
2. Kliknij `Dodaj repozytorium`
|
|
3. Wpisz URL: `https://github.com/twoj_nick/pstryk-homeassistant`
|
|
4. Wybierz kategorię: `Integration`
|
|
5. Zainstaluj i zrestartuj Home Assistant
|
|
|
|
### Metoda 2: Ręczna instalacja
|
|
1. Utwórz folder `custom_components/pstryk` w katalogu konfiguracyjnym HA
|
|
2. Skopiuj pliki:
|
|
init.py
|
|
manifest.json
|
|
config_flow.py
|
|
const.py
|
|
sensor.py
|
|
logo.png (opcjonalnie)
|
|
3. Zrestartuj Home Assistant
|
|
|
|
## Konfiguracja
|
|
1. Przejdź do `Ustawienia` → `Urządzenia i usługi`
|
|
2. Kliknij `Dodaj integrację`
|
|
3. Wyszukaj "Psrryk Energy"
|
|
4. Wprowadź dane:
|
|
- **Klucz API**: Twój klucz z platformy PSTryk
|
|
- **Liczba najlepszych cen kupna**: (domyślnie 5)
|
|
- **Liczba najlepszych cen sprzedaży**: (domyślnie 5)
|
|
|
|
## Scrnshoty
|
|
|
|

|
|

|
|

|
|
|
|
|
|
## Użycie
|
|
### Dostępne encje
|
|
| Nazwa encji | Opis |
|
|
|--------------------------------------|-------------------------------|
|
|
| `sensor.pstryk_current_buy_price` | Aktualna cena kupna |
|
|
| `sensor.pstryk_current_sell_price` | Aktualna cena sprzedaży |
|
|
| `sensor.pstryk_buy_price_table` | Tabela cen kupna |
|
|
| `sensor.pstryk_sell_price_table` | Tabela cen sprzedaży |
|
|
|
|
Przykładowa Automatyzacja:
|
|
|
|
Włączanie bojlera
|
|
|
|
```yaml
|
|
alias: Optymalne grzanie wody
|
|
description: Automatyzacja włączająca grzanie w najtańszych godzinach
|
|
trigger:
|
|
- platform: time_pattern
|
|
minutes: "/1" # Sprawdzaj co minutę
|
|
|
|
condition:
|
|
- condition: template
|
|
value_template: >
|
|
{% set current_time = now().strftime('%H:%M') %}
|
|
{% set best_hours = state_attr('sensor.pstryk_buy_price_table', 'best_prices')
|
|
| map(attribute='start')
|
|
| map('regex_replace', '.* (\d+:\d+):\d+', '\1') # Wyciągamy samą godzinę (HH:MM)
|
|
| list
|
|
%}
|
|
{{ current_time in best_hours }}
|
|
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: switch.bojler
|
|
state: "off"
|
|
sequence:
|
|
- service: switch.turn_on
|
|
target:
|
|
entity_id: switch.bojler
|
|
- service: notify.mobile_app
|
|
data:
|
|
message: >
|
|
🟢 Grzanie WŁĄCZONE!
|
|
Godzina: {{ current_time }},
|
|
Cena: {{ state_attr('sensor.pstryk_buy_price_table', 'best_prices')
|
|
| selectattr('start', 'match', '.* ' + current_time + ':\d+')
|
|
| map(attribute='price')
|
|
| first | round(2) }} PLN/kWh
|
|
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: switch.bojler
|
|
state: "on"
|
|
sequence:
|
|
- delay: "01:00:00" # Wyłącz po 1 godzinie
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.bojler
|
|
|
|
mode: single
|
|
```
|
|
Rozładowanie magazynu energii - Sprzedaż po najlepszej cenie
|
|
|
|
```yaml
|