Tutorial Sensori

Sensori SQL Home Assistant: Recuperare Dati Storici Pressione per Previsioni Meteo

avatar di max novadi

Max Novadi

Pubblicato 07 Ottobre 2025

Scritta Sensori Barometrici Ambientali su sfondo futurista

Scopri come recuperare automaticamente i dati storici della pressione atmosferica in Home Assistant usando sensori SQL. Guida completa con configurazione GUI e YAML, analisi query e risoluzione problemi.

In questa guida implementeremo tre sensori SQL specializzati che recupereranno automaticamente i valori di pressione atmosferica registrati nelle ore precedenti, creando la base essenziale per il calcolo del trend barometrico e la previsione meteorologica accurata.

Serie Completa

  1. Fondamenti del Trend Barometrico: Teoria meteorologica e standard WMO
  2. Sensori SQL per Dati Storici: > ← Sei qui
  3. Template Sensor e Automazioni Crea sensori meteo avanzati in Home Assistant
  4. Integrazione AI con Google Gemini Trasforma Home Assistant in Stazione Meteo Ai

Introduzione

La capacità di confrontare la pressione atmosferica attuale con quella delle ore precedenti rappresenta il primo passo fondamentale per una previsione meteorologica accurata. In questa guida approfondita, esploreremo come implementare sensori SQL in Home Assistant per recuperare automaticamente i dati storici della pressione barometrica dal database interno.

I sensori SQL permettono di interrogare il database di Home Assistant, consentendo di accedere ai valori storici registrati nelle ore precedenti. Questi dati costituiscono la base essenziale per il calcolo del trend barometrico e per l'elaborazione di previsioni meteorologiche affidabili.

Questo secondo articolo della serie sulla previsione meteo tramite trend barometrico si concentra sulla configurazione pratica dei sensori SQL, sia attraverso l'interfaccia grafica che mediante codice YAML, fornendo una soluzione completa per ogni livello di esperienza.

Obiettivi del Tutorial

Al termine di questa guida, avrete implementato tre sensori che forniscono:

Pressione di 1 ora fa

Per l'analisi dei trend a breve termine

Pressione di 2 ore fa

Per valutazioni intermedie

Pressione di 3 ore fa

Per il calcolo dei trend secondo gli standard WMO

Questi sensori si aggiorneranno automaticamente ogni cinque minuti, garantendo un monitoraggio costante dell'evoluzione barometrica.

Vista di Integrazione SQL in Home Assistant

Servizio/Integrazione SQL: 3 Sensori di Pressione creati

Prerequisiti Tecnici

Prima di procedere con l'implementazione, verificate di avere:

  • Home Assistant versione 2022.10 o successiva
  • Un sensore di pressione atmosferica attivo e funzionante
  • Almeno 3-4 ore di dati storici registrati nel database
  • Privilegi di amministratore sull'istanza di Home Assistant

Nota importante: Se non disponete di un sensore di pressione, verificate nelle impostazioni dei dispositivi e servizi se avete integrazioni meteorologiche attive. La maggior parte delle integrazioni meteo fornisce automaticamente un sensore di pressione identificabile con sensor.*_pressure .

Video Tutorial

Per facilitare la comprensione del processo di configurazione, è disponibile un video tutorial che illustra passo dopo passo l'implementazione dei sensori SQL attraverso l'interfaccia grafica di Home Assistant.

Il video copre i seguenti argomenti:

  • Accesso e configurazione dell'integrazione SQL
  • Compilazione corretta dei campi della query
  • Verifica dei sensori

Creare sensore di Pressione Atmosferica Storico con Interrogazione Database SQL

Configurazione Tramite Interfaccia Grafica

La configurazione tramite interfaccia grafica rappresenta il metodo più accessibile per gli utenti che preferiscono evitare la modifica diretta dei file di configurazione.

Aggiunta dell'Integrazione SQL

Accedete alla sezione Impostazioni seguito da Dispositivi e servizi. Individuate e selezionate il pulsante per aggiungere una nuova integrazione, quindi cercate e selezionate SQL dall'elenco delle integrazioni disponibili.

Configurazione del Sensore per la Pressione di 1 Ora Fa

Una volta aperta l'interfaccia di configurazione SQL, compilate i campi richiesti con i seguenti parametri:

Nome sensore

Inserire il nome descrittivo del sensore:

Pressione 1h Fa

Query SQL

Copiare e incollare la seguente query nel campo dedicato:

SELECT
  states.state
FROM
  states
INNER JOIN states_meta ON
  states.metadata_id = states_meta.metadata_id
WHERE
  states_meta.entity_id = 'sensor.pressione_atmosferica'
  AND last_updated_ts <= strftime('%s', 'now', '-1 hour')
ORDER BY
  last_updated_ts DESC
LIMIT
  1;

Nome colonna

Specificare la colonna da cui estrarre il valore:

state

Unità di misura

Definire l'unità di misura per la pressione atmosferica:

hPa

Intervallo di scansione

Impostare la frequenza di aggiornamento del sensore (in secondi):

300 (5 minuti)

Personalizzazione necessaria

È fondamentale sostituire sensor.pressione_atmosferica con l'entity_id effettivo del vostro sensore di pressione. Questo identificativo può essere facilmente reperito nella sezione Stati degli Strumenti per sviluppatori.

Dopo aver compilato tutti i campi, confermate la configurazione attraverso il pulsante di salvataggio. Il sistema procederà alla creazione del primo sensore.

Configurazione del Sensore per la Pressione di 2 Ore Fa

Ripetete il processo di aggiunta dell'integrazione SQL per creare il secondo sensore. I parametri da configurare sono:

Nome sensore

Pressione 2h Fa

Query SQL

Modificare solo il parametro temporale rispetto alla query precedente:

SELECT
  states.state
FROM
  states
INNER JOIN states_meta ON
  states.metadata_id = states_meta.metadata_id
WHERE
  states_meta.entity_id = 'sensor.pressione_atmosferica'
  AND last_updated_ts <= strftime('%s', 'now', '-2 hours')
ORDER BY
  last_updated_ts DESC
LIMIT
  1;

Mantenete gli stessi valori utilizzati nel sensore precedente per: Nome colonna (state), Unità di misura (hPa) e Intervallo di scansione (300 secondi).

Configurazione del Sensore per la Pressione di 3 Ore Fa

Completate la serie con il terzo sensore seguendo la medesima procedura. Questo sensore fornirà i dati per il calcolo del trend barometrico secondo gli standard WMO.

Nome sensore

Pressione 3h Fa

Query SQL

Query finale per il recupero della pressione di 3 ore precedenti:

SELECT
  states.state
FROM
  states
INNER JOIN states_meta ON
  states.metadata_id = states_meta.metadata_id
WHERE
  states_meta.entity_id = 'sensor.pressione_atmosferica'
  AND last_updated_ts <= strftime('%s', 'now', '-3 hours')
ORDER BY
  last_updated_ts DESC
LIMIT
  1;

Anche per questo sensore, utilizzate i parametri standard già configurati nei sensori precedenti per Nome colonna, Unità di misura e Intervallo di scansione.

Configurazione completata

Avete ora configurato tutti e tre i sensori SQL necessari per l'analisi del trend barometrico. Procedete con la verifica del funzionamento nella sezione successiva.

Configurazione Tramite YAML

Per gli utenti che preferiscono gestire la configurazione attraverso file YAML, è possibile aggiungere i sensori direttamente nel file configuration.yaml. Questo approccio permette un controllo più granulare e facilita la gestione centralizzata delle configurazioni.

Configurazione completa

Il codice seguente include tutti e tre i sensori SQL necessari. Copiare l'intero blocco e incollarlo nel file di configurazione.

# Sensori SQL per analisi trend barometrico
sql:
  - name: "Pressione 1h Fa"
    query: >
      SELECT states.state
      FROM states
      INNER JOIN states_meta ON states.metadata_id = states_meta.metadata_id
      WHERE states_meta.entity_id = 'sensor.pressione_atmosferica'
        AND last_updated_ts <= strftime('%s', 'now', '-1 hour')
      ORDER BY last_updated_ts DESC
      LIMIT 1;
    column: "state"
    unit_of_measurement: "hPa"
    device_class: pressure
    state_class: measurement
    scan_interval: 300

  - name: "Pressione 2h Fa"
    query: >
      SELECT states.state
      FROM states
      INNER JOIN states_meta ON states.metadata_id = states_meta.metadata_id
      WHERE states_meta.entity_id = 'sensor.pressione_atmosferica'
        AND last_updated_ts <= strftime('%s', 'now', '-2 hours')
      ORDER BY last_updated_ts DESC
      LIMIT 1;
    column: "state"
    unit_of_measurement: "hPa"
    device_class: pressure
    state_class: measurement
    scan_interval: 300

  - name: "Pressione 3h Fa"
    query: >
      SELECT states.state
      FROM states
      INNER JOIN states_meta ON states.metadata_id = states_meta.metadata_id
      WHERE states_meta.entity_id = 'sensor.pressione_atmosferica'
        AND last_updated_ts <= strftime('%s', 'now', '-3 hours')
      ORDER BY last_updated_ts DESC
      LIMIT 1;
    column: "state"
    unit_of_measurement: "hPa"
    device_class: pressure
    state_class: measurement
    scan_interval: 300

Parametri configurabili

entity_id

Sostituire sensor.pressione_atmosferica con il proprio sensore

scan_interval

Frequenza di aggiornamento in secondi (default: 300 = 5 minuti)

device_class

Classifica il sensore come misuratore di pressione

state_class

Definisce il tipo di misurazione per grafici e statistiche

Procedura di applicazione

1

Modifica del file di configurazione

Aprire il file configuration.yaml con un editor di testo e incollare il codice nella posizione appropriata.

2

Verifica della sintassi

Accedere a Strumenti per sviluppatori → YAML e cliccare su "Verifica configurazione" per controllare la correttezza della sintassi.

3

Riavvio del sistema

Se la verifica ha esito positivo, procedere con il riavvio di Home Assistant per applicare le modifiche.

Verifica e attivazione

Dopo il riavvio, i sensori saranno attivi e inizieranno a raccogliere dati. Ricordate che potrebbero mostrare lo stato unknown per le prime 3-4 ore, tempo necessario per accumulare dati storici sufficienti.

Analisi Tecnica delle Query SQL

Le query implementate utilizzano una struttura SQL ottimizzata che merita un approfondimento tecnico. Vediamo nel dettaglio la composizione e la logica di funzionamento:

SELECT
  states.state                    -- Estrazione del valore dello stato
FROM
  states                          -- Tabella principale degli stati
INNER JOIN states_meta ON         -- Join con la tabella dei metadati
  states.metadata_id = states_meta.metadata_id
WHERE
  states_meta.entity_id = 'sensor...'  -- Filtro per l'entità specifica
  AND last_updated_ts <= strftime('%s', 'now', '-1 hour')  -- Filtro temporale
ORDER BY
  last_updated_ts DESC            -- Ordinamento decrescente
LIMIT
  1;                              -- Selezione del record più recente

Nota Tecnica sull'Architettura del Database

La query implementa un INNER JOIN con la tabella states_meta, una struttura introdotta in Home Assistant versione 2022.10 come parte di un'importante ottimizzazione delle performance del database. Questa architettura separa i metadati delle entità dagli stati effettivi, riducendo significativamente la ridondanza dei dati e migliorando le prestazioni delle query su database di grandi dimensioni.

I principali vantaggi di questa implementazione includono:

Velocità di esecuzione superiore su database con milioni di record

Sintassi temporale più leggibile e manutenibile

Maggiore precisione nella selezione dei timestamp attraverso l'operatore di minore o uguale

Piena compatibilità con le versioni moderne di Home Assistant

Query Alternativa per Versioni Precedenti

Per installazioni di Home Assistant precedenti alla versione 2022.10, è necessario utilizzare una query alternativa che non fa riferimento alla tabella states_meta:

SELECT state 
FROM states 
WHERE entity_id = 'sensor.pressione_atmosferica'
  AND last_updated < datetime('now', '-1 hour')
ORDER BY last_updated DESC 
LIMIT 1;

Nota: Questa sintassi alternativa funziona con tutte le versioni di Home Assistant, ma offre prestazioni inferiori su database di grandi dimensioni.

Raccomandazione

Si consiglia vivamente di aggiornare Home Assistant alla versione 2022.10 o successiva per beneficiare delle ottimizzazioni di performance e della sintassi SQL migliorata.

Verifica del Funzionamento

Dopo aver completato la configurazione, è importante verificare che i sensori operino correttamente. Accedete alla sezione Stati degli Strumenti per sviluppatori e cercate i seguenti entity_id:

Entity ID da verificare

1
sensor.pressione_1h_fa
2
sensor.pressione_2h_fa
3
sensor.pressione_3h_fa

Comportamento atteso

I sensori dovrebbero mostrare valori numerici espressi in hPa, ad esempio 1013.2 hPa.

