Meteoclimatic

Software => WeeWX => Mensaje iniciado por: meteoalcolea en 06 de Agosto del 2018, 11:25:05 am

Título: BBDD de Weewx. Datos cada cinco minutos en txt
Publicado por: meteoalcolea en 06 de Agosto del 2018, 11:25:05 am
Antes de utilizar weewx con la Raspberry, estuve utilizando wview. Me gusta mucho más weewx y me va mucho más estable. Pero hay una cosa que echo de menos  y que no sé si se podrá hacer con weewx. Desde la página web que generaba wview, podía obtener los datos recogidos en un día en concreto cada cinco minutos que se guardaban en un fichero txt. Sabéis si con weewx se puede obetner? Seguro que muchos de los que utilizaron wview saben a qué me refiero.
Saludos.
Título: Re:BBDD de Weewx. Datos cada cinco minutos en txt
Publicado por: Xavi-EA5ZF en 06 de Agosto del 2018, 18:08:44 pm
Buenos días, como poder si que es posible, pero habría que hacer un report como los de los NOAA específico y no creo que nadie lo haya hecho hasta ahora.
Si haces una exportación de los datos de la BBDD verás que los datos están ahí, luego es cuestión de hacer el report para imprimirlo.
El primero que lo consiga, que lo publique, yo por ejemplo lo pondría en mi sistema.
Salu2.
Título: Re:BBDD de Weewx. Datos cada cinco minutos en txt
Publicado por: jmviper en 06 de Agosto del 2018, 21:05:36 pm
A ver si se puede hacer algo... en la documentación de SQLite pone cómo se puede volcar cualquier consulta en archivo. Un ejemplo simple desde la línea de comandos:

sqlite3 -header /var/lib/weewx/weewx.sdb "SELECT * FROM archive WHERE dateTime < strftime('%s','2018-08-06 16:55') AND dateTime > strftime('%s','2018-08-05 00:00')" > /var/www/weewx/logfile.txt;

Esta orden vuelca el contenido de la tabla archive (tabla donde se van almacenando los datos en el intervalo de tiempo que le tengamos puesto a weewx) a un archivo llamado logfile.txt en el directorio web de weewx.

Las horas en que están los datos en la base de datos de weewx están en UTC.

Esa orden se puede poner en un bash por ejemplo en el que se vaya poniendo en una carpeta llamada logfiles según la fecha que haya para el archivo de salida y ejecutarse cada día con un crontab generando de esa manera los logfiles.

Decir que esto lo he hecho como root desde la línea de comandos. Para ejecutarlo sin ser root se podrá hacer con el sudo delante o se tendrá que crear un bash abriendo la base de datos y darle permisos:

#!/bin/bash

sqlite3 /var/lib/weewx/weewx.sdb
.headers on
.output /var/www/weewx/logfile.txt
SELECT * FROM archive WHERE dateTime < strftime('%s','2018-08-06 16:55') AND dateTime > strftime('%s','2018-08-05 00:00');
.quit



Una vez en el archivo de texto se podría crear un script PHP para buscar días y presentarlo como se quiera en la misma raspberry o subir los archivos por FTP a nuestro servidor web si tenemos hosting.