Meteoclimatic

Bricolaje y otras manualidades => Creacion de páginas personales meteorológicas => Mensaje iniciado por: kocher en 12 de Marzo del 2021, 10:55:51 am

Título: Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 12 de Marzo del 2021, 10:55:51 am
Saludos a todos los amigos de Meteoclimatic.

Llevo pensando desde hace un tiempo, cual puede ser la mejor manera para, de forma grafica y sencilla, poder mostrar en nuestra web los avisos de AEMET para nuestra zona.

Hasta hace unos meses, funcionaban unos scripts en PHP, que tomaban los datos de:

                              http://www.meteoalarm.eu/es_ES/0/0/ES-Espana.html (http://www.meteoalarm.eu/es_ES/0/0/ES-Espana.html)

Además de responder muy lentamente, tengo noticias de que están remodelando totalmente sus sistema de avisos; el caso es que todos aquellos scripts han dejado de funcionar.

Todos los foros que he visitado, se encuentran con el mismo problema, sin haber encontrado la solución hasta el momento.     :;

Creo que La mejor manera, en estos momentos, de obtener nuestra información, se encuentra en AEMET, aunque no conozco la forma de llevarlo a cabo; con la dificultad añadida de disponer de 2 tipos de avisos en las zonas que disponen de costa:

                             http://www.aemet.es/es/eltiempo/prediccion/avisos (http://www.aemet.es/es/eltiempo/prediccion/avisos)

- Avisos Costeros

- Avisos  del interior

Espero que alguien más hábil que yo, pueda hacer la luz en este asunto.  *+*

Muchas gracias







Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: zapal en 12 de Marzo del 2021, 13:05:50 pm
 Seria viable el tomar los datos de los xml que genera aemet con los avisos ? es que no se tampoco que pagna se generaba antes con los script que comentas para ver la viabilidad del dato en xml..
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 12 de Marzo del 2021, 16:22:08 pm
Ocurrió hace creo que un año +- lo mismo con AEMET.... tenía unos avisos que parseaban sus tres páginas de avisos de una zona (hoy, mañana y pasado mañana) e hicieron la nueva web.... ahora es más fácil el sistema de avisos.... se han subido al moderno sistema de jsons y una vez lo tienes es sacar su contenido y crear una tabla más o menos elaborada  *-* *-*

Os pongo mi script PHP por si os viene bien en el adjunto. Lee el json de AEMET configurando eso sí previamente la zona del aviso.
Esas zonas tienen un número de 6 cifras y en el script se pone la zona en codigozona en las opciones de configuración a principio del script.

Si hay avisos en la zona ese dígito se puede sacar del final de la URL donde está el aviso en AEMET entrando en los avisos y yendo a la zona, lo malo es que si no hay aviso en la zona no se puede entrar a esa URL. Por ejemplo si entramos en http://www.aemet.es/es/eltiempo/prediccion/avisos?l=752001&r=1 entramos en la zona de avisos de AEMET de Gipuzkoa litoral, pero no es accesible al no tener avisos activos.

Para los costeros, no hay que preocuparse ya que vienen con el código de la zona de aviso terrestre, de hecho el código lleva una C al final del número.

Sólo he encontrado el PDF de AEMET donde están todos los municipios con sus códigos y las zonas de avisos por CCAA y sus provincias:

http://www.aemet.es/documentos/es/eltiempo/prediccion/avisos/plan_meteoalerta/detalle_municipios_zonas_meteorologicas.pdf

Por ejemplo mi zona es la Vega del Segura y su código es el 733003. Ese es el que hay que poner.

Los otros dos campos son el nombre de la zona del aviso y la provincia.

La tabla resultante estará dividida en días y si el aviso está activo estará con fondo rojizo y con la palabra ACTIVO parpadeando.

Los estilos están al final, si sabéis editarlos podéis ponerle los colores que queráis a la tabla. La tabla no tiene anchura así que ocupará todo el ancho del contenedor en que la pongáis.

Eso sí.... cuidado en San Sebastián.... se te puede llenar a veces entre costeros y no costeros la página entera de avisos  *+* *+* *+*

Probadlo y a ver qué tal.

Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 12 de Marzo del 2021, 20:55:37 pm
Buenas noches a todos.

Saludos  Zapal y jmviper ("el mago") jjjjj

