Rynkowe ceny energii elektrycznej

To zmienia postać rzeczy ale PGE jeszcze do tego nie dojrzało. Tauron jest tu jak zwykle do przodu.

PGE też to robi. Jest to wymuszone prawem.

Możesz też zobaczyć ofertę pstryk.pl, również wymuszają G12W w dystrybucji

OK. Czyli można jeździć ,hybrydą na gazie" :grinning:
Taniej niż najtaniej.
Rozmawiałem ze znajomym z PGE i faktycznie jest to możliwe

mógłbyś mnie przekierować na jakieś pdf’y które o tym mówią ?
bo w/g tego pge oferta
pkt. 1,9,10 brzmi:

1 . Jeśli jesteś przyłączony do sieci dystrybucyjnej Operatora Systemy Dystrybucyjnego (OSD) - PGE Dystrybucja S.A.
lub do sieci dystrybucyjnej OSD innego niż PGE Dystrybucja S.A., z którym mamy zawartą generalną umowę
dystrybucyjną dla usługi kompleksowej (Załącznik nr 6), z naszej Oferty możesz skorzystać gdy:
c. korzystasz z jednej z grup taryfowych G11, G12, G12w lub G12n PGE Obrót S.A.;
9 . Jeśli jesteś naszym Klientem lub zechcesz zawrzeć z nami w ramach Oferty Umowę kompleksową, opłata
za dystrybucję energii elektrycznej zostanie naliczona zgodnie z aktualną Taryfą dla usług dystrybucji energii
elektrycznej właściwego OSD.
10. W ramach Oferty możesz zmienić grupę taryfową na inną wskazaną w pkt 1 lit. c na zasadach określonych
w Umowie kompleksowej.

macie kolegów w branży, wiec chciałbym Was zpytać:
umowę na taryfy dynamiczne podpisałem z pge 26.08.2024. po miesiącu przyszedł sms, że od 1.10.2024 jestem w taryfie dynamicznej. jest prawie koniec grudnia a ja nie dostałem jeszcze żadnego rachunku /rozliczenie 1M/
skąd macie informacje że coś ktoś wymusza.
do michał:
nie możesz twierdzić na podstawie jednego droższego dnia z grudnia że się nie opłaca, to czy komuś się opłaca zależy od profilu zużycia a wnioski można wyciągnąć tylko po zebraniu kilkumiesięcznych danych /np. latem wysyłasz do sieci energie z której korzystasz zimą/ to dlatego wrzuciłem swoje zużycie i kilka słów podsumowania. ja wiem że piekę chleb i lubie upiec pizze na kamieniu, a w bloku bez pompy ciepła na utrzymaniu to działa. I jak sam stwierdziłeś: “Analiza opłacalności taryf dynamicznych wcale nie jest prosta.” /wpis #114
oplata handlowa psuje wszystko, wiec czekam na ryze papieru z rozliczeniem
zaczynam odnosic wrażenie że jesteście po drugiej stronie mocy :slight_smile:
załączam wykresy srednich cen, jestem na minus ale energia na swieta jak widze tanieje, a do upieczenia indyk i pizza :slight_smile: /ostatnie skoki po 20.12 to problemy z HA


PS. /edit/
ale jeśli jest możliwość mieć G12w to chetnie i jesli zobacze na papierze taka mozliwosc to zrobie magazyn energii na 100%, i bede ganial kwh tam i z powrotem :). jesli obserwujecie to roznica pomiedzy noca i dniem rzadko spada ponizej 500PLN/MWh /roznie, potrzebna analiza/ a czesto jest powyżej 1000. zrobie to dla zasady, bo moge

3 polubienia

Wrażenie mam podobne, delikatnie ale nieustanne ze wskazaniem na jedną firmę.

dzieki z za wsparcie bo bardzo mi zalezy na swiadomym podejciu

