dev support: 💡 Odbierz 50 zł na prąd w Pstryk! Użyj mojego kodu E3WOTQ w koszyku w aplikacji. Bonus trafi do Twojego Portfela Pstryk po pierwszej opłaconej fakturze!
!!! Dedykowana Karta do integracji: https://github.com/balgerion/ha_Pstryk_card
Integracja dla Home Assistant umożliwiająca śledzenie aktualnych cen energii elektrycznej oraz prognoz z platformy Pstryk.
Integracja korzysta z nowego endpointu unified-metrics
- Aktualna cena kupna i sprzedaży energii
- Tabela 24h z prognozowanymi cenami dla sensora API
- Tabela 48h z prognozowanymi cenami dla sensora MQTT
- Konfigurowalna liczba "najlepszych godzin"
- Konfigurowalna liczba "najgorszych godzin"
- Cena w następnej godzinie
- Średnia cena z pozostałej ilości godzin do końca doby
- Średnia cena wschód/zachód
- Automatyczna konwersja czasu UTC → lokalny
- Dane są aktualizowane minutę po pełnej godzinie
- Konfiguracja z poziomu integracji
- Walidacja klucza API / Cache danych / Zabezpieczenie przed timeoutem API
- Integracja wystawia po lokalnym MQTT tablice cen w natywnym formacie EVCC
- Średnia zakupu oraz sprzedaży - miesięczna/roczna
- Bilans miesięczny/roczny
- Debug i logowanie
- W HACS przejdź do
Integracje - Kliknij
Dodaj repozytorium - Wpisz URL:
https://github.com/balgerion/ha_Pstryk - Wybierz kategorię:
Integration - Zainstaluj i zrestartuj Home Assistant
- Utwórz folder
custom_components/pstrykw katalogu konfiguracyjnym HA - Wgraj wszystkie pliki z repozytorium.
- Zrestartuj Home Assistant
- Przejdź do
Ustawienia→Urządzenia i usługi - Kliknij
Dodaj integrację - Wyszukaj "Psrryk Energy"
- 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)
| Nazwa encji | Opis |
|---|---|
sensor.pstryk_current_buy_price |
Aktualna cena kupna energii + tabela |
sensor.pstryk_current_sell_price |
Aktualna cena sprzedaży energii + tabela |
sensor.pstryk_buy_monthly_average |
Średnia miesięczna cena kupna energii |
sensor.pstryk_buy_yearly_average |
Średnia roczna cena kupna energii |
sensor.pstryk_sell_monthly_average |
Średnia miesięczna cena sprzedaży energii |
sensor.pstryk_sell_yearly_average |
Średnia roczna cena sprzedaży energii |
sensor.pstryk_daily_financial_balance |
Dzienny bilans kupna/sprzedaży |
sensor.pstryk_monthly_financial_balance |
Miesięczny bilans kupna/sprzedaży |
sensor.pstryk_yearly_financial_balance |
Roczny bilans kupna/sprzedaży |
sensor.pstryk_json_buy |
Ceny kupna 48h w formacie JSON (opcjonalny) |
sensor.pstryk_json_sell |
Ceny sprzedaży 48h w formacie JSON (opcjonalny) |
Po włączeniu opcji "Włącz sensory JSON z cenami" w ustawieniach integracji pojawiają się sensory sensor.pstryk_json_buy i sensor.pstryk_json_sell z atrybutami prices_today, prices_tomorrow i prices (48h) w ustandaryzowanym formacie {time, price} — zgodnym z TGE/Nordpool i kompatybilnym z EV Smart Charging czy cheapest-energy-hours.
Przykładowy wykres cen 48h (apexcharts-card):
type: custom:apexcharts-card
header:
show: true
show_states: true
colorize_states: true
graph_span: 48h
span:
start: day
now:
show: true
label: teraz
series:
- entity: sensor.pstryk_json_buy
name: Buy Price
float_precision: 2
extend_to: false
show:
legend_value: false
in_header: raw
data_generator: |
return entity.attributes.prices.map(i => [new Date(i.time).getTime(), i.price]);
- entity: sensor.pstryk_json_sell
name: Sell Price
float_precision: 2
extend_to: false
show:
legend_value: false
in_header: raw
data_generator: |
return entity.attributes.prices.map(i => [new Date(i.time).getTime(), i.price]);Nagłówek karty pokazuje aktualną cenę (stan sensora, odświeżany co godzinę), a pionowa linia "teraz" zaznacza bieżącą godzinę na osi 48h.
Przykładowa Automatyzacja:
alias: Optymalne grzanie wody
description: ""
triggers:
- minutes: "1"
trigger: time_pattern
hours: /1
conditions:
- condition: template
value_template: >
{% set current_hour = now().replace(minute=0, second=0,
microsecond=0).isoformat(timespec='seconds').split('+')[0] %}
{% set best_hours = state_attr('sensor.pstryk_current_buy_price',
'Best prices') | map(attribute='start') | list %}
{{ current_hour in best_hours }}
actions:
- variables:
current_hour: >-
{{ now().replace(minute=0, second=0,
microsecond=0).isoformat(timespec='seconds').split('+')[0] }}
- choose:
- conditions:
- condition: state
entity_id: light.shellypro3_34987a49142c_switch_2
state: "off"
sequence:
- target:
entity_id: switch.shellypro3_34987a49142c_switch_2
action: switch.turn_on
data: {}
- data:
message: |
Grzanie włączone! Godzina: {{ current_hour }}, Cena: {{
state_attr('sensor.pstryk_current_buy_price', 'Best prices')
| selectattr('start', 'equalto', current_hour)
| map(attribute='price')
| first
}} PLN
action: notify.mobile_app_balg_iphone
- conditions:
- condition: state
entity_id: light.shellypro3_34987a49142c_switch_2
state: "on"
sequence:
- delay:
hours: 1
minutes: 5
- target:
entity_id: switch.shellypro3_34987a49142c_switch_2
action: switch.turn_off
data: {}
Taryfy:
currency: PLN
grid:
type: custom
forecast:
source: mqtt
topic: energy/forecast/buy
feedin:
type: custom
forecast:
source: mqtt
topic: energy/forecast/sell





