Home Assistant è una delle piattaforme domotiche più potenti e aperte, ma non tutti i dispositivi smart sono nativamente compatibili.
I motivi principali:
-
Cloud proprietario obbligatorio (Tuya, eWeLink, app cinesi senza API locali)
-
Protocolli chiusi non documentati
-
Nessuna integrazione ufficiale sviluppata dalla community
-
Firmware limitato che blocca controllo locale
La buona notizia: nella maggior parte dei casi puoi aggirare questi limiti usando tecniche avanzate come flash firmware custom, bridge MQTT, integrazioni locali o API REST.
Questa guida ti mostra 5 metodi collaudati per portare quasi qualsiasi dispositivo smart dentro Home Assistant, con controllo locale e senza dipendenze cloud.
Metodo 1: Flash firmware Tasmota o ESPHome (dispositivi WiFi ESP8266/ESP32)
Cos’è e quando usarlo
Il metodo più potente per dispositivi WiFi economici basati su chip ESP8266 o ESP32 (Sonoff, Tuya rebrand, prese smart no-name) è sostituire il firmware proprietario con uno open source come Tasmota o ESPHome.
Vantaggi:
-
Controllo 100% locale (no cloud, niente ritardi)
-
Auto-discovery in Home Assistant
-
Aggiornamenti OTA (Over-The-Air)
-
Personalizzazione totale (GPIO, sensori custom, automazioni)
Requisiti:
-
Dispositivo con chip ESP8266 o ESP32 (verifica su database Tasmota/ESPHome)
-
USB-to-Serial adapter (CP2102, CH340G, ~5€)
-
Cavetti dupont per collegamento GPIO
-
PC con Windows/Mac/Linux
Passo 1: Verifica compatibilità hardware
Prima di smontare, controlla su:
-
Tasmota Device Templates: https://templates.blakadder.com/
-
ESPHome Device Database: cerca il modello esatto
Se trovi il tuo dispositivo, hai già la configurazione GPIO pronta!
Passo 2: Disassembla il dispositivo
Attenzione: Lavora sempre scollegato dalla rete 220V!
Per prese smart tipo Sonoff S31:
-
Rimuovi viti esterne (spesso nascoste sotto etichette)
-
Apri il case con spatola plastica
-
Individua il chip ESP (di solito 8 pin visibili)
Passo 3: Collega GPIO per flash
Pin necessari (standard ESP8266):
-
VCC (3.3V)
-
GND
-
TX (trasmissione)
-
RX (ricezione)
-
GPIO0 (per boot mode)
Schema collegamento USB-to-Serial:
ESP8266 → USB Serial Adapter VCC (3.3V) → 3.3V GND → GND TX → RX RX → TX GPIO0 → GND (durante boot, poi scollega)
Importante: GPIO0 a GND solo durante l’accensione per entrare in “flash mode”, poi puoi scollegarlo.
Passo 4: Flash firmware con ESPHome (metodo consigliato 2026)
4.1 Installa ESPHome in Home Assistant:
-
Vai su Impostazioni > Componenti aggiuntivi
-
Cerca ESPHome e installa
4.2 Crea nuovo device:
# Esempio: presa smart Sonoff S31
esphome:
name: presa-soggiorno
platform: ESP8266
board: esp01_1m
wifi:
ssid: "TuoWiFi"
password: "TuaPassword"
api:
encryption:
key: !secret api_key
ota:
password: !secret ota_password
logger:
switch:
- platform: gpio
name: "Presa Soggiorno"
pin: GPIO12
id: relay
binary_sensor:
- platform: gpio
name: "Pulsante Presa"
pin:
number: GPIO0
inverted: true
4.3 Compila firmware:
-
Clicca Install > Manual download
-
Scarica file
.bin
4.4 Flash con ESPHome Flasher:
-
Scarica ESPHome Flasher (Windows/Mac/Linux)
-
Seleziona file
.bin -
Scegli porta COM/USB
-
Clicca Flash ESP
4.5 Riassembla e testa:
-
Scollega USB adapter
-
Richiudi dispositivo
-
Alimenta normalmente 220V
-
Home Assistant rileva automaticamente il nuovo device!
Alternativa: Tasmota (più universale, meno integrato)
Quando preferire Tasmota:
-
Hai già molti dispositivi Tasmota
-
Vuoi interfaccia web standalone (non dipendi da HA)
-
Serve compatibilità con più piattaforme (Domoticz, openHAB, ecc.)
Configurazione Tasmota per Home Assistant:
-
Flash Tasmota tramite Tasmotizer o esptool
-
Configura WiFi via web interface (http://192.168.4.1)
-
Imposta MQTT in Tasmota:
-
Configuration > Configure MQTT
-
Host: IP di Home Assistant
-
Topic:
presa_soggiorno
-
-
In Home Assistant:
-
Installa integrazione Tasmota (firmware 9.2+)
-
Auto-discovery attivato via MQTT
-
Tasmota crea automaticamente entità switch/sensor in HA.
Metodo OTA senza cavi: Tuya-Convert (funziona solo su vecchi firmware)
Per dispositivi Tuya mai aggiornati (firmware pre-2020), esiste Tuya-Convert che flasha WiFi senza aprire il dispositivo:
-
Configura Raspberry Pi con tuya-convert
-
Dispositivo Tuya in pairing mode
-
Script automatico flasha Tasmota/ESPHome via WiFi
Limitazione: Tuya ha chiuso la vulnerabilità, funziona solo su stock vecchi.
Metodo 2: Local Tuya (dispositivi Tuya senza flash)
Quando usare Local Tuya
Se hai dispositivi Tuya/Smart Life che:
-
Vuoi mantenere compatibili con app originale
-
Non vuoi flashare (garanzia, difficoltà hardware)
-
Supportano comunicazione locale WiFi (la maggior parte)
Local Tuya permette di controllare dispositivi Tuya localmente senza passare dal cloud (dopo setup iniziale).
Prerequisiti
-
HACS installato in Home Assistant
-
Dispositivi Tuya sulla stessa rete WiFi di HA
-
Account Tuya/Smart Life (per recuperare chiavi iniziali)
Passo 1: Ottieni Local Key e Device ID
Metodo A: Via Tuya IoT Platform (ufficiale, consigliato 2026)
-
Vai su https://iot.tuya.com/
-
Crea account sviluppatore (gratuito)
-
Crea “Cloud Project” > seleziona datacenter (EU/US/CN)
-
Collega account Smart Life/Tuya esistente
-
Vai su Devices > vedrai tutti i tuoi dispositivi con:
-
Device ID
-
Local Key
-
IP address (se online)
-
Metodo B: Via debug Smart Life app (alternativo)
Usa app tipo Packet Capture su Android per intercettare comunicazioni e estrarre local key (più complesso).
Passo 2: Installa Local Tuya in Home Assistant
-
Apri HACS > Integrazioni
-
Cerca “Local Tuya”
-
Installa
-
Riavvia Home Assistant
Passo 3: Configura integrazione
-
Impostazioni > Dispositivi e servizi > Aggiungi integrazione
-
Cerca Local Tuya
-
Scegli “Do not configure Cloud API Account” (già abbiamo local key)
-
Clicca Submit
Passo 4: Aggiungi dispositivo manualmente
-
Nell’integrazione Local Tuya, clicca “Add a new device”
-
Inserisci:
-
Host: IP locale del dispositivo (es. 192.168.1.50)
-
Device ID: copiato da Tuya IoT Platform
-
Local Key: copiato da Tuya IoT Platform
-
Protocol version: 3.3 (la maggior parte dei device 2020+)
-
-
Clicca Submit
Passo 5: Configura DPS (Data Points)
Local Tuya chiede di mappare i DPS (funzioni del dispositivo):
Esempio presa smart:
-
DPS 1 = Switch (on/off)
-
DPS 18 = Corrente (mA)
-
DPS 19 = Potenza (W)
-
DPS 20 = Tensione (V)
Puoi trovare i DPS corretti su:
-
Database community Local Tuya
-
Sperimentando manualmente (cambia valore e vedi cosa accade)
Configurazione tipo:
Entity: switch DPS: 1
Risultato: Home Assistant crea entità switch.presa_tuya controllabile localmente!
Metodo 3: Bridge MQTT per dispositivi con protocolli custom
Cos’è MQTT e quando usarlo
MQTT (Message Queue Telemetry Transport) è un protocollo leggero publish/subscribe perfetto per IoT.
Usa MQTT bridge quando:
-
Dispositivo ha API/SDK non integrato in HA
-
Vuoi centralizzare comunicazione tra piattaforme diverse
-
Hai dispositivi DIY (Arduino, ESP senza Tasmota, sensori custom)
Setup MQTT Broker in Home Assistant
Passo 1: Installa Mosquitto add-on
-
Impostazioni > Componenti aggiuntivi > Archivio add-on
-
Cerca Mosquitto broker
-
Installa e avvia
Passo 2: Configura integrazione MQTT
-
Impostazioni > Dispositivi e servizi > MQTT
-
Home Assistant rileva automaticamente Mosquitto locale
-
Conferma configurazione
Esempio: Dispositivo custom via MQTT
Scenario: Hai un sensore temperatura fatto con Arduino che pubblica su MQTT.
Codice Arduino (pubblica temperatura):
#include <PubSubClient.h>
void loop() {
float temp = readTemperature();
char msg[10];
dtostrf(temp, 4, 1, msg);
client.publish("casa/soggiorno/temperatura", msg);
delay(60000); // ogni minuto
}
Configurazione Home Assistant (configuration.yaml):
mqtt:
sensor:
- name: "Temperatura Soggiorno"
state_topic: "casa/soggiorno/temperatura"
unit_of_measurement: "°C"
device_class: temperature
Risultato: Entità sensor.temperatura_soggiorno visibile in HA!
MQTT Discovery (auto-creazione entità)
Per dispositivi avanzati, usa MQTT Discovery che crea automaticamente entità:
Topic speciale:
homeassistant/sensor/soggiorno_temp/config
Payload JSON:
{
"name": "Temperatura Soggiorno",
"state_topic": "casa/soggiorno/temperatura",
"unit_of_measurement": "°C",
"device_class": "temperature",
"unique_id": "temp_soggiorno_01"
}
Home Assistant rileva automaticamente e crea l’entità senza modificare configuration.yaml!
Metodo 4: REST API per dispositivi con interfaccia web
Quando usare REST sensor/switch
Molti dispositivi smart hanno API REST (HTTP GET/POST) anche se non ufficialmente integrate in HA.
Casi tipici:
-
NAS (Synology, QNAP)
-
Router/switch gestiti
-
Dispositivi custom con web server
-
Servizi web (meteo, energia, trasporti)
Esempio: Sensore REST da API pubblica
Scenario: Vuoi mostrare prezzo Bitcoin in HA.
Configurazione (configuration.yaml):
sensor:
- platform: rest
resource: https://api.coindesk.com/v1/bpi/currentprice/EUR.json
name: "Prezzo Bitcoin"
value_template: "{{ value_json.bpi.EUR.rate_float }}"
unit_of_measurement: "€"
scan_interval: 300 # Aggiorna ogni 5 minuti
Risultato: sensor.prezzo_bitcoin con valore aggiornato.
Esempio: Switch REST per dispositivo custom
Scenario: Hai un relay controllabile via HTTP (es. ESP8266 custom).
Configurazione:
switch:
- platform: rest
name: "Luce Garage Custom"
resource: http://192.168.1.100/relay
body_on: '{"state":"ON"}'
body_off: '{"state":"OFF"}'
is_on_template: "{{ value_json.state == 'ON' }}"
headers:
Content-Type: application/json
Funzionamento:
-
Accensione: POST a
http://192.168.1.100/relaycon body{"state":"ON"} -
Spegnimento: POST con
{"state":"OFF"} -
Stato: GET ritorna JSON con campo
state
REST con autenticazione
Per API protette:
Funzionamento:
Accensione: POST a http://192.168.1.100/relay con body {"state":"ON"}
Spegnimento: POST con {"state":"OFF"}
Stato: GET ritorna JSON con campo state
REST con autenticazione
Per API protette:
Metodo 5: Node-RED per logiche complesse e bridge custom
Cos’è Node-RED
Node-RED è una piattaforma visual programming perfetta per creare bridge custom tra dispositivi incompatibili e Home Assistant.
Quando usarlo:
-
Dispositivo ha protocollo troppo complesso per configurazione YAML
-
Serve pre-elaborazione dati (parsing, calcoli, conversioni)
-
Vuoi automazioni grafiche invece che YAML
Installazione Node-RED in Home Assistant
-
Impostazioni > Componenti aggiuntivi > Archivio add-on
-
Cerca Node-RED
-
Installa (include già integrazione Home Assistant)
-
Avvia e apri interfaccia web (porta 1880)
Esempio: Bridge HTTP → MQTT → Home Assistant
Scenario: Dispositivo invia dati solo via HTTP GET non standard.
Flow Node-RED:
-
HTTP IN node (ascolto su
/webhook/dispositivo) -
Function node (parsing e trasformazione):
// Estrai temperatura da query params var temp = msg.payload.t; msg.payload = { temperatura: parseFloat(temp), timestamp: new Date() }; return msg; -
MQTT OUT node (pubblica su
casa/dispositivo/temp) -
Home Assistant legge via MQTT sensor (come Metodo 3)
Risultato: Dispositivo HTTP incompatibile → Node-RED → MQTT → Home Assistant ✅
Controllo dispositivi da Node-RED
Node “call service” permette di chiamare servizi HA:
-
Accendi luci
-
Invia notifiche
-
Cambia clima
-
Triggera automazioni
Vantaggio: Puoi creare logiche complesse con UI grafica invece che YAML!
Metodo 6: Template sensor/switch per aggregazioni custom
Quando usare template
Se hai dispositivi parzialmente integrati ma vuoi:
-
Aggregare più sensori (es. media temperatura casa)
-
Calcolare valori derivati (consumo orario da watt istantanei)
-
Creare switch virtuali che controllano gruppi
Template sensor è potentissimo e non richiede hardware/software extra!
Esempio: Temperatura media da 3 sensori
# configuration.yaml
template:
- sensor:
- name: "Temperatura Media Casa"
unit_of_measurement: "°C"
state: >
{{
(
states('sensor.temp_soggiorno')|float +
states('sensor.temp_camera')|float +
states('sensor.temp_cucina')|float
) / 3 | round(1)
}}
Esempio: Switch virtuale per gruppo luci
switch:
- platform: template
switches:
tutte_luci_piano_terra:
friendly_name: "Tutte Luci Piano Terra"
value_template: "{{ is_state('light.soggiorno', 'on') or is_state('light.cucina', 'on') }}"
turn_on:
- service: light.turn_on
target:
entity_id:
- light.soggiorno
- light.cucina
- light.ingresso
turn_off:
- service: light.turn_off
target:
entity_id:
- light.soggiorno
- light.cucina
- light.ingresso
Risultato: Un solo switch controlla 3 luci insieme.
Quale metodo scegliere?
Checklist finale prima di integrare
Verifica se esiste integrazione ufficiale (https://www.home-assistant.io/integrations/) – magari è già supportato!
Controlla database community:
-
Tasmota templates
-
ESPHome devices
-
HACS custom integrations
Documenta configurazione originale prima di flashare (screenshot app, backup configurazioni)
Testa su un solo dispositivo prima di flashare 10 prese uguali
Fai backup Home Assistant prima di modifiche importanti a configuration.yaml
Home Assistant è incredibilmente flessibile: quasi ogni dispositivo smart può essere integrato con uno dei metodi sopra.
Per il 2026, l’approccio consigliato è:
-
Prima opzione: Cerca integrazione ufficiale o HACS
-
Dispositivi WiFi economici: Flash ESPHome (massimo controllo locale)
-
Dispositivi Tuya da mantenere stock: Local Tuya
-
Dispositivi con API: REST sensor/switch
-
Casi complessi: Node-RED o MQTT bridge
Con questi strumenti, nessun dispositivo smart resta escluso dalla tua domotica Home Assistant!