Nie wiem co rozumiesz pisząc o drugiej stronie mocy. Że ktoś tu reprezentuje np. PGE :slight_smile: ? Rozumiem Twoje podejście ale sam mam odmienne, tak jak pisałem mieszkam w domu, mam PV i magazyn itd.
Nie liczę średnich i pochodnych :slight_smile: Na razie ładując magazyn lecę cały czas na drugiej strefie G12W czyli 0,77 zł brutto energia i dystrybucja. U Ciebie daily AVG 0,84 a weekly AVG 0,92 zł.
Nie mówię że twoje podejście jest złe, jest po prostu inne, bo średnia o niczym nie mówi jeśli upieczesz wspomniany chleb kiedy jest dołek rzędu 0,50 zł :slight_smile:
Ja też nie mam rachunku z PGE pomimo że od lipca mam PV a od listopada zmieniłem rozliczenia na comiesięczne i taryfę na G12W. Z tego co się nieoficjalnie dowiedziałem mają problemy systemowe z rozliczeniami godzinowymi. Pani na infolinni meandrowała że to trudne obliczenia :slight_smile:
Jeszcze jedno, ryzy papieru nie dostaniesz, raczej policzą średnią ważoną bo raczej tak się to robi.

Wesolych i tanich energetycznie Świąt ! :slight_smile:

dzień dobry, chciał bym prosić o pomoc bo nie mam pojęcia jak wypełnić wartościami ten szablon cenowy dla tauron, zaznaczam że nie jestem żadnym programistą itp:/ z góry dziękuję

Jak wyliczasz RCEm? Skąd bierzesz wolumen?
Jak się on ma do rzeczywistych danych podawanych przez PSE?

Czy ktoś może mi powiedzieć jak zrobić oddzielne encje ceny RCE dla każdej godziny? Chciałbym te wartości wykorzystać w Node red do wyliczania optymalnego okresu do sprzedaży energii z magazynu.
Prawdopodobnie wystarczy tylko przerobić to:

# Sensor z bieżącą ceną
  - platform: template
    sensors:
      current_rce_price:
        friendly_name: "Current RCE Price"
        value_template: >
          {% set current_time = now().strftime('%H:%M') %}
          {% set prices = state_attr('sensor.rce_prices_today', 'value') %}
          {% for price in prices %}
            {% set start_time = price.udtczas_oreb.split(' - ')[0] %}
            {% set end_time = price.udtczas_oreb.split(' - ')[1] %}
            {% if start_time <= current_time < end_time %}
              {{ price.rce_pln }}
            {% endif %}
          {% endfor %}
        unit_of_measurement: "PLN/MWh"

