Tabla de contenido:

Timbre inteligente para HomeAssistant: 4 pasos
Timbre inteligente para HomeAssistant: 4 pasos

Video: Timbre inteligente para HomeAssistant: 4 pasos

Video: Timbre inteligente para HomeAssistant: 4 pasos
Video: Así FUNCIONAN los nuevos TIMBRES INTELIGENTES - Ring Video Doorbell 4 2024, Noviembre
Anonim
Timbre inteligente para HomeAssistant
Timbre inteligente para HomeAssistant

Entonces, quería un timbre con las siguientes características:

  • Video desde la puerta
  • Audio bidireccional
  • Dos botones
  • Integración con una tableta montada en la pared que muestra la interfaz de usuario de HomeAssistant

Algunas opciones aparecieron como Doorbird (caro y no tienen llamadas de audio bidireccionales usando HTML5) y Ring doorbell (pero no me gusta una suscripción, timbre basado en la nube)

Como desarrollador y retocador, ya terminé algunos proyectos, pero este fue, con mucho, uno de los más difíciles de completar. Tuve muchos problemas para lograr que el audio bidireccional funcionara hasta un punto en el que pudieran entenderse. Esto principalmente porque hay bastante eco,…. La idea viene de DoorPi, pero con el protocolo SIP tuve demasiado eco que hizo que no nos entendiéramos.

Dado que mi timbre está completamente protegido de los elementos, podemos hacer el frente en madera cortada con láser.

Suministros

  • Raspberry Pi 3 B o 3B + (no opte por un Banana Pi con PoE integrado, ya que no es compatible con la interfaz de cámara CSI estándar de Raspberry Pi) = € 33, 67
  • Tarjeta Micro SD = 2, 69 €
  • Cámara ojo de pez Raspberry Pi = 14, 14 €
  • Adaptador PoE = 4, 94 €
  • Micrófono RaspiAudio + = 24, 69 €
  • Acceso a impresora 3D (y cortadora láser)
  • Botones para el timbre
  • ¡Un montón de tiempo!

Esto suma un total de 80, 13 €.

Fuera de alcance, la estación interior:

  • Configuración de HomeAssistant con un agente MQTT
  • Tableta Android montada en la pared

Paso 1: Configurar Raspberry Pi

Le recomiendo encarecidamente que utilice Ethernet en lugar de Wifi. Mi calidad de audio mejoró mucho gracias a eso. También usaremos UV4L ya que es compatible con webrtc y, por lo tanto, tiene incorporada la cancelación de eco. El Doorpi usa linphone, un cliente SIP y no pude hacer funcionar la cancelación de eco.

  • Descarga Raspbian Stretch Lite e instálalo en la tarjeta Micro SD. Asegúrese:

    habilite ssh creando un archivo ssh vacío en la partición de arranque

  • Ejecute los siguientes comandos:

sudo apt-get update

sudo apt-get upgrade

Cámara

Habilite la cámara a través de raspi-config y asegúrese de que la GPU tenga al menos 192 MB de RAM.

RaspiAudio

Siga la guía de instalación de RaspiAudio que se encuentra en

UV4L

Siga la guía de instalación de UV4L que se encuentra en

Ajuste el archivo /etc/uv4l/uv4l-raspicam.conf y asegúrese de ajustar la siguiente configuración:

La configuración más notable es probaby --enable-webrtc-video = no: esto se debe a que siempre transmitiremos el video desde uv4l usando mjpeg codificado en h264.

Usando los siguientes archivos ubicados en / usr / share / uv4l / demos / doorpi /, ya puede probar el audio y video bidireccional.

  • index.html (cámbiele el nombre de index.html5, es necesario cambiar el nombre debido a los requisitos de carga de instructables)
  • main.js
  • signalling.js

Vaya a https:// [ip-of-raspberrypi]: 8888 y pruebe si puede hacer funcionar el audio bidireccional.

pi-mqtt-gpio

