Mensajes recientes

Páginas: 1 ... 8 9 [10]
91
Envío de datos a Meteoclimatic / Re:Envío de datos con Windows 10 y Windows 11
« Último mensaje por jezuleon en 21 de Agosto de 2025, 18:58:32 »
Bueno, pues hoy he mirado si ha habido error a las 5 a.m. y efectivamente lo ha habido, pero el log no lo ha recogido, y le he preguntado a chatgpt que por qué, y me dice que el error que recogía el bat, era por desconexión, y después caí en la cuenta que a las IA hay que ponerles las peticiones y preguntas muy mascaditas, para que no haya lugar a dudas o interpretación, pues nada, se lo he vuelto a explicar, con mucha paciencia, y me ha creado otro script, que se supone que hace eso, ya veremos mañana cuando lo mire si el error sigue, que seguramente seguirá. También le pregunté a que era debido el error, le pasé el error y la respuesta que me dio fue esta:

Lo que pasa es:

A veces el servidor no reconoce bien el identificador de la estación o la firma (*SIG=... o *COD=...), y te devuelve 401 Unauthorized.

Otras veces sí lo acepta y te responde 202 Accepted.

El warning "Undefined array key 'uin'" indica que al servidor le está llegando la petición sin un parámetro que espera (probablemente el User Identification Number (UIN) o similar en la cabecera/JSON).

👉 Conclusión:
No es un fallo en tu script, sino intermitente en el servidor de Meteoclimatic, que unas veces interpreta bien los datos y otras no.


Vuelvo a pasar el script de meteoclimatic.bat con la corrección para que todos los errores que salgan en los envíos por el motivo que sea, sean incluidos en el log de errores, id comprobándolo ustedes, si te coge despierto a las 5 a.m. jajaja, lo puedes mirar, yo no lo miraré hasta mañana por la mañana, le ha puesto 3 reintentos de envío, a 30 segundos por si falla alguno, si no lo logra, ya espera al siguiente que sería a los 5 minutos:

@echo off
rem #########################################################
REM ## CONFIGURA TU APIKEY AQUÍ ##
REM #########################################################
set apikey=xxxxxxxxxxxxxxxxxxxxxxxx

rem #########################################################
REM ########   NO MODIFICAR NADA A PARTIR DE AQUI   #########
rem #########################################################

rem Obtiene la ruta del directorio actual del script
for %%I in (%0) do set "script_dir=%%~dpI"

rem Define la ruta del archivo meteoclimatic.htm
set "datafile=%script_dir%meteoclimatic.html"

rem Define el archivo de log
set "logfile=%script_dir%envios.log"

:loop
rem Comprueba si el archivo meteoclimatic.htm existe
if not exist "%datafile%" (
    echo [%date% %time%] El archivo meteoclimatic.html no existe en "%script_dir%". >> "%logfile%"
    echo El archivo meteoclimatic.html no existe en "%script_dir%".
    goto wait
)

rem Lee el archivo meteoclimatic.html y extrae el codigo de la estacion
for /F "tokens=2 delims==" %%A in ('type "%datafile%" ^| findstr /C:"*COD="') do set "stationCode=%%A"

rem Comprueba si se ha encontrado el codigo de la estacion
if "%stationCode%"=="" (
    echo [%date% %time%] No se ha encontrado el codigo de la estacion en el archivo. >> "%logfile%"
    echo No se ha encontrado el codigo de la estacion en el archivo.
    goto wait
)

rem Define la URL de envio
set "url=https://api.m11c.net/v2/rainbow/weather.txt"
set "resposta=%script_dir%resposta.txt"

rem Intentos de envio
set retries=0
:setcurl
curl --data-urlencode "stationCode=%stationCode%" --data-urlencode "rawData2@%datafile%" -H "APIkey: %apikey%" -X POST -k -o "%resposta%" "%url%"
set err=%errorlevel%

rem Analiza la respuesta del servidor
set "status="
for /f "tokens=2 delims=:" %%S in ('findstr /i "status" "%resposta%"') do set status=%%S

if %err% neq 0 (
    echo [%date% %time%] ERROR: Fallo en la ejecucion de la solicitud. Codigo: %err% >> "%logfile%"
    echo Fallo en la ejecucion de la solicitud. Reintentando en 30 segundos...
    set /a retries+=1
    if %retries% leq 2 (
        timeout /t 30 /nobreak >nul
        goto setcurl
    )
    goto wait
)

if /i "%status: =%"=="fail" (
    echo [%date% %time%] ERROR en envio: >> "%logfile%"
    type "%resposta%" >> "%logfile%"
    set /a retries+=1
    if %retries% leq 2 (
        echo Reintentando en 30 segundos...
        timeout /t 30 /nobreak >nul
        goto setcurl
    )
    goto wait
)

rem Si todo correcto, muestra respuesta
echo ===============================
echo Respuesta del servidor:
type "%resposta%"
echo ===============================

:wait
rem Espera 5 minutos antes del siguiente envio
timeout /t 300 /nobreak >nul
goto loop
92
Envío de datos a Meteoclimatic / Re:Envío de datos con Windows 10 y Windows 11
« Último mensaje por jezuleon en 20 de Agosto de 2025, 12:07:24 »
Hola aquí pongo unas mejoras, que no son mías sino de chatgpt, esto crea un archivo log con los errores de envío del archivo meteoclimatic.bat a meteoclimatic, así también cuando el ordenador se queda sin internet, no se cierra el script meteoclimatic.bat, sino que sigue abierto, y con eso nos aseguramos que si hay un corte de internet en el ordenador, no se nos cierra y no tenemos que estar pendiente de si se ha cerrado o no, de todas formas, id observándolo por si acaso:

@echo off

rem #########################################################
REM ## SOLO HAY QUE CONFIGURAR LA APIKEY DE TU ESTACIÓN ##
REM #########################################################

set apikey=xxxxxxxxxxxxxxxxxxxxxxxx

rem #########################################################
rem ########   NO MODIFICAR NADA A PARTIR DE AQUI   #########
rem #########################################################

setlocal

:loop

rem Obtiene la ruta del directorio actual del script
for %%I in (%0) do set "script_dir=%%~dpI"

rem Define la ruta del archivo meteoclimatic.html
set "datafile=%script_dir%meteoclimatic.html"

rem Define el archivo de log
set "logfile=%script_dir%envios.log"

rem Comprueba si el archivo meteoclimatic.html existe
if not exist "%datafile%" (
    echo [%date% %time%] El archivo meteoclimatic.html no existe en "%script_dir%". >> "%logfile%"
    echo El archivo meteoclimatic.html no existe en "%script_dir%".
    ping -n 61 127.0.0.1 >nul
    goto :loop
)

rem Lee el archivo meteoclimatic.html y extrae el codigo de la estacion
for /F "tokens=2 delims==" %%A in ('type "%datafile%" ^| findstr /C:"*COD="') do set "stationCode=%%A"

rem Comprueba si se ha encontrado el codigo de la estacion
if "%stationCode%"=="" (
    echo [%date% %time%] No se ha encontrado el codigo de la estacion en el archivo. >> "%logfile%"
    echo No se ha encontrado el codigo de la estacion en el archivo.
    ping -n 61 127.0.0.1 >nul
    goto :loop
)

rem Define las variables para la comando curl
set url=https://api.m11c.net/v2/rainbow/weather.txt
set resposta=%script_dir%resposta.txt

rem Envía la solicitud con cURL
curl --data-urlencode "stationCode=%stationCode%" --data-urlencode "rawData2@%datafile%" -H "APIkey: %apikey%" -X POST -k -o "%resposta%" "%url%"

rem Comprueba si la ejecucion fue correcta
if %errorlevel% neq 0 (
    echo [%date% %time%] Error en la ejecucion de la solicitud. >> "%logfile%"
    echo Error en la ejecucion de la solicitud.
    ping -n 61 127.0.0.1 >nul
    goto :loop
)

rem Registrar respuesta completa en log solo si quieres (descomenta la siguiente línea)
rem type "%resposta%" >> "%logfile%"

rem Mostrar resultado en pantalla
echo ===============================
echo Respuesta del servidor:
type "%resposta%"
echo ===============================

rem Espera 5 minutos antes de repetir el bucle
ping -n 301 127.0.0.1 >nul

goto :loop

