pzuro.app ghid tehnic

Prețul PZU în Home Assistant

Pentru cei care vor mai mult decât un grafic — automatizări reale pe baza prețului

Datele de pe pzuro.app sunt publice și pot fi citite direct de Home Assistant, fără cont, fără cheie API, gratuit. Sunt două moduri de integrare, după cât de precis vrei să fie:

simplu
Statisticile zilei (medie, minim, maxim)

Bun pentru un panou de control sau o notificare generală — "azi prețul mediu e X". Citește direct fișierul data/prices.json, fără nimic construit special pentru asta.

# configuration.yaml
rest:
  - resource: https://pzuro.ro/data/prices.json
    scan_interval: 1800
    sensor:
      - name: "PZU pret mediu azi"
        value_template: "{{ value_json.today.avg_ron_kwh }}"
        unit_of_measurement: "lei/kWh"
      - name: "PZU pret minim azi"
        value_template: "{{ value_json.today.min_ron_kwh }}"
        unit_of_measurement: "lei/kWh"

Cu astea două, ai deja niște senzori pe care îi poți pune pe un dashboard sau folosi într-o notificare zilnică. Un singur resource: alimentează ambii senzori — nu se face câte un request separat pentru fiecare.

precis
Prețul exact al intervalului curent

Pentru o automatizare reală — "pornește boilerul acum dacă prețul curent e sub un prag" — ai nevoie de prețul exact al intervalului de 15 minute în care te afli, nu media zilei. Asta înseamnă identificarea intervalului corect din cele 96 ale zilei, ținând cont și de faptul că etichetele "azi"/"mâine" din fișierul brut depind de ora la care a rulat ultima actualizare, nu de data calendaristică reală.

În loc să rescrii logica asta în Jinja2 (posibil, dar greu de întreținut), am pus-o direct într-un mic API dedicat, care răspunde mereu cu un singur număr corect:

# configuration.yaml
rest:
  - resource: https://pzuro.ro/api/now
    scan_interval: 300
    sensor:
      - name: "PZU pret acum"
        value_template: "{{ value_json.price_ron_kwh }}"
        unit_of_measurement: "lei/kWh"
        json_attributes:
          - is_negative
          - interval_start
          - interval_end

Cu senzorul ăsta, o automatizare devine simplă:

# automations.yaml
- alias: "Pornește boilerul cand pretul e mic"
  trigger:
    - platform: numeric_state
      entity_id: sensor.pzu_pret_acum
      below: 0.3
  action:
    - service: switch.turn_on
      entity_id: switch.boiler
De reținut: dacă API-ul nu are date valabile pentru azi (de exemplu, un outage prelungit la sursa de date), răspunde cu eroare HTTP 503 în loc să trimită date vechi ca și cum ar fi curente — senzorul din Home Assistant va deveni unavailable în acel caz, nu va arăta tăcut un preț greșit. Merită un trigger separat pe starea senzorului dacă automatizarea ta controlează ceva important.

Limită de utilizare

Nu e nevoie de scan_interval mai agresiv decât 5 minute (300 secunde) — prețul se schimbă o dată la 15 minute, deci verificările mai frecvente nu aduc date noi, doar consumă inutil.

Vezi și restul datelor

Graficul complet, calculatorul de factură și istoricul sunt pe pagina principală.

Deschide pzuro.app →