Webcam USB
Una webcam USB collegata direttamente all'host Home Assistant può essere un'ottima soluzione se una camera wireless è troppo lenta o va a scatti: non c'è rete di mezzo, quindi la latenza è minima. Superhome legge solo RTSP, perciò la webcam va prima esposta come stream RTSP. Su Home Assistant OS il modo più pulito per farlo è l'add-on go2rtc.
Questi passaggi funzionano su Home Assistant OS a prescindere dalla macchina: un Raspberry Pi oppure un mini-PC / server di casa x86. Abbiamo validato questa procedura su un Raspberry Pi 5. Se non stai usando Home Assistant OS (per esempio un normale PC Linux o un worker Docker standalone), salta all'alternativa più in basso.
Consigliato su HAOS: l'add-on go2rtc
go2rtc è integrato nel core di Home Assistant dalla versione 2024.11, ma per le
webcam USB conviene l'add-on dedicato. L'add-on viene avviato con accesso
ai device video/audio dell'host (video: true), quindi vede la webcam su
/dev/video0 senza dover mappare manualmente il device. Il go2rtc integrato nel
core gira invece in un container che non sempre ha accesso a /dev/video*.
1. Aggiungere il repository dell'add-on
-
Vai su Impostazioni → Add-on → Store add-on.
-
In alto a destra apri il menu a tre puntini (⋮) → Repository.
-
Incolla questo URL e premi Aggiungi:
https://github.com/AlexxIT/hassio-addons -
Chiudi la finestra.
2. Installare go2rtc
- Ricarica la pagina dello store (a volte serve un refresh del browser).
- Scorri in fondo fino alla sezione AlexxIT add-ons e apri go2rtc.
- Premi Installa. Il download dell'immagine richiede qualche minuto su un Raspberry Pi.
3. Avviare l'add-on
Nella scheda Info dell'add-on attiva Avvia all'avvio (Start on boot) e Watchdog, poi premi Avvia.
4. Configurare lo stream
Puoi modificare la configurazione direttamente dalla Web UI di go2rtc
(consigliato), oppure modificare il file /config/go2rtc.yaml (stessa cartella di
configuration.yaml) con un add-on tipo File editor o Studio Code Server. Per
aprire la Web UI premi Apri interfaccia web nella pagina dell'add-on: gira sulla
porta 1984.
Questa configurazione minima è quella che ha funzionato per noi, ed è la prima da provare:
streams:
usb_cam:
- ffmpeg:device?video=/dev/video0#video=h264
Nella maggior parte dei casi una singola webcam USB è /dev/video0, quindi questa
configurazione funziona così com'è (usa sempre il path completo, non solo
video0). Se la tua camera non è su /dev/video0 (per esempio hai più di un
device video, oppure questa configurazione non mostra immagine), la Web UI di
go2rtc elenca i device rilevati: premi add per vedere le sorgenti disponibili e
i relativi path, poi metti il /dev/videoN corretto nella configurazione qui
sopra.
#video=h264 dice a go2rtc di transcodificare il flusso in H264. È necessario
perché molte webcam USB escono in MJPEG o YUV raw, formati che RTSP/WebRTC
gestiscono male.
Dopo aver salvato, riavvia l'add-on. Poi, dalla home page della Web UI di go2rtc,
clicca stream accanto alla voce usb_cam per vederne l'anteprima dal vivo. È il
modo più rapido per confermare che la camera funziona prima di agganciare l'URL a
Superhome.
Se la webcam supporta l'uscita H264 nativa, puoi evitare la transcodifica con
#video=copy, molto più leggero sull'host:
streams:
usb_cam:
- ffmpeg:device?video=/dev/video0&input_format=h264&video_size=1280x720#video=copy
Qui video_size=1280x720 è solo un placeholder: impostalo a una risoluzione che la
tua webcam supporta davvero (es. 1920x1080). Se scegli una dimensione che la
camera non offre, lo stream non parte. Nel dubbio, la configurazione con
transcodifica qui sopra (#video=h264, senza video_size) è la prima scelta più
sicura.
5. Verificare l'URL RTSP
L'URL RTSP da usare è:
rtsp://<host-ip>:8554/usb_cam
Usa l'indirizzo IP della macchina che esegue HAOS. Prima di agganciarlo a Superhome, testalo con VLC (Media → Apri flusso di rete) da un computer sulla stessa rete.
6. Usarlo in Superhome
Incolla l'URL RTSP nel campo rtsp_url della scheda Configurazione di
Superhome. La connessione si ristabilisce automaticamente, senza bisogno di
riavviare.
La Web UI di go2rtc (porta 1984) non è protetta da password, e chiunque sia sulla
tua rete locale può aprirla e vedere le anteprime delle camere. Per il normale uso
domestico su una rete fidata va bene. L'importante è non esporre la porta 1984 su
internet. Se ti serve farlo, go2rtc supporta l'autenticazione nella sezione api
della sua configurazione.
Alternativa per un PC normale (non HAOS)
Se non sei su Home Assistant OS, per esempio un normale PC Linux o un worker Docker standalone, non hai lo store degli add-on, quindi devi configurare tu lo stream RTSP. Due opzioni semplici:
Opzione A: eseguire go2rtc direttamente. go2rtc è un singolo binario
(disponibile anche come immagine Docker, alexxit/go2rtc). Crea un go2rtc.yaml
con lo stesso identico blocco streams: mostrato sopra ed eseguilo; l'URL
risultante è lo stesso rtsp://<host-ip>:8554/usb_cam. Su Linux la webcam compare
comunque come /dev/video0.
Opzione B: usare v4l2rtspserver per qualsiasi webcam UVC:
# Install v4l2rtspserver (Debian/Ubuntu/Raspbian)
apt install v4l2rtspserver
# Run (adjust /dev/video0 and resolution as needed)
v4l2rtspserver -W 1280 -H 720 -F 15 /dev/video0
Poi usa questo URL come rtsp_url:
rtsp://<host-ip>:8554/unicast
In entrambi i casi, verifica prima lo stream con VLC, poi incolla l'URL nella scheda Configurazione di Superhome esattamente come al passo 6.