virtualdj / pun_sensor

Prezzi PUN del mese - Home Assistant Integration
MIT License
78 stars 13 forks source link

Caricare prezzi all'avvio di home assistant #3

Closed m-toso closed 1 year ago

m-toso commented 1 year ago

Buongiorno! Uso da poche ore la tua integrazione e non sono un esperto di home assistant. Mi sono accorto però che ad ogni riavvio del server i valori sono indefiniti. Esiste un modo per forzare il download dei valori all'avvio di home assistant? O per fare in modo che non vengano cancellati al riavvio? Grazie

virtualdj commented 1 year ago

Ciao, non dovrebbero affatto essere indefiniti all'avvio, perché la prima volta che l'estensione viene caricata i prezzi vengono aggiornati e poi la schedulazione successiva avviene all'ora impostata. Si può forzare un download immediato cambiando l'ora di scaricamento dall'interfaccia grafica.

Inoltre i dati vengono mantenuti da Home Assistant stesso, quindi gli unici casi in cui si dovrebbe vedere un valore indefinito sono:

m-toso commented 1 year ago

Ti ringrazio per la risposta. Attraverso i tuoi spunti, cercherò di capire cosa succede nella mia installazione.

m-toso commented 1 year ago

Analizzando i registri il problema è "Error fetching pun_sensor data: Archivio ZIP scaricato dal sito non valido."

moddroid94 commented 1 year ago

Ciao, anche io ho riscontrato questo problema, dopo ogni riavvio di HA i valori sono tutti indefiniti, magari è solo questione di impostare un delay al primo fetch dei dati dopo l'avvio.

Temporaneamente per caricare i dati basta ricaricare l'estensione dal menu dei devices una volta avviato HA

virtualdj commented 1 year ago

Ciao, sul mio sistema non ho mai notato errori di questo tipo e non mi pare mai di aver visto i sensori nello stato indefinito per lungo tempo... Il delay del primo fetch non posso impostarlo perché è proprio l'avvio dell'integrazione da parte di Home Assistant che triggera il download; se però questo non riesce dovrebbe ritentare dopo 10 minuti, come si vede in questa istruzione: https://github.com/virtualdj/pun_sensor/blob/e023d418bb2fd782de307f3718e51aa544b536e2/custom_components/pun_sensor/__init__.py#L327

Quindi è strano che rimanga così in stato indefinito a lungo. Sarebbe possibile avere i log completi?

Appena possibile farò altre prove.

virtualdj commented 1 year ago

se però questo non riesce dovrebbe ritentare dopo 10 minuti

Da ulteriori indagini ho visto che questo non funzionava per l'aggiornamento che veniva eseguito all'avvio (perché richiamato dall'aggiornamento in sensor.py anziché __init__.py.

magari è solo questione di impostare un delay al primo fetch dei dati dopo l'avvio

Il commit f797ffa9d4cdfef542ad05d8764c8afc728c642a introduce il ritardo di 10 secondi all'avvio e inoltre risolve il problema dei nuovi tentativi che non venivano effettuati. Inoltre i log ora riportano anche l'eccezione che causa l'errore.

O per fare in modo che non vengano cancellati al riavvio?

Il prossimo step è capire come fare questo. Al momento per 10 secondi dopo l'avvio apparirà Non disponibile.

virtualdj commented 1 year ago

Dovrei esserci riuscito! La versione taggata come v0.3.0 (b694335d4f665972a3b360ed6b09bd9818165bda) dovrebbe risolvere definitivamente il problema.