Commit 87140ffa authored by David Marzal's avatar David Marzal 🐧
Browse files

Funcionamiento y configuración

parent f58fcf50
......@@ -2,6 +2,20 @@
Este proyecto contiene las instrucciones y un script para montar un sistema de vigilancia en casa con una Raspberry Pi
[TOC]
## Funcionamiento
A grandes rasgos lo que este proyecto hace es utilizar la capacidad de `motion` de generar eventos al detectar movimientos para mandar una foto y un mensaje a un canal de Telegram, alertandonos de cuando hay movimiento en nuestra casa (o localización donde lo tengamos montado).
* La configuración nos permite definir las IPs de nuestros dispositivos moviles (se recomienda configurar IP fija o por MAC) para detectar si estamos en casa o no.
* En función de si estamos en casa o no el programa actua de la siguiente manera:
* **Estamos en casa** (o alguno de nuestros dispositvos lo esta) -> Solo nos mandara un mensaje de aviso _silencioso_, sin fotografía. Ademas los mensajes tendran un tiempo mínimo entre ellos definido en el fichero de configuración (por defecto 30 minutos), para que no tengamos mensajes constantes si estamos moviendonos por casa.
* Los videos generados se guardan en una subcarpeta con la IP del primer dispositivo detectado y se borraran los que tengán más de 7 días.
* **No estamos** en casa/no se detectan dispositvos -> En este caso se nos enviará una foto del momento en el que motion detecta movimiento
* Los videos se guardan en el raiz de la ruta especificada en la configuración para el almacenaje y se borraran los que tengán más de 1 mes.
* Mediante la configuración opcional de una VPN como Wireguard y la apertura del puerto correspondiente en el _router_ se puede tener acceso a la webcam en directo. Pero está configuración execede el alcance de esta documentación.
* El programa si se encarga de enviarnos un mensaje si detecta que nuestro router ha cambiado de IP pública para que sea posible acceder a la VPN sin DNS.
## Instalación
### Telegram
......@@ -12,12 +26,51 @@ Es necesario:
### Raspberry Pi
Es preferible que ya tengamos [motion](https://motion-project.github.io/motion_config.html) funcionando en raspbian, pero si no, el comando `install script` lo interá hacer por nosotros
Es preferible que ya tengamos [motion](https://motion-project.github.io/motion_config.html) funcionando en raspbian, pero si no, el comando `install script` lo interá hacer por nosotros.
* Clonar el repo con `git clone https://gitlab.com/Marzal/vigilante-casero.git`
* El programa debería funcionar desde esa misma carpeta pero tiene la opción de instalarse en `/usr/local/`
* El programa debería funcionar desde esa misma carpeta pero tiene la opción de instalarse en `/usr/local/{etc,bin}`
* Rellenar los datos de configuración en `vigilantecasero.conf`
* Configurar `motion` para que ejecute el script cada vez que guarde una imagen
* Editando la linea que contiene `on_picture_save` con algo similar a esto: `on_picture_save RUTA/vigilantecasero.sh avisa %f >> /tmp/vigilantecasero.log 2>&1`
* Configurar `motion` para que ejecute el script cada vez que guarde una imagen con una de estas dos opciones en `/etc/motion/motion.conf`:
* Editando las lineas que contienen al menos los siguientes parametros: `on_picture_save` y `target_dir`
* `on_picture_save` con la ruta correcta `on_picture_save RUTA/vigilantecasero.sh avisa %f >> /tmp/vigilantecasero.log 2>&1`
* target_dir
* El comando `vigilantecasero.sh install script` añadira el comando necesario apuntando a `/usr/local/bin/vigilantecasero.sh`, ademas de moficiar varias opciones.
## Configuración
Poder hacer funcionar `motion` como el bot de Telegram son requisitos de este proyecto.
### vigilantecasero.conf
* **TOKEN** [Obligatorio] -> Token que nos ha dado @botfather
* **IDR** [Obligatorio] -> ID del canal donde recibiremos las notifiaciones
* **IPs2WATCH** [Opcional] -> Listado de IPs locales separadas por espacios en blanco, de las IPs que queremos que se usen para detectar nuestra presencia en casa
* **RUTAVIDEOS** [Obligatorio] -> Ruta completa de la carpeta donde queremos que se guarden los videos de motion (se recomienda un pincho USB)
* **TIEMPOMIN**=30 [Opcional] -> Tiempo a esperar para generar una nueva notificación si se detecta movimiento estando nostros en casa
* **DEPURA** [Opcional] -> Si queremos que el programa muestre más información en su log
Ejemplo:
```ini
TOKEN=123456789:ABCDefghijkl12rfdhj233jfdkfk
IDR=0123456789
IPs2WATCH="192.168.1.15 192.168.1.14 192.168.1.12"
RUTAVIDEOS=/media/usb0/motion
TIEMPOMIN=30
DEPURA=false
```
### motion ###
* Si hemos lanzando el comando `vigilantecasero.sh install script` en princpio todo está listo para configurar pero conviene comprobar opciones como:
* **/etc/motion/motion.conf**
* `width`
* `height`
* Los que están en la función `install_motion` dentro del script
* En caso de querer configurarlo a mano hay que modificar obligatoriamente estas opciones:
* **/etc/motion/motion.conf**
* `target_dir $RUTAVIDEOS`
* `on_picture_save RUTA/vigilantecasero.sh avisa %f >> /tmp/vigilantecasero.log 2>&1`
* **/etc/default/motion**
* Hay que activar el demonio poniendo a `yes` la opción `start_motion_daemon`
* Se recomiendo activar el servicio para que se lance tras un reinicio: `systemctl enable motion --now`
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment