Sommario:

Campanello intelligente per HomeAssistant: 4 passaggi
Campanello intelligente per HomeAssistant: 4 passaggi

Video: Campanello intelligente per HomeAssistant: 4 passaggi

Video: Campanello intelligente per HomeAssistant: 4 passaggi
Video: Home Assistant - MQTT & Shelly - Apri il Cancello Remoto Ovunque si trovi - Guida completa 2024, Dicembre
Anonim
Campanello intelligente per assistente domestico
Campanello intelligente per assistente domestico

Quindi, volevo un campanello con le seguenti caratteristiche:

  • Video dalla porta
  • Audio bidirezionale
  • Due pulsanti
  • Integrazione con tablet montato a parete che mostra l'interfaccia utente di HomeAssistant

Sono arrivate alcune opzioni come Doorbird (costoso e non hanno chiamate audio bidirezionali utilizzando HTML5) e Ring campanello (ma non mi piace un abbonamento, campanello basato su cloud)

Come sviluppatore e armeggiatore, ho già terminato alcuni progetti, ma questo è stato di gran lunga uno dei più difficili da completare. Ho avuto molti problemi a far funzionare l'audio a due vie fino a un punto in cui puoi capirti. Questo principalmente perché c'è parecchia eco, …. L'idea viene da DoorPi, ma con il protocollo SIP ho avuto troppa eco che ha portato a non capirci l'un l'altro.

Poiché il mio campanello è completamente protetto dalle intemperie, siamo in grado di realizzare il frontale in legno tagliato a laser.

