Integracja RCE w Home Assistant: Realne Oszczędności na Prądzie

Nasza ekipa audytwodorowy Aktualizacja: 4 sierpnia 2026 r.

Czym jest RCE i jak działa w HA

Rynkowa cena energii elektrycznej RCE to wskaźnik publikowany przez operatora systemu przesyłowego w Polsce, aktualizowany w 15-minutowych interwałach. Każda doba to dokładnie 96 punktów pomiarowych, z których każdy odzwierciedla rzeczywisty koszt wytworzenia kilowatogodziny na rynku dnia następnego. Dane trafiają do Home Assistant poprzez dedykowaną integrację z HACS, gdzie stają się paliwem dla automatyzacji budżetowych.

rynkowa cena energii elektrycznej rce

Siła tego wskaźnika leży w jego rozdzielczości czasowej. Godzinowa taryfa to uśrednienie czterech slotów, co ukrywa krótkotrwałe skoki i dołki cenowe. 15-minutowa granulacja pozwala złapać dokładnie ten moment, gdy wiatraki generują nadwyżkę lub gdy fotowoltaika osiąga szczyt. Dla pompy ciepła taka precyzja nie ma znaczenia, ale dla zmywarki czy ładowarki samochodu elektrycznego różnica sięga nawet kilkudziesięciu groszy na cyklu.

Integracja łączy się z publicznym API PSE i pobiera dane w dwóch horyzontach: dzisiejszym oraz jutrzejszym. Drugi zestaw pojawia się zazwyczaj po godzinie 14:00, czasem z opóźnieniem do 15:30. Do tego momentu sensor jutrzejszych cen pozostaje nieaktywny, a atrybut tomorrow_data_available zwraca wartość false. To normalne zachowanie, nie błąd konfiguracji.

W ekosystemie Home Assistant cena RCE zasila kilka typów encji. Sensor główny udostępnia aktualną stawkę wraz z pełną tablicą atrybutów: średnią dobową, minimum, maksimum, medianą oraz maskami tanich okien. Binary sensors sygnalizują stan rynku (rce_low_price) oraz dostępność prognozy na kolejny dzień. Razem tworzą warstwę informacyjną, na której opierają się wszystkie reguły automatyzacji.

Typ encjiPrzykładowy identyfikatorCo zwraca
Sensor głównysensor.rce_priceAktualna cena PLN/kWh + atrybuty rozszerzone
Binary sensorbinary_sensor.rce_low_priceStan: ON gdy cena poniżej progu trybu
Binary sensorbinary_sensor.tomorrow_data_availableON po publikacji danych jutrzejszych
Sensor diagnostycznysensor.rce_next_cheap_windowPoczątek najbliższego taniego okna
Sensor statystycznysensor.rce_average_price_todayŚrednia ważona z dzisiejszych slotów

Cały mechanizm opiera się na prostej zależności: im więcej urządzeń zsynchronizujesz z naturalnym rytmem sieci, tym mniej płacisz za każdy kilowatogodzinę. Zmywarka uruchomiona o trzeciej w nocy kosztuje ułamek tego, co ta sama zmywarka włączona podczas porannego szczytu. Fotowoltaika produkuje najwięcej w południe, lecz wtedy RCE spada niemal do zera. Magazyn energii łapany w tanich oknach i rozładowywany w drogich oknach zamienia różnicę cenową w czysty zysk.

Tryby wyliczania tanich okien cenowych

Cztery warianty algorytmu pokrywają niemal każdy scenariusz domowy. Low Price Cutoff wyznacza próg percentylowy: przy ustawieniu 30% system uzna za tanie te sloty, których cena mieści się w najtańszej trzeciej części doby. Sprawdza się wszędzie tam, gdzie liczy się prosta reguła start/stop bez analizy ciągłości.

Cheapest Consecutive Ranges szuka najtańszego nieprzerwanego bloku o zadanej długości. Trzygodzinny slot dla zmywarki, czterogodzinny dla pralki suszącej. Algorytm iteruje po wszystkich kombinacjach i wybiera tę z najniższą średnią. Dzięki temu urządzenie kończy cykl w jednym przebiegu, bez przerywania w środku wirowania.

Cheapest Not Consecutive rozbija blok na rozproszone sloty o łącznym czasie trwania. Ładowanie samochodu elektrycznego z baterią 60 kWh potrzebuje około sześciu godzin, ale nie muszą być ciągłe. Wystarczy osiem slotów po 45 minut każdy, rozłożonych na noc, by uzupełnić akumulator przy minimalnym koszcie. Ten tryb daje największą elastyczność i zwykle największe oszczędności.

Always On (Force On) to nadpisanie ręczne, niezależne od cen. Przydatne, gdy musisz uruchomić urządzenie natychmiast albo testujesz instalację. Tryb blokuje analizę cenową i wymusza pracę do momentu ręcznego wyłączenia.

Tryby operacyjne w ramach Low Price Cutoff

Każdy z pięciu poziomów agresywności odpowiada innemu progowi percentylowemu. Im agresywniej, tym krócej pracują urządzenia, lec tym niższa średnia cena zużytej energii.

TrybPrógPrzykładowe zastosowanie
Aggressive10-15% najtańszych slotówŁadowanie EV dużą mocą
Super Eco20-25%Bojler, akumulacyjny grzejnik
Eco30-35%Zmywarka, pralka
Comfort40-45%Pompa ciepła, suszarka
OffBrak automatyzacjiWyłączenie analizy cenowej

Dobór trybu zależy od mocy urządzenia i dopuszczalnego czasu pracy. Bojler o mocy 2 kW potrzebuje kilku godzin na podgrzanie 200 litrów wody, więc Super Eco z dwudziestoma procentami slotów (około 4,8 godziny) wystarczy. Pompa ciepła pracująca na c.o. wymaga ciągłości, dlatego lepiej sprawdzi się Comfort z dłuższym oknem i wyższą średnią ceną, ale bez ryzyka wyłączenia w trakcie mrozu.

Konfiguracja integracji RCE przez HACS

Instalacja sprowadza się do dodania repozytorium i restartu HA. HACS (Home Assistant Community Store) to menedżer integracji niestandardowych, który obsługuje aktualizacje automatycznie i pilnuje zależności.

Lista kontrolna przed instalacją

  • HACS zainstalowany i skonfigurowany
  • Home Assistant w wersji 2024.1 lub nowszej
  • Stałe połączenie internetowe z API PSE
  • Uprawnienia administratora w profilu HA

W panelu HACS wybierz Integrations, a następnie trzy kropki w prawym górnym rogu i Custom repositories. W pole URL wklejasz adres projektu https://github.com/jacek2511/ha_rce/, kategorię ustawiasz na Integration. Po dodaniu repozytorium pojawi się ono na liście dostępnych. Kliknij Download, poczekaj na pobranie plików i zrestartuj Home Assistant.

Po ponownym uruchomieniu integracja powinna automatycznie wykryć dostępne encje. W panelu UstawieniaUrządzenia i usługi zobaczysz nową pozycję z pełną listą sensorów i binary sensors. Jeśli ich nie ma, sprawdź logi w Narzędziach deweloperskich. Najczęstsza przyczyna to blokada sieciowa lub brak dostępu do API PSE.

Wybór rozdzielczości czasu

Konfiguracja oferuje dwie opcje częstotliwości odświeżania. Rozdzielczość 15-minutowa odpowiada natywnej granularności RCE i pokazuje każdy slot osobno. Rozdzielczość godzinna uśrednia cztery kolejne sloty w jeden punkt, przez co traci informację o krótkotrwałych skokach cenowych.

RozdzielczośćKiedy wybraćKiedy unikać
15 minutZmywarka, pralka, ładowarka EVPompy ciepła, sprężarki chłodnicze
1 godzinaOgrzewanie akumulacyjne, bojleryFurtkowe automatyzacje czasowe

Pompy ciepła i sprężarki nie tolerują częstych cykli start/stop. Każde uruchomienie pobiera prąd rozruchowy trzykrotnie wyższy od nominalnego, co zwiększa zużycie sprężarki i obniża sprawność. Dla tych urządzeń godzinna rozdzielczość daje płynniejszy profil pracy i chroni komponenty mechaniczne.

