Va mos a ver como usar Telegram para controlar nuestra rpi mediante mensajes. Desde ver la temperatura, hasta actualizar el sistema o reiniciarlo, todo ello de una forma segura, creando un chat privado.

Instalación API de Telegram

Antes de comenzar con la instalación, nos conectamos mediante ssh a la rpi y actualizamos el sistema:

1
sudo apt-get update && sudo apt-get upgrade -y

Instalamos los paquetes necesarios

1
2
3
4
sudo apt-get install python-setuptools
sudo apt-get install python-pip
sudo pip install telepot
sudo apt-get install sysstat

Mediante Git, clonamos el repositorio de la API de Telegram.

1
sudo git clone https://github.com/eternnoir/pyTelegramBotAPI.git /opt/pyTelegramApi

Cambiamos el propietario del directorio /opt/pyTelegramApi para no tener problemas de acceso.

1
sudo chown -R pi:pi /opt/pyTelegramApi

Instalamos:

1
2
cd /opt/pyTelegramBotApi
sudo python setup.py install

Obteniendo Token y crear Bot

El primer paso, es dirigirnos a @BotFather, es un Bot creado por Telegram para crear y administrar nuestros bots, e iniciamos una conversación con él.

bit_sickrage1.png.

Le damos a Iniciar y escribimos /newbot

Nos preguntará por el nombre que le vamos a dar al bot, en mi caso mirpibot y el nombre de usuario, que debe de acabar en bot.

bot_rpi1.png.

Con esto ya tendremos creado nuestro bot, recibiremos un mensaje con el token del bot para poder usar la API de programas de Telegram.

bot_rpi2.png.

Obteniendo ID

Necesitamos saber nuestro ID en Telegram, que es un el identificador único de nuestro usuario de Telegram, para obtenerlo, nos vamos a Telegram y buscamos el bot @myidbot

bit_sickrage6.png.

Le damos a iniciar y tras recibir el mensaje de bienvenida escribimos /getid

bit_sickrage10.png.

Programar el bot

Si buscas por Internet encontraras multitud de bots ya programados, yo he utilizado el que encontré en https://www.fwhibbit.es/controla-tu-raspberry-pi-mediante-telegram y le he hecho unos pequeños cambios para adaptarlo a mi gusto. te recomiendo que pases por su pagina y leas el articulo, gracias a él hice mis modificaciones.

Mi bot lo he subido a github por si lo quieres usar.

Unicamente hay que editar el fichero rpi_bot.py

1
nano rpi_bot.py

y rellenar los campos TOKEN e ID con los valores que hemos obtenido anteriormente y grabar los cambios.

1
2
TOKEN = 'tu token' # Entre comillas
ID = tu ID  # Sin comillas

A mi me gusta tener estas cosas en /opt, por lo que me creo una carpeta y copio el bot

1
2
3
sudo mkdir /opt/bots
cd /opt/bots
sudo cp -r /media/pi/Nas_01/rpi_bot.py .

Y le doy permisos de ejecución para poder trabajar con mi usuario

1
sudo chown -R pi:pi /opt/bots

Arrancando el bot

Ponemos en marcha el bot con la siguiente orden:

1
python rpi_bot.py

Inicio del bot en el arranque

Existe un fichero en /etc/rc.local que se ejecuta al final del arranque del sistema y ejecuta el comando o script que pongamos en su interior.

Por lo que editamos el fichero /etc/rc.local y añadiremos la ruta de nuestro fichero:

1
sudo nano -w /etc/rc.local

Aunque cuando edites el fichero lo verás, es importante poner el fichero que se va a ejecutar antes del exit 0

1
2
3
/usr/bin/python /opt/bots/rpi_bot.py

exit 0

Y con esto ya hemos terminado, ya tenemos un bot para controlar la rpi desde telegram, además el bot se ejecuta cada vez que arranque la rpi, genial!!!