Integrare custom pentru Home Assistant care monitorizează contul Pago Plătește — carduri, vehicule (RCA, ITP), facturi emise, conturi furnizori și plăți recente, toate prin API-ul aplicației mobile Pago.
Oferă senzori dedicați pentru profil și abonament, carduri active, vehicule cu alerte RCA/ITP, facturi emise cu scadențe, conturi de facturare per furnizor și arhivă plăți. Formatare completă în limba română cu date calendaristice și sume în lei.
- Profil și abonament — date cont, plăți rămase din abonament, perioadă activă
- Carduri — lista cardurilor de plată (tip, alias, activ/inactiv, default)
- Vehicule — per număr de înmatriculare, cu alertă RCA expirat, ITP expirat, zile rămase
- Facturi emise — lista facturilor curente de la furnizori, cu sumă totală datorată și scadențe
- Conturi furnizori — locațiile de facturare per furnizor, cu ultima plată și sumă
- Arhivă plăți — plățile efectuate la fiecare furnizor (anul curent), cu total per furnizor
- Licențiere — sistem de licențe cu perioadă de evaluare și activare online
- Sistem de licență — fără licență validă se afișează doar senzorul „Licență necesară"
- Reconfigurare fără reinstalare — OptionsFlow pentru modificarea credențialelor și licență
Datele vin prin API-ul aplicației mobile Pago Plătește (pago.cloud), care expune endpoint-uri REST pentru:
| Endpoint | Descriere |
|---|---|
/authentication/uaa/v1.00/user_profile |
Profil utilizator (nume, email, telefon) |
/pago-freemium/subscription/active |
Abonament activ (perioadă, plăți rămase) |
/payment/cards |
Carduri de plată (tip, alias, activ, default) |
/notification_v1_1/details/cars |
Vehicule cu alerte (RCA, ITP) |
/sdk/bills/accounts/summary |
Facturi emise (sumă datorată + scadență) |
/payment/payment-details-v2?paymentEntityType=INVOICE |
Conturi furnizori (locații de facturare) |
/payment/payment-details-v2?paymentEntityType=all |
Plăți recente (toate tipurile) |
Autentificarea se face cu email + parolă prin endpoint-ul OAuth2 Pago (grant_type=pago). Token-ul expirat este reînnoit automat.
- Deschide HACS în Home Assistant
- Click pe cele 3 puncte (⋮) din colțul dreapta sus → Custom repositories
- Adaugă URL-ul:
https://github.com/cnecrea/pagoplateste - Categorie: Integration
- Click Add → găsește „Pago Plătește" → Install
- Restartează Home Assistant
- Copiază folderul
custom_components/pagoplateste/în directorulconfig/custom_components/din Home Assistant - Restartează Home Assistant
- Setări → Dispozitive și Servicii → Adaugă Integrare
- Caută „Pago Plătește"
- Completează formularul:
| Câmp | Descriere | Implicit |
|---|---|---|
| Adresa de email a contului Pago | — | |
| Parolă | Parola contului Pago | — |
| Interval actualizare | Secunde între interogările API | 3600 (1 oră) |
Integrarea necesită o licență validă. Poți achiziționa una de la hubinteligent.org/donate?ref=pagoplateste. Licența se introduce din OptionsFlow (Setări → Dispozitive și Servicii → Pago Plătește → Configurare → Licență).
Setările pot fi modificate după instalare, fără a șterge integrarea:
- Setări → Dispozitive și Servicii → click pe Pago Plătește
- Click pe Configurare (⚙️)
- Alege Reconfigurare cont sau Licență
- Modifică setările dorite → Salvează (integrarea se reîncarcă automat, fără restart)
Detalii complete în SETUP.md.
Integrarea creează un device „Pago Plătește (email)" cu următorii senzori:
| Entitate | Descriere | Valoare principală |
|---|---|---|
Date utilizator |
Profil + abonament (plăți rămase, perioadă) | Numele complet |
Carduri Pago |
Carduri de plată active | Număr carduri active |
Facturi emise |
Facturi curente de la furnizori | Număr facturi |
| Entitate | Descriere | Valoare principală | Când apare |
|---|---|---|---|
Cont {Furnizor} |
Locații de facturare + ultima plată | Număr locații | Per furnizor unic din conturi facturi |
Arhivă plăți {Furnizor} |
Plățile la furnizor (anul curent) | Total plătit (lei) | Per furnizor unic din plăți recente |
{Nr. înmatriculare} |
Vehicul cu status RCA/ITP | OK / RCA Expirat / ITP Expirat | Per mașină din cont |
Valoare principală: numele complet al contului
Atribute:
ID utilizator: "123456"
Nume: "Popescu"
Prenume: "Ion"
Telefon: "+40712345678"
Email: "ion@email.ro"
--- Abonament: ""
Abonament activ: "Da"
Început: "2026-01-01"
Sfârșit: "2026-04-01"
Perioadă (zile): 90
Plăți folosite: 3
Plăți rămase: 27Valoare principală: numărul cardurilor active
Atribute (format compact, o linie per card):
Total carduri: 3
Card Crypto.com VISA ****3198: "Activ"
Card Revolut MASTERCARD ****7354: "Activ"
Card MASTERCARD ****0093: "Activ (Default)"Dacă alias-ul cardului e gol, se omite din cheie. Cardul implicit e marcat cu (Default).
Valoare principală: numărul total de facturi emise
Atribute:
Total facturi: 3
Sumă totală datorată: "150.00 lei"
Facturi restante: 1
Factura 1 scadenta pe 15 martie 2026: "75.50 lei"
Factura 2 scadenta pe 28 martie 2026: "42.30 lei"
Factura 3 scadenta pe 10 aprilie 2026: "32.20 lei"Valoare principală: număr locații active la furnizor (anul curent)
Atribute:
Facturat pe 5 martie 2026 (Apartament): "125.50 lei"
Facturat pe 12 februarie 2026 (Casă): "89.20 lei"Valoare principală: total plătit la furnizor (lei, anul curent)
Atribute:
Total plati Engie Gas: "450.80 lei"
Plata Engie Gas pe 5 martie 2026 (Apartament): "125.50 lei"
Plata Engie Gas pe 4 februarie 2026 (Apartament): "98.30 lei"
Plata Engie Gas pe 6 ianuarie 2026 (Casă): "227.00 lei"Valoare principală: OK / RCA Expirat / ITP Expirat / Fără RCA
Prioritate: RCA Expirat > ITP Expirat > Fără RCA > OK
Pictogramă dinamică:
mdi:car— OKmdi:car-emergency— RCA/ITP Expiratmdi:car-off— Fără RCA
Atribute:
Nr. înmatriculare: "B 123 ABC"
Car ID: "12345"
RCA expiră: "2026-08-15 10:00"
RCA zile rămase: 140
ITP expiră: "2027-03-20 10:00"
ITP zile rămase: 357
Notificare SMS RCA: "Da"
Notificare email RCA: "Da"| Senzor | Entity ID | Valoare principală | Icon |
|---|---|---|---|
| Licență necesară | sensor.pagoplateste_{user_id}_licenta |
„Licență necesară" | mdi:license |
automation:
- alias: "Notificare RCA expirat"
trigger:
- platform: state
entity_id: sensor.pagoplateste_123456_b123abc
to: "RCA Expirat"
action:
- service: notify.mobile_app_telefonul_meu
data:
title: "RCA Expirat!"
message: >
Vehiculul {{ state_attr('sensor.pagoplateste_123456_b123abc', 'Nr. înmatriculare') }}
are RCA-ul expirat.automation:
- alias: "Notificare facturi Pago"
trigger:
- platform: numeric_state
entity_id: sensor.pagoplateste_123456_facturi_emise
above: 0
action:
- service: notify.mobile_app_telefonul_meu
data:
title: "Facturi de plată Pago"
message: >
Ai {{ states('sensor.pagoplateste_123456_facturi_emise') }} facturi de plată,
total {{ state_attr('sensor.pagoplateste_123456_facturi_emise', 'Sumă totală datorată') }}.type: entities
title: Pago Plătește
entities:
- entity: sensor.pagoplateste_123456_cont
name: Cont
- entity: sensor.pagoplateste_123456_carduri
name: Carduri
- entity: sensor.pagoplateste_123456_facturi_emise
name: Facturi
- entity: sensor.pagoplateste_123456_b123abc
name: B 123 ABCcustom_components/pagoplateste/
├── __init__.py # Setup/unload integrare (runtime_data pattern, LicenseManager)
├── api.py # Client API async — login OAuth2, GET cu retry pe token expirat
├── config_flow.py # ConfigFlow + OptionsFlow (autentificare, licență, reconfigurare)
├── const.py # Constante, URL-uri API, chei date coordinator
├── coordinator.py # DataUpdateCoordinator — fetch paralel endpoint-uri Pago
├── diagnostics.py # Export diagnostic (licență, coordinator, senzori activi)
├── entity.py # Clasă de bază PagoEntity (entity_id custom, device_info, licență)
├── license.py # Manager licență (server-side v3.3, Ed25519, HMAC-SHA256)
├── manifest.json # Metadata integrare
├── sensor.py # Clase senzor (profil, carduri, vehicule, facturi, furnizori, plăți)
├── strings.json # Traduceri implicite (engleză)
├── translations/
│ ├── en.json # Traduceri engleză
│ └── ro.json # Traduceri române
└── brand/
├── icon.png # Pictogramă integrare
├── icon@2x.png # Pictogramă retina
├── logo.png # Logo integrare
├── logo@2x.png # Logo retina
├── dark_icon.png # Pictogramă dark mode
├── dark_icon@2x.png # Pictogramă dark mode retina
├── dark_logo.png # Logo dark mode
└── dark_logo@2x.png # Logo dark mode retina
- Home Assistant 2024.x sau mai nou (pattern
entry.runtime_data) - HACS (opțional, pentru instalare ușoară)
- Cont Pago Plătește activ cu email + parolă
- Licență validă — hubinteligent.org/donate?ref=pagoplateste
- Dependența Python:
cryptography>=41.0.0(instalată automat de Home Assistant)
-
O singură instanță per cont — dacă încerci să adaugi același email de două ori, vei primi eroare „Acest cont este deja configurat".
-
Facturi emise fără furnizor — endpoint-ul
/sdk/bills/accounts/summaryreturnează doar sumă + scadență, fără numele furnizorului sau locația. Bills SDK-ul Pago folosește un host intern separat, inaccesibil prin API-ul public. -
Interval minim de actualizare — minimum 1 oră (3600 secunde), maximum 24 ore (86400 secunde), pentru a nu suprasolicita API-ul Pago.
-
Senzori dinamici — senzorii per furnizor și per vehicul sunt creați la prima actualizare. Dacă adaugi un vehicul sau furnizor nou în Pago, restartează integrarea pentru a-l detecta.
Dacă ți-a plăcut această integrare și vrei să sprijini munca depusă, invită-mă la o cafea! Contribuția ta ajută la dezvoltarea viitoare a proiectului.
Contribuțiile sunt binevenite! Simte-te liber să trimiți un pull request sau să raportezi probleme aici.
Dacă îți place această integrare, oferă-i un ⭐ pe GitHub!
MIT