Gotowe automatyzacje: zmywarka, EV, pompa ciepła

Pięć blueprint-ów poniżej pokrywa najpopularniejsze scenariusze. Każdy z nich korzysta z atrybutów integracji RCE zamiast sztywnych progów liczbowych, dzięki czemu automatyzacja reaguje na realną strukturę cen, a nie na arbitralną wartość wpisaną w konfiguracji.

Zmywarka w najtańszym trzygodzinnym bloku

Zmywarka zużywa od 0,8 do 1,2 kWh na cykl, a jej praca trwa zwykle od 120 do 180 minut. Algorytm Cheapest Consecutive Ranges z oknem trzygodzinnym gwarantuje ukończenie programu bez przerwy.

trigger:
 , platform: state
    entity_id: binary_sensor.rce_cheapest_3h_active
    to: "on"
condition:
 , condition: state
    entity_id: binary_sensor.rce_low_price
    state: "on"
action:
 , service: switch.turn_on
    target:
      entity_id: switch.dishwasher

Zmywarka wystartuje dokładnie wtedy, gdy trzy kolejne godziny zapowiadają się najtaniej w ciągu doby. Rano talerze będą czyste, a rachunek za ten cykl niższy o 30-50% w porównaniu z uruchomieniem w szczycie.

Ładowanie samochodu elektrycznego w rozproszonych slotach

Bateria 60 kWh wymaga sześciu godzin ładowania mocą 11 kW. Tryb Cheapest Not Consecutive rozkłada ten czas na osiem 45-minutowych slotów w ciągu nocy. Ładowarka startuje wielokrotnie, lecz każda sesja wypada w najtańszym możliwym momencie.

trigger:
 , platform: template
    value_template: "{{ states('sensor.rce_ev_total_cheap_minutes')|int >= 360 }}"
action:
 , service: evcharger.start_charging
    target:
      entity_id: evcharger.kuchnia

W praktyce ładowanie trwa od 23:00 do 7:00 z kilkoma przerwami na drogie sloty. Rano bateria z pełnym zapasem, koszt niższy o 40-60% niż przy ciągłym ładowaniu od razu po podłączeniu.

Pompa ciepła w trybie Comfort (rozdzielczość godzinna)

Pompa ciepła pracuje nieprzerwanie, lecz wolno reagować na chwilowe dołki cenowe. Rozdzielczość godzinna eliminuje fałszywe sygnały z krótkotrwałych skoków i pozwala utrzymać stabilną temperaturę buforową.

trigger:
 , platform: numeric_state
    entity_id: sensor.rce_price_hourly
    below: 0.45
action:
 , service: climate.set_hvac_mode
    target:
      entity_id: climate.heat_pump
    data:
      hvac_mode: heat
      temperature: 22

Próg 0,45 PLN/kWh to orientacyjna wartość dla taryfy dynamicznej. Dokładną stawkę wyznacza średnia z ostatnich 30 dni pomniejszona o 15%. Automatyzacja nie wyłącza pompy w drogich godzinach, lecz obniża temperaturę zadaną o jeden stopień, co zmniejsza pobór mocy bez ryzyka wychłodzenia budynku.

Bojler w trybie Super Eco

Bojler elektryczny 2 kW nagrzewa 200 litrów wody w około cztery godziny. Tryb Super Eco wyznacza okno czteroipółgodzinne w obrębie 20% najtańszych slotów doby. W praktyce bojler uruchamia się raz na dobę, zwykle między 1:00 a 5:00.

trigger:
 , platform: state
    entity_id: binary_sensor.rce_super_eco_active
    to: "on"
condition:
 , condition: time
    after: "01:00:00"
    before: "05:30:00"
action:
 , service: water_heater.set_operation_mode
    target:
      entity_id: water_heater.bojler
    data:
      operation_mode: eco

Rano ciepła woda dostępna bez ograniczeń, a koszt podgrzania niższy o połowę w porównaniu z klasyczną taryfą G11.

Magazyn energii w trybie arbitrażu

Domowy magazyn energii o pojemności 10 kWh zarabia na różnicy cenowej między ładowaniem a rozładowaniem. Automatyzacja pobiera atrybut savings_vs_avg_day z sensora głównego i decyduje, czy opłaca się gromadzić energię.