Dodałem sobie pomocnika i wykres RCE, który ogarnia temat realnych wartości dla prosumentów (z VAT i cena minimalna 0).
Korzystam z implementacji z posta 40, z mała poprawką na dzień jutrzejszy.
Poprawka na nowe API


  - platform: rest
    name: RCE Prices Tomorrow
    unique_id: rce_prices_tomorrow_2
    resource_template: "https://v1.api.raporty.pse.pl/api/rce-pln?$select=rce_pln,udtczas_oreb&$filter=doba eq '{{ (now() + timedelta(days=1)).strftime('%Y-%m-%d') }}'"
    method: GET
    headers:
      accept: "application/json"
    value_template: "{{ value_json.value[0]['rce_pln'] }}"
    json_attributes:
      - value
    scan_interval: 3600



      - name: "RCE Prices Today Scaled"
        unique_id: rce_prices_today_scaled
        unit_of_measurement: "PLN/MWh"
        state: >
          {% set raw = state_attr('sensor.rce_prices_today_2', 'value') %}
          {% if raw %}
            {% set cena = raw[0].rce_pln | float %}
            {% set przeliczona = (cena * 1.23) if cena >= 0 else 0 %}
            {{ przeliczona | round(2) }}
          {% else %}
            unknown
          {% endif %}
        attributes:
          value: >
            {% set raw = state_attr('sensor.rce_prices_today_2', 'value') %}
            {% if raw %}
              {% set ns = namespace(result=[]) %}
              {% for item in raw %}
                {% set cena = item.rce_pln | float %}
                {% set przeliczona = (cena * 1.23) if cena >= 0 else 0 %}
                {% set entry = {
                  'rce_pln': przeliczona | round(2),
                  'udtczas_oreb': item.udtczas_oreb
                } %}
                {% set ns.result = ns.result + [entry] %}
              {% endfor %}
              {{ ns.result }}
            {% else %}
              []
            {% endif %}


      - name: "RCE Prices Tomorrow Scaled"
        unique_id: rce_prices_tomorrow_scaled
        unit_of_measurement: "PLN/MWh"
        state: >
          {% set raw = state_attr('sensor.rce_prices_tomorrow_2', 'value') %}
          {% if raw %}
            {% set cena = raw[0].rce_pln | float %}
            {% set przeliczona = (cena * 1.23) if cena >= 0 else 0 %}
            {{ przeliczona | round(2) }}
          {% else %}
            unknown
          {% endif %}
        attributes:
          value: >
            {% set raw = state_attr('sensor.rce_prices_tomorrow_2', 'value') %}
            {% if raw %}
              {% set ns = namespace(result=[]) %}
              {% for item in raw %}
                {% set cena = item.rce_pln | float %}
                {% set przeliczona = (cena * 1.23) if cena >= 0 else 0 %}
                {% set entry = {
                  'rce_pln': przeliczona | round(2),
                  'udtczas_oreb': item.udtczas_oreb
                } %}
                {% set ns.result = ns.result + [entry] %}
              {% endfor %}
              {{ ns.result }}
            {% else %}
              []
            {% endif %}
type: custom:apexcharts-card
graph_span: 24h
span:
  start: day
update_interval: 15min
experimental:
  color_threshold: true
series:
  - entity: sensor.rce_prices_today_scaled
    attribute: value
    data_generator: |
      const startOfDay = new Date();
      startOfDay.setHours(0, 0, 0, 0);
      return entity.attributes.value.map(item => {
        const timeRange = item.udtczas_oreb.split(" - ")[0];
        const [hours, minutes] = timeRange.split(":");
        const timestamp = new Date(startOfDay);
        timestamp.setHours(hours, minutes);
        return [timestamp.getTime(), item.rce_pln];
      });
    type: line
    name: Cena energii z VAT (dziś)
    curve: smooth
    stroke_width: 4
    color_threshold:
      - value: 0
        color: red
      - value: 300
        color: orange
      - value: 500
        color: yellow
      - value: 700
        color: green
header:
  show: true
  title: Ceny energii z VAT (PLN)
  show_states: false
  colorize_states: true
now:
  show: true
  label: Teraz
  color: red

dodatkowa automatyzacja pobierajaca dane dla dzisiejszy dnia o godzinie 00:01:

  mode: single
- id: update_rce_prices_today_0001
  alias: "Wymuś aktualizację RCE Prices Today o 00:01"
  trigger:
    - platform: time
      at: "00:01:00"
  action:
    - service: homeassistant.update_entity
      target:
        entity_id: sensor.rce_prices_today_2

Na koniec na zapas zrobilem sobie wykresy cen RDN z integracji GitHub - PiotrMachowski/Home-Assistant-custom-components-TGE: This custom integration retrieves energy prices from TGE.

type: custom:apexcharts-card
graph_span: 24h
span:
  start: day
update_interval: 1h
experimental:
  color_threshold: true
series:
  - entity: sensor.tge_fixing_1_rate
    attribute: prices_today
    data_generator: |
      return entity.attributes.prices_today.map(item => {
        return [new Date(item.time).getTime(), item.price];
      });
    type: line
    name: Cena energii RDN (dziś)
    curve: stepline
    stroke_width: 4
    color_threshold:
      - value: 0
        color: red
      - value: 300
        color: orange
      - value: 500
        color: yellow
      - value: 700
        color: green
