# 8.3 Motion

Vamos a ver lo que sale por la cámara de forma remota :

[![image-1648026812597.gif](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648026812597.gif)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648026812597.gif)

[Imagen de Gifer](https://gifer.com/en/Cfg)

# MOTION

Esta librería open-source muy utilizado en sistemas de alarma con la Raspberry

(🤔🤔🤔🤔 hacer un sistema de videovigilancia📹 de mi casa 🏠a distancia 📡 y monitorizar 📺 por muy bajo coste... 🤔 que envíe una foto a mi email cuando detecte un movimiento) puedes verlo aquí cómo se hace: [https://sites.google.com/view/javierquintana/raspberry/alarma?authuser=0](https://sites.google.com/view/javierquintana/raspberry/alarma?authuser=0)

[![image-1648026877485.png](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648026877485.png)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648026877485.png)

[Parent detector](https://projects.raspberrypi.org/en/projects/parent-detector)

Pero nosotros **NO** nos interesa que detecte movimiento, sino que simplemente haga streaming.

Para esto, simplemente modificaremos el fichero de configuración de la librería **motion.conf**. Es muy típico modificar ficheros de configuración tipo texto en los softwares abiertos, lo que muestra su versatilidad y potencialidad. Puedes ver las diferentes posibilidades de configuración de Motion [aquí](https://motion-project.github.io/motion_config.html)

## Cómo hacerlo

Abrimos una ventana de comandos, en SSH, [ya sabes cómo](https://catedu.github.io/raspberry-muy-basico/5-ssh.html) o en el mismo VNC de forma gráfica abre la ventana de comandos, y ejecutamos estas órdenes:

Instalamos MOTION :

```shell
sudo apt-get install motion
```

Editamos el fichero de configuración motion.conf con el editor nano

```shell
sudo nano /etc/motion/motion.conf
```

Buscamos estas líneas y las modificamos :

- stream\_localhost on lo cambiamos por off [si es on sólo localhost puede abrirlo, si es off pueden todos](https://raspberrypi.stackexchange.com/questions/108419/stream-raspberry-pi-camera-on-web-page): 
    - **stream\_localhost off**
- si vemos #stream\_port 8081 y como queremos abrirlo por ese puerto, le quitamos el hastag, o sea lo dejamos así,: 
    - **stream\_port 8081**
- Si vemos daemon off lo cambiamos por 
    - **daemon on**

Si estuvieran estas líneas webcam\_localhost on y webcam\_port 8080 las borramos, o mejor las dejamos como comentarios poniendo delante un hastag # así #webcam\_localhost on #webcam\_port 8080.

En esta [página](https://raspberryparatorpes.net/instalacion/conectar-una-webcam-con-motion-en-raspberry-pi/) podemos ver otra configuración de motion.conf para el mismo propósito de streaming.

Grabamos el fichero: pulsando Ctrl+X se sale pero preguntará si queremos grabar el fichero con el mismo nombre, le decimos que sí

Finalmente ejecutamos motion con esta orden

```shell
sudo motion
```

Si queremos que se ejecute de forma automática cuando arranque la raspberrypi editamos el fichero /etc/rc.local y al final le ponemos esa instrucción. Es decir

`<strong>sudo nano /etc/rc.local</strong>` y añadimos sudo motion al final (he puesto un comentario mi script optativo)

[![image-1648026975944.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648026975944.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648026975944.jpg)

## ¿Cómo se ve desde la red local?

Pues abrimos un navegador y ponemos la dirección a través del puerto que le hemos dicho en stream\_port o sea 8081

http://---LA-DIRECCION-DE-LA-RASPBERRY--:8081

es decir si la dirección es 192.168.1.25 entonces tecleamos http://192.168.1.25:8081

Si queremos un protocolo seguro https mirar esta [página](https://raspberrypi.stackexchange.com/questions/107868/motion-security/107872#107872)

## ¿Y desde Internet?

### Opción instalar un nuevo servicio

No se puede hacer gráficamente en la página Remote.it no sabemos por qué. Hay que hacerlo con comandos con SSH.

```shell
sudo remoteit add -h
```

Nos sale una lista de servicios que podemos añadir, tecleamos el ID del servicio que queremos añadir en este caso vemos en la figura que el 7 es HTTP.

Nos pide el puerto, ponemos **8081** el mismo que en Motion

Un nombre para el servicio, le hemos puesto webcam, y hecho lo que tienes que hacer en la Raspberry.

[![image-1648027047268.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648027047268.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027047268.jpg)

Entramos ahora en un ordenador a remote.it en nuestros "Devices" y pinchamos en el servicio que hemos creado:

[![image-1648027054061.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648027054061.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027054061.jpg)

Y automáticamente nos abre el navegador con la webcam funcionando

[![image-1648027070952.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648027070952.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027070952.jpg)

[![image-1648027074434.gif](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027074434.gif)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027074434.gif)

[Imagen de Gifer](https://gifer.com/en/Cfg)

### Vale, pero .. ¿y cómo se quita un servicio de Remoteit?

Entramos en al página web en el device en cuestión

[![image-1648027096098.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648027096098.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027096098.jpg)

Y copiamos el ID del servicio que queremos borrar:

[![image-1648027112867.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648027112867.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027112867.jpg)

Y ejecutamos la orden **sudo remoteit remove --id y la ID que queremos borrar** es decir en mi caso :

sudo remoteit remove --id 80:00:00:00:01:0A:18:DF

[![image-1648027124853.jpg](https://libros.catedu.es/uploads/images/gallery/2022-03/scaled-1680-/image-1648027124853.jpg)](https://libros.catedu.es/uploads/images/gallery/2022-03/image-1648027124853.jpg)

### Opción cutre con VNC

Si lo anterior por alguna razón fallara o remote.it quita el servicio HTTP, puedes ver la cámara por VNC.

Tienes que acceder a la Raspberry desde Internet con VNC mira estos [apuntes](https://catedu.github.io/raspberry-muy-basico/11-conectando-desde-internet.html)

Una vez accedido por VNC remotamente podemos abrir el navegador de la misma Raspberry y la IP de él mismo es 127.0.0.1 luego abrir

http://127.0.0.1:8081

ojo en el navegador de la Raspberry no en tu ordenador.