La forma más fácil que encontré para hacer funcionar los botones del timbre es adjuntarlos al raspberry pi y usar pi-mqtt-gpio para integrarlo con HomeAssistant.

Mi archivo de configuración es el siguiente:

mqtt: host: xxxx puerto: 1883 usuario: [nombre de usuario] contraseña: [contraseña] topic_prefix: "timbre" gpio_modules: - nombre: raspberrypi módulo: raspberrypi limpieza: sí digital_inputs: - nombre: button_1 módulo: raspberrypi pin: 17 on_payload: " Off "off_payload:" On "pullup: sí pulldown: no - nombre: button_2 módulo: raspberrypi pin: 27 on_payload:" Off "off_payload:" On "pullup: sí pulldown: no

Tenga en cuenta que como hay más pines de tierra disponibles como pines de 3.3V, elijo usar pines GPIO pullup y, por lo tanto, invertí mis mensajes MQTT.

uv4l-raspicam.conf

conductor = raspicam
auto-video_nr = sí
frame-buffers = 4
codificación = h264
ancho = 1024
altura = 768
velocidad de fotogramas = 10
rotación = 270 # dependiendo de la configuración de su hardware
opción-servidor = --port = 9090
opción-servidor = --bind-host-address = 0.0.0.0
opción-servidor = --use-ssl = yes
opción-servidor = --ssl-archivo-clave-privada = / etc / uv4l / selfsign.key
opción-servidor = --ssl-certificado-archivo = / etc / uv4l / selfsign.crt
opción-servidor = --enable-webrtc-video = no
opción-servidor = --enable-webrtc-audio = sí
opción-servidor = --webrtc-vad = sí
opción-servidor = --webrtc-echo-cancellation = sí
opción-servidor = --webrtc-max-playout-delay = 34
opción-servidor = --enable-www-servidor = sí
opción-servidor = --www-root-path = / usr / share / uv4l / demos / doorpi /
opción-servidor = --www-index-file = index.html
opción-servidor = --www-puerto = 8888
opción-servidor = --www-bind-host-address = 0.0.0.0
opción-servidor = --www-use-ssl = yes
opción-servidor = --www-ssl-archivo-clave-privada = / etc / uv4l / selfsign.key
opción-servidor = --www-ssl-certificado-archivo = / etc / uv4l / selfsign.crt
opción-servidor = --www-webrtc-ruta-de-señalización = / webrtc

ver rawgistfile1.txt alojado con ❤ por GitHub

Paso 2: Caja de timbre

  • doorbell-back v1.stl: caja impresa en 3D para raspberry pi y adaptador PoE
  • Doorbell-front v1.svg: placa frontal cortada con láser
  • doorbell-micro v1.stl: caja impresa en 3D que contiene mirófono envuelto con aislamiento acústico, pegado a la placa frontal

Atornille la frambuesa pi en los soportes para tornillos adjuntos y coloque el adaptador PoE en la parte superior derecha. Coloque la cámara y el micrófono en su lugar (asegúrese de separar el micrófono y asegúrese de que el orificio del micrófono esté bien alineado con un orificio en la placa frontal).

Paso 3: Integración de HomeAssistant

Los siguientes archivos permiten la integración de HomeAssistant:

  • doorpi.yaml: paquete que contiene todo lo relacionado con el timbre, incluida la escucha de mensajes MQTT y automatizaciones para tocar el timbre cuando se presiona el timbre
  • www / doorpi / doorpi-card.js: tarjeta lovelace doorpi que necesita signalling.js y doorpi-camera-view.js

IMPORTANTE: tenga en cuenta que debe ejecutar HomeAssistant con https / ssl ya que, de lo contrario, Chrome no le permitirá acceder a los dispositivos de audio.

Paso 4: ¡Feliz llamada de timbre

Eso es todo, ahora debería poder llamar a alguien a través del timbre y HomeAssistant cambiará automáticamente a la tarjeta del timbre. Allí puede decidir aceptar o ignorar el timbre.

Recomendado: