https://github.com/cnecrea/erovinieta
Integrare pentru verificarea valabilității rovinietei prin platforma Erovinieta. Permite monitorizarea rapidă și afișarea statusului rovinietei direct în Home Assistant.
https://github.com/cnecrea/erovinieta
erovinieta home-assistant monitorizare romania rovinieta
Last synced: 4 months ago
JSON representation
Integrare pentru verificarea valabilității rovinietei prin platforma Erovinieta. Permite monitorizarea rapidă și afișarea statusului rovinietei direct în Home Assistant.
- Host: GitHub
- URL: https://github.com/cnecrea/erovinieta
- Owner: cnecrea
- License: other
- Created: 2025-01-05T20:12:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-15T13:58:06.000Z (about 1 year ago)
- Last Synced: 2025-05-15T15:23:36.865Z (about 1 year ago)
- Topics: erovinieta, home-assistant, monitorizare, romania, rovinieta
- Language: Python
- Homepage:
- Size: 126 KB
- Stars: 26
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# CNAIR eRovinieta — Integrare Home Assistant
[](https://www.home-assistant.io/)
[](https://github.com/hacs/integration)
[](https://github.com/cnecrea/erovinieta/releases)
[](https://github.com/cnecrea/erovinieta/stargazers)
[](https://github.com/cnecrea/erovinieta)
[](https://github.com/cnecrea/erovinieta/releases/latest)
Această integrare pentru Home Assistant oferă **monitorizare completă** pentru utilizatorii eRovinieta, permițându-le să verifice starea rovinietei, să monitorizeze trecerile de pod, tranzacțiile realizate și alte informații importante, direct din aplicația Home Assistant. 🚀
---
## 🌟 Caracteristici
### Senzor `Date utilizator`
- **🔍 Informații detaliate despre utilizator**:
- Afișează detalii complete ale utilizatorului din contul CNAIR eRovinieta.
- **📊 Atribute disponibile**:
- **Nume complet**: Numele și prenumele utilizatorului.
- **CNP**: CNP-ul utilizatorului.
- **Telefon de contact**: Telefonul de contact.
- **Persoană fizică**: Da/Nu.
- **Email utilizator**: Emailul asociat contului.
- **Acceptă corespondența**: Dacă utilizatorul acceptă corespondența din partea CNAIR.
- **Adresă**: Adresa completă a utilizatorului.
- **Localitate și Județ**: Locația detaliată a utilizatorului.
- **Țară**: Țara utilizatorului.
### Senzor `Rovinietă activă ({nr_înmatriculare})`
- **🔍 Verificare stare rovinietă**:
- Verifică dacă vehiculul deține o rovinietă valabilă și afișează detalii despre aceasta.
- **🔑 Stare principală**:
- **Da**: Vehiculul are rovinietă activă (data de expirare este în viitor).
- **Nu**: Vehiculul nu are rovinietă sau aceasta a expirat.
- **📊 Atribute disponibile**:
- **Număr de înmatriculare**: Numărul de înmatriculare al vehiculului.
- **VIN**: Numărul de serie (VIN) al vehiculului.
- **Seria certificatului**: Seria certificatului vehiculului.
- **Țara**: Țara vehiculului.
- **Categorie vignietă**: Categoria vignietei asociate vehiculului.
- **Data început vignietă**: Data începerii valabilității vignietei.
- **Data sfârșit vignietă**: Data expirării vignietei.
- **Expiră peste (zile)**: Numărul de zile rămase până la expirare.
### Senzor `Raport tranzacții`
- **📊 Monitorizare tranzacții**:
- Afișează un raport detaliat al tranzacțiilor realizate în perioada configurată.
- **🔑 Stare principală**: Numărul total al tranzacțiilor.
- **📊 Atribute disponibile**:
- **Perioadă analizată**: Perioada de timp configurată (ex: „Ultimii 2 ani").
- **Număr facturi**: Numărul total al facturilor.
- **Suma totală plătită**: Suma totală plătită pentru tranzacțiile efectuate (RON).
### Senzor `Restanțe treceri pod ({nr_înmatriculare})`
- **📊 Monitorizare restanțe per vehicul**:
- Indică dacă există treceri de pod neplătite din ultimele 24 de ore **pentru vehiculul respectiv**.
- Fiecare vehicul este monitorizat independent — o trecere neplătită a unui vehicul nu afectează statusul celorlalte vehicule din cont.
- **🔑 Stare principală**:
- **Da**: Există cel puțin o trecere de pod neplătită pentru acest vehicul.
- **Nu**: Nu există treceri de pod neplătite.
- **📊 Atribute disponibile**:
- **Număr treceri neplătite**: Numărul total al trecerilor neplătite.
- **Număr de înmatriculare**, **VIN**, **Seria certificatului**.
- **Detalii per trecere**: Categorie, timp detectare, direcție, bandă.
### Senzor `Treceri pod ({nr_înmatriculare})`
- **📊 Istoric treceri de pod per vehicul**:
- Afișează istoricul complet al trecerilor de pod pentru vehiculul respectiv.
- **🔑 Stare principală**: Numărul total al trecerilor de pod.
- **📊 Atribute disponibile**:
- **Număr total treceri**: Totalul trecerilor înregistrate.
- **Număr de înmatriculare**, **VIN**, **Seria certificatului**.
- **Detalii per trecere**: Categorie, timp detectare, direcție, bandă, valoare (RON), partener, metodă plată, valabilitate.
### Senzor `Sold peaje neexpirate ({nr_înmatriculare})`
- **📊 Monitorizare sold peaje**:
- Afișează valoarea totală a soldului pentru peajele neexpirate ale vehiculului.
- **🔑 Stare principală**: Valoarea soldului peajelor neexpirate.
- **📊 Atribute disponibile**:
- **Sold peaje neexpirate**: Valoarea totală a soldului.
### Senzor `Licență`
- **🔐 Sistem de licență** — fără licență validă se afișează doar senzorul „Licență necesară"
- Integrarea utilizează un sistem de licențiere server-side care validează accesul la toți senzorii.
- Cu licență validă: toți senzorii funcționează normal.
- Fără licență: numai senzorul „Licență necesară" este disponibil.
---
## ⚙️ Configurare
### 🛠️ Interfața UI:
1. Adaugă integrarea din meniul **Setări > Dispozitive și Servicii > Adaugă Integrare**.
2. Caută **CNAIR eRovinieta** și introdu datele contului:
- **Nume utilizator**: username-ul contului tău eRovinieta.
- **Parolă**: parola asociată contului tău.
- **Interval de actualizare**: Intervalul de actualizare în secunde (implicit: 3600 secunde, minim: 300, maxim: 86400).
- **Istoric tranzacții**: Selectează câți ani de tranzacții dorești să aduci (1–10, implicit: 2 ani).
3. Apasă **Salvează** pentru a finaliza configurarea.
4. **Licență**: Integrarea necesită o licență validă. Poți achiziționa una de la [hubinteligent.org/licenta/erovinieta](https://hubinteligent.org/licenta/erovinieta). Licența se introduce din **OptionsFlow** (Setări > Dispozitive și Servicii > CNAIR eRovinieta > Configurare).
### 🔧 Modificare opțiuni:
După instalare, poți modifica intervalul de actualizare și istoricul de tranzacții din **Setări > Dispozitive și Servicii > CNAIR eRovinieta > Configurare**.
### Observații:
- Asigură-te că ai introdus corect datele de autentificare.
- Setarea „Istoric tranzacții" afectează doar senzorul **Raport tranzacții**. Trecerile de pod sunt gestionate separat de API-ul CNAIR.
---
## ✅ Cerințe
- **Cont CNAIR eRovinieta** — cu nume de utilizator și parolă
- **Home Assistant** — versiunea 2025.11 sau mai nouă
- **Licență** validă — [hubinteligent.org/licenta/erovinieta](https://hubinteligent.org/licenta/erovinieta)
---
## 🚀 Instalare
### 💡 Instalare prin HACS:
1. Adaugă [depozitul personalizat](https://github.com/cnecrea/erovinieta) în HACS. 🛠️
2. Caută integrarea **CNAIR eRovinieta** și instaleaz-o. ✅
3. Repornește Home Assistant și configurează integrarea. 🔄
### ✋ Instalare manuală:
1. Clonează sau descarcă [depozitul GitHub](https://github.com/cnecrea/erovinieta). 📂
2. Copiază folderul `custom_components/erovinieta` în directorul `custom_components` al Home Assistant. 🗂️
3. Repornește Home Assistant și configurează integrarea. 🔧
---
## ✨ Exemple de utilizare
### 🔔 Automatizare pentru expirarea rovinietei:
Creează o automatizare pentru a primi notificări când rovinieta expiră în 10 zile.
```yaml
alias: Notificare expirare rovinietă
description: Notificare atunci când rovinieta expiră în 10 zile
mode: single
triggers:
- entity_id: sensor.erovinieta_vehicul_[nr_inmatriculare]
attribute: Expiră peste (zile)
below: 10
trigger: numeric_state
conditions: []
actions:
- data:
title: Rovinieta expiră curând!
message: >-
Rovinieta vehiculului {{ state_attr('sensor.erovinieta_vehicul_[nr_inmatriculare]',
'Număr de înmatriculare') }} va expira în {{
state_attr('sensor.erovinieta_vehicul_[nr_inmatriculare]',
'Expiră peste (zile)') }} zile!
action: notify.notify
```
### 🔔 Automatizare pentru rovinietă expirată:
Creează o automatizare care te avertizează imediat ce rovinieta unui vehicul devine inactivă.
```yaml
alias: Notificare rovinietă expirată
description: Notificare atunci când rovinieta unui vehicul devine inactivă
mode: single
triggers:
- entity_id: sensor.erovinieta_vehicul_[nr_inmatriculare]
to: "Nu"
trigger: state
conditions: []
actions:
- data:
title: Rovinietă expirată!
message: >-
Vehiculul {{ state_attr('sensor.erovinieta_vehicul_[nr_inmatriculare]',
'Număr de înmatriculare') }} nu mai are rovinietă activă!
action: notify.notify
```
### 🔔 Automatizare pentru restanțe la trecerile de pod:
Creează o automatizare pentru a primi notificări atunci când există treceri de pod neplătite.
```yaml
alias: Notificare restanțe treceri pod
description: Notificare atunci când există treceri de pod neplătite
mode: single
triggers:
- entity_id: sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]
to: "Da"
trigger: state
conditions: []
actions:
- data:
title: Restanțe la treceri pod!
message: >-
Vehiculul {{ state_attr('sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]',
'Număr de înmatriculare') }} are {{
state_attr('sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]',
'Număr treceri neplătite') }} treceri de pod neplătite!
action: notify.notify
```
### 🔍 Card pentru Dashboard:
Afișează datele despre utilizator, vehicul și tranzacții pe interfața Home Assistant.
```yaml
type: entities
title: Monitorizare eRovinieta
entities:
- entity: sensor.erovinieta_date_utilizator_[username]
name: Date Utilizator
- entity: sensor.erovinieta_vehicul_[nr_inmatriculare]
name: Rovinietă activă
- entity: sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]
name: Restanțe treceri pod
- entity: sensor.erovinieta_treceri_pod_[nr_inmatriculare]
name: Treceri pod
- entity: sensor.erovinieta_sold_peaje_neexpirate_[nr_inmatriculare]
name: Sold peaje neexpirate
- entity: sensor.erovinieta_raport_tranzactii_[username]
name: Raport tranzacții
- entity: sensor.erovinieta_[username]_licenta
name: Licență
```
---
## 📁 Structura fișierelor
```
custom_components/erovinieta/
├── __init__.py # Setup/unload integrare (runtime_data, licență)
├── api.py # eRovinietzApiClient — autentificare, GET/POST
├── config_flow.py # ConfigFlow + OptionsFlow (autentificare, licență)
├── const.py # Constante și URL-uri API
├── coordinator.py # DataUpdateCoordinator — fetch date
├── diagnostics.py # Diagnostics pentru troubleshooting
├── helpers.py # Funcții utilitare
├── license.py # Manager licență (server-side v3.3, Ed25519, HMAC-SHA256)
├── manifest.json # Metadata integrare
├── sensor.py # Clase senzori (utilizator, rovinietă, tranzacții, etc.)
├── strings.json # Traduceri implicite
└── 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**! 🫶
Nu costă nimic, iar contribuția ta ajută la dezvoltarea viitoare a proiectului. 🙌
[](https://buymeacoffee.com/cnecrea)
Mulțumesc pentru sprijin și apreciez fiecare gest de susținere! 🤗
---
## 🧑💻 Contribuții
Contribuțiile sunt binevenite! Simte-te liber să trimiți un pull request sau să raportezi probleme [aici](https://github.com/cnecrea/erovinieta/issues).