Skip to content

Conversation

@virtualdj
Copy link
Owner

Con le versioni di Home Assistant 2023.10 e successive, consente di evitare il salvataggio degli attributi nel recoder per i sensori FasciaPUNSensorEntity (orario fascia precedente e successiva), PrezzoZonaleSensorEntity e PUNOrarioSensorEntity (prezzi orari di oggi e domani).

Dato che i suddetti sensori comunque offrono il valore istantaneo, il recorder continuerà a memorizzare lo storico e visualizzarlo nel grafico; si risparmia però spazio (poco) per informazioni che non serve avere a medio/lungo termine.

Prima dell'applicazione di questa PR

A differenza di quanto scritto nelle uniche 2 discussioni sulla community di HA (questa e questa), nel database SQLite gli attributi vengono memorizzati nella tabella state_attributes ad ogni cambiamento degli stessi.

In una mia istanza di test, attiva da qualche giorno, vi sono solo 24 voci, quindi lo spazio occupato non è poi così grande:

Vista della tabella `state_attributes`

Sono 2000 caratteri (~ 2 kb) per memorizzare tutto un record, come si vede in 1️⃣, però sono solo 2 record per ogni giorno (si vede in 2️⃣) così come erano 2 record anche con i nomi oggi_ e domani_ (3️⃣) precedenti all'applicazione di #96.

Se osserviamo le differenze tra i due record, sono queste:

Differenze tra i due record

Praticamente la prima volta i prezzi del giorno successivo sono null (vuoti) e la seconda invece vengono compilati. Questo succede perché supponendo che nel giorno X vi siano i prezzi di oggi e domani, alla mezzanotte il giorno diventa X+1 quindi il domani di X diventa oggi e pertanto rimangono vuoti i prezzi del "domani di X+1" (cioè X+2) finché non arriva l'ora per scaricarli, cioè al pomeriggio di X+1. 🧠 🔥

Pertanto non vi sono molte voci duplicate nel database perché gli attributi in sé non cambiano se non queste 2 volte al giorno: la mezzanotte e nell'ora di scaricamento.
Tuttavia, essendo informazioni sostanzialmente inutili, non ha molto senso memorizzarle.

Dopo l'applicazione di questa PR

Metodo di test

  1. Azzerare la configurazione di Home Assistant (quello eseguito dentro questo devcointainer)
  2. Eseguire Home Assistant dentro questo devcontainer
  3. Aggiungere l'integrazione Prezzi PUN del mese
  4. Attendere che vengano scaricati i prezzi da Internet
  5. Terminare Home Assistant da Impostazioni > ⋮ > Riavvia Home Assistant
  6. Effettuare il primo dump della tabella state_attributes
  7. Azzerare nuovamente la configurazione di Home Assistant
  8. Applicare la modifica al codice di questa PR
  9. Ripartire dal punto 2 ed effettuare un nuovo dump per il confronto

Risultati del confronto

Il dump della tabella state_attributes prima e dopo la modifica ha una dimensione che passa da 7.688 a 3.247 bytes.
Le differenze si vedono qui sotto:

Differenze prima e dopo 1/3 Differenze prima e dopo 2/3 Differenze prima e dopo 3/3

Conclusioni

Sostanzialmente la PR toglie tutto, inclusa l'icona, dal recoder; informazioni che non necessitano di essere salvate.

@virtualdj virtualdj added the minor New minor version label Oct 18, 2025
@virtualdj virtualdj merged commit a72d7f2 into master Oct 18, 2025
3 checks passed
@virtualdj virtualdj deleted the feat-do-not-save-attributes branch October 18, 2025 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor New minor version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants