Skip to content

cnecrea/hidroelectrica

Repository files navigation

Hidroelectrica România — Integrare Home Assistant

Home Assistant HACS Custom GitHub Release GitHub Stars Instalări Ultima versiune

Integrare Home Assistant pentru monitorizarea completă a conturilor Hidroelectrica România. Suport complet pentru conturi de consum și conturi de prosumator, cu detectare automată și senzori dedicați. Datele sunt obținute prin platforma SEW (Smart Energy Water) și sunt actualizate periodic.


Caracteristici

Senzori de bază (prezenți pentru orice cont)

Date contract

  • Afișează informații detaliate despre utilizator și cont.
  • Atribute: nume, prenume, telefon, număr cont utilitate (UAN), cod loc de consum (NLC), tip client, adresă, localitate, serie contor activă.

Sold factură

  • Starea curentă: Da (sold de plată), Nu (achitat integral), Credit (credit prosumator).
  • Atribute: suma datorată sau creditul disponibil, data scadenței, detalii factură curentă.

Factură restantă

  • Indică Da sau Nu dacă există facturi neplătite după data scadenței.
  • Atribute: suma restantă, numărul de zile de întârziere.

Index energie activă

  • Indexul curent al contorului (registrul 1.8.0 — energie activă consumată).
  • Sursă: meter_read_historyprevious_meter_readmeter_counter_series (fallback în cascadă).
  • Unitate de măsură: kWh.

Citire permisă (doar la non-prosumator)

  • Afișează dacă fereastra de autocitire este activă și datele de început/sfârșit.
  • La prosumator, acest senzor nu se creează (distribuitorul citește contorul automat).

Senzori de arhivă

Arhivă consum (anul cel mai recent)

  • Consumul lunar din datele de utilizare (GetUsageGeneration).
  • Atribute: consum pe fiecare lună disponibilă, total anual.

Arhivă index (anul cel mai recent)

  • Istoricul citirilor de index din GetMeterReadHistory.
  • La prosumator, filtrează automat doar registrul 1.8.0 (consum), excluzând producția.
  • Atribute: fiecare citire cu data, indexul, tipul citirii (autocitire/distribuitor/estimare).

Arhivă plăți (anul cel mai recent)

  • Plățile efective realizate de utilizator către companie (canale de tip Incasari-*).
  • Atribute: fiecare plată cu luna, canalul de plată, suma; total plăți, sumă totală.

Senzori exclusivi prosumator

Acești senzori se creează automat când integrarea detectează registrul 1.8.0_P în istoricul de citiri.

Index energie produsă

  • Indexul curent al producției (registrul 1.8.0_P — energie activă produsă).
  • Unitate de măsură: kWh.

Arhivă index energie produsă (anul cel mai recent)

  • Istoricul citirilor de index producție (doar registrul 1.8.0_P).
  • Atribute: fiecare citire cu data, indexul, tipul citirii.

Arhivă plăți prosumator (anul cel mai recent)

  • Compensațiile ANRE primite (canale de tip Comp ANRE-*).
  • Atribute: fiecare compensație cu luna, canalul (furnizor/distribuitor), suma; total compensații, sumă totală.

Buton

Trimite index (doar la non-prosumator)

  • Permite trimiterea autocitrii când fereastra de citire este activă.
  • La prosumator, butonul nu se creează (distribuitorul citește contorul automat).

Licență

Sistem de licență — fără licență validă se afișează doar senzorul „Licență necesară".


Arhitectură tehnică

Surse de date API (platforma SEW)

Endpoint Date furnizate Frecvență
GetMultiMeter Detalii contor, tip client La fiecare refresh
GetBill Sold curent, scadență La fiecare refresh
GetWindowDatesENC / GetWindowDates Fereastră autocitire La fiecare refresh
GetPods POD, instalație La fiecare refresh
GetPreviousMeterRead Index curent (consum + producție) La fiecare refresh
GetUsageGeneration Consum lunar istoric La fiecare al 4-lea refresh
GetBillingHistoryList Istoric plăți La fiecare al 4-lea refresh
GetMeterCounterSeries Serii contor La fiecare al 4-lea refresh
GetMeterReadHistory Istoric citiri index La fiecare al 4-lea refresh

Strategia de refresh

Coordonatorul folosește un mecanism de refresh în două faze pentru a reduce încărcarea API:

  • Faza 1 (la fiecare refresh): date ușoare — contor, factură, fereastră citire, POD, index curent.
  • Faza 2 (la fiecare al 4-lea refresh): date grele — consum istoric, plăți, serii contor, citiri index.

Primul refresh include întotdeauna ambele faze.

Detecție prosumator

Detecția se face automat pe baza prezenței registrului 1.8.0_P în GetMeterReadHistory. Nu depinde de flag-uri precum IsAMI.

Gestiunea sesiunii

  • Token partajat între toate conturile unui utilizator.
  • Reautentificare automată la expirarea sesiunii (401).
  • Token injectat din config_flow la configurare sau din config_entry.data la restart.

Configurare

Interfața UI

  1. SetăriDispozitive și ServiciiAdaugă Integrare → caută Hidroelectrica România.
  2. Introdu datele contului Hidroelectrica (username + parolă).
  3. Selectează conturile (UAN-urile) pe care vrei să le monitorizezi.
  4. Specifică intervalul de actualizare (implicit: 3600 secunde, minim: 300, maxim: 86400).

Configurare licență

Integrarea necesită o licență validă. După configurarea contului, mergi la SetăriDispozitive și ServiciiHidroelectrica RomâniaConfigurare și introdu cheia de licență în secțiunea Licență.

Opțiuni configurabile

  • Interval de actualizare (modificabil din opțiunile integrării fără a reconfigura).
  • Licență (modificabilă din opțiunile integrării fără a reconfigura).

Cerințe

  • Home Assistant versiunea 2025.11 sau mai recentă.
  • HACS instalat (opțional, dar recomandat).
  • Un cont activ pe platforma Hidroelectrica România (aplicația iHidro sau contul online).
  • Licență validă — hubinteligent.org/donate?ref=hidroelectrica

Instalare

Prin HACS

  1. Adaugă depozitul personalizat în HACS.

Deschide instanța ta Home Assistant și accesează un depozit din cadrul magazinului comunitar Home Assistant (Home Assistant Community Store).

  1. Caută integrarea Hidroelectrica România și instaleaz-o.
  2. Repornește Home Assistant și configurează integrarea.

Instalare manuală

  1. Descarcă sau clonează depozitul GitHub.
  2. Copiază folderul custom_components/hidroelectrica în directorul custom_components al Home Assistant.
  3. Repornește Home Assistant și configurează integrarea.

Exemple de utilizare

Automatizare pentru factură restantă

alias: Notificare Factură Restantă
description: Notificare dacă există facturi restante
trigger:
  - platform: state
    entity_id: sensor.hidroelectrica_XXXXXXXX_factura_restanta
    to: "Da"
action:
  - service: notify.mobile_app_telefon
    data:
      title: "Factură Restantă Detectată"
      message: >-
        Ai o factură restantă Hidroelectrica.
        Verifică detaliile în Home Assistant.
mode: single

Card pentru Dashboard (cont normal)

type: entities
title: Hidroelectrica România
entities:
  - entity: sensor.hidroelectrica_XXXXXXXX_date_contract
    name: Date Contract
  - entity: sensor.hidroelectrica_XXXXXXXX_sold_factura
    name: Sold Factură
  - entity: sensor.hidroelectrica_XXXXXXXX_factura_restanta
    name: Factură Restantă
  - entity: sensor.hidroelectrica_XXXXXXXX_index_energie
    name: Index Energie
  - entity: sensor.hidroelectrica_XXXXXXXX_citire_permisa
    name: Citire Permisă

Card pentru Dashboard (prosumator)

type: entities
title: Hidroelectrica România (Prosumator)
entities:
  - entity: sensor.hidroelectrica_XXXXXXXX_date_contract
    name: Date Contract
  - entity: sensor.hidroelectrica_XXXXXXXX_sold_factura
    name: Sold Factură
  - entity: sensor.hidroelectrica_XXXXXXXX_index_energie
    name: Index Consum
  - entity: sensor.hidroelectrica_XXXXXXXX_index_energie_produsa
    name: Index Producție
  - entity: sensor.hidroelectrica_XXXXXXXX_arhiva_plati_2026
    name: Plăți 2026
  - entity: sensor.hidroelectrica_XXXXXXXX_arhiva_plati_prosumator_2026
    name: Compensații ANRE 2026

Structura fișierelor

custom_components/hidroelectrica/
├── __init__.py          # Setup/unload integrare (runtime_data, licență)
├── api.py               # HidroelectricaApiClient — autentificare, GET
├── button.py            # Butonul Trimite index (doar non-prosumator)
├── config_flow.py       # ConfigFlow + OptionsFlow (autentificare, licență)
├── const.py             # Constante, URL-uri API
├── coordinator.py       # DataUpdateCoordinator — refresh în două faze
├── helpers.py           # Funcții utilitare
├── license.py           # Manager licență (server-side, Ed25519, HMAC-SHA256)
├── manifest.json        # Metadata integrare
├── sensor.py            # Senzori (date contract, sold, index, etc.)
├── strings.json         # Traduceri implicite (engleză)
└── translations/
    ├── en.json          # Traduceri engleză
    └── ro.json          # Traduceri române

Susține dezvoltatorul

Dacă ți-a plăcut această integrare și vrei să sprijini munca depusă, invită-mă la o cafea!

Buy Me A Coffee


Contribuții

Contribuțiile sunt binevenite! Trimite un pull request sau raportează probleme aici.


Suport

Dacă îți place această integrare, oferă-i un ⭐ pe GitHub!

About

Integrare pentru accesarea informațiilor contului Hidroelectrica. Preia și monitorizează datele tale de utilități Hidroelectrica direct în Home Assistant.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages