Proudly debugging the system since 1981

Tag: raspberry

Come ho configurato un assistente vocale locale con Anker PowerConf su Home Assistant OS

Ciao! Dopo un lungo percorso di test e configurazione, ho finalmente un assistente vocale locale funzionante sul mio Raspberry Pi con Home Assistant OS, usando l’Anker PowerConf come speakerphone USB. Wake word “Hey raspy”, voce italiana “Riccardo low” e trascrizione Whisper locale (lenta ma gratuita). Ecco il mio viaggio, strumenti usati, problemi risolti e risorse.

Strumenti utilizzati

  • Hardware: Anker PowerConf (speaker + microfono USB), Raspberry Pi (HA OS 2026.2.1).
  • Software:
    • Assist Microphone (add-on principale per input/output audio).
    • openWakeWord (wake word “Hey raspy”).
    • Wyoming Faster Whisper (STT locale).
    • Piper TTS (“Riccardo low”).

Config Assist Microphone finale:​

textsound_enabled: true
noise_suppression: 5
auto_gain: 3
mic_volume_multiplier: 3
sound_volume_multiplier: 1
debug_logging: true

Passi della configurazione

  1. PowerConf USB: Riconosciuto come alsa_input.usb-Anker_PowerConf.mono-fallback / alsa_output.usb-Anker_PowerConf.analog-stereo (ha audio info).
  2. Add-on installati:
    • openWakeWord.
    • Faster Whisper.
    • Piper TTS.
    • Assist Microphone (input/output PowerConf).
  3. Pipeline (Impostazioni → Assistenti vocali):
    • Wake word: openWakeWord → “Hey raspy”.
    • STT: Faster Whisper.
    • TTS: Piper → “Riccardo low”.
  4. Test: “Hey raspy, che ora è?” → wake word, trascrizione, TTS dal PowerConf.

Difficoltà e soluzioni

  • PowerConf riconosciuto ma ALSA vuoto (arecord -l vuoto): sudo alsa force-reload + restart PipeWire. Confermato con pactl list sources short.
  • openWakeWord instabile (1/20): YAML config: textthreshold: 0.2 trigger_level: 1 debug_logging: true
    • Assist Microphone auto_gain: 3, mic_volume_multiplier: 3 → ~70-80% affidabile.
  • Errore “assistente non connette a HA”: Impostazione corretta URL di Home assistant in Configurazione → Rete
  • Whisper lento (10-20s): Funziona locale; opzione futura Whisper Cloud.

Risorse utili

Funziona per comandi base, wake word migliorato ma non perfetto. Whisper locale gratuito ma lento.
L’ agente di conversazione e’ stato realizzato con Extended OpenAI Conversation, una estensione disponibile su HACS che permette di usare LLM di altre provider diversi da OpenAI. La scelta e’ stata per un proxy OpenWebUI che a sua volta rimanda a Groq.

Penso passero a Whisper cloud in quanto le limitate risorse del raspberry permettono di far girare solo un modello piccolo (tiny e small.int8) che non solo e’ lento ma anche impreciso, specie con la lingua italiana per la quale non e’ disponibile un modello specifico ma si deve usare il modello internazionale.

Home Assistant e Yi Home

Qualche anno fa mi ero imbarcato, senza troppo successo, in un progetto di decodifica delle comunicazioni tra le telecamere Yi Home e il suo cloud per renderle utilizzabile il flusso senza l’odiosa app che ai tempi aveva smesso di funzionare bene. Il problema era abbastanza complesso, la chiave non era facilmente ricavabile e poi la app è tornata a funzionare, tutto sommato, bene e quindi il progetto si è arenato.

Ora, da qualche tempo l’app è stata letteralmente riempita di pubblicità e per motivi diversi è tornata quindi ad essere inutilizzabile, MA qualche brava persona ha rilasciato dei firmware modificati per fare tante belle cose.

In base al modello si può trovare il firmware modificato su:

Per quanto riguarda ho utilizzato esclusivamente il firmware Yi Hack V5 su due telecamere Yi Dome e una Yi Outdoor. L’obbiettivo era rendere le telecamere integrate con HomeAssistant.

Il risultato è lontano dall’essere perfetto per via delle limitazioni dell’hardware delle telecamere, veramente essenziale, dal fatto che si usa una scheda microsd come file system con tanto di memoria virtuale e che i firmware modificati non sono bugfree (ma cosa lo è?).

Pero si riesce ad avere un flusso video in tempo reale, la notifica dei movimenti, e la registrazione del video del movimento. Senza perdere le funzionalità dell’app proprietaria. Magari in un prossimo articolo scenderò un po più in dettaglio sia per Home Assistant (che ho installato su un raspberry pi 5 nuovo) sia sulle telecamere.

PhotoPrism

Continuo la serie di segnalazioni di software con PhotoPrism. La ricerca di un software migliore per gestire il mio personale archivio di foto e’ nata dalla consapevolezza delle capacita’ dell’ AI di categorizzare le foto dopo un meetup di Codemotion.

Con tutte le evoluzioni avvenute negli ultimi 20 anni e’ davvero riduttivo avere un archivio di foto il cui unico indice e’ la data in cui la foto e’ stata scattata.

PhotoPrism, in modo assolutamente semplice permette di aggiungere il luogo (dati EXIF), la persona nella foto e alcuni tag basati sul contenuto delle foto.

