Skip to content

3.1.0

Choose a tag to compare

@github-actions github-actions released this 19 Mar 19:09

Hidroelectrica România v3.1.0

⚠️ ATENȚIE — CITEȘTE ÎNAINTE DE A ACTUALIZA — IMPORTANT

Această versiune a integrării necesită reconfigurare completă.

Pentru a evita erori sau comportamente neașteptate, este necesar să reinstalezi integrarea urmând pașii de mai jos:

  1. Șterge integrarea din [Home Assistant].
  2. Repornește Home Assistant.
  3. Adaugă din nou integrarea.
  4. Reconfigurează contul / conturile tale.

Această procedură este necesară deoarece noua versiune introduce modificări în modul de configurare și gestionare a datelor.


Suport complet pentru prosumatori

Aceasta este o rescriere majoră a integrării, cu suport nativ pentru conturile de prosumator și o curățare completă a codului.


Funcționalități noi

Detectare automată prosumator

  • Integrarea detectează automat conturile de prosumator pe baza prezenței registrului 1.8.0_P în istoricul de citiri.
  • Nu necesită configurare manuală — totul se întâmplă la inițializare.

Senzor: Index energie produsă (prosumator)

  • Afișează indexul curent al producției (registrul 1.8.0_P) în kWh.
  • Folosește aceeași logică de fallback ca indexul de consum: meter_read_historyprevious_meter_read.

Senzor: Arhivă index energie produsă (prosumator)

  • Istoricul citirilor de producție, filtrat exclusiv pe registrul 1.8.0_P.
  • Afișează: data, indexul, tipul citirii (autocitire/distribuitor/estimare).

Senzor: Arhivă plăți prosumator (prosumator)

  • Senzor dedicat compensațiilor ANRE primite (canale Comp ANRE-*).
  • Separat complet de plățile normale ale utilizatorului.

Senzor: Sold factură — starea „Credit"

  • Sold negativ = credit prosumator (compania datorează utilizatorului).
  • Afișare: -X,XX lei (credit prosumator).

Îmbunătățiri

Separare completă consum vs. producție

  • Funcția _extract_meter_read_years primește parametrul register_filter pentru a filtra pe 1.8.0 (consum) sau 1.8.0_P (producție).
  • La prosumator, ArhivaIndexSensor filtrează automat doar consumul (1.8.0), prevenind contaminarea cu citiri de producție.

Separare completă plăți normale vs. compensații ANRE

  • Funcția _extract_payment_years primește parametrul channel_filter ("normal" sau "comp").
  • ArhivaPlatiSensor afișează doar plățile utilizatorului către companie (Incasari-*).
  • ArhivaPlatiProsumatorSensor afișează doar compensațiile ANRE (Comp ANRE-*).
  • La un cont non-prosumator, doar ArhivaPlatiSensor se creează.

Excludere automată senzori irelevanti la prosumator

  • CitirePermisaSensor — nu se creează la prosumator (distribuitorul citește contorul automat).
  • TrimiteIndexButton — nu se creează la prosumator (autocitirea nu este aplicabilă).
  • Deciziile sunt logate explicit cu motivul excluderii.

Optimizare refresh API

  • Mecanism de refresh în două faze: date ușoare la fiecare ciclu, date grele la fiecare al 4-lea ciclu.
  • Primul refresh include întotdeauna ambele faze.
  • Reduce semnificativ numărul de cereri API.

Optimizare api.py

  • resp.text() se citește doar pe erori HTTP (nu și pe 200), reducând overhead-ul.

Curățare cod

Eliminare logging excesiv

  • coordinator.py: eliminate ~80 de linii de logging RAW (JSON complet, chei detaliate, structuri debug).
  • sensor.py: curățate funcțiile helper (_get_meter_read_list, _get_active_counter_series, _get_latest_meter_read, IndexEnergieSensor.native_value, _get_meter_counter_series_fallback, _parse_date_dmy).
  • Înlocuite cu mesaje concise și informative.
  • Eliminat import json as _json din coordinator.py (nu mai este necesar).

Simplificare _parse_date_dmy

  • Eliminat fallback redundant care reîncerca același format de parsare.

Migrare

  • Config entry v3 — migrare automată de la versiunile anterioare.
  • La migrare, selected_accounts se setează ca listă goală — utilizatorul va trebui să reconfigureze selecția conturilor.

Fișiere modificate

Fișier Modificări
sensor.py Senzori prosumator noi, register_filter, channel_filter, separare plăți/compensații, curățare logging
button.py Detecție prosumator, excludere buton la prosumator
coordinator.py Curățare logging masiv, mesaje concise
api.py Optimizare resp.text() doar pe erori
const.py Fără modificări (stabil)
helpers.py Fără modificări (stabil)
config_flow.py Fără modificări (stabil)
__init__.py Migrare v3, suport CONF_ACCOUNT_METADATA
manifest.json Versiune actualizată: 3.0.0

Teste

  • Script de test test_both_accounts.py validează ambele tipuri de conturi.
  • Verificări: index consum, detecție prosumator, index producție, sold factură, separare registre 1.8.0/1.8.0_P, separare plăți normale/compensații ANRE.
  • Testat cu date reale: cont non-prosumator + cont prosumator.
  • Rezultat: toate testele trec cu succes.

📈 Integrarea în cifre

⭐ Stars 📥 Instalări 🔄 Clone (14z)
80 702 319

Dacă integrarea Hidroelectrica România îți este utilă, lasă un ⭐ pe repository — îi ajută și pe alți utilizatori să o descopere.


💛 Dezvoltarea consumă timp și resurse. Dacă vrei să susții proiectul:
Buy Me a Coffee · 💰 GitHub Sponsors