Comportamento iniziale normale

È normale che inizialmente i sensori mostrino lo stato unknown o unavailable.

Motivo: Il sistema necessita di accumulare un periodo sufficiente di dati storici nel database. Si consiglia di attendere almeno 3-4 ore prima di procedere con ulteriori verifiche.

Timeline prevista

0-1 ora

Stato unknown - comportamento normale

1-3 ore

Primi sensori iniziano a mostrare valori (1h fa per primo)

3-4 ore

Tutti i sensori operativi con valori di pressione corretti

Implementazione nella Dashboard

Per visualizzare efficacemente i dati storici, è possibile creare una card dedicata nella dashboard:

Card Entities

type: entities
title: Pressione Atmosferica - Analisi Storica
entities:
  - entity: sensor.pressione_atmosferica
    name: "Pressione Attuale"
  - entity: sensor.pressione_1h_fa
    name: "1 ora fa"
  - entity: sensor.pressione_2h_fa
    name: "2 ore fa"
  - entity: sensor.pressione_3h_fa
    name: "3 ore fa"
show_header_toggle: false

Card History-Graph

Per una visualizzazione più analitica del trend, è consigliabile utilizzare una card di tipo history-graph:

type: history-graph
title: Trend Pressione (3 ore)
entities:
  - entity: sensor.pressione_atmosferica
    name: Attuale
  - entity: sensor.pressione_1h_fa
    name: 1h fa
  - entity: sensor.pressione_2h_fa
    name: 2h fa
  - entity: sensor.pressione_3h_fa
    name: 3h fa
hours_to_show: 4
Card History-Graph di Sensori di Pressione Atmosferica

Esempio di Card Grafica: Sensori Atmosferici creati in SQL

Verifica della Configurazione del Recorder

I sensori SQL dipendono completamente dalla presenza di dati storici nel database di Home Assistant. Il componente Recorder è responsabile della persistenza di questi dati. Prima di procedere, è essenziale verificare che il Recorder sia correttamente configurato e attivo.

Procedura di Verifica

Per verificare il corretto funzionamento del Recorder, accedete alla sezione Cronologia degli Strumenti per sviluppatori e selezionate il sensore di pressione atmosferica. Impostate la visualizzazione per le ultime 24 ore.

Se visualizzate un grafico con dati storici, il Recorder è correttamente configurato e i sensori SQL funzioneranno una volta accumulato il tempo necessario di dati storici.

Se non visualizzate dati o appare il messaggio "Nessun dato", è necessario procedere con la configurazione del Recorder.

Configurazione del Recorder

Nel caso in cui il Recorder non stia registrando il sensore di pressione, aggiungete la seguente configurazione nel file

configuration.yaml
recorder:
  purge_keep_days: 7  # Mantiene 7 giorni di dati storici
  
  # Inclusione esplicita del sensore di pressione
  include:
    entities:
      - sensor.pressione_atmosferica  # Sostituire con il proprio entity_id

Per una configurazione più flessibile che includa automaticamente tutti i sensori di pressione, è possibile utilizzare i pattern glob:

recorder:
  purge_keep_days: 7
  include:
    entity_globs:
      - sensor.*pressure*
      - sensor.*pressione*

Dopo aver salvato le modifiche, riavviate Home Assistant. I sensori SQL inizieranno a funzionare correttamente dopo che il database avrà accumulato almeno 3-4 ore di dati storici.

Importanza del Recorder

Il Recorder rappresenta un componente fondamentale dell'architettura di Home Assistant, responsabile di:

  • Persistenza di tutti i cambiamenti di stato nel database
  • Generazione dei grafici storici nell'interfaccia utente
  • Fornitura dei dati per le query SQL

Senza un Recorder attivo e correttamente configurato, i sensori SQL non possono operare in quanto non dispongono di dati storici da interrogare.

Risoluzione dei Problemi Comuni

Sensore che Mantiene lo Stato Unknown

Cause possibili:

  • Database privo di un periodo sufficiente di dati storici
  • Entity_id errato nella query SQL
  • Sensore di pressione non registrato dal Recorder

Soluzioni proposte:

  1. Attendere un periodo di 3-4 ore dopo la configurazione iniziale
  2. Verificare l'esattezza dell'entity_id nella sezione Stati degli Strumenti per sviluppatori
  3. Controllare la configurazione del Recorder come descritto nella sezione precedente

Errore "no such table: states_meta"

Causa: Versione di Home Assistant obsoleta (precedente alla 2022.10)

Soluzione: Aggiornare Home Assistant all'ultima versione disponibile oppure utilizzare la query SQL alternativa documentata nella sezione di analisi tecnica.

Mancato Aggiornamento del Sensore

Cause possibili:

  • Intervallo di scansione troppo esteso
  • Problemi di cache nel database

Soluzioni proposte:

  1. Ridurre temporaneamente il parametro
    scan_interval
    a 60 secondi per verificare il funzionamento
  2. Riavviare Home Assistant per reimpostare le cache
  3. Utilizzare la funzione di aggiornamento manuale disponibile nella sezione Stati degli Strumenti per sviluppatori

Errori di Template o Valori Anomali

Causa: Discrepanza nelle unità di misura tra il sensore originale e quelli SQL

Soluzione: Verificare che il sensore di pressione originale restituisca valori numerici validi e che l'unità di misura sia coerente. Sebbene 1 mbar equivalga a 1 hPa, è importante mantenere coerenza nella configurazione.

Errore "Column 'state' not found"

Causa: Parametro column errato o mancante nella configurazione

Soluzione: Verificare che il parametro

column: "state"
sia presente nella configurazione YAML. Nell'interfaccia grafica, assicurarsi di aver inserito correttamente
state
come nome della colonna da selezionare.

Caso di Studio: Interpretazione dei Dati

Per comprendere l'utilità pratica dei sensori implementati, consideriamo un esempio reale di lettura e interpretazione dei dati alle ore 15:00:

Sensore Valore Contesto Temporale
Pressione Attuale 1015.3 hPa Misurazione in tempo reale
Pressione 1h Fa 1016.1 hPa Registrata alle 14:00
Pressione 2h Fa 1017.0 hPa Registrata alle 13:00
Pressione 3h Fa 1018.2 hPa Registrata alle 12:00

Analisi del Trend

I dati evidenziano un calo costante della pressione nel periodo di tre ore, con una variazione totale di -2.9 hPa. Questo pattern è significativo dal punto di vista meteorologico.

Calcolo dettagliato:

  • Variazione totale: 1015.3 - 1018.2 = -2.9 hPa
  • Velocità media di variazione: -2.9 hPa / 3 ore = -0.97 hPa/ora
  • Classificazione secondo standard WMO: Calo moderato (compreso tra 1.5 e 3 hPa in un periodo di 3 ore)

Secondo le tabelle interpretative dell'Organizzazione Meteorologica Mondiale, questa variazione indica una probabilità elevata di deterioramento delle condizioni meteorologiche nelle ore successive. Nel prossimo articolo della serie, vedremo come automatizzare completamente questi calcoli attraverso l'implementazione di template sensor e come utilizzare questi dati per creare automazioni intelligenti.

Conclusioni

La condivisione di esperienze e problematiche contribuisce alla crescita dell'intera community di Home Assistant.

Se avete trovato utile questa guida, considerate di condividerla con altri membri della community interessati alla domotica e alla meteorologia domestica.

Serie di Articoli: Previsione Meteo con Trend Barometrico

  1. Fondamenti del Trend Barometrico - Leggi
  2. Sensori SQL per Dati Storici (articolo corrente)
  3. Template Sensor e Automazioni Leggi
  4. Integrazione AI con Google Gemini - Leggi

Metadati Articolo

Categoria:

Domotica - Home Assistant - Sensori Avanzati

Livello di difficoltà:

Intermedio

Tempo di lettura stimato:

15 minuti

Data ultimo aggiornamento:

Ottobre 2025

Versione di Home Assistant:

Testato con 2024.10.x

Compatibilità:

Home Assistant 2022.10 e successive

Tag:

Home Assistant SQL Sensors Pressione Barometrica Trend Meteo Domotica Tutorial Database Recorder Sensori Storici
avatar di max novadi

Max Novadi

Blog writer specializzato in tecnologia e domotica.

Max si occupa di tendenze tecnologiche da oltre un decennio, con un'attenzione particolare alle automazioni domestiche e alla smart home, ambiti che ha approfondito in particolare con Home Assistant. Si interessa anche di intelligenza artificiale e delle sue applicazioni nella tecnologia consumer.

Nuki Home Assistant Works with HA Smart Lock Matter Thread Domotica