Enviadodesderaspp

Raspberry Pi: Notificación de la temperatura de la CPU por WhatsApp

Acabo de enterarme de esta notícia. Hay que buscar otras alternativas… **ACTUALIZADO 29/08/2014**

Una de las cosas que más me preocupa de Raspberry Pi, es la temperatura de la cual pueda llegar. Se ha dicho en numerosas ocasiones, que la temperatura de la Raspberry Pi no llega a los 60ºC en máxima potencia (ejecutando vídeos). He visto muchos tutoriales por Internet donde usan Raspberry Pi como servidor liviano, y eso significa tener el microcontrolador encendido semanas o incluso meses. Me preocupa la temperatura a la que pueda llegar antes de querer dejar dos o tres semanas encendido haciendo pruebas de todo tipo (había pensado instalar Owncloud). Así que me hice un script de lo más sencillo para ir comprobando manualmente la temperatura. Muy simple, tan solo hay que ejecutar en una Terminal:

Y nos muestra:

Así que compliqué un poco más el script y hice que la temperatura se me mostrara por notificaciones de mi ordenador de sobremesa, como expliqué en la entrada Raspberry Pi: Script de notificación.

Pero ayer a la noche dije, “Si tengo que dejar la Raspberry Pi encendida durante semanas, no siempre estoy en casa, y no siempre tengo el PC encendido (mentira). Existe alguna manera para que me llegue esa notificación al Android?”

Hay muchas opciones: por Gmail, por Gtalk, por Twitter… Pero la que más me gustó fue: Por Whatsapp. Entonces miré la hora del reloj y me fui a dormir porqué era muy tarde.

Enviadodesderaspp

Bien, he estado trabajando en esto más de 6 horas desde que me levanté, porque por lo visto hay un par de tutoriales por Internet pero están explicados con el codo… ejem. Y he tenido que descubrir y deducir muchas cosas y eso sin tener ni idea de PHP (cosa que tengo que aprender cuanto antes mejor). Así que vamos al grano!

Primeros pasos

Lo primero que debemos tener, es un número de teléfono y registrarlo en Whatsapp. Normalmente si tienes tu número de teléfono ya registrado no puedes volverlo a registrar en otro terminal. Así funciona Whatsapp. Así que lo primero que vamos hacer es coger un número de teléfono y asociarlo al que ya tenemos. Como hacemos eso? Con un servicio que se llama FonYou.

Instalar dependencias

Para que funcione tenemos que tener instalado esto:

Registro en FonYou

  1. Leer atentamente toda la información que nos proporcionan en la web es algo muy interesante, y más para aquellos que no vean del todo claro este tema de asociar otro número de teléfono.
  2. Registrarse y rellenar todos los campos
  3. Seguir los pasos que te van indicando.

Registrar tu número FonYou a Whatsapp

Hay dos maneras para hacerlo: la larga y la profesional. La manera larga es descargarse e instalar el SDK de Android y el BlueStacks desde un Windows y posteriormente instalar la aplicación Whatsapp para el registro del número de teléfono. También existe la posibilidad de crear una maquina virtual con VirtualBox de Android y instalar Whatsapp.

Pero sin duda, la manera profesional es la más rápida y la que más me gusta. Así que vamos a ello.

Manera profesional

Nos vamos a descargar un programa escrito en Python que nos va a permetir registrar nuestro número FonYou y que luego usaremos para enviar mensajes a nuestro Whatsapp.

Entramos en yowsup/src/

Editamos un fichero que se llama config.example donde dejaremos las siguientes líneas de la siguiente manera:

Donde cc, es el préfijo telefónico de tu país. Phone es el prefijo telefónico más tu número registrado en FonYou. En id y password lo dejaremos en blanco.

Ahora pasaremos a registrar el número de teléfono con el siguiente comando:

Recibiremos un código vía SMS en nuestro teléfono que usaremos en este otro comando:

Donde XXX-XXX es nuestro código que hemos recibido. Una vez ejecutemos este comando, nos mostrará una serie de datos, buscaremos el que pone “password” o “pw” y lo copiaremos. Volveremos a modificar el fichero config.example y donde pone password= copiaremos esa contraseña que nos apareció anteriormente.

Ahora, para enviar un mensaje al Whatsapp es muy sencillo:

Donde ccphone es el prefijo telefónico más el número de teléfono a quien quieres enviar un mensaje.

Integrar YouSup en un script