endlocal
93
Envío de datos a Meteoclimatic / Re:CURIOSIDAD TIEMPO DE ESPERA EXCEDIDO SIEMPRE A LA MISMA HORA
« Último mensaje por jantoni en 20 de Agosto de 2025, 00:23:27 »
Ya tardas *-* *-*
94
Envío de datos a Meteoclimatic / Re:CURIOSIDAD TIEMPO DE ESPERA EXCEDIDO SIEMPRE A LA MISMA HORA
« Último mensaje por jezuleon en 19 de Agosto de 2025, 22:09:44 »
He estado probando el script meteoclimatic.bat, y le dije a chatgpt que me agregara en el mismo un log para cada vez que haya un error, lo vaya escribiendo en el archivo log, para no tener que mirar la consola de msdos y buscar la hora del error, y para probarlo, desactivé el wifi para provocar el error de envío, pero cuando el script detectó que no tenía internet, se cerró, así que le volví a preguntar a chatgp, si había tocado algo en el código para que se cerrara el script cuando no tenía internet, y me contestó que no, que ya lo traía el script original en algo que era "exit /b 1", así que le dije que me lo solucionara, y que no se cerrara el script cuando no hay internet, es una cosa que de vez en cuando nos pasa a cualquiera, y si no nos damos cuenta que nos hemos quedado sin internet, se nos cierra el script y hasta que no lo detectemos, no enviamos datos a meteoclimatic. No sé si habré hecho bien, creo que es una mejora, y si os parece bien, comparto el script en el hilo de envío a meteoclimatic con windows 10 y 11
95
Envío de datos a Meteoclimatic / Re:CURIOSIDAD TIEMPO DE ESPERA EXCEDIDO SIEMPRE A LA MISMA HORA
« Último mensaje por jantoni en 19 de Agosto de 2025, 16:00:48 »
Ya os dije que le ocurre prácticamente a todo el mundo

Solo las estaciones que funcionan con Meteobot se salvan y no todas

Y como dijimos es anecdótico

1 envío de 96 a lo largo del día
96
Pues me parece que no es de tu lado el problema
A la mayoría de estaciones, quizás todas, les falta un envío sobre las 03 UTC de esta pasada madrugada
Es fácil de comprobar viendo la gráfica de evolución de las últimas 24 horas de cada estación
En mi caso pasa de 02.59 a 03.28, y falta uno de las 03.14
97
Envío de datos a Meteoclimatic / Re:CURIOSIDAD TIEMPO DE ESPERA EXCEDIDO SIEMPRE A LA MISMA HORA
« Último mensaje por jezuleon en 19 de Agosto de 2025, 11:04:22 »
Pues aquí está el log de ambos programas a las 5 a.m. aproximadamente, en los dos da error a esa misma hora, ya eso me hace pensar que será algo de mi ordenador, mi conexión de internet o yo que sé, pero ya es casualidad que a la misma hora, fallen los dos. El primer tramo de log es de meteoclimatic.bat, y el segundo es de Visual Start Meteoclimatic:

Respuesta del servidor:
error:
status: success
code: 202
message: Accepted
template: *VER=DATA2 *COD=ESAND1100000011406A
*SIG=80633780244016ebe4669bcee9fa05ed *UPD=19/08/2025 04:55 *TMP=24,8
*WND=4 *AZI=W *BAR=1012,6 *HUM=54 *SUN=0 *UVI=0,0 *DHTM=29,8 *DLTM=24,8
*DHHM=54 *DLHM=40 *DHBR=1013,2 *DLBR=1012,2 *DGST=20 *DSUN= *DHUV=
*DPCP=0,0 *WRUN=34,1 *MHTM=45,0 *MLTM=19,8 *MHHM=90 *MLHM=15 *MHBR=1018,9
*MLBR=1008,6 *MGST=37 *MSUN= *MHUV= *MPCP=0,0 *YHTM=45,0 *YLTM=0,9 *YHHM=99
*YLHM=15 *YHBR=1031,0 *YLBR=994,2 *YGST=68 *YSUN= *YHUV= *YPCP=569,3
*AGENT=Meteoclimatic REST API *IP=89.140.32.250 *EOT*
===============================
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1144    0   334  100   810     62    152  0:00:05  0:00:05 --:--:--   107
===============================
Respuesta del servidor:


Warning:  Trying to access array offset on null in /var/www/api.m11c.net/v2/rainbow/index.php on line 177



Warning:  Trying to access array offset on null in /var/www/api.m11c.net/v2/rainbow/index.php on line 177

error: 1
status: fail
code: 401
message: Unauthorized
===============================
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1523    0   711  100   812    187    214  0:00:03  0:00:03 --:--:--   402
===============================
Respuesta del servidor:


Warning:  Undefined array key "uin" in /var/www/api.m11c.net/lib/Config.php on line 242

error:
status: success
code: 202
message: Accepted
template: *VER=DATA2 *COD=ESAND1100000011406A
*SIG=80633780244016ebe4669bcee9fa05ed *UPD=19/08/2025 05:05 *TMP=24,7
*WND=4 *AZI=WSW *BAR=1012,4 *HUM=55 *SUN=0 *UVI=0,0 *DHTM=29,8 *DLTM=24,7
*DHHM=55 *DLHM=40 *DHBR=1013,2 *DLBR=1012,2 *DGST=20 *DSUN= *DHUV=
*DPCP=0,0 *WRUN=34,8 *MHTM=45,0 *MLTM=19,8 *MHHM=90 *MLHM=15 *MHBR=1018,9
*MLBR=1008,6 *MGST=37 *MSUN= *MHUV= *MPCP=0,0 *YHTM=45,0 *YLTM=0,9 *YHHM=99
*YLHM=15 *YHBR=1031,0 *YLBR=994,2 *YGST=68 *YSUN= *YHUV= *YPCP=569,3
*AGENT=Meteoclimatic REST API *IP=89.140.32.250 *EOT*
===============================
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1397    0   587  100   810     86    119  0:00:06  0:00:06 --:--:--   165
===============================
Respuesta del servidor:
error:
status: success
code: 202
message: Accepted
template: *VER=DATA2 *COD=ESAND1100000011406A
*SIG=80633780244016ebe4669bcee9fa05ed *UPD=19/08/2025 05:10 *TMP=24,6
*WND=5 *AZI=W *BAR=1012,5 *HUM=56 *SUN=0 *UVI=0,0 *DHTM=29,8 *DLTM=24,6
*DHHM=56 *DLHM=40 *DHBR=1013,2 *DLBR=1012,2 *DGST=20 *DSUN= *DHUV=
*DPCP=0,0 *WRUN=35,2 *MHTM=45,0 *MLTM=19,8 *MHHM=90 *MLHM=15 *MHBR=1018,9
*MLBR=1008,6 *MGST=37 *MSUN= *MHUV= *MPCP=0,0 *YHTM=45,0 *YLTM=0,9 *YHHM=99
*YLHM=15 *YHBR=1031,0 *YLBR=994,2 *YGST=68 *YSUN= *YHUV= *YPCP=569,3
*AGENT=Meteoclimatic REST API *IP=89.140.32.250 *EOT*
===============================


19/08 04:46:07 - Procesando:  C:\CumulusMX\METEOCLIMATIC\meteoclimatic.html 
19/08 04:46:07 - Envio Aceptado
19/08 05:00:54 - Procesando:  C:\CumulusMX\METEOCLIMATIC\meteoclimatic.html 
19/08 05:01:04 - Se excedió el tiempo de espera de la operación
19/08 05:15:51 - Procesando:  C:\CumulusMX\METEOCLIMATIC\meteoclimatic.html 
19/08 05:16:01 - Se excedió el tiempo de espera de la operación
19/08 05:30:49 - Procesando:  C:\CumulusMX\METEOCLIMATIC\meteoclimatic.html 
19/08 05:30:49 - Envio Aceptado
98
Envío de datos a Meteoclimatic / Re:Envío de datos con Windows 10 y Windows 11
« Último mensaje por jantoni en 18 de Agosto de 2025, 17:43:26 »
Como este script es muy sencillo, se agradece que si lo modificas a mejor, lo compartas con todos nosotros.

Aquí, en Meteoclimatic, hay mucho talento.....vamos a aprovecharlo.

Saludos
99
Envío de datos a Meteoclimatic / Re:CURIOSIDAD TIEMPO DE ESPERA EXCEDIDO SIEMPRE A LA MISMA HORA
« Último mensaje por jantoni en 18 de Agosto de 2025, 15:40:18 »
No tengo respuestas para tus últimas preguntas.... Demasiado técnicas para mi🤣
100
Envío de datos a Meteoclimatic / Re:CURIOSIDAD TIEMPO DE ESPERA EXCEDIDO SIEMPRE A LA MISMA HORA
« Último mensaje por jezuleon en 18 de Agosto de 2025, 15:21:34 »
Parece que funciona bien:

code: 202
message: Accepted
template: *VER=DATA2 *COD=ESAND1100000011406A
*SIG=80633780244016ebe4669bcee9fa05ed *UPD=18/08/2025 15:05 *TMP=38,5
*WND=6 *AZI=SW *BAR=1012,3 *HUM=28 *SUN=394 *UVI=3,0 *DHTM=39,6 *DLTM=25,2
*DHHM=47 *DLHM=25 *DHBR=1014,1 *DLBR=1011,3 *DGST=18 *DSUN= *DHUV=
*DPCP=0,0 *WRUN=22,3 *MHTM=45,0 *MLTM=19,8 *MHHM=90 *MLHM=15 *MHBR=1018,9
*MLBR=1008,6 *MGST=37 *MSUN= *MHUV= *MPCP=0,0 *YHTM=45,0 *YLTM=0,9 *YHHM=99
*YLHM=15 *YHBR=1031,0 *YLBR=994,2 *YGST=68 *YSUN= *YHUV= *YPCP=569,3
*AGENT=Meteoclimatic REST API *IP=89.140.32.250 *EOT*
===============================
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1403    0   590  100   813    942   1299 --:--:-- --:--:-- --:--:--  2259
===============================
Respuesta del servidor:
error:
status: success
code: 202
message: Accepted
template: *VER=DATA2 *COD=ESAND1100000011406A
*SIG=80633780244016ebe4669bcee9fa05ed *UPD=18/08/2025 15:10 *TMP=38,7
*WND=6 *AZI=SW *BAR=1012,5 *HUM=29 *SUN=419 *UVI=4,0 *DHTM=39,6 *DLTM=25,2
*DHHM=47 *DLHM=25 *DHBR=1014,1 *DLBR=1011,3 *DGST=18 *DSUN= *DHUV=
*DPCP=0,0 *WRUN=22,8 *MHTM=45,0 *MLTM=19,8 *MHHM=90 *MLHM=15 *MHBR=1018,9
*MLBR=1008,6 *MGST=37 *MSUN= *MHUV= *MPCP=0,0 *YHTM=45,0 *YLTM=0,9 *YHHM=99
*YLHM=15 *YHBR=1031,0 *YLBR=994,2 *YGST=68 *YSUN= *YHUV= *YPCP=569,3
*AGENT=Meteoclimatic REST API *IP=89.140.32.250 *EOT*
===============================


Y esto en la parte de mi estación, en el apartado de la plantilla:

*VER=DATA2
*COD=ESAND1100000011406A
*SIG=
*UPD=18/08/2025 15:10
*TMP=38,7
*WND=6
*AZI=SW
*BAR=1012,5

Mañana cuando me levante, miraré el script y buscaré el envío de las 5 a.m. a ver si ha habido algún error.  Por cierto esta url https://api.m11c.net/v2/rainbow/weather.txt es la que da problemas cuando bloquean el coudflare o como se llame con el fútbol, porque si es así prefiero el visual start, que no tiene ese problema con el Tebas de los güev.... Y otra duda, yo tengo el programa cumulusmx en un ordenador sólo para el tema de la estación, y ahí sólo tengo instalado lo justo, tengo puesto que cuando se reinicie, arranque cumulux y visual star, y ahora he puesto meteoclimatic.bat, por lo que tendré que anular el arranque en inicio de visual star, pero ¿si dejo ambos meteoclimatic.bat y visual start, qué pasaría, habría algún problema en meteoclimatic, por la recepción de dos plantillas en breve espacio de tiempo, de esa forma si falla uno, está el otro?
Páginas: 1 ... 8 9 [10]