Autor Tema: Ayuda con JSON y CORS  (Leído 460 veces)

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

Desconectado ion_sc

  • Newbie
  • *
  • Mensajes: 39
    • Ver Perfil
  • Estación: Aurizberri - Espinal (ESNAF3100000031694A)
Ayuda con JSON y CORS
« en: 08 de Octubre del 2022, 20:56:31 pm »
Buenas tardes,

Tengo una estación funcionando hace años en meteoclimatic. Es una Davis Vantage Pro 2 con consola. La tengo conectada a un mac-mini y funciona perfectamente.

Ahora, he comprado una nueva estación, esta vez con WLL y ahí empieza la mierda, con la dichosa API v2 y tal.

Estaba, con mis pocos conocimientos de programación, intentando hacer la plantilla y he conseguido la obtención de datos desde http://ipWLL/v1/current_conditions ppeeeeeero saltandomoe el CORS con un componente para Firefox que desactiva el CORS.

Me gustaría saber si el robot de meteoclimatic hace caso de CORS y de ser así, ¿hay alguna manera de saltarselo?

En caso de que no se pueda, ¿habría alguna solución para leer ese JSON o en su defecto copiarlo a un archivo en mi servidor y de ahí leerlo?

gracias!

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.345
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Ayuda con JSON y CORS
« Respuesta #1 en: 08 de Octubre del 2022, 23:30:04 pm »
Hola ion_sc

Entiendo que el json de la API está en una IP local de tu router no ?? lo que pones como ipWLL en esa URL.

Puedes hacer que se lea ese json con un script (equivalente wget en MAC ?) y el programador de tareas cada cuarto de hora, eso sí, desconozco cómo va en MAC el asunto, pero la idea sería eviar el json a tu servidor web y allí un archivo PHP lo lea y lo procese para elaborar la plantilla.



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

www.meteoarchena.es

Desconectado ion_sc

  • Newbie
  • *
  • Mensajes: 39
    • Ver Perfil
  • Estación: Aurizberri - Espinal (ESNAF3100000031694A)
Re:Ayuda con JSON y CORS
« Respuesta #2 en: 09 de Octubre del 2022, 12:58:31 pm »
Muy buenas, Jmviper.

En este caso no tiene nada que ver con el mac. En mi casa tengo una Vantage Pro2 con consola conectada a una mac, y funciona genial, con el mac, la consola y la api V1. Hasta ahí todo OK.

Ahora, he puesto una nueva estación, en otra ubicación con WLL en una red totalmente ajena. El WLL no admite la API v1, para lo que ya hay desarrollo para integrar con meteoclimatic. Puedo acceder a los datos en tiempo real (para visualización) desde cualquier lugar con el reevío de puertos en mi router. El problema viene cuando intento leer esa información mediante un script realizado en mi web. Puedo leer la información cuando con un complemento desactivo los CORS, si no, no me lo permite.

No tengo mucho conocimiento en informática, por eso pido ayuda. ¿Hay forma de que un script lea esos datos? habría alguna forma de obtener de menera automática esa información? ya tengo sincronizada la PWS con WU, pero solo me sincroniza cada 15 minutos... no me entusiasma la idea.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.345
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Ayuda con JSON y CORS
« Respuesta #3 en: 09 de Octubre del 2022, 14:40:29 pm »
Si intentas leerlo con JavaScript no vas a poder como tú dices por el CORS. De todas maneras eso se hace a nivel de servidores, no con el navegador que es un cliente y tiene esas limitaciones de no poder acceder a archivos que no sean del mismo servidor.

Tienes que crear una archivo PHP en tu web (donde meteoclimatic vaya a leer la plantilla).

Por ejemplo, crea una archivo en tu web llamado wll.php y pon en su interior:

Código: [Seleccionar]
<?php

$url 
"urlconeljson";  

echo 
file_get_contents($url);

?>



En "urlconeljson" pon la dirección URL donde se encuentra ese json. Eso sí, tiene que ser accesible desde tu web.

Si cuando entres a http://tuweb/wll.php te sale el json entonces ya podemos seguir con el siguiente paso que sería en ese mismo script con php coger el json y elaborar la plantilla para meteoclimatic.

Prueba ese paso y si lo lee ya me pasas la URL por privado y te elaboro la plantilla.



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

www.meteoarchena.es

Desconectado ion_sc

  • Newbie
  • *
  • Mensajes: 39
    • Ver Perfil
  • Estación: Aurizberri - Espinal (ESNAF3100000031694A)
Re:Ayuda con JSON y CORS
« Respuesta #4 en: 09 de Octubre del 2022, 18:49:40 pm »
Bah! Justo estaba con la plantilla y la dichosa información que proporciona el WLL en local no incluye las máximas y mínimas diarias...
De momento tenía la plantilla asi: https://pirineonavarro.com/ion/meteoclimatic.html
No se si el robot la leería...

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.345
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Ayuda con JSON y CORS
« Respuesta #5 en: 09 de Octubre del 2022, 20:44:59 pm »
Ok, ya entiendo lo que quieres hacer.

No puedes hacerlo de la manera que quieres. Estás intentado ejecutar código JavaScript (con jQuery) para mostrar la plantilla en esa página web, pero eso solo funcionaría abriendo la página en el navegador ya que éste es el que ejecuta el JavaScript.

Meteoclimatic lee el contenido de la página y espera en él sólo la plantilla, no código JavaScript ni HTML por lo que fallaría el leerla. Lo tendrías que hacer como he dicho con un archivo PHP que pone el contenido ya desde el servidor.

Si tienes un PC puedes instalarte Cumulus MX por ejemplo y ponerle como estación el WLL y ponerle esa URL. MX iría grabando los datos, generando gráficos etc etc y elaborando la plantilla de meteoclimatic para subirla a tu servidor.

Existe otra posibilidad que sería coger los datos de la API con el resumen NOAA que incluye datos actuales, diarios, mensuales y anuales de Weatherlink.com en formato json (o XML) con un archivo PHP y elaborar la plantilla con esos datos.

https://www.weatherlink.com/static/docs/APIdocumentation.pdf



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

www.meteoarchena.es

Desconectado ion_sc

  • Newbie
  • *
  • Mensajes: 39
    • Ver Perfil
  • Estación: Aurizberri - Espinal (ESNAF3100000031694A)
Re:Ayuda con JSON y CORS
« Respuesta #6 en: 09 de Octubre del 2022, 22:04:51 pm »
Esa quería utilizar, pero no se puede utilizar con el WLL... ahí es donde está el problema.

La verdad que no se como se puede hacer... imagino que con el php podré hacer que exporte la cadena a un fichero externo y con un cronjob que lo haga periódicamente... mañana le daré otra vez al coco.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.345
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Ayuda con JSON y CORS
« Respuesta #7 en: 09 de Octubre del 2022, 22:46:14 pm »
Sí, eso se podría hacer.

Exportar los datos a un log mensual (oct2022.txt por ejemplo para este mes y cada mes con su nombre) cada minuto con un crontab a tu servidor web sería una buena idea.

Si lo puedes hacer con el crontab del servidor cada minuto y si no enviar el json con un crontab de una raspberry o del programador de tareas de Windows para que un script envíe el json a tu servidor.

A partir de ese log se puede elaborar un archivo de máximas y mínimas diarias, mensuales y anuales que se actualizaría en caso de darse una nueva mínima o máxima y este a su vez servir para otro archivo con la plantilla para meteoclimatic en el que irían los valores actuales y esas mín/máx.

Los logs te podrían servir para generar gráficos, informes NOAA etc etc.

Todo depende de lo que sepas de programación pero se podrían hacer muchas cosas con PHP.



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

www.meteoarchena.es