#zapal: La mayoría de los aficionados han utilizado las plantillas de Leuven y Saratoga con sus propios sistemas de avisos basados en Meteoalarm.eu; a estos me refiero al decir que ya no funcionan:

                     https://support.leuven-template.eu/ (https://support.leuven-template.eu/)

                     https://saratoga-weather.org/scripts-EUwarning.php#EUwarning (https://saratoga-weather.org/scripts-EUwarning.php#EUwarning)

#jmviper

Citar
Eso sí.... cuidado en San Sebastián.... se te puede llenar a veces entre costeros y no costeros la página entera de avisos  *+* *+* *+*

Definitivamente, eres un mago  O:-)

Efectivamente. tu código funciona de maravilla:

               http://kocher.es/Alertas_Avisos/avisosaemet.php (http://kocher.es/Alertas_Avisos/avisosaemet.php)


En mi caso no parpadea, quizás se daba a que, el suceso, debe ocurrir mañana




Apreciado jmviper , eres un genio  apla3 apla3 apla3

Saludos desde San Sebastian











Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 12 de Marzo del 2021, 21:20:56 pm
¿Sería factible imprimir tan solo el rectángulo con su color pertinente?

Me refiero a que, solo se mostrara el color del aviso y tan solo apareciera el texto resultante al pinchar en dicho rectángulo o en el signo +
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 12 de Marzo del 2021, 22:23:55 pm
Perfecto kocher  :) :)

Aunque sería poner en tu caso Gipuzkoa litoral como nombre de la zona y Gipuzkoa la provincia, por lo menos para salir como están en AEMET, si no, parece que son los avisos de todo el País Vasco  *+* *+*

¿Sería factible imprimir tan solo el rectángulo con su color pertinente?

Me refiero a que, solo se mostrara el color del aviso y tan solo apareciera el texto resultante al pinchar en dicho rectángulo o en el signo +

Quieres decir que en el nivel de riesgo de cada aviso no ponga el texto de Aviso amarillo etc y sólo apareciese con alguna acción tipo pinchar ese recuadro ??

Algo se podría hacer con JavaScript sí.

Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 12 de Marzo del 2021, 22:42:46 pm
Humm

Citar
Aunque sería poner en tu caso Gipuzkoa litoral como nombre de la zona y Gipuzkoa la provincia, por lo menos para salir como están en AEMET, si no, parece que son los avisos de todo el País Vasco  *+* *+*

jjjj realmente, Euskadi es muy pequeñica (como dicen los navarros) ..., no me importa que salga toda la información.

En cuanto a la forma de presentar la información, me refiero a algo parecido a esto:

                  http://kocher.es/Alertas_Avisos/avisosaemet-resumido.php (http://kocher.es/Alertas_Avisos/avisosaemet-resumido.php)

Aunque lo ideal sería que al colocar el puntero en + INFO, en vez de abrirse un enlace, se deslizara la información jjj

Ya se que no es muy elegante ser un pedigüeño, pero .....

Muchas gracias por todas tus creaciones: las aprecio mucho









Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 12 de Marzo del 2021, 23:42:00 pm
pequeñica también lo decimos aquí en Murcia  *+* *+* *+*

Aquí te lo dejo en otro adjunto con tu zona correspondiente, ya que aunque el País Vasco sea "pequeñico"  *-* *-* tiene diferentes zonas de avisos.

Si teniendo avisos le das a +INFO se mostrarán y si estando le das a -INFO otra vez se esconderán. Creo que es ese el comportamiento que quieres. Si no hay avisos +INFO te llevará a la página de avisos de AEMET de tu zona.

Pruébalo a ver si se comporta como tú quieres  ;)
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 12 de Marzo del 2021, 23:48:42 pm
                                 
                    ¡Perfecto!:


                                   http://kocher.es/Alertas_Avisos/avisosaemet-nuevo.php (http://kocher.es/Alertas_Avisos/avisosaemet-nuevo.php)


             apla3 apla3 apla3 apla3 apla3 apla3 apla3


  Eres un fenómeno       :aplaude1:
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 13 de Marzo del 2021, 00:26:00 am
Perfecto !!  :) ;)

Saludos kocher
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 13 de Marzo del 2021, 11:28:56 am
jmviper, has hecho una virguería jjjjjj

Ya lo he instalado en mi web.

Estuve  discurriendo el que hacer y como hacerlo porque, dado que no se conocen de antemano el número de avisos que van a ocurrir, es complicado reservar un espacio para ellos, ya que puede quedar vacío o, al revés, invadir todo el espacio; así que, gracias a jmviper, he optado por presentar el anuncio de los avisos (digamos que un resumen), con el color del tipo de riesgo asignado. El que desee conocer la información completa, debe pinchar en +INFO que le llevará a otra página con la información en forma de tabla.