La categorizzazione AI delle foto incide sugli ultimi due aspetti, riconoscimento dei volti, e riconoscimento delle situazioni e dei contenuti delle foto.

Il primo e’ ragionevolmente efficace, il secondo qualche spazio di miglioramento sicuramente ce lo ha ma già da un buon contributo.

L’istanza che ho messo in piedi gira sul Raspberry Pi 5, insieme a molte altre cose tra cui anche il recentemente citato Jellyfin, e si e’ scansionato 32000 foto e 1000 video in meno di 24 ore utilizzando solo la potenza di calcolo del Raspberry, senza utilizzare servizi esterni a supporto ma solo il modello locale di AI installato con PhotoPrism. Unica accortezza: dargli un po’ swap su disco (2-4 giga), essendo il mio con solo 4 giga di ram. Nei modelli con 8 giga si può evitare.

Qualche riferimento:

P.S.: Come ho scoperto PhotoPrism? Ho chiesto a Gemma.

Da Plex a Jellyfin

Plex tra un po’ ( 29 Aprile 2025 ) cambia alcuni prezzi.

Info qua

Quello che interessa a me e’ che fino ad oggi era possibile fare streaming dei propri media, siano essi foto, musica o video, anche fuori dalla rete locale, sulle app o via web senza pagare un abbonamento. Bastava aprire un paio di porte sul proprio router e il cloud di Plex faceva la magia. L’unico costo era per la sola app per smartphone e si trattava di un costo singolo per avere lo streaming dei media fuori dalla rete locale.

Ora invece per poter fare streaming fuori dalla propria rete bisogna pagare un abbonamento. E per ascoltare o vedere le MIE cose mi sembra un po’ un’assurdità.

L’alternativa che ho trovato, e parzialmente sperimentato e’Jellyfin. Che e’ completamente open source e non dovrebbe iniziare a monetizzare sui suoi utenti solo perché qualche stratega aziendale dice che e’ il modo giusto di fare.

Che poi va anche bene far pagare un servizio, ma nel caso di Plex si tratta di poco più un dynamic dns venduto a 2 dollari al mese.

Ritornando a JellyFin si installa facilmente su Raspberry PI ma per avere i propri media accessibili ovunque la faccenda e’ un po’ più complicata non avendo un cloud a supporto.

Prima cosa bisogna individuare un servizio di DNS dinamico, dando per scontato che la maggior parte degli utilizzatori domestici non ha un IP statico e che quindi ad ogni riavvio del router questo cambia.

FREEDNS.afraid.org ha una interfaccia orribile anni 90, ma funziona con un semplice script curl pianificabile nella crontab del Raspberry.

E questo punto esponendo le porte di Jellyfin sul router (8096 e 8920) siamo quasi a posto.

Rimane qualche raccomandazione, essendo esposti su internet settiamo una password bella complicata e NON utilizziamo la connessione in http per farla passare o qualcuno potrebbe intercettarla.

E qua iniziano i problemi un po’ piu’ complicati. Jellyfin espone un servizio https sulla 8920 ma non ha un certificato e non e’ integrato con LetsEncrypt per l’aggiornamento automatico.

La soluzione che ho adottato io e’ di generare un certificato selfsigned di durata molto lunga, di creare un sottodominio sul mio VPS, agganciare questo al rinnovo automatico di LetsEncrypt e di fare reverse proxy verso Jellyfin. In questo modo i client si trovano un certificato firmato e valido, mentre tra i due server (VPS e Jellyfin) la comunicazione e’ comunque protetta da crittografia e in internet non passano password in chiaro.

Per far digerire ad Apache2 un certificato selfsigned solo per il virtualhost dedicato a Jellyfin ho inserito le direttive:

SSLProxyVerify none
SSLProxyCheckPeerName off
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off

Il tutto fa un giro un po strano, mi consuma la banda del VPS (che pero’ tanto non pago a consumo), ha una difficoltà tecnica che non e’ proprio per tutti pero’ funziona.

RustDesk su Raspberry Pi 5

Questo titolo ha troppe R. Comunque visto che ho dovuto mettere insieme un po tanti pezzi per fare andare RustDesk, un ottima alternativa free ad AnyDesk, sul mio nuovissimo Raspberry Pi 5 condivido alcune informazioni.

L’obbiettivo era avere RustDesk funzionante, con avvio automatico, sul raspberry non collegato ad alcun monitor (modalità headless).

Per ottenere il risultato desiderato con la versione disponibile al momento della scrittura ( 1.2.3-aarch64 ) si deve:

Configurare il server grafico con X11. Con wayland non ho trovato alcun modo. Si fa da raspi-config -> advanced option -> Wayland

Configurare il boot con terminale. Sempre raspi-config -> System -> Boot / Autologin. X non deve partire in automatico.

Raspi-config per configuare boot e auto login

Installare il pacchetto xserver-xorg-video-dummy ( rif: https://github.com/rustdesk/rustdesk/pull/3902 ) … il resto dovrebbe gia esserci.

Rustdesk deve essere configurato per l’accesso non sorvergliato e con una password fissa.

Fatto questo si puo staccare riavviare, staccare monitor e tastiera, e accedere da remoto.

© 2026 b0sh.net

Tema di Anders NorenSu ↑