header:
  show: true
  title: Ceny energii (dziś - TGE Fixing 1)
  show_states: false
  colorize_states: true
now:
  show: true
  label: Teraz
  color: red
type: custom:apexcharts-card
graph_span: 24h
span:
  start: day
update_interval: 15min
experimental:
  color_threshold: true
series:
  - entity: sensor.tge_fixing_1_rate
    attribute: prices_tomorrow
    data_generator: |
      const startOfToday = new Date();
      startOfToday.setHours(0, 0, 0, 0);
      return entity.attributes.prices_tomorrow.map(item => {
        const dateObj = new Date(item.time);
        const hours = dateObj.getHours();
        const minutes = dateObj.getMinutes();
        const timestamp = new Date(startOfToday);
        timestamp.setHours(hours, minutes);
        return [timestamp.getTime(), item.price];
      });
    type: line
    name: Cena energii (jutro)
    curve: stepline
    stroke_width: 4
    color_threshold:
      - value: 0
        color: red
      - value: 300
        color: orange
      - value: 500
        color: yellow
      - value: 700
        color: green
header:
  show: true
  title: Ceny energii (jutro - TGE Fixing 1)
  show_states: false
  colorize_states: true
now:
  show: true
  label: Teraz
  color: red

1 polubienie

Od dnia 15.06.2025 zgodnie z informacją PSE (https://www.pse.pl/-/najwazniejsze-dane-o-pracy-systemu-elektroenergetycznego-i-rynku-bilansujacego-w-nowej-odslonie) obowiązuje nowe API. Do końca 2025 będzie dostępne stare API pod adresem: v1.api.raporty.pse.pl, a od 2026 tylko nowe.

Aby działała dotychczasowa encja REST podawana przez wielu w tym wątku, trzeba zmienić jej adres url na v1.api.raporty.pse.pl

W nowym API będzie trzeba dokonać w URL zmiany w atrybutach $select i $filter: doba → business_date a udtczas_oreb → period.

2 polubienia

Czy tak to powinno wyglądać ?
Bo u mnie coś nie chce wciągać danych.

# Pobieranie dzisiejszych cen RCE z PSE
- platform: rest
  name: RCE Prices Today
  resource_template: "https://api.raporty.pse.pl/api/rce-pln?$select=rce_pln,period&$filter=business_date eq '{{ now().strftime('%Y-%m-%d') }}'"
  method: GET
  headers:
    accept: "application/json"
  value_template: "{{ value_json.value[0]['rce_pln'] }}"
  json_attributes:
    - value
  scan_interval: 3600

# Pobieranie jutrzejszych cen RCE z PSE
- platform: rest
  name: RCE Prices Tomorrow
  resource_template: "https://api.raporty.pse.pl/api/rce-pln?$filter=business_date eq '{{ (now() + timedelta(days=1)).strftime('%Y-%m-%d') }}'"
  method: GET
  headers:
    accept: "application/json"
  value_template: "{{ value_json.value[0]['rce_pln'] }}"
  json_attributes:
    - value
  scan_interval: 3600

Do RCE to polecam:
https://github.com/Lewa-Reka/ha-rce-pse

2 polubienia

A czy ktoś może ogarniał jak poprawić ten skrypcik w PowerShell aby łatwo wyciągać dane z nowym API?

Mam tak:

  resource_template: "https://v1.api.raporty.pse.pl/api/rce-pln?$filter=business_date eq '{{ (now() + timedelta(days=1)).strftime('%Y-%m-%d') }}'"

  resource_template: "https://v1.api.raporty.pse.pl/api/rce-pln?$filter=business_date eq '{{ now().strftime('%Y-%m-%d') }}'"