Envía mensajes a usuarios de Telegram desde tu Raspberry Pi

Telegram

Si eres usuario de un smartphone seguro que conocerás que, una de las aplicaciones más que similares y de gran fama de Whatsapp es Telegram, un cliente de mensajería muy versátil que, presenta varias peculiaridades como la posibilidad de poder utilizar el mismo número de teléfono desde diferentes dispositivos de forma simultánea. Gracias precisamente a esta característica hoy quiero presentarte un pequeño tutorial con el que podrás enviar mensajes de texto e incluso archivos multimedia a tus contactos desde una Raspberry Pi.

Tanto o más interesante es el hecho de que podamos configurar nuestra Raspberry Pi de forma que, ante cierto comando recibido por Telegram nuestra tarjeta pueda ejercer algún funcionamiento adicional, es decir, imaginemos que enviamos por Telegram a nuestra tarjeta la palabra “foto” y esta nos devuelve una imagen de cualquier estancia de la casa, “luz” para que automáticamente se encienda una luz cualquiera o “abrir” para que automáticamente se abra la puerta del garaje.

Seguro que esta funcionalidad adicional te ha llamado bastante la atención. Si es así nos ponemos manos a la obra no sin antes comentarte que necesitaremos para llevar a cabo el proyecto una Raspberry Pi B o Raspberry Pi B+ así como una tarjeta microSD de 8 GB Clase 10 con la última versión de Raspbian preinstalada.

Una vez disponemos de todo lo anterior arrancamos y desde un Terminal comenzamos con la actualización y configuración básica. Seguro que habrá muchos usuarios que esto no lo necesiten pero mejor lo hacemos todo paso a paso y a buen ritmo para no saltarnos nada. Comenzamos ejecutando y actualizando los paquetes con:

sudo apt-get update
sudo apt-get upgrade

Seguimos con la instalación y actualización de varias librerías indispensables donde el sistema encontrará todas las librerías que necesitamos

sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 li-blua5.2-dev libevent-dev make

Turno del repositorio de GitHub

git clone --recursive https://github.com/vysheng/td.git && cd tg
./configure
make

Telegram

Una vez tenemos todo instalado es turno de configurar lua, un potente y rápido lenguaje para script. La sintaxis es muy sencilla, en nuestro Terminal ejecutamos:

sudo nano /home/pi/tg/action.lua

y añadimos el siguiente contenido:

function on_msg_receive (msg)
      if msg.out then
          return
      end
      if (msg.text=='ping') then
         send_msg (msg.from.print_name, 'pong', ok_cb, false)
      end
  end
   
  function on_our_id (id)
  end
   
  function on_secret_chat_created (peer)
  end
   
  function on_user_update (user)
  end
   
  function on_chat_update (user)
  end
   
  function on_get_difference_end ()
  end
   
  function on_binlog_replay_end ()
  end

Con lo anterior tendríamos prácticamente todo configurado de forma que, cuando nosotros enviemos a Telegram el texto “ping” este nos devolverá “pong“.

Nos movemos al directorio tg

cd /home/pi/tg

Ejecutamos la siguiente orden

bin/telegram-cli -k tg-server.pub -W -s action.lua

Llega el momento de comenzar con las pruebas y enviar nuestro “ping” a Telegram, acto seguido y como puedes ver en la imagen la respuesta es nuestro esperado “pong“. Hay que tener en cuenta si utilizamos mayúsculas o no ya que el sistema es sensible a su uso.

Si lo que queremos es que, en lugar de “pong” nuestra Raspberry Pi devuelva una imagen, en la función donde enviamos la respuesta tan sólo tendríamos que indicar al sistema que realice una foto utilizando una cámara previamente instalada y nos la envíe.

Enlace: instructables

Te puede interesar

3 comentarios

  1.   Guillermo dijo

    Viendo las posibilidades de esto se me ocurrió que quizás estaría bien poder enviar de forma segura cualquier comando a mi raspberry (o a cualquier servidor Linux) desde telegram y obtener la salida. Incluso crear alias de comandos para no tener que escribir demasiado, gestionar usuarios que puedan hacer lo mismo sobre la misma maquina para que cualquiera no pueda hacer lo que le de la gana… etc

    Me he puesto a ello y hoy he publicado ‘Obedience’.
    Si alguien quiere trastear y probarlo, adelante

    https://github.com/GuillermoPena/obedience

  2.   Juan Luis Arboledas dijo

    Hola Guillermo,

    No me ha dado mucho tiempo a revisar todo pero he de decirte que tiene muy buena pinta. Si tengo tiempo este mismo fin de semana lo pruebo todo a ver que tal.

    Muchas gracias por tu trabajo!!!

  3.   Jonathan dijo

    hola, excelente post, me encanto! solo quisiera saber si hay forma de ejecutar el script .lua de forma automática en el arranque, saludos!

Escribe un comentario