Weather34 con Weewx en Raspberry Pi

Después de arrancar Weewx en una Raspberry Pi 3 model B con Raspbian, pensamos en publicar los resultados en web mediante Weather34, cuyo diseño nos encanta.

PWS with weeWX and weather34

Personal Weather Station with WU connection working at weeWX & weather34

Puede haber otras muchas soluciones, pero a continuación describimos la que hemos implementado y comprobado su funcionamiento:

  • Instalar PHP en Apache: sudo apt-get install php libapache2-mod-php -y
  • Descargar en la Raspberry Pi la versión de Weather34 para Meteobridge, y descomprimir.
  • Copiar los archivos y directorios descomprimidos en el directorio (Que hemos creado previamente) /var/www/html/weather34 (En /var/www/html/weewx tenemos weewx ).
  • En el directorio /etc/apache2/conf.d/ crear el archivo weather34.conf (p.e. tocuh weather34.conf y después invocar el Text Editor que se encuentra en los accesorios de Raspbian ) con el siguiente contenido (Permite que Apache2 localizar los fuentes php de weather34 para servirlos a las peticiones de un navegador, hicimos algo similar en la instalación de weewx):
Alias /weather34 /home/weather34/public_html
<Directory /home/weather34/public_html>
 Options FollowSymlinks
 AllowOverride None
 Order allow,deny
 Allow from all
</Directory>
  • Editar el fichero /etc/weewx/skins/Standar/skin.conf e incluir la entrada:
[[[MBrealtime]]]
 template = MBrealtime.tmpl
  • Editar  /etc/weewx/weewx.conf e incluir al final de la entrada [StdReport] 
[[[MBrealtime]]]
 skin = MBrealtime
  • Para probar el correcto funcionamiento de los informes podemos lanzar el proceso que los genera.
pi@raspberrypi:~ $ wee_reports /etc/weewx/weewx.conf
Using configuration file /etc/weewx/weewx.conf
Generating for all time

Con estas definiciones, cuando se ejecuta periodicamente la generación de informes, StdReport de Weewx, se invoca al skin MBrealtime que usa el template del mismo nombre que encuentra en MBrealtime.tmpl.  Cheetah, incluido en weewx a partir de la definición encontrada en MBrealtime.tmpl (En puede descargar una versión beta de http://software.sonotrigger.com/weather34/MBrealtime.tmpl ) generará un fichero con los datos en formato Meteobridge que servirán de entrada de Weather34, cuando se copien al directorio de weather34.

Para la copia del fichero de entrada y la actualización de weather34 hay que incluir dosentradas en el crontab (Se merece otra entrada):

  • /var/www/html/weather34/cronfiles/weewx.sh (Cada 5′, hay que crearlos).
  • /var/www/html/weather34/cronfiles/stationcron.php (Cada 30′, en mbdbfiles).

El scrip de copiar ficheros puede ser algo así (mbridge/MBrealtimeupload.txt  son los valores por defecto de Weather34 Meteobridge):

#!bin/bash
# /var/www/html/weather34/weewx.sh
sudo touch /var/www/html/weather34/mbridge/MBrealtimeupload.txt
sudo cp -afv /var/www/html/weewx/MBrealtime 
/var/www/html/weather34/mbridge/MBrealtimeupload.txt

Ahora solamente falta parar y arrancar Apache y a continuación weeex y poner en el navegador de la raspberry http//localhost/weather34 o en un dispositivo conectado a la red local sustituyendo localhost por la IP asignada a la Raspberry y debería funcionar.

weeex con weather34

Cómo publicar en la Web los datos de su estación meteorológica de una forma elegante.

Para conseguir nuestro objetivo debemos obtener los datos meteorológicos, mover o copiar los datos de forma periódica a Internet  y presentar los mismos de forma comprensible, y para ello necesitamos :

  • Una estación meteorológica personal (For dummies: PWS acronimo en inglés) con capacidad de enviar sus datos a través de Internet a un servidor (En nuestro caso usamos WH2600 de FOSHK con Meteobridge que es capaz de enviarlos a Weather Underground, AWEKAS, o a donde se le diga).
  • Una espacio Web:  donde poder copiar y configurar el software de presentación, enviar periodicamente los ficheros de actualización con los datos de nuestra estación, donde poder recibir los pronósticos meteorológicos y datos astronómicos etc. (En nuestro caso usamos 1and1).
  • Un software de presentación (En nuestro caso hemos elegido weather34).

En este post configuraremos un dispositivo meteobridge (Una buena opción si su estación no permite la subida la informacióna  internet o desea mayor flexibilidad, que es nuestro caso) para mostrar sus datos con weather34 que es un elegante diseño de Brian Underdown bajo licencia CC (For dummies: basicamente bajo esta licencia usted es libre de usar y adaptar el software, pero siempre manteniendo los creditos ) y es indiferente que use un ordenador con Windows de Microsoft o con OSX de Apple.

Lo primero que hay que hacer elegir la versión de weather34 (standar en ingles, o universal que es multiidioma) y descargarla (For dummies: basta con un doble click en el enlace que nso lelva a la web de descargas mediafire ), descomprimirlo en una carpera (For dummies: para descomprimir puede suar 7-ZIP), crear una carpeta nueva en nuestra web  (En nuestro caso: /weather34)  y subir todo el software descargado y descomprimido  (En nuestro caso: http://software.sonotrigger.com/weather34) mediante FTP (For dummies: un cliente FTP multiplataforma es  Filezilla).

Compruebe que está weather34 bien instalado (For experts: no es necesario modificar ningún permiso en laweb) poniendo en el navegador el path o ruta donde ha almacenado /weather34, (En neustro caso http://software.sonotrigger.com/weather34/ ) con los datos de prueba (For dummies: los navegadores buscan los ficherso que suelen sen iniciales como index.htmk, indexhtm, index.php, etc.).

weather34 ligth

weather34 ligth

A continuacion ejecute en la web  http://xxxx/weather34/easyweathersetup.php se entra sin contraseña la primera vez y configure al menos (For dummies: no toque lo que no entienda):

  •  Setup Unique Easysetup Password: (For dummies: la contraseña de acceso a las definiciones cuanto más larga sea y si  incluye signos, mayusculas  minusculas y  numeros, mejos),
  • Choose the default Language to display (for universal version only) : el idioma de presentación, logicamente si usa la versión multiidioma.
  • Software Type & Path to Data file: el HW &SW que proporciona los datos meteorológicos (admite los de meteobridge, pero tambien los de cumulus, clientraw y WS1001) y el path de la web donde se van a cargar), en nuestro caso usamos meteobridge y el path es demodata/MBrealtime.txt.
  • Location Details: localización de la estación, nombre de la estación, las coordenadas geográficas (For dummies: si no conoce las ccoordenadas de su estacion, son importantes para los pronosticos puede consultarlas en  http://www.coordenadas-gps.com/), zona horaria (For dummies: para españa Europe/Madrid), offset horario (For dummies: para España es 1) y la elevación sobre la superficie de la estación).

Cuando finalice, salve todo con el botón “save configuration”. Usted puede modificar la configuración tantas veces quiera , basta con ejecutar el fichero php e introducir la contraseñaLuego configuraremos más cosas. (For dummies: si se olvida de la contraaseña o piensa que está comprometida, siempre podrá volvera subir el software con FTP y sobreescribir la instalación y configuracion existente, por elloe sbueno que tome nota de todo ello).

Para que funcionen las actualizaciones hay que configurar un cron que ejecute los siguientes ficheros con sus respectivos intervalos:

  • http://xxxx/weather34/cronfiles/graphscron.php (Cada 15′)
  • http://xxxx/weather34/cronfiles/stationcron.php (Cada 30′)

(For dummies: Un cron es un servicio que ejecuta cada cierto tiempo un programa. Casi todos los dominios lo proporcionan pero lo más sencillo y rapido es configurar el cron en una web que proporciona este servicio como https://cron-job.org/en/).

cron-job services

cron-job services

En segundo lugar hay que configurar el protocolo de comunicación entre nuestra esatción meteorológica y la web. WU usa por ejemplo HTTP GET y rapidfire, pero nosotros usaremos en este caso FTP. Nos conectamos con IP, usuario y contraseña a  meteobridge y configuraremos el cliente FTP en la pestaña Services  (For dummies: FTP es un protocolo estanadar para copiar ficheros entre ordenadores, y es la forma en la que se enviarán los datos meteorologicos de nuestra estación a nuestra web) y con el botón “test upload” puede probar su funcionamiento pues creará un fichero de pruebas con dicho nombre en la web (For dummies: puede ver como aparece y ver su contenido con Filezilla; For experts: esperemos que en proximas versiones se pueda usar SFTP) . Tambien hay que configurar el fichero con el formato de los dato o templates, pues meteobridge soporta varios formatos, para ello puede usar que usa la estación de Sonotrigger Software que está en http://software.sonotrigger.com/weather34/MBrealtime-template.txt , el path debe coincidir con el configurado en weather34 y cargarlo “Reload template” y el intervalo o frecuencia.

Configuracion del FTP

Configuracion del FTP en Meteobridge

Por ultimo, es opcional, pero enriquece la web, hay que configurar las webs de las cuales weather34 obtendrá información adicional como por ejemplo las fases lunares, dia y noche, previsión meteorológica, etc.:

  •   WeatherUnderground (es una red meteorologica donde se pueden caragr los datos de una estación meterorológica, y descargar datos de cualquier otra y previsiones) se introduce su clave personal (For dummies: Hay que darse de alta previamente en WU) editando el archivo setup.php de weather34 y subiendo lo a la web
  •  Dark Sky  (es una empresa que proporciona previsiones meteorológicas mediante su web y una API) se introduce su clave personal (For dummies: Hay que darse previamente de alta en Dark Sky) en la ejecución en la web de  easyweathersetup.php:
    • Dark Sky API KEY: la calve que proporciona Dark Sky en el alta
    • Dark Sky Unit Format: las unidades a usar (En nuestro caso SI, las del sistema Internacional
    • Dark Sky Forecast Language: el idioma del pronostico del tiempo.

Veamos ahora con un diagrama de bloques un poc el flujo de datos, comandos y ficheros

diagrama de bloques de weather34 & meteobridge

diagrama de bloques de weather34 & meteobridge

El resultado de la instalacion de weather34 con meteobridge realizado para la estación meteorológica de Sonotrigger Software podéis verlo en  http://software.sonotrigger.com/weather34/ aunque para consultar los datos de su estación meteorológica en un dispositivo móvil nada mejor que myMeteobridge 🙂

Y ya para terminar, agradecer a Josep Montamat su ayuda en la puesta en marcha y felicitar a Brian Underdown por el desarrollo de Weather34.