Nada complicado si sabes hacer scripts. Mi script lo que hace es muy sencillo. Si el ordenador de sobremesa está conectado a la red (que significará que está encendido), enviará la temperatura crítica mediante una notificación de escritorio. Si en cambio, no está conectado a la red, enviará esa notificación por WhatsApp.

¿Estás o no estás en la red?

¿De que manera compruebo si un ordenador está en la red? Seguramente hay muchas maneras y de más fáciles que la mía, pero bueno, yo lo hago mediante el comando ping.

Envío solo un paquete a una IP (la del ordenador de sobremesa) para saber si éste me responde. Cuando envías solo un paquete te muestra lo siguiente:

Lo que hace el script es crear un fichero y quedarse con la línea que dice 1 packets transmitted, 1 received, 0% packet loss, time 0ms. Para que después podamos comprobar que 1 (de paquetes transmitidos) es igual a 1 (de paquetes recibidos). Porqué lo hago así? Porque si hago ping cuando la IP no está disponible me muestra lo siguiente:

Por lo tanto aquí no se cumple lo de 1 es igual a 1, ya que 1 (de paquetes transmitidos) no es igual a 0 (paquetes recibidos).

Así que cuando transmitidos sea igual a recibidos (1 = 1) se ejecutará el siguiente comando:

Y se enviará una notificación a nuestro PC de sobremesa. Por lo contrario, cuando transmitidos no sea igual a recibidos (1 = 0), se ejecutará este otro comando:

Ponlo a tu gusto

Para hacer “más fácil” a la gente que quiera usar este script, al principio he añadido un comentario de como usarlo y debajo las variables que se tendrán que cambiar para que funcione en vuestra Raspberry Pi y en vuestro PC.

Añadir Script a Crontab

Para que el script se vaya ejecutando cara cierto tiempo, uno de los mejores recursos que tenemos en sistemas Unix es el uso de Crontab.

Cron es un administrativo regular de procesos en segundo plano que ejecuta procesos o guiones en intervalos regulares, por ejemplo, cada minuto, cada lunes a las 4 de la tarde…).

Vamos a planificar la ejecución del script cada 30 minutos. En realidad el tiempo es al gusto del consumidor, yo creo que comprobar la temperatura 2 veces cada hora ya está bien. Para ello escribiremos en una Terminal:

Y añadimos la siguiente frase:

Donde */30 significa cada 30 minutos, a todas horas y todos los días. Al final ponemos la ruta de nuestro script.

Seguridad: Log

Si visualizamos el siguiente log /var/log/syslog nos muestra cuando se ejecuta alguna tarea programada además de más información. Para aislar esta información, lo que vamos hacer es crear un log donde nos informe de que se a ejecutado el script.

Por eso al final del script hay esto:

Descargar Script

He subido el Script completo en el Code de PortalLinux para que os lo podáis descargar.

Y para acabar..he dedecir que..este post..ES LA LECHE! Jaja..

este_post_es_la_leche

El contenido de esta entrada está bajo licencia Creative Commons

Zagur

Técnico Superior de Administración de Sistemas. Estudiando actualmente Desarrollo de aplicaciones web. #GNU #Linux #CSS #HTML #Python #SoftwareLibre #OpenSource