Forniture

  • Raspberry Pi 3 B o 3B+ (non optare per un Banana Pi con PoE integrato in quanto non supporta l'interfaccia della fotocamera CSI Raspberry Pi standard) = € 33, 67
  • Scheda Micro SD = € 2, 69
  • Fotocamera fisheye Raspberry Pi = € 14, 14
  • Adattatore PoE = € 4, 94
  • RaspiAudio Mic + = € 24, 69
  • Accesso a stampante 3D (e taglio laser)
  • Pulsanti per il campanello
  • Molto tempo!

Si tratta di un totale di € 80, 13.

Fuori portata, il posto interno:

  • HomeConfigurazione dell'assistente con un broker MQTT
  • Tablet Android montato a parete

Passaggio 1: imposta Raspberry Pi

Ti consiglio vivamente di utilizzare ethernet invece del Wi-Fi. La mia qualità audio è migliorata molto grazie a questo. Useremo anche UV4L poiché supporta webrtc e quindi ha la cancellazione dell'eco integrata. Il Doorpi utilizza linphone, un client SIP e non sono riuscito a far funzionare la cancellazione dell'eco.

  • Scarica Raspbian Stretch Lite e installalo sulla scheda Micro SD. Accertati di:

    abilitare ssh creando un file ssh vuoto nella partizione di avvio

  • Esegui i seguenti comandi:

sudo apt-get update

sudo apt-get upgrade

Telecamera

Abilita la fotocamera tramite raspi-config e assicurati che la GPU abbia almeno 192 MB di ram.

RaspiAudio

Segui la guida all'installazione di RaspiAudio disponibile su

UV4L

Segui la guida all'installazione di UV4L disponibile su

Regola il file /etc/uv4l/uv4l-raspicam.conf e assicurati di regolare le seguenti impostazioni:

L'impostazione più notevole è probabilmente --enable-webrtc-video=no: questo perché trasmetteremo sempre il video da uv4l utilizzando mjpeg codificato h264.

Utilizzando i seguenti file che si trovano in /usr/share/uv4l/demos/doorpi/, puoi già testare l'audio e il video a due vie.

  • index.html (rinominalo da index.html5, necessario per rinominarlo a causa dei requisiti di caricamento delle istruzioni)
  • main.js
  • segnalazione.js

Naviga fino a https://[ip-of-raspberrypi]:8888 e verifica se riesci a far funzionare l'audio a 2 vie.

pi-mqtt-gpio

Il modo più semplice che ho trovato per far funzionare i pulsanti del campanello è collegarli al raspberry pi e utilizzare pi-mqtt-gpio per integrarlo con HomeAssistant.

Il mio file di configurazione è il seguente:

mqtt: host: xxxx porta: 1883 utente: [username] password: [password] topic_prefix: "doorbell" gpio_modules: - nome: raspberrypi modulo: raspberrypi cleanup: si digital_inputs: - nome: button_1 modulo: raspberrypi pin: 17 on_payload: " Off" off_payload: "On" pullup: si pulldown: no - nome: button_2 modulo: raspberrypi pin: 27 on_payload: "Off" off_payload: "On" pullup: si pulldown: no

Tieni presente che poiché sono disponibili più pin di terra come pin da 3,3 V, scelgo di utilizzare i pin GPIO di pullup e quindi ho invertito i miei messaggi MQTT.

uv4l-raspicam.conf

driver = raspicam
auto-video_nr = sì
frame-buffer = 4
codifica = h264
larghezza = 1024
altezza = 768
framerate = 10
rotazione = 270 #a seconda della configurazione hardware
opzione-server = --port=9090
opzione-server = --bind-host-address=0.0.0.0
opzione-server = --use-ssl=sì
server-option = --ssl-private-key-file=/etc/uv4l/selfsign.key
server-option = --ssl-certificate-file=/etc/uv4l/selfsign.crt
opzione-server = --enable-webrtc-video=no
opzione-server = --enable-webrtc-audio=sì
opzione-server = --webrtc-vad=sì
opzione-server = --webrtc-echo-cancellation=sì
opzione-server = --webrtc-max-playout-delay=34
opzione-server = --enable-www-server=sì
opzione-server = --www-root-path=/usr/share/uv4l/demos/doorpi/
opzione-server = --www-index-file=index.html
opzione-server = --www-port=8888
opzione-server = --www-bind-host-address=0.0.0.0
opzione-server = --www-use-ssl=yes
server-option = --www-ssl-private-key-file=/etc/uv4l/selfsign.key
opzione-server = --www-ssl-certificate-file=/etc/uv4l/selfsign.crt
opzione-server = --www-webrtc-signaling-path=/webrtc

visualizza rawgistfile1.txt ospitato con ❤ da GitHub

Passaggio 2: scatola del campanello

  • doorbell-back v1.stl: scatola stampata in 3D per raspberry pi e adattatore PoE
  • campanello-front v1.svg: frontalino tagliato al laser
  • doorbell-micro v1.stl: scatola stampata in 3D contenente un microfono avvolto con isolamento acustico, incollato alla piastra frontale

Avvitare il lampone pi nei supporti per viti allegati e posizionare l'adattatore PoE in alto a destra. Metti la fotocamera e il microfono in posizione (assicurati di staccare il microfono e assicurati che il foro del microfono sia ben allineato con un foro nel frontalino).

Passaggio 3: integrazione di HomeAssistant

I seguenti file consentono l'integrazione di HomeAssistant:

  • doorpi.yaml: pacchetto contenente tutto ciò che riguarda il campanello compreso l'ascolto dei messaggi MQTT e le automazioni per riprodurre il campanello alla pressione del campanello
  • www/doorpi/doorpi-card.js: lovelace doorpi card che necessita del signalling.js e doorpi-camera-view.js

IMPORTANTE: tieni presente che devi eseguire HomeAssistant con https/ssl, altrimenti Chrome non ti consentirà di accedere ai dispositivi audio.

Passaggio 4: buona chiamata al campanello

Ecco fatto, ora dovresti essere in grado di chiamare qualcuno tramite il campanello e HomeAssistant passerà automaticamente alla scheda del campanello. Lì puoi decidere di accettare o ignorare il campanello.

Consigliato: