Autor Tema: Toqueteo de la base de datos - Errores, inconsistencias, añadir registros  (Leído 32508 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado garbatella

  • Jr. Member
  • **
  • Mensajes: 57
    • Ver Perfil
  • Estación: ESCTB3900000039003A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #45 en: 23 de Octubre del 2021, 19:39:00 pm »
Hola.

Acudo a vosotros a ver si alguien puede echarme una mano en la delicada tarea de toquetear las bases de datos.

Tengo un registro muy reciente, de tan sólo tres días. Y lo que ocurre es que el primer día (21 de Octubre) está basado totalmente en datos falsos (fake) generados por el simulador cuando instalé weewx.

Lo primero que he hecho ha sido entender que esa fecha, en conversión con el epoch sería: 1634767200. Lo segundo ha sido parar weewx, y acceder con sqlite3 y he mandado los siguientes comandos:

Código: [Seleccionar]
select datetime(dateTime, 'unixepoch', 'localtime') dateTime from archive where dateTime <1634767200;
Código: [Seleccionar]
delete from archive where dateTime <1634767200;
Hasta aquí todo ok (y espero que esté bien hecho  *+*). Luego he hecho lo siguiente, y es donde vienen los resultados confusos:

Código: [Seleccionar]
wee_database weewx.conf --drop-daily
Y me devuelve:
Código: [Seleccionar]
Traceback (most recent call last):
  File "/usr/share/weewx/wee_database", line 1138, in <module>
    main()
  File "/usr/share/weewx/wee_database", line 186, in main
    config_path, config_dict = weecfg.read_config(options.config_path, args)
  File "/usr/share/weewx/weecfg/__init__.py", line 173, in read_config
    locations=locations, file_name=file_name)
  File "/usr/share/weewx/weecfg/__init__.py", line 147, in find_file
    raise IOError("%s is not a file" % file_path)

Y finalmente lanzo:
Código: [Seleccionar]
wee_database weewx.conf --reubild-daily
Y me devuelve:
Código: [Seleccionar]
Usage: wee_database --help
       wee_database --create
       wee_database --reconfigure
       wee_database --transfer --dest-binding=BINDING_NAME [--dry-run]
       wee_database --add-column=NAME [--type=(REAL|INTEGER)]
       wee_database --rename-column=NAME --to-name=NEW_NAME
       wee_database --drop-columns=NAME1,NAME2,...
       wee_database --check
       wee_database --update [--dry-run]
       wee_database --drop-daily
       wee_database --rebuild-daily [--date=YYYY-mm-dd |
                                    [--from=YYYY-mm-dd] [--to=YYYY-mm-dd]]
                                    [--dry-run]
       wee_database --reweight [--date=YYYY-mm-dd |
                               [--from=YYYY-mm-dd] [--to=YYYY-mm-dd]]
                               [--dry-run]
       wee_database --calc-missing [--date=YYYY-mm-dd |
                                   [--from=YYYY-mm-dd[THH:MM]] [--to=YYYY-mm-dd[THH:MM]]]
       wee_database --check-strings
       wee_database --fix-strings [--dry-run]

Description:

Manipulate the WeeWX database. Most of these operations are handled
automatically by WeeWX, but they may be useful in special cases.

wee_database: error: no such option: --reubild-daily

Soy consciente que el dropeo y el rebuild han ido mal. ¿Alguna razón de por qué? He levantado weewx de nuevo, y en teoría todo sigue igualmente operativo y con todos los registros...




Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #46 en: 23 de Octubre del 2021, 19:53:25 pm »
Hola

Estás en la ruta de weewx.conf ??

Sino es así ponle la ruta:

sudo wee_database /etc/weewx/weewx.conf --drop-daily

Mejor con sudo delante si estás como usuario pi.

Puedes prescindir de poner la ruta de weewx.conf también.

En principio esos son los comandos correctos.


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado garbatella

  • Jr. Member
  • **
  • Mensajes: 57
    • Ver Perfil
  • Estación: ESCTB3900000039003A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #47 en: 23 de Octubre del 2021, 19:57:37 pm »
Pues efectivamente, me puse en la ruta de weewx.conf y funcionó correctamente el drop-daily:

Código: [Seleccionar]
Using configuration file weewx.conf
Using database binding 'wx_binding', which is bound to database 'archive_sqlite'
Proceeding will delete all your daily summaries from database 'weewx.sdb'
Are you sure you want to proceed (y/n)? y
Dropping daily summary tables from 'weewx.sdb' ...
Daily summary tables dropped from database 'weewx.sdb' in 0.29 seconds

Pero a la hora del reubild, nada de nada. Es muy raro, porque me salta la ayuda y no parece que permita hacer un reubild-daily sin indicarle una fecha, o un periodo:

Código: [Seleccionar]
root@raspberrypi:/etc/weewx# wee_database weewx.conf --reubild-daily
Usage: wee_database --help
       wee_database --create
       wee_database --reconfigure
       wee_database --transfer --dest-binding=BINDING_NAME [--dry-run]
       wee_database --add-column=NAME [--type=(REAL|INTEGER)]
       wee_database --rename-column=NAME --to-name=NEW_NAME
       wee_database --drop-columns=NAME1,NAME2,...
       wee_database --check
       wee_database --update [--dry-run]
       wee_database --drop-daily
       wee_database --rebuild-daily [--date=YYYY-mm-dd |
                                    [--from=YYYY-mm-dd] [--to=YYYY-mm-dd]]
                                    [--dry-run]
       wee_database --reweight [--date=YYYY-mm-dd |
                               [--from=YYYY-mm-dd] [--to=YYYY-mm-dd]]
                               [--dry-run]
       wee_database --calc-missing [--date=YYYY-mm-dd |
                                   [--from=YYYY-mm-dd[THH:MM]] [--to=YYYY-mm-dd[THH:MM]]]
       wee_database --check-strings
       wee_database --fix-strings [--dry-run]

Description:

Manipulate the WeeWX database. Most of these operations are handled
automatically by WeeWX, but they may be useful in special cases.

wee_database: error: no such option: --reubild-daily

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #48 en: 23 de Octubre del 2021, 20:15:00 pm »
Has puesto reubild no rebuild


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado garbatella

  • Jr. Member
  • **
  • Mensajes: 57
    • Ver Perfil
  • Estación: ESCTB3900000039003A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #49 en: 23 de Octubre del 2021, 20:24:25 pm »
 :; Eso que decían cuando ibas al colegio o la universidad de: "antes de empezar a responder el examen, lee con calma la pregunta"... madre mía. Gracias jmviper, qué paciencia tienes!

Pues hecho, y sin problemas. Por supuesto antes de hacerlo he parado weewx y luego lo he iniciado de nuevo.

Bien, pues el toqueteo en la base de datos no debe haber sido muy correcto, porque sigo viendo los registros erróneos. Échales un ojo si tienes un momento, los tengo aquí:

http://naxos.synology.me/weewx/reports

Verás que los del día 21 son un sinsentido, como digo son datos falsos del simulador cuando se monta weewx por primera vez.

No sé, desde mi poco conocimiento de sql, con esa instrucción que dije se habría eliminado lo del día 21...?

Desconectado garbatella

  • Jr. Member
  • **
  • Mensajes: 57
    • Ver Perfil
  • Estación: ESCTB3900000039003A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #50 en: 23 de Octubre del 2021, 20:57:27 pm »
Lo que sí puedo confirmar, es que desde las 20:15, weewx no está actualizando datos. El servidor web está levantado, pero no recibe datos... Miedo me da. Coincide justo con el momento en el que he lanzado el rebuild-daily

Desconectado garbatella

  • Jr. Member
  • **
  • Mensajes: 57
    • Ver Perfil
  • Estación: ESCTB3900000039003A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #51 en: 23 de Octubre del 2021, 23:08:43 pm »
Pero sobre todo hay una cosa que no me gusta nada...

Código: [Seleccionar]
root@raspberrypi:/etc/weewx# ls
apache logrotate.d  meteoclimatic.ini rsyslog.d  skins  weewx.conf      weewx.conf.20211022230408 weewx.conf.dist
import logwatch     meteoclimatic.py scripts    udev   weewx.conf.20211021131321  weewx.conf.20211023200801 weewx-forecast.zip

Estos weewx.conf con referencias de fecha que son justo de los dos días que "no he querido borrar" me da muy mala espina. Recordemos que en teoría he borrado en la base de datos las lecturas del 20211020.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #52 en: 24 de Octubre del 2021, 08:42:35 am »
Los weewx.conf.XXXXX que hayan son copias de seguridad que hace weewx de ese fichero al detectar que hemos cambiado algo.
Si algo funciona mal habría que renombrar el weewx.conf que weewx utiliza y renombrar la copia como weewx.conf quitando la extensión final de la fecha.



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado garbatella

  • Jr. Member
  • **
  • Mensajes: 57
    • Ver Perfil
  • Estación: ESCTB3900000039003A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #53 en: 24 de Octubre del 2021, 12:14:33 pm »
Definitivamente, no sé si fue tocar la base de datos, o montar el módulo forecasts, pero algo ha quedado fastidiado.

Me he sacado el log jmviper, y es curioso... parece que esta mañana la cosa iba bien (pese a que accediendo al skin, no recoge datos desde ayer a las 22:55) y ha sido sobreescribir la base de datos que me has pasado corregida y algo raro refleja el log:

Código: [Seleccionar]
Oct 24 12:10:23 raspberrypi weewx[15333] DEBUG user.interceptor: empty queue
Oct 24 12:10:33 raspberrypi weewx[15333] DEBUG user.interceptor: empty queue
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: POST: PASSKEY=XXXX&stationtype=EasyWeatherV1.5.9&dateutc=2021-10-24+10:10:36&tempinf=70.9&humidityin$
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: raw data: PASSKEY=F2DCB928FAE3933F0D7647399ACFAF17&stationtype=EasyWeatherV1.5.9&dateutc=2021-10-24+$
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter PASSKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter stationtype=EasyWeatherV1.5.9
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter baromrelin=30.166
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter maxdailygust=5.8
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter eventrainin=0.000
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter hourlyrainin=0.000
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter dailyrainin=0.000
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter weeklyrainin=0.000
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter monthlyrainin=0.622
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter freq=868M
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: ignored parameter model=WS2900_V2.01.16
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: raw packet: {'dateTime': 1635070236, 'usUnits': 1, 'temperature_in': 70.9, 'humidity_in': 51.0, 'pre$
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: mapped packet: {'dateTime': 1635070236, 'usUnits': 1, 'pressure': 30.104, 'outHumidity': 59.0, 'inHu$
Oct 24 12:10:39 raspberrypi weewx[15333] INFO weewx.manager: Added record 2021-10-24 12:10:00 CEST (1635070200) to database 'weewx.sdb'
Oct 24 12:10:39 raspberrypi weewx[15333] INFO weewx.manager: Added record 2021-10-24 12:10:00 CEST (1635070200) to daily summary in 'weewx.sdb'
Oct 24 12:10:39 raspberrypi weewx[15333] INFO weewx.engine: Main loop exiting. Shutting engine down.
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG weewx.restx: Shut down PWSWeather thread.
Oct 24 12:10:39 raspberrypi weewx[15333] INFO user.interceptor: shutting down server thread
Oct 24 12:10:39 raspberrypi weewx[15333] DEBUG user.interceptor: stop tcp server
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__: Caught unrecoverable exception:
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****  '>' not supported between instances of 'float' and 'NoneType'
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****  Traceback (most recent call last):
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 214, in run
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****      self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet))
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 245, in dispatchEvent
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****      callback(event)
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 624, in check_loop
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****      raise BreakLoop
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****  weewx.engine.BreakLoop
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****  During handling of the above exception, another exception occurred:
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****  Traceback (most recent call last):
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 640, in post_loop
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****      self._catchup(self.engine.console.genArchiveRecords)
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/engine.py", line 687, in _catchup
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****      for record in generator(lastgood_ts):
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****    File "/usr/share/weewx/weewx/drivers/__init__.py", line 30, in genArchiveRecords
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****      raise NotImplementedError("Method 'genArchiveRecords' not implemented")
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****  NotImplementedError: Method 'genArchiveRecords' not implemented
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****  During handling of the above exception, another exception occurred:
Oct 24 12:10:39 raspberrypi weewx[15333] CRITICAL __main__:     ****

La verdad es que, llegados a este punto, los tres días que llevo datos no tienen valor alguno si hubiese que borrar la base de datos y empezar de cero. Porque como digo, el problema ahora mismo es que la estación sí envía los datos a wu y ecowitt, pero por alguna razón, está fallando en el envío al weewx (o weewx está siendo incapaz de obtenerlos mejor dicho)

Y otra cosa que me sorprende es que, la app ws view donde queda configurado la entrega de datos a wu, ecowitt y la raspberry pi, cuando accedía a la sección LOG, podría ver el chorro de números/letras cada varios segundos. Sin embargo ahora nada...
« Última modificación: 24 de Octubre del 2021, 12:59:08 pm por garbatella »

Desconectado iledesma

  • Jr. Member
  • **
  • Mensajes: 58
    • Ver Perfil
  • Estación: "ESCYL4900000049348A"
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #54 en: 06 de Julio del 2023, 16:25:39 pm »
Buenos días,

el caso es que cambié el software de gestión de mi estación de METEOCLIMATIC a WEEWX pero no tuve el cuidado de inicializar el valor de lluvia según lo que había llovido hasta entonces.

Mi weewx no tiene posibilidad de hacer stop/start y no puedo aplicar los pasos que indicó @jantoni.

Mi imagen de weewx corre con el script weewxd en lugar de weex.

¿Alguna idea de cómo puedo parar limpiamente weewx?

Saludos,

Iván