35 comentarios “Raspberry Pi: Notificación de la temperatura de la CPU por WhatsApp”

  1. Emiliano Sturniolo

    Navega con Unknown Unknown en Unknown Unknown

    Hola, para residentes no españoles, se te ocurre alguna manera de poder obtener un numero FonYou?

    Responder
    • DC_Fulano

      Navega con Unknown Unknown en Unknown Unknown

      Después de buscar sin éxito servicios similares, opte por registrar el numero fijo de mi casa por medio de mensaje de voz

      python yowsup-cli -c config.example –requestcode voice

      Responder
  2. Emiliano Sturniolo

    Navega con Unknown Unknown en Unknown Unknown

    Perdon, mejor dicho, para quienes no vivimos en España, ni tenemos un numero de celular español

    Responder
    • Zagur

      Navega con Unknown Unknown en Unknown Unknown

      Uhm, pensaba que FonYou también funcionaba para gente no residente en España.. La verdad es que no sé si existe este tipo de servicio en América Latina eso sería buscar un poquito por Google, seguro que tiene que haber este servicio.

      Saludos.

      Responder
      • Emiliano Sturniolo

        Navega con Unknown Unknown en Unknown Unknown

        Si, hay varios servicios, pero eso seria tambien encontrar un script que funcione para ese servicio en particular.
        El problema principal de FonYou para quienes no tienen un tel español es el password que te envia por SMS. El resto creo que es facil de saltear

        Responder
          • Emiliano Sturniolo

            Navega con Unknown Unknown en Unknown Unknown

            Gracias, la voy a investigar. No me olvido qeu te debo una respuesta sobre el post de “motd” que me daba error.

          • Emiliano Sturniolo

            Navega con Unknown Unknown en Unknown Unknown

            Gracias por recordar mi problema y avisarme de esto!
            Ahora la duda que tengo es la siguiente: Yowsup sirve para registrar en Whatsapp el telefono YA creado en FonYou, correcto?

            Porque mi problema es al intentar crear un numero virtual en FonYou ya que
            para poder hacer eso, necesito un numero movil español. Y
            lamentablemente, no es mi caso. Si yo pudiera lograr acceder a un telefono virtual de FonYou se me solucionarian todos los problemas.

  3. Jordi Vives Calamonte

    Navega con Unknown Unknown en Unknown Unknown

    Está chulo.
    Conocía de oídas el Yowsup, pero la verdad es que va bastante bien, me gusta, me gusta!

    Responder
  4. Alfonso Chicano Garrido

    Navega con Unknown Unknown en Unknown Unknown

    Por problemas legales ya no esta disponible en el github….

    Alguien tiene alguna copia para poder usarlo???

    Gracias!!

    Responder
    • David

      Navega con Google Chrome 37.0.2062.120 Google Chrome 37.0.2062.120 en GNU/Linux x64 GNU/Linux x64

      Hola,

      Me respondo a mi mismo.
      Si que funciona con la web que he puesto.

      Suerte!

      Responder
      • Jose

        Navega con Firefox 32.0 Firefox 32.0 en Windows 7 Windows 7

        Saludos, David, soy de Argentina, me podes explicar los pasos que hiciste para habilitar el numero en yowsup con HeyWhire, ya que lo habilite en mi movil, pero no mepermite validarlo, es necesario?? Con respecto a yowsup, como pones en :
        cc= 52 aqui va 1??
        phone= 521**********
        id=
        password=

        Desde ya muchas gracias por tu atencion, atte

        Responder
    • Zagur

      Navega con Firefox 33.0 Firefox 33.0 en GNU/Linux x64 GNU/Linux x64

      Por lo que dices a ti no te ha durado? Yo la he tenido dos semanas enteras encendidas y ningún problema. No se si tenerla 40 dias puede pasarle algo…por eso hice el control de temperatura.

      Saludos

      Responder
    • Zagur

      Navega con Firefox 35.0 Firefox 35.0 en Ubuntu x64 Ubuntu x64

      Pues nada… Toca esperar. Hay cliente CLI para Telegram y estoy trabajando en un post que hace exactamente lo mismo 😛

      Saludos.

      Responder
      • LeNaz

        Navega con Google Chrome 47.0.2526.106 Google Chrome 47.0.2526.106 en Windows 10 x64 Edition Windows 10 x64 Edition

        Buenas:

        He leído tu artículo y me parece una autentica pasada, como llevas el tema hacerlo en Telegram?

        Un saludo!

        Responder
        • Zagur

          Navega con Firefox 43.0 Firefox 43.0 en Ubuntu x64 Ubuntu x64

          Pues ahora gracias a los bots puede ser bastante fácil de hacer, lo que pasa es que me lo tengo que mirar a fondo.

          Saludos

          Responder
  5. Dicken

    Navega con Google Chrome 41.0.2272.101 Google Chrome 41.0.2272.101 en Windows 7 x64 Edition Windows 7 x64 Edition

    Genial gracias por la buena informacion…..
    tengo el siguiente problema, estoy trabajancod con Yowsup-2.2.78, que resulto un poco diferente al momento de mandar y recibir mensajes, como tendria que hacer esto con esta version.

    Responder
  6. Marhdez

    Navega con Google Chrome 42.0.2311.135 Google Chrome 42.0.2311.135 en Windows 8.1 Windows 8.1

    Hola estoy trabajando con yowsup 2.2 y toda la estructura es diferente a las versiones anteriores, necesito ayuda en la ejecución de comando, ¿como puedo hacer para que los mensajes recibidos puedan ser procesados como comandos del sistema?

    Responder

Trackbacks/Pingbacks

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Utilizamos cookies propias y de terceros para mejorar nuestros servicios. Si continúa navegando, consideramos que acepta su uso. Doble clic sobre aquí para cerrar.