domingo, 26 de febrero de 2012

PYWWS y TWITTER

Para poder seguir en tiempo casi real la estación meteorológica, al principio lo seguía mediante una pagina web, pero se actualiza cada hora y los datos al finalizar el día.
Descubrí que con Twitter, lo podía seguir por el móvil. Ahora esta de prueba y la periodicidad es de 30 minutos, cuando quede definitivo se actualizara cada 15 minutos.
Para que funcione esto, tengo corriendo en un ordenador el programa PYWWS bajo Ubuntu.

Creamos una cuenta en Twitter

Se obtiene la autorización de Twitter, para poder mandar mensajes mediante un scrip, sin estar presente.
Para ello se ejecuta TwitterAuth.py con los siguientes parámetros:
  • python TwitterAuth.py  data/weather 
Al ejecutarlo, abre la pagina de twitter, pidiendo usuario y contraseña. Al darlas correctamente no da un numero que debemos poner en la pregunta que nos hace la pantalla donde hemos ejecutado la orden anterior.
De esta forma el ordenador puede mandar mensajes a Twitter de forma automática.

El fichero que generara los datos es example_templates/tweet.txt, en mi caso lo he modificado para que de la velocidad del viento en km/h y la presión atmosférica en mmHg.
El fichero tiene las siguientes ordenes

#hourly#
#timezone local#
#roundtime True#
#idx "%H:%M %Z:"# Temperatura: #temp_out "%.1fºC" "-"#
, Viento: #wind_dir "%s, " "" "wind_dir_text[x]"#
#wind_ave "%.0f km/h (Media), " "" "wind_kmph(x)"#
#wind_gust "%.0f km/h (Rafaga), " "" "wind_kmph(x)"#
 Humedad: #hum_out "%d%%"#
, Luvia (Por hora) #rain "%.1f mm"#
, Presion:  #rel_pressure "%.0f mmHg, " "" "pressure_inhg(x) * 25.4"#



 Después hay que crear un scrip donde se ejecutaran las ordenes del Pywws, para obtener los datos de la estación meteorológica.
El fichero que creado es el siguiente:

#!/bin/sh
# para twiter cada media hora.
# Toma algunos datos de la estacion
# lee los datos de la memoria de la estación meteorológica y la almacena en un archivo
python pywws/LogData.py -v -s 0 data/weather
# Procesar los datos en bruto para hacer los sumarios de hora y diarios
python  pywws/Process.py data/weather
#crea el fichero que despues se mandara a Twitter.
python pywws/Template.py data/weather example_templates/tweet.txt tweet.txt
#mandar el fichero a Twitter.
python pywws/ToTwitter.py data/weather tweet.txt


Para que este fichero se ejecute, debemos de ponerlo en el cron, asi se ejecutara según la periodicidad que queramos