Caso de no existir ningún tipo e avisos, se mostrará "Sin Avisos" sobre fondo verde.

Si a alguien se le ocurre otra forma más elegante de presentarlo, no tiene más que opinar.

Muchas gracias jmviper.

Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 13 de Marzo del 2021, 19:55:33 pm
ummmm algo como una ventana emergente con los avisos con lo de más info…. ya miraré si hay alguna librería con jQuery para hacerlo

Queda bien en tu página  :)
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 13 de Marzo del 2021, 23:38:39 pm
Gracias jmviper

Estás en todo; me lees el pensamiento jjjj


Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 21 de Marzo del 2021, 13:20:53 pm
Bueno, he estado liado creando un json con todas las zonas de avisos de todos los pueblos de España y me he demorado un poco en verte esto del popup  *-* *-*

Para el "popup" de los avisos he encontrado una librería basada en jQuery (como casi todas) que tiene su propia referencia:

https://dev.vast.com/jquery-popup-overlay/

Se trata de referenciar jQuery si no se tiene y el jscript que se descarga del enlace que he puesto. Por ejemplo con estas tres líneas ya queda inicializado todo:

Código: [Seleccionar]
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="jscripts/jquery.popupoverlay.js"></script>
<script>
    $(document).ready(function() {

      // Initialize the plugin
      $('#tabla_avisos').popup({
horizontal: 'center'
  });

    });
</script>

Yo tengo mi propia ruta a jquery.popupoverlay.js que habrá que poner bien en el caso de cada uno. El resto es identificar los elementos:

Código: [Seleccionar]
<a class="tabla_avisos_open" style="color:white; cursor: pointer; margin-left:15px; font-size: 12px;">+ INFO</a></div><table id="tabla_avisos">
Solo hay que poner esa clase class="tabla_avisos_open" en el enlace del php. De todas formas lo pongo modificado al final de este mensaje.

Por mi parte tras el curro de poner asociar más de 8000 localidades a sus zonas de aviso en el json he creado una página para testearlo con cualquier localidad:

https://www.meteoarchena.es/avisosaemet.php?poblacion=archena&provincia=murcia

En la parte del query o petición tras el signo ?de la URL se pone la población y la provincia de la cual queremos que nos salga el aviso. Ignorará mayúsculas o acentos y espacios en blanco (se puede poner villaviejadeyeltes todo junto  *+* *+*) pudiendo salir cualquier coincidencia, por ejemplo si en el query pongo poblacion=arch&provincia=mur me saldrá lo mismo y si hay coincidencia saldrá la primera solamente.

Creo que es el resultado esperado. Si lo pruebas a ver qué tal va  ;)
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: CarlosLSev en 29 de Abril del 2021, 00:01:17 am
Gran trabajo, ya lo tengo puesto en la web, gracias
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 29 de Abril del 2021, 15:49:02 pm
Hola Carlos.

Según veo en tu web no has puesto bien el enlace al script:

jscripts/jquery.popupoverlay.js

Debes de poner bien la ruta si es otra o no saldrá el popup de los avisos cuando hayan.

Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: CarlosLSev en 29 de Abril del 2021, 23:03:26 pm
Valla pensé que era algo opcional. Lo mirare.
Una duda podría configurarse para que cuando no haya avisos no muestre nada y cuando haya avisos si.
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 30 de Abril del 2021, 00:10:30 am
Citar

Valla pensé que era algo opcional. Lo mirare.


Si no lo quieres quita los enlaces a los scripts:

Código: [Seleccionar]
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="jscripts/jquery.popupoverlay.js"></script>
<script>
    $(document).ready(function() {

      // Initialize the plugin
      $('#tabla_avisos').popup({
horizontal: 'center'
  });

    });
</script>

Citar

Una duda podría configurarse para que cuando no haya avisos no muestre nada y cuando haya avisos si.


Edita el script y en la salida en vez de esto:

Código: [Seleccionar]
if ($exit == 3 or $exit == 2 && $sinavisos) $resulavisos = '<div id="sin_riesgo">Avisos AEMET '.$nombrezona.'<span style="color: black; background-color: #32CD32; padding: 5px; font-size: 14px; margin-left: 15px;">Sin Avisos</span><a href="http://www.aemet.es/es/eltiempo/prediccion/avisos?l='.$codigozona.'" target="_blank" style="color:white;margin-left:15px;font-size:12px;">+ INFO</a></div>';
else $resulavisos = '<div style="border: 5px solid red;"><div id="riesgo">Avisos AEMET '.$nombrezona.$filaavisos.'<a class="tabla_avisos_open" style="color:white; cursor: pointer; margin-left:15px; font-size: 12px;">+ INFO</a></div><table id="tabla_avisos">'.$res.'</table></div>';

echo $resulavisos;

Déjalo así:

Código: [Seleccionar]
if ($exit == 3 or $exit == 2 && $sinavisos) exit;
else $resulavisos = '<div style="border: 5px solid red;"><div id="riesgo">Avisos AEMET '.$nombrezona.$filaavisos.'<a class="tabla_avisos_open" style="color:white; cursor: pointer; margin-left:15px; font-size: 12px;">+ INFO</a></div><table id="tabla_avisos">'.$res.'</table></div>';

echo $resulavisos;
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: CarlosLSev en 02 de Mayo del 2021, 22:45:11 pm
Citar



Edita el script y en la salida en vez de esto:

Código: [Seleccionar]
if ($exit == 3 or $exit == 2 && $sinavisos) $resulavisos = '<div id="sin_riesgo">Avisos AEMET '.$nombrezona.'<span style="color: black; background-color: #32CD32; padding: 5px; font-size: 14px; margin-left: 15px;">Sin Avisos</span><a href="http://www.aemet.es/es/eltiempo/prediccion/avisos?l='.$codigozona.'" target="_blank" style="color:white;margin-left:15px;font-size:12px;">+ INFO</a></div>';
else $resulavisos = '<div style="border: 5px solid red;"><div id="riesgo">Avisos AEMET '.$nombrezona.$filaavisos.'<a class="tabla_avisos_open" style="color:white; cursor: pointer; margin-left:15px; font-size: 12px;">+ INFO</a></div><table id="tabla_avisos">'.$res.'</table></div>';

echo $resulavisos;

Déjalo así:

Código: [Seleccionar]
if ($exit == 3 or $exit == 2 && $sinavisos) exit;
else $resulavisos = '<div style="border: 5px solid red;"><div id="riesgo">Avisos AEMET '.$nombrezona.$filaavisos.'<a class="tabla_avisos_open" style="color:white; cursor: pointer; margin-left:15px; font-size: 12px;">+ INFO</a></div><table id="tabla_avisos">'.$res.'</table></div>';

echo $resulavisos;
Eres un artista!! Eso si de la primera linea si no quito el exit ultimo no me carga la pagina web.
Al final lo he dejado siempre visible, con tu permiso he modificado el script tanto para la.web como para la version movil y básicamente esta tal y como lo tengo en la web(diseño parecido a los script de Leuven)
Si no hay aviso sale la banda verde completamente. Si hay avisos amarillo, naranja o rojo se muestra la banda del color correspondiente. Aunque esta a falta de probarlo, pero en toda España hoy esta sin avisos así que no puedo probar cambiando el código de la zona a otro con avisos.
De todas formas me parecen increíbles los script que eres capaz de crear.... apla3 apla3 apla3
Hoy mismo me he apañado uno (copy and paste con alguna modificación)  para que si la raspberry no responde al ping por el puerto 22 , (se bloquee, me quede sin internet en casa etc...) me avisa en este caso por telegram (eso si ejecutando el script desde el vps)
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 03 de Mayo del 2021, 00:05:04 am
Código: [Seleccionar]
Eso si de la primera linea si no quito el exit ultimo no me carga la pagina web.
Está mal puesto por mi parte sí, el exit termina el script y éste está insertado en el de tu página por lo que a partir de él no saldría ya lo siguiente. Lo mejor sería poner una salida sin texto pero si lo has dejado así mejor. Yo lo tengo así y queda bien avisando de que no hay avisos  *+* *+*.

Que lo disfrutes, y si ves algún fallo no dudes en decirlo  ;).

Saludos
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: kocher en 03 de Mayo del 2021, 19:46:12 pm
Saludos jmviper

Aunque tarde, te agradezco muchísimo el trabajo que has realizado para todos los aficionados Españoles que nos habíamos quedado sin el útil servicio de las alarmas de Meteoalarm (en España: AEMET).

No quiero ni imaginarme lo que has tenido que hacer para personalizar los avisos de todas las regiones Españolas.

Además, el diseño está muy logrado:

                    http://kocher.es (http://kocher.es)

Nos has dado una lección magistral.

