{"id":24789916,"url":"https://github.com/cnecrea/erovinieta","last_synced_at":"2026-04-02T23:45:06.330Z","repository":{"id":271146642,"uuid":"912524945","full_name":"cnecrea/erovinieta","owner":"cnecrea","description":"Integrare pentru verificarea valabilității rovinietei prin platforma Erovinieta. Permite monitorizarea rapidă și afișarea statusului rovinietei direct în Home Assistant.","archived":false,"fork":false,"pushed_at":"2025-05-15T13:58:06.000Z","size":129,"stargazers_count":26,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-15T15:23:36.865Z","etag":null,"topics":["erovinieta","home-assistant","monitorizare","romania","rovinieta"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cnecrea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"buy_me_a_coffee":"cnecrea"}},"created_at":"2025-01-05T20:12:33.000Z","updated_at":"2025-05-15T13:57:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"7f5b5ac4-b926-4fb1-a9eb-0a1d7f126db8","html_url":"https://github.com/cnecrea/erovinieta","commit_stats":null,"previous_names":["cnecrea/erovinieta"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cnecrea/erovinieta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnecrea%2Ferovinieta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnecrea%2Ferovinieta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnecrea%2Ferovinieta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnecrea%2Ferovinieta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cnecrea","download_url":"https://codeload.github.com/cnecrea/erovinieta/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnecrea%2Ferovinieta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011599,"owners_count":26084964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erovinieta","home-assistant","monitorizare","romania","rovinieta"],"created_at":"2025-01-29T18:13:57.857Z","updated_at":"2026-04-02T23:45:06.315Z","avatar_url":"https://github.com/cnecrea.png","language":"Python","funding_links":["https://buymeacoffee.com/cnecrea"],"categories":[],"sub_categories":[],"readme":"# CNAIR eRovinieta — Integrare Home Assistant\n\n[![Home Assistant](https://img.shields.io/badge/Home%20Assistant-2025.11%2B-41BDF5?logo=homeassistant\u0026logoColor=white)](https://www.home-assistant.io/)\n[![HACS Custom](https://img.shields.io/badge/HACS-Custom-41BDF5.svg)](https://github.com/hacs/integration)\n[![GitHub Release](https://img.shields.io/github/v/release/cnecrea/erovinieta)](https://github.com/cnecrea/erovinieta/releases)\n[![GitHub Stars](https://img.shields.io/github/stars/cnecrea/erovinieta?style=flat\u0026logo=github)](https://github.com/cnecrea/erovinieta/stargazers)\n[![Instalări](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/cnecrea/erovinieta/main/statistici/shields/descarcari.json)](https://github.com/cnecrea/erovinieta)\n[![Ultima versiune](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/cnecrea/erovinieta/main/statistici/shields/ultima_release.json)](https://github.com/cnecrea/erovinieta/releases/latest)\n\nAceastă 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. 🚀\n\n---\n\n## 🌟 Caracteristici\n\n### Senzor `Date utilizator`\n  - **🔍 Informații detaliate despre utilizator**:\n      - Afișează detalii complete ale utilizatorului din contul CNAIR eRovinieta.\n  - **📊 Atribute disponibile**:\n      - **Nume complet**: Numele și prenumele utilizatorului.\n      - **CNP**: CNP-ul utilizatorului.\n      - **Telefon de contact**: Telefonul de contact.\n      - **Persoană fizică**: Da/Nu.\n      - **Email utilizator**: Emailul asociat contului.\n      - **Acceptă corespondența**: Dacă utilizatorul acceptă corespondența din partea CNAIR.\n      - **Adresă**: Adresa completă a utilizatorului.\n      - **Localitate și Județ**: Locația detaliată a utilizatorului.\n      - **Țară**: Țara utilizatorului.\n\n\n### Senzor `Rovinietă activă ({nr_înmatriculare})`\n  - **🔍 Verificare stare rovinietă**:\n      - Verifică dacă vehiculul deține o rovinietă valabilă și afișează detalii despre aceasta.\n  - **🔑 Stare principală**:\n      - **Da**: Vehiculul are rovinietă activă (data de expirare este în viitor).\n      - **Nu**: Vehiculul nu are rovinietă sau aceasta a expirat.\n  - **📊 Atribute disponibile**:\n      - **Număr de înmatriculare**: Numărul de înmatriculare al vehiculului.\n      - **VIN**: Numărul de serie (VIN) al vehiculului.\n      - **Seria certificatului**: Seria certificatului vehiculului.\n      - **Țara**: Țara vehiculului.\n      - **Categorie vignietă**: Categoria vignietei asociate vehiculului.\n      - **Data început vignietă**: Data începerii valabilității vignietei.\n      - **Data sfârșit vignietă**: Data expirării vignietei.\n      - **Expiră peste (zile)**: Numărul de zile rămase până la expirare.\n\n\n### Senzor `Raport tranzacții`\n  - **📊 Monitorizare tranzacții**:\n      - Afișează un raport detaliat al tranzacțiilor realizate în perioada configurată.\n  - **🔑 Stare principală**: Numărul total al tranzacțiilor.\n  - **📊 Atribute disponibile**:\n      - **Perioadă analizată**: Perioada de timp configurată (ex: „Ultimii 2 ani\").\n      - **Număr facturi**: Numărul total al facturilor.\n      - **Suma totală plătită**: Suma totală plătită pentru tranzacțiile efectuate (RON).\n\n\n### Senzor `Restanțe treceri pod ({nr_înmatriculare})`\n  - **📊 Monitorizare restanțe per vehicul**:\n      - Indică dacă există treceri de pod neplătite din ultimele 24 de ore **pentru vehiculul respectiv**.\n      - Fiecare vehicul este monitorizat independent — o trecere neplătită a unui vehicul nu afectează statusul celorlalte vehicule din cont.\n  - **🔑 Stare principală**:\n      - **Da**: Există cel puțin o trecere de pod neplătită pentru acest vehicul.\n      - **Nu**: Nu există treceri de pod neplătite.\n  - **📊 Atribute disponibile**:\n      - **Număr treceri neplătite**: Numărul total al trecerilor neplătite.\n      - **Număr de înmatriculare**, **VIN**, **Seria certificatului**.\n      - **Detalii per trecere**: Categorie, timp detectare, direcție, bandă.\n\n\n### Senzor `Treceri pod ({nr_înmatriculare})`\n  - **📊 Istoric treceri de pod per vehicul**:\n      - Afișează istoricul complet al trecerilor de pod pentru vehiculul respectiv.\n  - **🔑 Stare principală**: Numărul total al trecerilor de pod.\n  - **📊 Atribute disponibile**:\n      - **Număr total treceri**: Totalul trecerilor înregistrate.\n      - **Număr de înmatriculare**, **VIN**, **Seria certificatului**.\n      - **Detalii per trecere**: Categorie, timp detectare, direcție, bandă, valoare (RON), partener, metodă plată, valabilitate.\n\n\n### Senzor `Sold peaje neexpirate ({nr_înmatriculare})`\n  - **📊 Monitorizare sold peaje**:\n      - Afișează valoarea totală a soldului pentru peajele neexpirate ale vehiculului.\n  - **🔑 Stare principală**: Valoarea soldului peajelor neexpirate.\n  - **📊 Atribute disponibile**:\n      - **Sold peaje neexpirate**: Valoarea totală a soldului.\n\n\n### Senzor `Licență`\n  - **🔐 Sistem de licență** — fără licență validă se afișează doar senzorul „Licență necesară\"\n      - Integrarea utilizează un sistem de licențiere server-side care validează accesul la toți senzorii.\n      - Cu licență validă: toți senzorii funcționează normal.\n      - Fără licență: numai senzorul „Licență necesară\" este disponibil.\n\n---\n\n## ⚙️ Configurare\n\n### 🛠️ Interfața UI:\n1. Adaugă integrarea din meniul **Setări \u003e Dispozitive și Servicii \u003e Adaugă Integrare**.\n2. Caută **CNAIR eRovinieta** și introdu datele contului:\n   - **Nume utilizator**: username-ul contului tău eRovinieta.\n   - **Parolă**: parola asociată contului tău.\n   - **Interval de actualizare**: Intervalul de actualizare în secunde (implicit: 3600 secunde, minim: 300, maxim: 86400).\n   - **Istoric tranzacții**: Selectează câți ani de tranzacții dorești să aduci (1–10, implicit: 2 ani).\n3. Apasă **Salvează** pentru a finaliza configurarea.\n4. **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 \u003e Dispozitive și Servicii \u003e CNAIR eRovinieta \u003e Configurare).\n\n### 🔧 Modificare opțiuni:\nDupă instalare, poți modifica intervalul de actualizare și istoricul de tranzacții din **Setări \u003e Dispozitive și Servicii \u003e CNAIR eRovinieta \u003e Configurare**.\n\n### Observații:\n- Asigură-te că ai introdus corect datele de autentificare.\n- Setarea „Istoric tranzacții\" afectează doar senzorul **Raport tranzacții**. Trecerile de pod sunt gestionate separat de API-ul CNAIR.\n\n---\n\n## ✅ Cerințe\n\n- **Cont CNAIR eRovinieta** — cu nume de utilizator și parolă\n- **Home Assistant** — versiunea 2025.11 sau mai nouă\n- **Licență** validă — [hubinteligent.org/licenta/erovinieta](https://hubinteligent.org/licenta/erovinieta)\n\n---\n\n## 🚀 Instalare\n\n### 💡 Instalare prin HACS:\n1. Adaugă [depozitul personalizat](https://github.com/cnecrea/erovinieta) în HACS. 🛠️\n2. Caută integrarea **CNAIR eRovinieta** și instaleaz-o. ✅\n3. Repornește Home Assistant și configurează integrarea. 🔄\n\n### ✋ Instalare manuală:\n1. Clonează sau descarcă [depozitul GitHub](https://github.com/cnecrea/erovinieta). 📂\n2. Copiază folderul `custom_components/erovinieta` în directorul `custom_components` al Home Assistant. 🗂️\n3. Repornește Home Assistant și configurează integrarea. 🔧\n\n---\n\n## ✨ Exemple de utilizare\n\n### 🔔 Automatizare pentru expirarea rovinietei:\nCreează o automatizare pentru a primi notificări când rovinieta expiră în 10 zile.\n\n```yaml\nalias: Notificare expirare rovinietă\ndescription: Notificare atunci când rovinieta expiră în 10 zile\nmode: single\ntriggers:\n  - entity_id: sensor.erovinieta_vehicul_[nr_inmatriculare]\n    attribute: Expiră peste (zile)\n    below: 10\n    trigger: numeric_state\nconditions: []\nactions:\n  - data:\n      title: Rovinieta expiră curând!\n      message: \u003e-\n        Rovinieta vehiculului {{ state_attr('sensor.erovinieta_vehicul_[nr_inmatriculare]',\n        'Număr de înmatriculare') }} va expira în {{\n        state_attr('sensor.erovinieta_vehicul_[nr_inmatriculare]',\n        'Expiră peste (zile)') }} zile!\n    action: notify.notify\n```\n\n### 🔔 Automatizare pentru rovinietă expirată:\nCreează o automatizare care te avertizează imediat ce rovinieta unui vehicul devine inactivă.\n\n```yaml\nalias: Notificare rovinietă expirată\ndescription: Notificare atunci când rovinieta unui vehicul devine inactivă\nmode: single\ntriggers:\n  - entity_id: sensor.erovinieta_vehicul_[nr_inmatriculare]\n    to: \"Nu\"\n    trigger: state\nconditions: []\nactions:\n  - data:\n      title: Rovinietă expirată!\n      message: \u003e-\n        Vehiculul {{ state_attr('sensor.erovinieta_vehicul_[nr_inmatriculare]',\n        'Număr de înmatriculare') }} nu mai are rovinietă activă!\n    action: notify.notify\n```\n\n### 🔔 Automatizare pentru restanțe la trecerile de pod:\nCreează o automatizare pentru a primi notificări atunci când există treceri de pod neplătite.\n\n```yaml\nalias: Notificare restanțe treceri pod\ndescription: Notificare atunci când există treceri de pod neplătite\nmode: single\ntriggers:\n  - entity_id: sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]\n    to: \"Da\"\n    trigger: state\nconditions: []\nactions:\n  - data:\n      title: Restanțe la treceri pod!\n      message: \u003e-\n        Vehiculul {{ state_attr('sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]',\n        'Număr de înmatriculare') }} are {{\n        state_attr('sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]',\n        'Număr treceri neplătite') }} treceri de pod neplătite!\n    action: notify.notify\n```\n\n### 🔍 Card pentru Dashboard:\nAfișează datele despre utilizator, vehicul și tranzacții pe interfața Home Assistant.\n\n```yaml\ntype: entities\ntitle: Monitorizare eRovinieta\nentities:\n  - entity: sensor.erovinieta_date_utilizator_[username]\n    name: Date Utilizator\n  - entity: sensor.erovinieta_vehicul_[nr_inmatriculare]\n    name: Rovinietă activă\n  - entity: sensor.erovinieta_plata_treceri_pod_[nr_inmatriculare]\n    name: Restanțe treceri pod\n  - entity: sensor.erovinieta_treceri_pod_[nr_inmatriculare]\n    name: Treceri pod\n  - entity: sensor.erovinieta_sold_peaje_neexpirate_[nr_inmatriculare]\n    name: Sold peaje neexpirate\n  - entity: sensor.erovinieta_raport_tranzactii_[username]\n    name: Raport tranzacții\n  - entity: sensor.erovinieta_[username]_licenta\n    name: Licență\n```\n\n---\n\n## 📁 Structura fișierelor\n\n```\ncustom_components/erovinieta/\n├── __init__.py          # Setup/unload integrare (runtime_data, licență)\n├── api.py               # eRovinietzApiClient — autentificare, GET/POST\n├── config_flow.py       # ConfigFlow + OptionsFlow (autentificare, licență)\n├── const.py             # Constante și URL-uri API\n├── coordinator.py       # DataUpdateCoordinator — fetch date\n├── diagnostics.py       # Diagnostics pentru troubleshooting\n├── helpers.py           # Funcții utilitare\n├── license.py           # Manager licență (server-side v3.3, Ed25519, HMAC-SHA256)\n├── manifest.json        # Metadata integrare\n├── sensor.py            # Clase senzori (utilizator, rovinietă, tranzacții, etc.)\n├── strings.json         # Traduceri implicite\n└── translations/\n    ├── en.json          # Traduceri engleză\n    └── ro.json          # Traduceri române\n```\n\n---\n\n## ☕ Susține dezvoltatorul\n\nDacă ți-a plăcut această integrare și vrei să sprijini munca depusă, **invită-mă la o cafea**! 🫶\nNu costă nimic, iar contribuția ta ajută la dezvoltarea viitoare a proiectului. 🙌\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-Susține%20dezvoltatorul-orange?style=for-the-badge\u0026logo=buy-me-a-coffee)](https://buymeacoffee.com/cnecrea)\n\nMulțumesc pentru sprijin și apreciez fiecare gest de susținere! 🤗\n\n---\n\n## 🧑‍💻 Contribuții\n\nContribuțiile sunt binevenite! Simte-te liber să trimiți un pull request sau să raportezi probleme [aici](https://github.com/cnecrea/erovinieta/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnecrea%2Ferovinieta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcnecrea%2Ferovinieta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnecrea%2Ferovinieta/lists"}