Immagina di rientrare a casa dopo una giornata di lavoro: le luci si accendono automaticamente (ma solo se è buio), la temperatura è già perfetta, e la tua playlist preferita parte in sottofondo. Non devi toccare nessun interruttore o tirare fuori il telefono.
Con Home Assistant puoi creare un’automazione “Bentornato a casa” intelligente che:
-
Rileva quando arrivi (GPS, WiFi, Bluetooth o geofencing)
-
Accende le luci giuste (solo se è buio o dopo tramonto)
-
Regola temperatura 10-15 minuti prima del tuo arrivo
-
Avvia musica su Spotify/media player
-
Scene personalizzate per ogni membro della famiglia
-
Condizioni intelligenti (meteo, orario, stato casa)
In questa guida vedremo come implementare tutto, dal setup base alle automazioni avanzate con logiche multiple.
Parte 1: Setup rilevamento presenza
Il cuore di tutto: sapere quando sei a casa
Home Assistant usa l’entità Person per tracciare gli individui, combinando più device tracker.
Impostazioni > Persone > Clicca sul tuo nome > Assegna dispositivi
Metodi di rilevamento presenza:
Opzione A: Companion App (consigliato per iniziare)
La soluzione più semplice e completa.
-
Installa app Home Assistant su smartphone (iOS/Android)
-
Accedi al tuo server
-
Vai su Impostazioni > App Companion > Gestisci sensori
-
Attiva:
-
Posizione GPS (sempre attiva in background)
-
Zona: rileva automaticamente zona “Home”
-
Activity (opzionale): walking/driving/stationary
-
Entità creata automaticamente:
-
person.tuo_nome→ stato:home/away/not_home -
device_tracker.smartphone_tuo_nome→ GPS preciso -
sensor.smartphone_geocoded_location→ indirizzo leggibile
Pro:
-
Zero configurazione hardware
-
Funziona ovunque (dati mobili o WiFi)
-
Integra anche sensori batteria, attività, notifiche
Contro:
-
Consuma batteria (ottimizzato ma presente)
-
Ritardo 2-5 minuti nel rilevamento
-
Richiede connessione dati/internet
Opzione B: Router WiFi tracking
Più veloce e zero batteria, ma solo dentro casa.
Se hai router supportato (FritzBox, UniFi, TP-Link, Asus, Mikrotik):
-
Impostazioni > Integrazioni > Aggiungi > Cerca il tuo router
-
Inserisci credenziali admin
-
HA rileva automaticamente tutti i dispositivi connessi
Pro:
-
Velocissimo (30 secondi)
-
Zero consumo batteria
-
Affidabile dentro casa
Contro:
-
Solo casa/fuori casa (no distanza)
-
Falsi positivi se WiFi resta connesso lontano da casa
Opzione C: Proximity Sensor (distanza da casa)
Per automazioni anticipate tipo “accendi clima 10 minuti prima”.
# configuration.yaml
proximity:
home:
zone: home
devices:
- person.tuo_nome
- person.partner
tolerance: 50 # Metri di tolleranza
unit_of_measurement: km
Crea sensori:
-
sensor.proximity_home→ distanza in km -
sensor.proximity_home_dir_of_travel→towards/away_from/stationary -
sensor.proximity_home_nearest→ chi è più vicino
Uso in automazione:
# Trigger quando sei entro 5 km E ti stai avvicinando
trigger:
- platform: numeric_state
entity_id: sensor.proximity_home
below: 5
condition:
- condition: state
entity_id: sensor.proximity_home_dir_of_travel
state: "towards"
Parte 2: Automazione base “Bentornato a casa”
Automazione semplice: luci + notifica
Partiamo dal minimo funzionante:
automation:
- alias: "Bentornato a Casa - Base"
description: "Accende luci e invia notifica"
mode: single
trigger:
# Quando passi da "not_home" a "home"
- platform: state
entity_id: person.tuo_nome
from: "not_home"
to: "home"
condition:
# Solo se è buio (lux < 20 o dopo tramonto)
- condition: or
conditions:
- condition: numeric_state
entity_id: sensor.illuminance_esterno
below: 20
- condition: sun
after: sunset
after_offset: "-00:30:00" # 30 min prima tramonto
action:
# 1. Accendi luci ingresso e soggiorno
- service: light.turn_on
target:
entity_id:
- light.ingresso
- light.soggiorno
data:
brightness_pct: 80
transition: 2
# 2. Notifica sugli altri dispositivi
- service: notify.mobile_app_partner
data:
title: "🏠 Bentornato!"
message: "{{ person.tuo_nome.name }} è appena rientrato"
# 3. Annuncio vocale (opzionale)
- service: tts.google_translate_say
target:
entity_id: media_player.echo_soggiorno
data:
message: "Bentornato a casa!"
Evitare falsi trigger con delay
Problema comune: il GPS “sfarfalla” e ti segna home per 10 secondi mentre sei in realtà ancora fuori.
Soluzione: aggiungere for al trigger:
trigger:
- platform: state
entity_id: person.tuo_nome
from: "not_home"
to: "home"
for:
seconds: 60 # Conferma dopo 1 minuto continuo "home"
Oppure usa condizione porta aperta come conferma reale ingresso:
trigger:
- platform: state
entity_id: person.tuo_nome
to: "home"
condition:
# Aspetta che la porta si apra nei prossimi 5 minuti
- condition: template
value_template: >
{{ is_state('binary_sensor.porta_ingresso', 'on') }}
action:
# Ora sei DAVVERO entrato
- service: light.turn_on
...
Parte 3: Luci intelligenti con condizioni
Accendi solo le luci giuste al momento giusto
Non vuoi che le luci si accendano sempre, ma solo quando ha senso.
Logica avanzata:
automation:
- alias: "Bentornato - Luci Intelligenti"
trigger:
- platform: state
entity_id: person.tuo_nome
to: "home"
for: "00:01:00"
action:
# SCELTA 1: Se è buio → luci normali
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.lux_esterno
below: 20
sequence:
- service: scene.turn_on
target:
entity_id: scene.bentornato_sera
# SCELTA 2: Se è sera tardi (dopo 22:00) → luci soffuse
- conditions:
- condition: time
after: "22:00:00"
before: "06:00:00"
sequence:
- service: light.turn_on
target:
entity_id:
- light.ingresso
- light.corridoio
data:
brightness_pct: 20
kelvin: 2700 # Luce calda
# SCELTA 3: Giorno o già abbastanza luce → NON accendere
- conditions:
- condition: numeric_state
entity_id: sensor.lux_esterno
above: 100
sequence:
- service: notify.mobile_app_tuo_nome
data:
message: "Bentornato! (luci non accese, c'è già luce)"
# DEFAULT: scenario standard
default:
- service: scene.turn_on
target:
entity_id: scene.bentornato_default
Scene “Bentornato” preimpostate
Crea scene salvate per riutilizzarle:
Impostazioni > Scene > Crea scena
Scene “Bentornato Sera”:
-
Ingresso: 100%
-
Soggiorno: 80%
-
Cucina: 60%
-
Camera: OFF
-
Corridoio: 50%
Scene “Bentornato Notte” (dopo 22:00):
-
Ingresso: 20% luce calda
-
Soggiorno: OFF
-
Corridoio: 10%
-
Resto: OFF
Poi nell’automazione basta:
- service: scene.turn_on
target:
entity_id: scene.bentornato_sera
Parte 4: Temperatura e clima anticipati
Riscalda/raffredda PRIMA di arrivare
Una delle automazioni più utili: la casa è già alla temperatura perfetta quando entri.
Usando Proximity Sensor (consigliato):
automation:
- alias: "Clima - Prepara Casa al Rientro"
trigger:
# Quando sei entro 5 km E ti avvicini
- platform: numeric_state
entity_id: sensor.proximity_home
below: 5
condition:
# Solo se ti stai avvicinando (non allontanando)
- condition: state
entity_id: sensor.proximity_home_dir_of_travel
state: "towards"
# Solo se TUTTI sono fuori casa (altrimenti già acceso)
- condition: state
entity_id: zone.home
state: "0" # 0 persone in zona home
# Inverno: temperatura esterna < 15°C
- condition: numeric_state
entity_id: sensor.temperatura_esterna
below: 15
action:
# Accendi riscaldamento a 21°C
- service: climate.set_temperature
target:
entity_id:
- climate.soggiorno
- climate.cucina
data:
temperature: 21
hvac_mode: heat
# Notifica (debug)
- service: notify.mobile_app_tuo_nome
data:
message: "🏠 Riscaldamento attivato, arrivo stimato 10 minuti"
Versione senza Proximity (orario fisso):
Se non hai GPS affidabile, usa orario:
automation:
- alias: "Clima - Riscalda Prima Rientro Lavoro"
trigger:
# Lun-Ven alle 17:30 (se rientri sempre ~18:00)
- platform: time
at: "17:30:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
# Solo se tutti fuori
- condition: state
entity_id: person.tuo_nome
state: "not_home"
action:
- service: climate.set_temperature
target:
entity_id: climate.soggiorno
data:
temperature: 21
Estate: climatizzatore
automation:
- alias: "AC - Raffredda Prima Rientro"
trigger:
- platform: numeric_state
entity_id: sensor.proximity_home
below: 5
condition:
- condition: state
entity_id: sensor.proximity_home_dir_of_travel
state: "towards"
- condition: numeric_state
entity_id: sensor.temperatura_interna
above: 26 # Solo se fa caldo
action:
- service: climate.set_temperature
target:
entity_id: climate.ac_soggiorno
data:
temperature: 24
hvac_mode: cool
fan_mode: auto
Ripristino temperatura precedente
Salva temperatura prima di abbassarla in “Away Mode”, poi ripristina:
# Helper per salvare temperatura
input_number:
temperatura_salvata_soggiorno:
name: "Temp Salvata Soggiorno"
min: 15
max: 28
step: 0.5
unit_of_measurement: "°C"
automation:
# Quando esci: salva temperatura attuale
- alias: "Away - Salva Temperatura"
trigger:
- platform: state
entity_id: zone.home
to: "0" # Tutti via
action:
- service: input_number.set_value
target:
entity_id: input_number.temperatura_salvata_soggiorno
data:
value: "{{ state_attr('climate.soggiorno', 'temperature') }}"
- service: climate.set_temperature
target:
entity_id: climate.soggiorno
data:
temperature: 16 # Eco mode
# Quando rientri: ripristina
- alias: "Home - Ripristina Temperatura"
trigger:
- platform: numeric_state
entity_id: sensor.proximity_home
below: 5
action:
- service: climate.set_temperature
target:
entity_id: climate.soggiorno
data:
temperature: "{{ states('input_number.temperatura_salvata_soggiorno') }}"
Parte 5: Musica automatica
Fai partire la playlist quando entri
Con Spotify + media player:
automation:
- alias: "Bentornato - Musica Spotify"
trigger:
- platform: state
entity_id: person.tuo_nome
to: "home"
for: "00:01:30"
condition:
# Solo se è pomeriggio/sera (non mattina presto)
- condition: time
after: "16:00:00"
before: "23:00:00"
# Solo se nessun altro già a casa (evita di sovrascrivere)
- condition: numeric_state
entity_id: zone.home
below: 2 # Massimo 1 persona (tu)
action:
# Accendi media player se spento
- service: media_player.turn_on
target:
entity_id: media_player.spotify_soggiorno
# Avvia playlist "Chill Rientro"
- service: media_player.play_media
target:
entity_id: media_player.spotify_soggiorno
data:
media_content_type: playlist
media_content_id: "spotify:playlist:37i9dQZF1DX4sWSpwq3LiO" # URI Spotify
# Volume 30%
- service: media_player.volume_set
target:
entity_id: media_player.spotify_soggiorno
data:
volume_level: 0.3
Come trovare URI Spotify:
-
App Spotify > Playlist > ⋯ > Condividi > Copia link playlist
-
Link tipo:
https://open.spotify.com/playlist/37i9dQZF1DX4sWSpwq3LiO -
URI =
spotify:playlist:37i9dQZF1DX4sWSpwq3LiO
Musica diversa in base all’orario:
action:
- choose:
# Pomeriggio (16-19): musica energica
- conditions:
- condition: time
after: "16:00:00"
before: "19:00:00"
sequence:
- service: media_player.play_media
data:
media_content_id: "spotify:playlist:ENERGICA_ID"
# Sera (19-23): musica chill
- conditions:
- condition: time
after: "19:00:00"
before: "23:00:00"
sequence:
- service: media_player.play_media
data:
media_content_id: "spotify:playlist:CHILL_ID"
Parte 6: Scene personalizzate per persona
Automazioni diverse per ogni membro famiglia
Input select per tracciare chi è l’ultima persona rientrata:
# Helper
input_select:
ultima_persona_rientrata:
name: "Ultima Persona Rientrata"
options:
- Nessuno
- Mario
- Laura
- Entrambi
initial: Nessuno
automation:
- alias: "Bentornato - Rileva Chi Rientra"
trigger:
- platform: state
entity_id:
- person.mario
- person.laura
to: "home"
for: "00:01:00"
action:
# Identifica chi ha triggerato
- variables:
persona: "{{ trigger.to_state.attributes.friendly_name }}"
# Salva nel helper
- service: input_select.select_option
target:
entity_id: input_select.ultima_persona_rientrata
data:
option: "{{ persona }}"
# Azioni personalizzate per persona
- choose:
# Se rientra Mario
- conditions:
- condition: template
value_template: "{{ trigger.entity_id == 'person.mario' }}"
sequence:
- service: scene.turn_on
target:
entity_id: scene.bentornato_mario
- service: media_player.play_media
target:
entity_id: media_player.spotify_soggiorno
data:
media_content_id: "spotify:playlist:ROCK_MARIO"
- service: climate.set_temperature
data:
temperature: 21 # Mario preferisce caldo
# Se rientra Laura
- conditions:
- condition: template
value_template: "{{ trigger.entity_id == 'person.laura' }}"
sequence:
- service: scene.turn_on
target:
entity_id: scene.bentornato_laura
- service: media_player.play_media
target:
entity_id: media_player.spotify_cucina
data:
media_content_id: "spotify:playlist:POP_LAURA"
- service: climate.set_temperature
data:
temperature: 19 # Laura preferisce fresco
Primo vs secondo rientro
Comportamenti diversi se sei il primo o l’altro è già a casa:
automation:
- alias: "Bentornato - Logica Primo/Secondo"
trigger:
- platform: state
entity_id:
- person.mario
- person.laura
to: "home"
action:
- choose:
# CASO 1: Primo a rientrare (casa vuota)
- conditions:
- condition: numeric_state
entity_id: zone.home
attribute: persons
below: 2 # Solo 1 persona ora
sequence:
- service: scene.turn_on
target:
entity_id: scene.bentornato_primo
- service: climate.turn_on # Accendi clima
- service: notify.mobile_app_altro
data:
message: "{{ trigger.to_state.name }} è appena rientrato"
# CASO 2: Secondo a rientrare (qualcuno già a casa)
- conditions:
- condition: numeric_state
entity_id: zone.home
attribute: persons
above: 1
sequence:
- service: light.turn_on
target:
entity_id: light.ingresso
data:
brightness_pct: 50 # Luce più soft
- service: tts.google_say
data:
message: "Bentornato {{ trigger.to_state.name }}!"
Parte 7: Condizioni avanzate e logiche complesse
Non attivare se piove (non vuoi musica alta)
condition:
- condition: state
entity_id: weather.home
state:
- sunny
- cloudy
- partlycloudy
Attiva solo se rientri dal lavoro (non da commissioni veloci)
condition:
# Sei stato via almeno 4 ore
- condition: template
value_template: >
{{ (as_timestamp(now()) - as_timestamp(states.person.tuo_nome.last_changed)) > 14400 }}
Non disturbare se qualcuno dorme
condition:
- condition: state
entity_id: input_boolean.sleep_mode
state: "off"
Attiva solo primi 2 rientri della giornata
# Helper counter
counter:
rientri_oggi:
name: "Rientri Oggi"
initial: 0
step: 1
automation:
# Reset contatore a mezzanotte
- alias: "Reset Contatore Rientri"
trigger:
- platform: time
at: "00:00:00"
action:
- service: counter.reset
target:
entity_id: counter.rientri_oggi
# Incrementa e valuta
- alias: "Bentornato - Max 2 al Giorno"
trigger:
- platform: state
entity_id: person.tuo_nome
to: "home"
condition:
- condition: numeric_state
entity_id: counter.rientri_oggi
below: 2
action:
- service: counter.increment
target:
entity_id: counter.rientri_oggi
- service: scene.turn_on
target:
entity_id: scene.bentornato
Parte 8: Presenza a livello stanza (ESP32 Bluetooth)
Setup avanzato per automazioni stanza-per-stanza.
Usa ESPresense con ESP32 per rilevare in quale stanza sei tramite Bluetooth:
-
ESP32 in ogni stanza (costo ~5€/pezzo)
-
Smartphone trasmette BLE beacon
-
ESPresense calcola distanza da ogni ESP32
-
HA sa in quale stanza sei
Automazione “Bentornato” stanza-specifica:
automation:
- alias: "Bentornato - Accendi Luce Stanza Rilevata"
trigger:
- platform: state
entity_id: sensor.tuo_smartphone_room
action:
- choose:
- conditions:
- condition: state
entity_id: sensor.tuo_smartphone_room
state: "soggiorno"
sequence:
- service: light.turn_on
target:
entity_id: light.soggiorno
- conditions:
- condition: state
entity_id: sensor.tuo_smartphone_room
state: "cucina"
sequence:
- service: light.turn_on
target:
entity_id: light.cucina
Parte 9: Dashboard e controlli manuali
Card Lovelace per gestire manualmente:
type: vertical-stack
cards:
# Stato presenza
- type: entities
title: "👥 Presenza"
entities:
- person.mario
- person.laura
- sensor.proximity_home
- sensor.proximity_home_dir_of_travel
# Automazione on/off
- type: entities
title: "🏠 Automazioni Bentornato"
entities:
- automation.bentornato_a_casa_base
- automation.clima_prepara_casa_al_rientro
- automation.bentornato_musica_spotify
- input_select.ultima_persona_rientrata
# Scene manuali
- type: button
name: "Simula Rientro"
icon: mdi:home-import-outline
tap_action:
action: call-service
service: scene.turn_on
service_data:
entity_id: scene.bentornato_sera
L’automazione “Bentornato a casa” è una delle più soddisfacenti da implementare: ogni volta che rientri e tutto funziona perfettamente, provi una piccola gioia.
Checklist completa:
-
Rilevamento presenza GPS/WiFi
-
Luci automatiche solo se buio
-
Temperatura regolata in anticipo
-
Musica personalizzata
-
Scene diverse per persona
-
Condizioni intelligenti (meteo, orario)
-
Evita falsi trigger
Investimento minimo:
-
Solo software: 0€ (companion app gratis)
-
Con sensori lux: 10-20€
-
Con ESP32 per BT: 5-30€ (1-6 ESP32)
-
Setup completo: ~50€
Benefici concreti:
-
Risparmi 2-3 minuti ogni rientro
-
Casa sempre accogliente
-
Risparmio energetico (clima acceso solo quando serve)
-
“Wow factor” con ospiti
-
Base per altre automazioni avanzate
Inizia semplice (luci + notifica) e poi aggiungi funzioni man mano. La casa smart inizia da qui!