Muchísimas gracias y saludos desde San Sebastián





Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: CarlosLSev en 03 de Mayo del 2021, 23:16:37 pm
Hola jmviper ¿alguna explicación porque los segundos van de dos en dos y en números impares en mi versión móvil?
Es algo que he tocado en el script.  Si lo quito va bien (//<?php   include ('avisosaemetmobile.php');   ?>)
En la versión normal lo incluí en header.php. En la versión móvil lo añadí directamente en las primeras lineas de mobile.php
Actualizado:  03/05/21 16:27:33 hace 5 segundos
Ya no se que puede ser
Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: jmviper en 04 de Mayo del 2021, 00:41:45 am
Saludos jmviper

Aunque tarde, te agradezco muchísimo el trabajo que has realizado para todos los aficionados Españoles que nos habíamos quedado sin el útil servicio de las alarmas de Meteoalarm (en España: AEMET).

No quiero ni imaginarme lo que has tenido que hacer para personalizar los avisos de todas las regiones Españolas.

Además, el diseño está muy logrado:

                    http://kocher.es (http://kocher.es)

Nos has dado una lección magistral.

Muchísimas gracias y saludos desde San Sebastián

Hola kocher

Celebro que te haya servido y sirva a los demás. La verdad es que lo hice sólo para mí pero.... con tu petición dije de hacerlo público y que sirviera a más de uno  :)

Que lo disfrutes y que AEMET no cambie dentro de poco el sistema o habrá que estudiar otro nuevo  *+* *+*

Saludos


Hola jmviper ¿alguna explicación porque los segundos van de dos en dos y en números impares en mi versión móvil?
Es algo que he tocado en el script.  Si lo quito va bien (//<?php   include ('avisosaemetmobile.php');   ?>)
En la versión normal lo incluí en header.php. En la versión móvil lo añadí directamente en las primeras lineas de mobile.php
Actualizado:  03/05/21 16:27:33 hace 5 segundos
Ya no se que puede ser

No incluyas en ese script del adjunto (avisosaemetmobile.php) las cabeceras al inicio include("top.php"); ya que se llaman dos veces, ahí y en mobile.php

Eso hace que se incluya dos veces el ajaxCUwx.js y dos veces los setInterval que hacen funcionar ese contador por lo que hacen ese efecto de ir cada dos segundos cuando en verdad suman los dos muy rápidamente al ejecutarse a la vez.

Como digo, hay que tener cuidado en la inclusión de cabeceras y demás con PHP ya que se pueden repetir scripts y suceder comportamientos indeseados. Y ojo con los setInterval…. si se llaman unos dentro de otros pueden colapsar al servidor o al navegador con peticiones que se multiplicarían.... yo he tenido esos problemas y menos mal que jantoni me vio que el servidor estaba escribiendo peticiones en el log a cascaporro y ya vi que tenía mal por ahí los setInterval

Título: Re:Personalizar avisos de AEMET en nuestra web
Publicado por: CarlosLSev en 07 de Mayo del 2021, 23:19:03 pm



Hola jmviper ¿alguna explicación porque los segundos van de dos en dos y en números impares en mi versión móvil?
Es algo que he tocado en el script.  Si lo quito va bien (//<?php   include ('avisosaemetmobile.php');   ?>)
En la versión normal lo incluí en header.php. En la versión móvil lo añadí directamente en las primeras lineas de mobile.php
Actualizado:  03/05/21 16:27:33 hace 5 segundos
Ya no se que puede ser

No incluyas en ese script del adjunto (avisosaemetmobile.php) las cabeceras al inicio include("top.php"); ya que se llaman dos veces, ahí y en mobile.php

Eso hace que se incluya dos veces el ajaxCUwx.js y dos veces los setInterval que hacen funcionar ese contador por lo que hacen ese efecto de ir cada dos segundos cuando en verdad suman los dos muy rápidamente al ejecutarse a la vez.

Como digo, hay que tener cuidado en la inclusión de cabeceras y demás con PHP ya que se pueden repetir scripts y suceder comportamientos indeseados. Y ojo con los setInterval…. si se llaman unos dentro de otros pueden colapsar al servidor o al navegador con peticiones que se multiplicarían.... yo he tenido esos problemas y menos mal que jantoni me vio que el servidor estaba escribiendo peticiones en el log a cascaporro y ya vi que tenía mal por ahí los setInterval
[/quote]

Entiendo lo que me dices, pero si no incluyo ese include("top.php");
La plantilla móvil se me descuadra