trigger:
 , platform: numeric_state
    entity_id: sensor.rce_best_window_avg_price
    below: 0.30
action:
 , service: select.select_option
    target:
      entity_id: select.inverter_mode
    data:
      option: charge

Magazyn napełnia się w najtańszym oknie, a oddaje energię w najdroższym. Przy różnicy 0,40 PLN/kWh i dziennym cyklu zysk sięga 4 PLN. W skali roku to ponad 1400 PLN, które zostają w kieszeni użytkownika zamiast u sprzedawcy prądu.

Atrybuty sensora głównego w praktyce

Sensor sensor.rce_price udostępnia kilkanaście atrybutów, które warto znać. average zwraca średnią dobową, min i max krańce, median wartość środkową. prices_today to lista 96 wartości, prices_tomorrow analogiczna lista na kolejny dzień.

Maska cheap_mask_today to ciąg 96 zer i jedynek: jedynka oznacza slot mieszczący się w ustawionym procencie najtańszych. cheap_mask_tomorrow działa identycznie dla danych jutrzejszych. Te dwie maski są fundamentem template sensorów, które budują logikę automatyzacji.

Sekcja Best Window zawiera avg_price, min_price, max_price, duration_slots oraz savings_vs_avg_day. Ostatni atrybut pokazuje procent oszczędności w stosunku do zużycia rozłożonego równomiernie na całą dobę. Top 3 Windows to lista trzech najkorzystniejszych bloków z godzinami rozpoczęcia i średnią ceną. Next Cheap Window wskazuje najbliższe przyszłe okno, nawet jeśli leży w kolejnej dobie.

Najczęstsze problemy i rozwiązania

Brak danych jutrzejszych przed godziną 14:00 to nie błąd, lecz opóźnienie publikacji PSE. Automatyzacje korzystające z binary_sensor.tomorrow_data_available powinny zawierać warunek blokujący uruchomienie do momentu, gdy dane się pojawią.

Konflikt z innymi integracjami cenowymi zdarza się, gdy Home Assistant korzysta jednocześnie z RCE i Nord Pool. Dane się nie zgadzają, bo oba serwisy stosują różne strefy czasowe i konwencje zaokrągleń. Rozwiązanie to wybór jednego źródła i wyłączenie drugiego w HACS.

Brak reakcji automatyzacji na niską cenę wynika najczęściej z literówki w entity_id albo z błędnego odwołania do atrybutu. Logi w Narzędziach deweloperskich pokażą, która linia szablonu Jinja2 zwraca wartość unknown lub None. Poprawka zwykle zajmuje kilka minut.

Wizualizacja dashboardu

ApexCharts pozwala narysować dzienną krzywą cen z nałożonymi maskami tanich okien. Konfiguracja korzysta z atrybutu prices_today przekazanego jako seria danych, a granice tanich okien rysuje jako osobny typ wykresu z markerami.

type: custom:apexcharts-card
graph_span: 24h
series:
 , entity: sensor.rce_price
    type: line
    data_generator: |
      return Object.entries(entity.attributes.prices_today).map(([k,v]) => {
        return [new Date(k).getTime(), v];
      });

Stack przycisków pod wykresem umożliwia szybkie przełączanie trybów bez wchodzenia w ustawienia integracji. Pięć kart: Agresywny, Super Eco, Eco, Komfort, Wymuś ON. Każda wywołuje select.select_option na encji select.rce_price_mode.

Źródła danych: Polskie Sieci Elektroenergetyczne S.A. (dane RCE publikowane pod adresem pse.pl), repozytorium integracji dostępne w serwisie GitHub (github.com/jacek2511/ha_rce), dokumentacja HACS (hacs.xyz), specyfikacja encji Home Assistant (developers.home-assistant.io). Przepisy dotyczące taryf dynamicznych określa ustawa Prawo energetyczne oraz rozporządzenia Ministra Klimatu i Środowiska.

Kalkulator oszczędności RCE

Oblicz, ile zaoszczędzisz przesuwając zużycie energii do tanich okien cenowych.

- Wprowadź dane i kliknij przycisk.