pzuro.app ghid tehnic

Prețul PZU în Home Assistant

Senzori și automatizări pe baza prețului PZU

Datele pzuro.app sunt publice și pot fi citite direct din Home Assistant, fără cont și fără cheie API. Există două variante de integrare:

simplu
Statisticile zilei (medie, minim, maxim)

Potrivit pentru un dashboard sau o notificare zilnică. Citește direct fișierul data/prices.json.

# 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"

Un singur resource: alimentează ambii senzori, deci se face o singură cerere.

precis
Prețul exact al intervalului curent

Pentru automatizări de tipul „pornește boilerul dacă prețul curent e sub un prag” ai nevoie de prețul intervalului de 15 minute în curs, nu de media zilei. Identificarea intervalului corect din prices.json nu e trivială, pentru că etichetele „azi”/„mâine” depind de momentul ultimei actualizări.

Endpoint-ul /api/now face această selecție și returnează direct prețul intervalului curent:

# 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

Exemplu de automatizare:

# 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ă nu există date valabile pentru ziua curentă (de exemplu, la o întrerupere prelungită a sursei), API-ul răspunde cu HTTP 503 în loc să returneze un preț vechi. Senzorul devine unavailable. Dacă automatizarea controlează echipamente importante, adaugă un trigger separat pentru această stare.

Pentru prosumatori: semnal "preț negativ acum"

Răspunsul /api/now include câmpul boolean is_negative. Îl poți folosi pentru a opri exportul în rețea sau pentru a direcționa surplusul către baterie ori consumatori din casă atunci când prețul devine negativ.

# configuration.yaml
binary_sensor:
  - platform: template
    sensors:
      pzu_pret_negativ:
        friendly_name: "PZU preț negativ acum"
        value_template: "{{ is_state_attr('sensor.pzu_pret_acum', 'is_negative', true) }}"
# automations.yaml
- alias: "Opreste exportul cand pretul e negativ"
  trigger:
    - platform: state
      entity_id: binary_sensor.pzu_pret_negativ
      to: "on"
  action:
    - service: switch.turn_off
      entity_id: switch.export_invertor

Senzorul binar depinde de sensor.pzu_pret_acum, definit mai sus. Ai nevoie de ambele.

Limită de utilizare

Te rugăm să nu folosești un scan_interval mai mic de 300 de secunde. Prețul se schimbă o dată la 15 minute, așa că interogările mai dese nu aduc date noi.

Graficul complet și calculatorul

Prețurile pe intervale, calculatorul de factură și istoricul pe 30 de zile sunt pe pagina principală.

Deschide pzuro.app →