Software > WeeWX

Como importar datos desde cumulusMX

<< < (2/3) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa