Autor Tema: Minimizar la pérdida de datos del último cuarto de hora del día  (Leído 47062 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Minimizar la pérdida de datos del último cuarto de hora del día
« en: 28 de Agosto del 2016, 01:46:30 am »
En varios post ya se ha tratado el tema de la pérdida de datos (sobre todo de precipitación pero igualmente puede afectar a los demás datos) entre el último envío del día, y el primero del día siguiente.

Yo tenía configurado en crontab lo siguiente:

Código: [Seleccionar]
.......
.......
#Envía datos a Meteoclimatic cada 15 minutos, empezando en el minuto 1 de cada hora
1-59/15 *  * * *   root    /root/meteoclimatic/meteoclimatic.sh
.......
.......

Y la consola está configurada para guardar datos cada 5 minutos.

Todo ello según nos aconseja jantoni en su tutorial para la instalación y personalización de Weewx.

Con esta situación Linux hace un último envío cada día a las 23:46h con los datos grabados a las 23:45h y el siguiente lo hace a las 00:01h con los datos grabados a las 00:00h, el cual, por lógica, supongo que será considerado perteneciente al día siguiente.

Quiere esto decir que los datos grabados en la consola a las 23:50h y a las 23:55h constan en la consola y por tanto considerados a efectos de acumulados y de máximos y mínimos en las bases de datos de weewx, y no siendo así considerados por Meteoclimatic por no constarle, y ello puede acarrear inconsistencias.

Se me ocurrió que una solución posible a esta situación es configurar crontab de la siguiente manera:

Código: [Seleccionar]
......
......
#Envía datos a Meteoclimatic cada 15 minutos, empezando en el minuto 1 de cada hora
1-57/15 *  * * *   root    /root/meteoclimatic/meteoclimatic.sh

#Envía datos a Meteoclimatic a las 23:59 de cada dia
59 23   * * *   root    /root/meteoclimatic/meteoclimatic.sh
......
......

En esta solución se hacen los envíos cada 15 minutos y un envío extra a las 23:59h con los datos grabados a las 23:55h donde constan los acumulados, máximos y mínimos del día. Así he estado mucho tiempo pensando que de esta manera estaba enviando los datos de estos últimos minutos.

Hace unas semanas pensé que también podía probar una segunda solución, hacer envíos cada 5 minutos con lo cual a Meteoclimatic le constaría todos los datos acumulados en las bases de datos de weewx  y normalmente no se producirían inconsistencias. He probado esta solución y los envíos cada 5 minutos se producen y son aceptados por Meteoclimatic, sin embargo no sé si Meteoclimatic los tiene en cuenta, porque en las sucesivas actualizaciones de mi estación solo aparecen las enviadas cada 15 minutos. Y por tanto me surge la duda: ¿Es efectiva esta solución?, y si no es efectiva tampoco lo es la primera solución.

Por último se me ocurre una tercera solución. Ajustar el último envío del día a las 23:56h con los datos grabados a las 23:55h lo cual supongo es buena solución y no me surgen dudas de su efectividad, aunque tendré que probarla. Habría que introducir en crontab lo siguiente:

Código: [Seleccionar]
......
......
#Envía datos a Meteoclimatic cada 15 minutos, empezando en el minuto 11 de cada hora
11-57/15 *  * * *   root    /root/meteoclimatic/meteoclimatic.sh
......
......

No obstante me gustaría aclarar las dudas planteadas anteriormente para saber cuales de estas tres soluciones son efectivas y que cada uno de los que lean este tema elija la que más le interese.

Saludos a todos.
« Última modificación: 28 de Agosto del 2016, 01:59:09 am por Amon-K »
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado Ubik

  • Administrator
  • Hero Member
  • ******
  • Mensajes: 2.260
    • Ver Perfil
  • Estación: Villavieja de Yeltes-SA102 ESCYL3700000037260A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #1 en: 28 de Agosto del 2016, 07:55:58 am »
Prográmalo para hacer 4 envíos empezando en el minuto 11, 26, 41 y 56, te aceptará todos los envíos y se minimizaría la posible pérdida de datos a los 5 últimos minutos.
                         
Davis pro2+cumulus+W7+Lenovo
 
Web http://www.meteovillavieja.es

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #2 en: 28 de Agosto del 2016, 08:23:28 am »
Gracias Ubik por la rapidisima respuesta.
Si, yo tambien llego al convencimiento, porque supongo algunas cosas, de que es la solución pero me quedan sin respuesta las preguntas que me han hecho llegar a esta conclusión.

¿Si hago un envio extra fuera del ritmo normal de envíos,  este envío se considera por parte de Meteoclimatic?.
¿Si aumento el ritmo de envíos,  estos envios son considerados por Meteoclimatic?. En caso negativo
¿Es obligado mantener un ritmo de envios con un período de 15 minutos?.

Saludos.
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.638
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #3 en: 28 de Agosto del 2016, 13:11:30 pm »
No os lieis....os lo recomiendo.

ESe margen de error va a existir siempre, aunque se envién (y se acepten) envíos cada 5 minutos.

A tus preguntas:

No
No
No

 ;D ;D ;D ;D ;D ;D ;D

Veamos, puedes hacer como yo. Enviar cada 5 minutos. Pero Meteoclimatic solo va a tomar 4 envíos a la hora.

Desconozco las tripas internas del software de meteoclimatic, pero la experiencia de estos años, me hace pensar que es algo parecido a esto:

- Hay dos modos de transmisión, Visual y similares, y el típico mal llamado FTP (en realidad por HTTP)
- Las estaciones pueden enviar todos los datos que quieran.....hasta 1 cada minuto
- El servidor de Meteoclimatic, una vez abierta la ventana, lee los FTP y el último dato que tenga almacenado enviado por Visual

Por tanto, si tu envío a las 23:5x es el último almacenado en el momento de abrir la ventana de datos, es el que será utilizado. En caso contrario, usará el anterior.

El problema es que no sabemos en que momento abre la ventana.

Una solución para el cron sería mandar los datos cada 5 o 15 minutos durante todo el día....y en el último cuarto de hora, mandarlo cada minuto.

Pero eso sería una tontería, porque entonces hay que cambiar la generación en el software de la estración en el mismo periodo, de lo contrario volvemos a "maximizar" la diferencia en precipitación o viento.

Sinceramente, lo mejor es lo siguiente:

- Generación en el software cada 5 minutos. Envío cada 5 minutos.
- Revisar, a diario, las diferencias entre nuestro resumen diario y el resumen de Meteoclimatic
- Corregir las posibiles diferencias diarias.

Lo contrario es pretender que todo sea automático. Y eso conlleva a que, al final, desatendemos las estaciones y sus datos, como estamos habituados a ver a diario.

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.638
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #4 en: 28 de Agosto del 2016, 18:47:54 pm »
Por cierto, este hilo estaría mejor en el foro general o en el de software de meteoclimatic, puesto que no afecta solo a weewx

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #5 en: 28 de Agosto del 2016, 20:02:17 pm »
No nos liamos jantoni, justamente pretendemos aclararnos y con tus respuestas avanzamos en ese camino aunque se ve que no es posible del todo porque existen incertidumbres que no podemos salvar.

Aunque con tus tres respuestas me recuerdas a algún político ( ...y que parte del no no......) yo siempre te imagino como un Jefe de Estado que está por encima del mal y nos guías a todos.  ;) ;) ;) ;)

Además de esos noes están tus aclaraciones que nos están diciendo que no existe un método fiable al 100%, y que el método que propones es el que más se acerca.

Por otro lado hay que suponer que si tú no has obtenido la respuesta de Meteoclimatic no es posible obtenerla.

Gracias pues.

Saludos.

  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.638
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #6 en: 28 de Agosto del 2016, 20:20:28 pm »
 ;D ;D ;D ;D

Bueno....es que no puede haberla. Salvo que Meteoclimatic cambiase drásticamente el código de programación e incluyera, por ejemplo, a las 2:30 del día siguiente un resumen del día anterior

Este tema, ya se debatió hace años y, en un sistema con información agrupada cada 15 minutos, o incluso cada menos, es imposible de evitar al 100%.

Y como digo, la mejor manera de estar permanentemente atento a la estación y a la información de Meteoclimatic, es mirando al día siguiente que no se haya generado ningún problema o inconsistencia. Los que confían en que todo va bien, terminan con la estación desatendida y, además, pensando que sus estación es fantástica, que si, que lo és, pero el software y las máquinas se vuelven en contra de uno mismo. ;D ;D ;D ;D ;D

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #7 en: 28 de Agosto del 2016, 20:27:05 pm »
Gracias por todo jantoni.

En cuanto a la ubicación del hilo creo que yo no puedo modificarlo.

Saludos.
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #8 en: 03 de Septiembre del 2016, 00:32:14 am »
En estos días que han pasado desde mi último post, he estado probando las soluciones que me han dado jantoni y Ubik y paso a relatar mis conclusiones al respecto, siempre teniendo en cuenta que lo hago desde mi instalación en el sistema operativo Linux.

En primer lugar probé la solución de jantoni, es decir, hacer los envíos a Meteoclimatic cada 5 minutos. Para ello introduje en etc/crontab  la siguiente línea:

1-57/5 * * * *      root    /root/meteoclimatic/meteoclimatic.sh

De esta manera Meteoclimatic actualiza solo con los datos enviados en los siguientes minutos: 06, 21, 36 y 51, aunque esporádicamente puede tomar los datos correspondientes a 5 minutos antes de los relacionados, los demás envíos los recibe pero los ignora. Esta solución tiene la ventaja de que Meteoclimatic tiene en cada momento los datos más actuales, es decir, por ejemplo en el minuto 06 o como mucho en el minuto 07 actualiza con los datos enviados en el minuto 06 y de la misma manera con los envíos de los minutos 21, 36 y 51. Y el inconveniente de que al menos el registro correspondiente al minuto 55 de las 23 horas, enviado en el minuto 56, Meteoclimatic lo ignora, lo que implica que si en ese registro se modifica el acumulado de lluvia o alguno de los máximos o mínimos del día, estos datos se pierden y ello implica una inconsistencia para Meteoclimatic (es verdad que esa inconsistencia es muy fácil de comprobar y modificar).

En segundo lugar he probado la solución propuesta por Ubik,  es decir, hacer los envíos a Meteoclimatic en los minutos 11, 26, 41 y 56. Para ello introduje en etc/crontab  la siguiente línea:

11,26,41,56 * * * *      root    /root/meteoclimatic/meteoclimatic.sh

De esta manera Meteoclimatic actualiza en el minuto 06 con los datos enviados en el minuto 56 (los últimos enviados) y está así hasta el minuto 21, momento en el cual Meteoclimatic actualiza con el envío del minuto 11. Pero segundos antes de actualizar en el minuto 21 (no más de 30 segundos) Meteoclimatic empieza a dar el mensaje de que la Estación no está actualizada, porque han pasado 25 minutos (desde el minuto 06 hasta ese momento). No estoy seguro de que esto sea o no un inconveniente. Por contra tenemos la seguridad que el envío realizado en el minuto 56 de la 23 horas queda registrado para Meteoclimatic, y por tanto eliminamos la posibilidad de que pueda aparecer una inconsistencia en los datos registrados por Meteoclimatic con motivo del dato acumulado de lluvia, máximos y mínimos del día.

Una vez diseccionados los inconvenientes y las ventajas de cada solución cada uno puede elegir, conociendo lo que está haciendo, es decir espero que os sirva todo este tocho de minutos y envíos.

Saludos.
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #9 en: 03 de Septiembre del 2016, 02:57:22 am »
......
......
.......................................................................... Pero segundos antes de actualizar en el minuto 21 (no más de 30 segundos) Meteoclimatic empieza a dar el mensaje de que la Estación no está actualizada, porque han pasado 25 minutos (desde el minuto 06 hasta ese momento). No estoy seguro de que esto sea o no un inconveniente. ..................
......
......

He podido comprobar que esto no es un inconveniente porque este mensaje lo da siempre y en el momento exacto en que Meteoclimatic está actualizando los datos, independientemente de que hayan pasado 15, 20 o 25 minutos.
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado Wlarues

  • Full Member
  • ***
  • Mensajes: 174
  • Estudiante de Física en la Universidad de Zaragoza
    • Ver Perfil
    • El tiempo en Larués
  • Estación: ESARA2200000022761B
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #10 en: 03 de Septiembre del 2016, 09:38:50 am »
Hola, espero haberlo entendido bien. Mi idea es la siguiente: enviar cada 5 minutos salvo el primer envío del día siguiente, es decir, algo como esto:

06,11,16,21,26,31,36,41,46,51,56 * * * *      root    /root/meteoclimatic/meteoclimatic.sh


(O bien, quitando también el 06, para que en la lectura de las 00:06 lea el dato de las 23:56)
Así, la estación estará actualizada casi siempre y te aseguras de que se reciba el dato de las 23:56

No sé si dará resultado, pero si no me equivoco, podría ser lo óptimo.

Saludos

Estación ESARA2200000022761B

Web Weewx: http://tiempo-larues.eu5.org

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #11 en: 03 de Septiembre del 2016, 09:51:47 am »
Efectivamente Wlarues, es la solucion intermedia que iba a proponer como la optima, es decir poner en etc/crontab lo siguiente:

11-59/5 * * * *      root    /root/meteoclimatic/meteoclimatic.sh

Ya lo he probado y es correcta la sintaxis. En esta solución no se realizan los envíos de los minutos 01 y 06 y cuando en el minuto 06 Meteoclimatic actualice se encuentra como último envío el del minuto 56 de cada hora. Esto permite mantener los datos de la Estación lo más actualizados posible durante el resto de cada hora y al mismo tiempo tener la certeza de que Meteoclimatic considerará el ultimo envío del día.

Saludos

Hay que tener cuidado con no modificar los espacios entre los asteriscos porque colocar dos de ellos entre el primero y el segundo provoca que Linux no cargue el fichero crontab y a mi me ha provocado varios dolores de cabeza buscando el error.
« Última modificación: 03 de Septiembre del 2016, 10:25:48 am por Amon-K »
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #12 en: 03 de Septiembre del 2016, 11:42:14 am »
Esta solución es mejorable. Se trataría de conseguir que en todas las horas menos en la hora 0 se puedan realizar los envíos correspondientes a los minutos 01 y 06. Para ello se podría introducir otra linea más, es decir:


11-59/5 * * * *      root    /root/meteoclimatic/meteoclimatic.sh
1,6 1-23 * * *    root    /root/meteoclimatic/meteoclimatic.sh


Lo he introducido en etc/crontab y Linux lo ha aceptado. Estoy probandolo.
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado Amon-K

  • Full Member
  • ***
  • Mensajes: 209
    • Ver Perfil
    • MeteoPG
  • Estación: Puente Genil - ESAND1400000014500A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #13 en: 03 de Septiembre del 2016, 12:41:51 pm »
Funciona, en esta hora (las 12) los envíos de los minutos 01 y 06 se han realizado, supongo por tanto que la sintaxis anterior es correcta.
Seguiré observando.

En caso que deseemos mantener un ritmo de envíos cada 15 minutos supongo que la mejor configuración sería la siguiente:


21-59/15 * * * *      root    /root/meteoclimatic/meteoclimatic.sh
6 1-23 * * *    root    /root/meteoclimatic/meteoclimatic.sh
56 23 * * *      root    /root/meteoclimatic/meteoclimatic.sh


Aunque habría que probarla porque como ya dije anteriormente Meteoclimatic actualiza en los minutos 06, 21, 36 y 51 y a veces lo hace tan rápido que no le da tiempo a considerar el envío que llega en ese mismo minuto. (Rizando el rizo se podría probar a enviar en el minuto 5.5 pero a priori no confío en que funcione).

« Última modificación: 03 de Septiembre del 2016, 12:45:33 pm por Amon-K »
  ESAND1400000014500A http://meteopg.ddns.net Davis VP2 + Raspberry Pi 2 + Weewx 3.7.1

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.638
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Minimizar la pérdida de datos del último cuarto de hora del día
« Respuesta #14 en: 03 de Septiembre del 2016, 13:02:12 pm »
Si....sería rizar el rizo.....de todos modos, cron no tiene posibilidad, que yo sepa, de trabajar con segundos, solo con los minutos.

No obsante, siempre puedes empezar el script en un minuto y meter un delay de 30 segundos dentro del script.

Y por otro lado, nadie os garantiza que las ventanas de Meteoclimatic sean siempre iguales.

Yo, de todos modos, sigo expectante vuestras conclusiones.

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41