Software > WeeWX
Como importar datos desde cumulusMX
kocher:
Continúo con el mismo tema.
Resulta que el "mini Pc" que se encargaba de weewx con el "skin" Belchertown, ha pasado a mejor vida tras muchos años trabajando sin hacer ruido ni quejarse. He perdido todos los datos, debido a que el disco duro tan solo tenía carpetas vacías.
Pues bien, ahora (con un Pc covencional) me han instalado Ubuntu y tengo pensado repetir la aventura de instalar weewx y la famosa plantilla de Bechertown.
Salvo pequeñas vicisitudes, he instalado weewx y, ahora estoy con la aventura de instalar Belchertown (por ahora sin mosquitto).
Dado que había perdido todos los datos históricos, me he puesto manos a la obra para importarlos gracias a los archivos *.log de cumulusMX.
Lo primero que he hecho, ha sido editar el archivo "etc/weewx/import/cumulus-example.conf" guardarlo como cumulus.conf.
En dicho archivo se establecen los siguientes parámetros:
- Dirección local de los archivos *.log a importar
Mis archivos de Cumulus tienen un fprmato de fecha como este:01/04/12;00:15;12,0;86;.......
- Caracteres utilizados en dichos *.log para el separador de fecha (/), separador de campos ( ; ) y signo decimal (,)
Una vez que tenemos esta configuración "niquelada", procedemos a la acción de importar valores históricos (en mi caso, del año 2022).
el comando par ejecutar en la consola es el siduiente:
wee_import --import-config=/etc/weewx/import/cumulus.conf --verbose --dry-run
Comienza el proceso de importación pero, se interrumpe con la siguiente advertencia:
--- Código: ---/usr/share/weewx/wee_import:719: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
from distutils.version import StrictVersion
Using WeeWX configuration file /etc/weewx/weewx.conf
Starting wee_import...
**** time data 'abr' does not match format '%b'
**** Nothing done, exiting.
--- Fin del código ---
Sospecho que el problema viene de no haber configurado correctamente el formato de fecha para el campo *dateTime*:
--- Código: ---[Cumulus]
# Parameters used when importing Cumulus monthly log files
#
# Directory containing Cumulus monthly log files to be imported. Format is:
# directory = full path without trailing /
directory = /home/javier/Descargas
# When importing Cumulus monthly log file data the following WeeWX database
# fields will be populated directly by the imported data:
dateTime = date_and_time, unix_epoch
barometer = barometer, hPa
dewpoint = dew, degree_C
heatindex =
inHumidity = humidity, percent
inTemp = Temp, degree_C
outHumidity = humidity, percent
outTemp = Temp, degree_C
radiation = # (if Cumulus data available)
rain = dayrain, mm # (requires Cumulus 1.9.4 or later)
rainRate =
UV = uv, uv_index # (if Cumulus data available)
windDir = wind, degree_compass
windGust = gust, km_per_hour
windSpeed = windspeed, km_per_hour
windchill =
--- Fin del código ---
Por más que he investigado sobre este asunto, no he logrado encontrar la solución.
Espero que alguien más despierto que yo, me pueda conducir por el buen camino jeje
Muchas gracias por vuestra atención
jmviper:
Hola kocher
Tienes Ubuntu en español ??
Ejecuta locale en el terminal y mira a ver si está en LANG=es_ES.UTF-8
%b espera el nombre abreviado del mes (tres primeras letras) del nombre del log y encuentra abr (de abril) que sería correcto si está el locale en español pero en inglés es apr de april así que puede que sea eso.
Si es así tocará ponerlo a español
kocher:
Bienvenido jmviper
Efectivamente me instalaron Ubuntu en Español; se me olvidó ese detalle jjj; ya me voy a enterar sis es posible cambiarlo al Inglés.
Voy a hacer lo que dices y ya te contaré
Al ejecutar locale, sale: http://LANG=es.UTF8
Acabo de instalar nuevos idiomas y ya me sale todo en inglés.
Esta tarde intentaré ls importación de nuevo; te tendré al corriente.
Muchísimas gracias por todo :aplaude1:
jmviper:
Bueno... esto no es tan simple pero bueno... todo se trata y queda ahí en la web :)
Este tema lo tratamos hace algún año con weewx en Windows:
https://forum.meteoclimatic.net/index.php?topic=2407.msg19490#msg19490
El problema es que Python por defecto mira los nombres de los meses del log no en el locale del sistema (es_ES.UTF-8) sino en inglés por lo que hay dos opciones:
o renombrar los meses de los logs a sus equivalentes en inglés o... tocar archivos de Python.
En ese hilo puse:
--- Citar ---Solución: editar el archivo cumulusimport.py en bin/weeimport/ y en la línea 30 más o menos poner estas dos líneas:
--- Código: ---import locale
locale.setlocale(category=locale.LC_ALL, locale="Spanish")
--- Fin del código ---
--- Fin de la cita ---
Como estábamos en Windows ese locale funcionaría pero al estar en Linux habrá que modificarlo:
--- Código: ---import locale
locale.setlocale(category=locale.LC_ALL, locale="es_ES.UTF-8")
--- Fin del código ---
en /usr/share/weewx/cumulusimport.py que es donde está en Linux.
Edítalo como sudo ya que es propiedad de root.
En el terminal sudo gedit /usr/share/weewx/cumulusimport.py debería abrirte ese archivo con gedit que es el editor por defecto de Ubuntu con permisos de root para editarlo cómodamente y poner esas dos líneas a partir de la línea 30.
Eso soluciona el tema de los nombres ya que establece el locale para ese script en español pero luego me encontré este otro problema:
AttributeError: 'CumulusSource' object has no attribute 'decimal'
Si te sale a ti también la solución es localizar la línea 112 aprox en ese archivo en la que pone:
self.delimiter = str(cumulus_config_dict.get('delimiter', ','))
y poner una nueva a continuación con lo siguiente:
self.decimal = str(cumulus_config_dict.get('decimal', '.'))
Ignoro el porqué no está puesta esa línea, ya que ni está en su código fuente en GitHub:
https://github.com/weewx/weewx/blob/master/bin/weeimport/cumulusimport.py
Algún olvido que tendrá que ser arreglado.
Con eso ya me quiso leer los logs.
Con la opción --dry-run solo se visualizan pero no los guarda en la BBDD de weewx así que primero se ejecutan con esa opción y si sale bien la simulación se ejecuta ya sin ella para que los guarde realmente.
Menos mal que en el foro hay información pasada y nos ayuda a solucionar problemas presentes *+* *+*
Mira a ver si con esas modificaciones te deja importar los archivos de MX :)
kocher:
Bueno, parece que ha funcionado
Me he decantado por cambiar los nombres de los meses con sus abreviaturas en inglés
Además he realizado la modificación que sugieres en el archivo "cumulusimport.py"; lo he editado con el editor "Kate"; al guardarlo me pide la contraseña y solucionado; he comprobado que se ha grabado bien.
Lo que no se, es como hojear la base de datos; creo que la tabla se llama "archive"
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa