Skip to content

Releases: riccardorossi92/HomeAssistant-Contatore

v0.8.6

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 10 Oct 20:08

E-Distribuzione: errori di login più chiari · Ireti: login ripetuti e recupero storico

"Errore Tecnico" di E-Distribuzione riconosciuto
A volte il portale E-Distribuzione rifiuta l'accesso con un generico
"Errore Tecnico", che compare anche accedendo dal sito ufficiale. Finora
l'integrazione lo presentava come credenziali errate. Ora il form spiega che
il problema è del portale e che basta riprovare più tardi.

Più informazioni quando E-Distribuzione rifiuta il login
Il log ora riporta su quale indirizzo è stato tentato l'accesso, la risposta
HTTP e il messaggio del portale. La risposta completa viene salvata in
login_response_debug.json, con email e password oscurate.

Messaggio di credenziali errate adatto a ogni distributore
E-Distribuzione e Areti mostrano ora "Email o password non validi" e Ireti
"Username o password non validi", al posto di "Client ID o Secret ID non
validi", che vale solo per Duereti/Unareti.

Ireti: login ripetuti bloccati e somme sbagliate nel recupero storico (#10)

  • I login successivi al primo non vengono più bloccati dal firewall di
    Ireti (errore 403).
  • Il recupero dello storico a blocchi non fa più ripartire da zero le somme
    progressive delle statistiche al confine tra un blocco e l'altro.

Nessun intervento richiesto per le configurazioni esistenti.

v0.8.5

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 10 Oct 18:22

E-Distribuzione: messaggio chiaro quando va cambiata la password

Password scaduta riconosciuta durante la configurazione (#9)
Quando la password dell'account E-Distribuzione è scaduta, dopo l'OTP il
portale mostra la pagina di cambio password invece di completare l'accesso.
Finora la configurazione si interrompeva con il generico "Il codice OTP è
stato accettato ma il completamento dell'accesso è fallito", con un errore
nel log e una pagina di debug salvata su disco.

Ora l'integrazione riconosce la pagina e lo dice esplicitamente: accedi al
sito o all'app ufficiale, imposta una nuova password e ripeti la
configurazione (o il reinserimento delle credenziali) usando quella nuova.

Nessun intervento richiesto per le configurazioni esistenti.

v0.8.4

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 10 Oct 13:19

E-Distribuzione: log puliti quando si usa l'indirizzo alternativo

Niente più errori nel log a ogni login riuscito
Con la 0.8.3, quando l'indirizzo principale del portale E-Distribuzione è
bloccato dalla protezione anti-bot, l'integrazione passa da sola a
edistribuzione.my.site.com. Il passaggio funzionava, ma lasciava nel log
due avvisi e un errore ("Pagina completa salvata in
/config/login_page_debug.html"), e riscriveva quel file a ogni login, anche
quando tutto andava a buon fine.

Ora il passaggio all'indirizzo alternativo è una sola riga informativa.
Avviso e file di debug compaiono solo se è bloccato anche l'indirizzo
alternativo, cioè quando il login fallisce davvero.

Nessun intervento richiesto per le configurazioni esistenti. Se vuoi, puoi
cancellare /config/login_page_debug.html lasciato dalla versione
precedente.

v0.8.3

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 10 Oct 13:12

E-Distribuzione: accesso di nuovo possibile nonostante il blocco anti-bot

Login e aggiornamento dei dati aggirano il blocco del portale
Dall'8 ottobre private.e-distribuzione.it risponde alle richieste
automatiche con la pagina anti-bot della sua protezione Imperva ("Pardon Our
Interruption" o "Request unsuccessful. Incapsula incident ID"), bloccando sia
la configurazione sia il rinnovo del token delle configurazioni esistenti
(#8).

Lo stesso portale risponde anche sull'indirizzo edistribuzione.my.site.com,
il dominio originale della piattaforma Salesforce su cui gira, con lo stesso
login e senza la protezione anti-bot davanti. Ora, quando l'indirizzo
principale è bloccato, l'integrazione ripete automaticamente il login o il
rinnovo del token su quello alternativo. Ogni tentativo riparte comunque
dall'indirizzo principale, così si torna da soli a quello ufficiale appena
E-Distribuzione toglie il blocco.

Il messaggio "bloccato dalla protezione anti-bot" della 0.8.2 compare ora solo
se sono bloccati entrambi gli indirizzi.

Grazie a @paki81, che ha trovato l'indirizzo alternativo per
HomeAssistant-EDistribuzione.

Nessun intervento richiesto: le configurazioni esistenti riprendono ad
aggiornarsi da sole. Se la configurazione era stata interrotta dal blocco,
riprovala.

v0.8.2

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 08 Oct 19:00
179a65f

E-Distribuzione: messaggio chiaro quando il portale blocca il login

Blocco anti-bot del portale E-Distribuzione
Dall'8 ottobre il portale E-Distribuzione risponde in alcuni casi con la
pagina "Pardon Our Interruption" della sua protezione anti-bot (Imperva),
prima ancora di mostrare il login. Finora l'integrazione mostrava il
generico "Impossibile contattare le API del distributore"; ora riconosce
questa pagina e spiega che si tratta di un blocco del portale, non di un
problema di credenziali.

Se compare questo messaggio, riprova più tardi. Se il blocco persiste per
giorni, apri una issue.

Nessun intervento richiesto per le configurazioni esistenti.

v0.8.1

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 08 Oct 18:47
c92f569

E-Distribuzione: errori di login più facili da diagnosticare

Diagnostica più chiara quando il portale non risponde come previsto
Quando il portale E-Distribuzione ha problemi (manutenzione, disservizi),
il login falliva con un generico fwuid not found on login page, che non
permetteva di distinguere un portale temporaneamente giù da un cambio del
sito che richiede un aggiornamento dell'integrazione.

Ora il messaggio d'errore riporta lo status HTTP e l'indirizzo della pagina
su cui si è arrivati, il log mostra il titolo e un'anteprima della pagina, e
la pagina completa viene salvata in login_page_debug.html accanto a
configuration.yaml. L'email dell'account non compare nei log.

Se vedi questo errore con uno status 5xx o una pagina di manutenzione, è un
disservizio del portale: riprova più tardi. Se invece il sito ufficiale
funziona e l'errore persiste, apri una issue allegando le righe di log.

Documentazione
Entità esposte, azioni e recupera_ticket documentati anche per RetiPiù e
Reti Valtellina Valchiavenna.

Nessun intervento richiesto per le configurazioni esistenti.

v0.8.0

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 04 Oct 06:20
f86ee4e

RetiPiù e Reti Valtellina Valchiavenna supportati, DEA e gli altri portali Terranova documentati

Nuovo distributore: RetiPiù (Seregno, gruppo A2A)
RetiPiù usa lo stesso Portale Clienti Finali e le stesse API di Duereti e
Unareti: il suo manuale API ufficiale descrive le stesse chiamate
(requestToken → requestExport → requestResult), gli stessi campi e lo
stesso file di export, su areaclienti.retipiu.it/ClientiRPiuWeb. Il
supporto riusa quindi lo stesso codice già collaudato su Duereti/Unareti:
il wizard riconosce RetiPiù automaticamente dal comune (P.IVA verificata
sulla scheda operatore ARERA) e chiede Client ID + Secret ID come per gli
altri due.

Per ottenere le credenziali: area clienti RetiPiù → "Area POD/PDR:
Interruzioni, Misure e servizi" → richiesta di abilitazione alle API.

Nuovo distributore: Reti Valtellina Valchiavenna (Sondrio, Tirano,
Sernio, Valdisotto — gruppo Acinque)

Stesso identico caso: il manuale API ufficiale è uguale parola per parola a
quello di RetiPiù, cambia solo l'indirizzo
(areaclienti.valtellinarevv.it/ClientiRvvWeb). Credenziali da richiedere
allo stesso modo dal Portale Clienti Finali.

⚠️ Nessuno dei due è ancora stato provato con credenziali reali. Se hai
un'utenza RetiPiù o Reti Valtellina Valchiavenna e lo provi, apri una issue
con l'esito.

DEA (Distribuzione Elettrica Adriatica) — ricerca in corso
Documentato il portale clienti DEA (Osimo/Recanati, Ortona, Sanremo,
Bresciano): login verificato con catture reali, nessun 2FA, pagina Utenze
con colonne Letture e Curve per ogni POD. Manca ancora un account con un
POD associato per vedere i dati. Vedi documentation/protocols/dea-protocol.md.

Portali Terranova (RETIENERGIA)
Nuovo documento documentation/protocols/terranova-puf.md: DEA, Deval,
Edyna e V-Reti usano lo stesso prodotto, quindi una sola cattura con un
POD associato su uno qualsiasi dei quattro dovrebbe sbloccarli tutti.

Nessun intervento richiesto per le configurazioni esistenti.

v0.7.6

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 03 Oct 07:31

Inrete: portale self-service per la bassa tensione individuato

Inrete Distribuzione non è più "non fattibile"
Il verdetto precedente si basava su una lettura incompleta della pagina
pubblica del distributore: più sotto nel testo Inrete descrive un
"Portale Hera 105" (Azure AD B2C) dedicato agli utenti in bassa tensione,
con registrazione self-service ("Iscrizione Immediata"). Il login pubblico è
verificato, ma non esiste ancora un account registrato, quindi non sappiamo
se espone davvero dati di misura. Inrete passa da "Valutati e non fattibili"
a "Cercasi contributori": se hai una fornitura Inrete BT puoi aiutare.

AcegasApsAmga
Rimosso il dubbio sul fatto che le funzioni del bundle fossero attive per
questo brand perché legato al verdetto Inrete ormai superato.

Solo documentazione (README e note sui protocolli): nessuna modifica al codice
dell'integrazione, nessun intervento richiesto per le configurazioni esistenti.

v0.7.5

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 18 Sep 19:56

Areti confermato funzionante su Home Assistant reale, più robustezza e pulizia interna

Areti confermato end-to-end
Dopo i tre fix di login della v0.7.4, la configurazione iniziale e
l'azione recupera_storico sono state verificate per intero (login ->
curva -> statistiche esterne) su un'installazione reale. Areti passa dal
gruppo "da testare" a quello dei distributori confermati.

Messaggio di errore più chiaro su credenziali Areti sbagliate
Da una cattura reale su un tentativo di login fallito: ora l'errore
mostra il messaggio vero restituito dal portale ("Email o password non
valida.") invece del generico "nessun header Location nella risposta".

Due fix di robustezza

  • Areti: una risposta non-JSON dagli endpoint Aura (es. una pagina di
    login al posto dei dati attesi, se la sessione è scaduta a metà ciclo)
    ora diventa un errore chiaro (AretiApiError) invece di un
    json.JSONDecodeError grezzo.
  • E-Distribuzione: un errore di trasporto (timeout, connessione persa)
    ora diventa anch'esso un errore gestito invece di propagare grezzo,
    allineando il comportamento a quello di Areti e Ireti.

Pulizia interna (nessun effetto visibile)
La logica di scrittura delle external statistics - identica per tutti
e quattro i distributori a parte il parsing dei dati grezzi - era
duplicata in ciascun pacchetto. Ora vive in un unico modulo condiviso,
e Areti ha guadagnato test dedicati per l'aggregazione oraria e i
sensori diagnostici (mancavano, a differenza di Ireti/E-Distribuzione).

Nessun intervento richiesto per le configurazioni esistenti.

v0.7.4

Choose a tag to compare

@riccardorossi92 riccardorossi92 released this 18 Sep 17:01

Areti: tre fix di login, tutti necessari per farlo funzionare su Home Assistant reale

Dopo il rilascio di Areti (v0.5.0), testarlo con account reali ha fatto
emergere tre problemi distinti nel login, corretti in sequenza:

1. Passaggio di verifica aggiuntivo (ARIA_MaintenanceFlow)
Su alcuni account, dopo il login Areti richiede un passaggio extra
("è necessario completare la procedura di accesso") prima di concedere
l'accesso vero e proprio - non presente nelle catture originali usate
per costruire il modulo. Ora viene seguito automaticamente (nessun
campo da compilare, solo un link da seguire).

2. Il login falliva sempre su Home Assistant reale
Due errori distinti, entrambi sistematici, non legati a un account
specifico:

  • Detected blocking call to load_default_certs ... inside the event loop: la costruzione del contesto SSL leggeva i certificati di
    sistema da disco direttamente dentro l'event loop asincrono.
  • TypeError: ClientSession() got multiple values for keyword argument 'connector': l'helper di Home Assistant per creare sessioni HTTP non
    supporta un connector personalizzato, necessario per includere il
    certificato intermedio mancante di Areti (vedi v0.5.0).

3. L'integrazione funzionava una sola volta per riavvio
Il coordinator riusava la stessa sessione HTTP (con gli stessi cookie)
per ogni login invece di ripartire pulito ogni volta. Il primo login
riusciva sempre, ma qualunque login successivo sulla stessa sessione
falliva con "nessun header 'Location' nella risposta" nonostante le
credenziali corrette - un problema che colpiva sia l'azione
recupera_storico sia l'aggiornamento automatico giornaliero:
l'integrazione funzionava una sola volta dopo ogni riavvio di Home
Assistant, poi falliva sempre fino al riavvio successivo.

Con questi tre fix, il login Areti funziona in modo affidabile e
ripetibile su un'installazione Home Assistant reale.

Nota per chi ha già configurato Areti: al primo avvio l'integrazione
parte dal mese corrente, senza recuperare automaticamente lo storico
passato - per importare subito il mese scorso, usa l'azione
contatore_letture.recupera_storico.

Nessun intervento richiesto per le configurazioni esistenti.