<?php
echo file_get_contents('realtime.txt'),' ',file_get_contents('logsolarpor.txt');
?>
Hola, lo tendré en cuenta, lo que si observo es que aunque el día este despejado, suele mostrase "Poco nublado", y eso que no hay una mala nube
Ese icono es el perfecto para cuando llueva y haga viento al mismo tiempo. Otro apunte, observo que cuando pone anochecer, en mi caso solo sale el icono del viento. Pero desde que empieza en la descripción a poner Anochecer a poner noche pasa demasiado tiempo, vamos que ya es de noche y sigue indicando anochecer.
if (teoradmax < 30 && diaonoche === "1" && hora < 12) con1 = "Amanecer";
else if (teoradmax < 30 && diaonoche === "1") con1 = "Anochecer";
else if (teoradmax === "0") con1 = "Noche";
else if (solar10 <= 30 && solar60 <= 30 && solarpct > 35) con1 = "Mayormente nublado";
else if (solar10 <= 30 && solar60 <= 30 && solar < 75) con1 = "Muy nublado";
else if (solar10 <= 30 && solar60 <= 30) con1 = "Nublado";
else if (solar10 == 100 && solar60 <= 30) con1 = "Parcialmente nublado";
else if (solar10 < 100 && solar60 <= 30) con1 = "Mayormente nublado";
else if (solar10 <= 100 && solar60 <= 70) con1 = "Parcialmente nublado";
else if (solar10 == 100 && solar60 == 100 && (solarpn > 9 || solarpn1 > 6)) con1 = "Poco nublado";
else if (solar10 == 100 && solar60 == 100 && solarpct > 65) con1 = "Despejado";
else if (solar10 == 0 && solar60 < 100) con1 = "Parcialmente nublado";
else if (solar10 <= 100 && solar60 <= 100) con1 = "Poco nublado";
</head>
<body>
<div align="center"><div class="contenedor0">
<span class="ajax" id="ajaxconditionicon2"></span></div>
<div class="contenedor1">
<span class="ajax" id="ajaxcurrentcond"></span>
</div>
</body>
</html>
<style>
.contenedor0 {
border: 0px solid blue;
background-color: white;
width: 97px;
}
.contenedor1 {
border: 1px solid red;
font-size: 11px;
width: 97px;
background: white;
word-wrap: break-word;
}
</style>
Saludos
Y ese valor donde lo cambias??
Perdon :; Lo leí a la ligeraY ese valor donde lo cambias??
Settings->Station settings->Solar
Lo puse en mi anterior mensaje.
12-11-2021 15:57 246 369 66 12-11-2021 15:58 245 367 66 12-11-2021 15:59 57 364 15 12-11-2021 16:00 57 361 15 12-11-2021 16:01 232 358 64 12-11-2021 16:02 232 355 65 12-11-2021 16:03 233 353 66 12-11-2021 16:04 227 350 64 12-11-2021 16:05 222 347 63 12-11-2021 16:06 217 344 63 12-11-2021 16:07 216 341 63 12-11-2021 16:08 217 338 64 12-11-2021 16:09 215 335 64 12-11-2021 16:10 210 332 63 12-11-2021 16:11 201 330 60 12-11-2021 16:12 191 327 58 12-11-2021 16:13 56 324 17 12-11-2021 16:14 182 321 56 12-11-2021 16:15 184 318 57 12-11-2021 16:16 187 315 59 12-11-2021 16:17 181 312 58 12-11-2021 16:18 181 309 58 12-11-2021 16:19 183 306 59 12-11-2021 16:20 179 303 59 12-11-2021 16:21 173 300 57 12-11-2021 16:22 169 297 56 12-11-2021 16:23 170 294 57 12-11-2021 16:24 167 291 57 12-11-2021 16:25 60 288 20 12-11-2021 16:26 158 285 55 12-11-2021 16:27 149 282 52 12-11-2021 16:28 147 279 52 12-11-2021 16:29 140 276 50 12-11-2021 16:30 58 273 21 |
Cierto es que estos días están nublados,Si la nueva estación esta instalada exactamente igual que la anterior, (en idénticos lugar y posición), y el problema era de sombras habrá que ver si se reproduce el mismo patrón de valles y crestas en la parábola, cosa que solo se podrá observar en días soleados.
El script funciona según los valores que va recibiendo del sensor, esta claro que esta estación sobre os 100€, no es comparable con una Davis bastante mas caras y con mayor calidad.
La estación sigue puesta exactamente en el mismo lugar. B. Santiago. Como se puede comprobar, en hora civil, a las 12:05 pega un bajón, a las 12.20 esta abajo y a las 12:35 sigue normalmente, esta claro que debe tener una sombra, no se de que, sobre todo por que sobre esa hora el sol esta muy arriba. Este finde no estuve aquí así que no pude observarlo. Lo que si parece que sensor de UV/solar no pega esos bajones al amanecer y el día como si hacia antes, si los da al atardecer, es mas normal puede tener varias sombras. En el adjunto de hoy se observa comparándolo con otra estación (la marcada en rojo) que su campana si es perfecta. A ver si próximo finde puedo subirse a esa hora, pensándolo ahora podría ser sombra de mástil o antena de tv, que aunque esta a unos 3-4 metros lo mismo es eso. Lo que si observo es que el sensor solar siempre va muy por debajo de otros, si el mío marca 300, otros están en 400 o mas. Buena parte del día si marco hoy despejado e script. Al menos se que algún problema había y eso si se ha resuelto, evidentemente, lo que produce la sombra sigue ahí. Lo seguiré observando.La comparación con otras estaciones es perfectamente innecesaria e inútil. El estado del cielo y la intensidad de la radiación solar podrían pueden varíar notablemente en cortas distancias y por diferentes factores, y por no referirme a la nubosidad visible lo referiré, para empezar, al tipo de piranómetro, al polvo en suspensión, y a otros etcéteras. No te empeñes en obtener una parábola ni unos valores idénticos a los de otra estación, ni siquiera muy parecidos; no tiene sentido.
En mi opinión, es más riguroso y menos engañoso, atenerse a lo que se obtiene en realidad con nuestros propios sensores, sin necesidad de añadir factor alguno de corrección, offset
La estación sigue puesta exactamente en el mismo lugar. B. Santiago. Como se puede comprobar, en hora civil, a las 12:05 pega un bajón, a las 12.20 esta abajo y a las 12:35 sigue normalmente, esta claro que debe tener una sombra, no se de que, sobre todo por que sobre esa hora el sol esta muy arriba. Este finde no estuve aquí así que no pude observarlo. Lo que si parece que sensor de UV/solar no pega esos bajones al amanecer y el día como si hacia antes, si los da al atardecer, es mas normal puede tener varias sombras. En el adjunto de hoy se observa comparándolo con otra estación (la marcada en rojo) que su campana si es perfecta. A ver si próximo finde puedo subirse a esa hora, pensándolo ahora podría ser sombra de mástil o antena de tv, que aunque esta a unos 3-4 metros lo mismo es eso. Lo que si observo es que el sensor solar siempre va muy por debajo de otros, si el mío marca 300, otros están en 400 o mas. Buena parte del día si marco hoy despejado e script. Al menos se que algún problema había y eso si se ha resuelto, evidentemente, lo que produce la sombra sigue ahí. Lo seguiré observando.La comparación con otras estaciones es perfectamente innecesaria e inútil. El estado del cielo y la intensidad de la radiación solar podrían pueden varíar notablemente en cortas distancias y por diferentes factores, y por no referirme a la nubosidad visible lo referiré, para empezar, al tipo de piranómetro, al polvo en suspensión, y a otros etcéteras. No te empeñes en obtener una parábola ni unos valores idénticos a los de otra estación, ni siquiera muy parecidos; no tiene sentido.
Repito una vez más que los sensores toman sus medidas en el emplazamiento en que están dispuestos, y no en otro lugar, por cercano que esté.
En cuanto a la existencia de sombras, (cosa que ofrecía pocas dudas) tú mismo lo dices: tendrás que observarlo, y tal vez corregirlo. En mi opinión no se trataría de una sombra ligera, difusa, de un mástil o antena en alto, (aunque también podría serlo), sino de una sombra bien intensa dada la profundidad de la hendidura en la parábola. Quizá sea la propia estación la que la origine: el pluviómetro, por ejemplo.
Dado que Meteoclimatic no guarda valores de radiación solar, (solo refleja y muestra la última medición), ni mira el UVI, tiene muy poca importancia que tú parábola salga más o menos imperfecta.
En cuanto a las horas de sol..., es otro asunto del que quizá deberíamos desentendernos, a no ser para satisfacer tu curiosidad personal. A Meteoclimatic eso no le importa.
Valla no sabia lo de ver las variables en acción. Pero no se por que no puedo imprimirlas en pantalla desde el propio script, aunque eso es lo de menos.
var porcen = realtime[59];
Si fuese $porcen = realtime[59]; no habría problema, pero ese ya es otro tema.
Y no puedes subir la estación un poco más ?? Quizás un metro más y ya no tendrías el problema.
Si, en su día lo leí, pero me sigue sonando a chino... Ya puestos
Valla no sabia lo de ver las variables en acción. Pero no se por que no puedo imprimirlas en pantalla desde el propio script, aunque eso es lo de menos.
var porcen = realtime[59];
Si fuese $porcen = realtime[59]; no habría problema, pero ese ya es otro tema.
Lo primero es javascript, lo segundo PHP. PHP se ejecuta en el servidor, javascript en el navegador.
Tu web está basada en Saratoga y hace ya algún tiempo (5 años) puse en esta misma sección del foro un tema con chincheta sobre el funcionamiento con Ajax de estas páginas:
https://forum.meteoclimatic.net/index.php/topic,1032.0.html
Básicamente hay que ponerle un atributo class="ajax" y un id="iddelvalorquesequierecambiar" al elemento <span> en el que queremos que se actualice la información en cada petición ajax. Luego en el script se van poniendo set_ajax_obs("iddelvalorquesequierecambiar", variableamostrar); dentro de la función llamada por Ajax.
Así puedes poner toda la info que quieras en la página en tiempo real.
Y no puedes subir la estación un poco más ?? Quizás un metro más y ya no tendrías el problema.
Hola
Otra alternativa podría ser cambiar la estación al mismo mástil de la antena, en la punta y bajar la antena esos 60-70 cms que parece haber hasta el juego de vientos
Te resultaría posible?
Tras leerte y según te entiendo, agregó sobre la línea 777
// inTemp
var intemp = realtime[22];
set_ajax_obs("ajaxintemp",intemp) ;
Se supone que debe darme valor de la temperatura interior.
Con un <span class="ajax" id="intemp"></span>
Pero no muestra nada. Con cualquier otro valor ya definido no tengo problema.
Tras leerte y según te entiendo, agregó sobre la línea 777Eres un mago, ya lo cambie todo a ajax. Añadi las varibles y funciones que faltaban y funciona!!
// inTemp
var intemp = realtime[22];
set_ajax_obs("ajaxintemp",intemp) ;
Se supone que debe darme valor de la temperatura interior.
Con un <span class="ajax" id="intemp"></span>
Pero no muestra nada. Con cualquier otro valor ya definido no tengo problema.
<span class="ajax" id="ajaxintemp"></span>
tienes que poner el primer nombre de la función set_ajax_obs. Esa función busca la etiqueta con id con ese nombre y pone el valor de la variable (en este caso intemp) en ella.
req.open('GET', 'https://www.tuweb.es/cache/metarcache-XXXX.txt', false);
(Lo explico, pero vamos que es por si alguien decide usarlo, tu lo veras al vuelo)if (con1 != "Despejado" && teoradmax >= 30 && (SKC === "1" || CAVOK === "1" || NSC === "1" || NCD === "1" )) con1 = " Despejado";
Básicamente es que si la condición no es "Despejado" y la estación metar indica que si lo esta imponga dicha condición. No es la mejor solución, pero funciona y puedo seguir usando tu scriptelse if (teoradmax === "0") con1 = "Noche";
Es cosa mía o es un error¿?¿por cierto para cuando una sección php?
Ahora quiero preguntarte una duda del script sobre la var teomaxrad = realtime[56];
Cuando la declaras la llamas teomaxrad, pero luego en mas partes del código la llamas teoradmaxCódigo: [Seleccionar]else if (teoradmax === "0") con1 = "Noche";
Es cosa mía o es un error¿?
//Asignamos valor 0 a todas las var
var SKC = "0";
...
var SKC = Metar.search("SKC");
if (SKC > 0) SKC = "1";
if (SKC < 0) SKC = "0";
...
var SKC = Metar.match("SKC");
...
var SKC = /SKC/.test(Metar);
...
if (con1 != "Despejado" && teoradmax >= 30 && (SKC || CAVOK || NSC || NCD )) con1 = " Despejado";
req.open('GET', 'cache/metarcache-LEZL.txt', false); // Direccion url del fichero cache, sustituir XXXX por el codigo de estacion Metar
//Condiciones actuales
var ajaxtimeformat = realtime[1];
var porcen = realtime[59];
var rad1min = realtime[60];
var rad2min = realtime[61];
var porcen10m = realtime[62];
var porcen1h = realtime[63];
var diaonoche = realtime[49];
var teomaxrad = realtime[56];
var condiciones = condic(porcen10m, porcen1h, solar, porcen, rad1min, rad2min, teomaxrad, humidity, wind, rainratehr, diaonoche, ajaxtimeformat.split(':')[0]);
set_ajax_obs("ajaxconditionicon2", condicicon(teomaxrad, condiciones, temp));
set_ajax_obs("ajaxcurrentcond", condiciones);
Buenas, te voy respondiendo:
Pronto pronto... a ver si para este mes y para cosas básicas en principio. Tengo que desliarme un poco con los proyectos. Por lo que veo vamos a comentar primero cosas de javascript.
Mas vale tarde que nunca
Le llamé de dos maneras diferentes en dos funciones distintas pero no altera el funcionamiento, quizás ni me di cuenta. teomaxrad es como le puse a la variable dentro de la función principal ajaxLoader que es la que se encarga de actualizar los valores con su setInterval (ahora te comentaré más adelante esto). Sin embargo teoradmax es como se llama dentro de la función condic
Así tenemos que dentro de la función ajaxLoader creamos la variable teomaxrad a la que le asignamos el valor de radiación máxima teórica del realtime.php y después la metemos en la función condic
var condiciones = condic(porcen10m, porcen1h, solar, porcen, rad1min, rad2min, teomaxrad, humidity, wind, rainratehr, diaonoche, ajaxtimeformat.split(':')[0]);
Dentro de esa función se llama teoradmax:
function condic(solar10, solar60, solar, solarpct, solar1, solar2, teoradmax, humedad, viento, intensidad, diaonoche, hora) {...
Como ves una cosa son los nombres de las variables que se meten como argumentos de la función y otra cómo son tomados dentro de la función (según la posición del argumento). Todo esto son cosas básicas de las funciones.
Entiendo mas o menos lo que me explicas, una cosa es la variable y otra función
Viendo tu código para crear lo del metar has puesto más código de la cuenta, basado seguramente en prueba/error. Te lo comento un poco:
Jeje, por supuesto google, leer y probar es lo mío.
No hace falta ponerle el 0 como string (encerrado en las comillas), lo puedes poner como número, de hecho "0" == 0 es verdadero.
Aquí estás sobrescribiendo lo que has declarado antes, puedes prescindir por lo tanto del bloque anterior. Por ejemplo le estás dando otro valor a la variable SKC que será su posición en el string (-1 si no existe), pero no uses eso para ver si existe una palabra en un texto, por ejemplo si la palabra está al principio te devolvería posición 0 que sería false. Usa match() o test() de la siguiente manera:
var SKC = Metar.match("SKC");
ó
var SKC = /SKC/.test(Metar);
Esta última es más rápida en ejecución ya que match devuelve un objeto que se evalúa a true si existe la cadena y undefined que se evalúa a false si no existe, mientras que test devuelve los boleanos true o false. O sea que no hace falta ponerle los ifs siguientes ni declararlos anteriormente.
Si realmente si el código esta al principio no funciona, lo puse con match y perfecto, corregido
Así la línea del if puede quedar así:Código: [Seleccionar]if (con1 != "Despejado" && teoradmax >= 30 && (SKC || CAVOK || NSC || NCD )) con1 = " Despejado";
A veces me complico solo, mas fácil y limpio imposible
También cuando llamas a la URL con ajax no hace falta ponerle el dominio completo en la URL sino solamente la ruta relativa:
req.open('GET', 'cache/metarcache-LEZL.txt', false); // Direccion url del fichero cache, sustituir XXXX por el codigo de estacion Metar
No había caído
En cuanto al html adjunto que has puesto mejor que me pongas el enlace a su página ya que se puede ver su código fuente en el navegador y verlo en funcionamiento. Yo en local poco puedo probarlo.
Mmmm no te entiendo, lo adjunte y también puse el enlace al final del todo, entiendo que no lo viste
Condicionesmx con metar (https://www.meteoviso.es/condicionesmxmetar.html)
Y ahora ya para finalizar no tienes que poner el script en la página principal sin más. En javascript si metes un setInterval dentro de otro setInterval sucede que se vuelve loca la página como a ti te pasa porque se están llamando ya alterando los intervalos. Cuidado con eso porque puede generar muchísimas peticiones al servidor hasta colapsarlo tipo ataque DOS ó DDOS aunque probablemente sea el navegador el que colapse antes.
La página llama al setInterval que hay en el ajaxCUwx.js y si le pones ese después ya viene el lío. Ese código lo deberías de combinar en el ajaxCUwx.js poniendo las funciones condic y condicicon (en las declaraciones de funciones al principio del script) y después en el interior de la función ajaxLoader donde se manejan los datos del realtime poner las líneas que llaman a las condiciones nubosas:Código: [Seleccionar]//Condiciones actuales
var ajaxtimeformat = realtime[1];
var porcen = realtime[59];
var rad1min = realtime[60];
var rad2min = realtime[61];
var porcen10m = realtime[62];
var porcen1h = realtime[63];
var diaonoche = realtime[49];
var teomaxrad = realtime[56];
var condiciones = condic(porcen10m, porcen1h, solar, porcen, rad1min, rad2min, teomaxrad, humidity, wind, rainratehr, diaonoche, ajaxtimeformat.split(':')[0]);
set_ajax_obs("ajaxconditionicon2", condicicon(teomaxrad, condiciones, temp));
set_ajax_obs("ajaxcurrentcond", condiciones);
Con eso no haría falta incluir el condicionesmxmetar.html en un iframe
Voy a ver si soy capaz....
Ya me vas diciendo cómo vas los cambios si quieres ir probando lo que te he dicho.
Claro que lo iré probando, ya todo corregido, salvo lo de incluirlo en la web sin iframe, creo que seré capaz, mil gracias
Edito no soy capaz, he puesto las líneas en el mismo lugar en el ajaxCUwx.js y aparentemente no da error, pero si declaro una variable para probarlo junto antes de los if , var intensidad = 10; no hace nada.... Creo que falta algo mas
Saludos
Mmmm no te entiendo, lo adjunte y también puse el enlace al final del todo, entiendo que no lo viste
Edito no soy capaz, he puesto las líneas en el mismo lugar en el ajaxCUwx.js y aparentemente no da error, pero si declaro una variable para probarlo junto antes de los if , var intensidad = 10; no hace nada.... Creo que falta algo mas
var SKC = Metar.match("SKC");
var FEW = Metar.match("FEW");
var SCT = Metar.match("SCT");
var BKN = Metar.match("BKN");
var OVC = Metar.match("OVC");
var FG = Metar.match("FG");
var BR = Metar.match("BR");
var CAVOK = Metar.match("CAVOK");
var NSC = Metar.match("NSC");
var NCD = Metar.match("NCD");
var VV = Metar.match("VV");
<?php
$filegetmetar = "/var/www/html/script/condicionesmx/getmetar.txt";
$metar = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEZL.TXT");
$metar1 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEMO.TXT");
file_put_contents($filegetmetar, $metar."<br>".$metar1);
$Metar = $metar.$metar1;
$CAVOK = 0;
$NSC = 0;
$NCD = 0;
$SKC = 0;
$FEW = 0;
$SCT = 0;
$BKN = 0;
$OVC = 0;
$FG = 0;
$BR = 0;
$VV = 0;
$DZ = 0;
$SH = 0;
$RA = 0;
//Codigos
$SSKC = 'SKC';
$extraer = strpos($Metar, $SSKC);
//echo "<br>";
if($extraer !== FALSE){
$SKC = 1;
}
$SCAVOK = 'CAVOK';
$extraer = strpos($Metar, $SCAVOK);
//echo "<br>";
if($extraer !== FALSE){
$CAVOK = 1;
}
$SNSC = 'NSC';
$extraer = strpos($Metar, $SNSC);
//echo "<br>";
if($extraer !== FALSE){
$NSC = 1;
}
$SNCD = 'NCD';
$extraer = strpos($Metar, $SNCD);
//echo "<br>";
if($extraer !== FALSE){
$NCD = 1;
}
$SFEW = 'FEW';
$extraer = strpos($Metar, $SFEW);
//echo "<br>";
if($extraer !== FALSE){
$FEW = 1;
}
$SSCT = 'SCT';
$extraer = strpos($Metar, $SSCT);
// echo "<br>";
if($extraer !== FALSE){
$SCT = 1;
}
$SBKN = 'BKN';
$extraer = strpos($Metar, $SBKN);
//echo "<br>";
if($extraer !== FALSE){
$BKN = 1;
}
$SOVC = 'OVC';
$extraer = strpos($Metar, $SOVC);
//echo "<br>";
if($extraer !== FALSE){
$OVC = 1;
}
$SFG = 'FG';
$extraer = strpos($Metar, $SFG);
//echo "<br>";
if($extraer !== FALSE){
$FG = 1;
}
$SBR = 'BR';
$extraer = strpos($Metar, $SBR);
//echo "<br>";
if($extraer !== FALSE){
$BR = 1;
}
$SVV = 'VV';
$extraer = strpos($Metar, $SVV);
//echo "<br>";
if($extraer !== FALSE){
$VV = 1;
}
$SDZ = 'DZ';
$extraer = strpos($Metar, $SDZ);
//echo "<br>";
if($extraer !== FALSE){
$DZ = 1;
}
$SSH = 'SH';
$extraer = strpos($Metar, $SSH);
//echo "<br>";
if($extraer !== FALSE){
$SH = 1;
}
$SRA = 'RA';
$extraer = strpos($Metar, $SRA);
//echo "<br>";
if($extraer !== FALSE){
$RA = 1;
}
//echo $Metar;
$filemetar = "/var/www/html/script/condicionesmx/metar.txt";
file_put_contents($filemetar, $CAVOK." ".$NSC." ".$NCD." ".$SKC." ".$FEW." ".$SCT." ".$BKN." ".$OVC." ".$FG." ".$BR." ".$VV." ".$DZ." ".$SH." ".$RA);
?>
<?php
$filegetmetar = "/var/www/html/script/condicionesmx/getmetar.txt";
$metar = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEZL.TXT");
$metar1 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEMO.TXT");
file_put_contents($filegetmetar, $metar."<br>".$metar1);
$Metar = $metar.$metar1;
//Codigos
$SKC = strpos($Metar , 'SKC') !== false ? 1 : 0;
$CAVOK = strpos($Metar , 'CAVOK') !== false ? 1 : 0;
$NSC = strpos($Metar , 'NSC') !== false ? 1 : 0;
$NCD = strpos($Metar , 'NCD') !== false ? 1 : 0;
$FEW = strpos($Metar , 'FEW') !== false ? 1 : 0;
$BKN = strpos($Metar , 'BKN') !== false ? 1 : 0;
$OVC = strpos($Metar , 'OVC') !== false ? 1 : 0;
$FG = strpos($Metar , 'FG') !== false ? 1 : 0;
$BR = strpos($Metar , 'BR') !== false ? 1 : 0;
$VV = strpos($Metar , 'VV') !== false ? 1 : 0;
$DZ = strpos($Metar , 'DZ') !== false ? 1 : 0;
$SH = strpos($Metar , 'SH') !== false ? 1 : 0;
$RA = strpos($Metar , 'RA') !== false ? 1 : 0;
//echo $Metar;
$filemetar = "/var/www/html/script/condicionesmx/metar.txt";
file_put_contents($filemetar, $CAVOK." ".$NSC." ".$NCD." ".$SKC." ".$FEW." ".$SCT." ".$BKN." ".$OVC." ".$FG." ".$BR." ".$VV." ".$DZ." ".$SH." ".$RA);
?>
<?php
$filegetmetar = ("/var/www/html/script/condicionesmx/getmetar.txt");
$filemetar = ("/var/www/html/script/condicionesmx/metar.txt");
$metar0 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEZL.TXT");
$metar1 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEMO.TXT");
$nometarfile = file_get_contents($filemetar);
$nometarfileok = substr($nometarfile,0,27);
$fecha0utc = substr($metar0,0,16);
$fecha1utc = substr($metar1,0,16);
$fechaactual= date("Y/m/d H:i");
echo $fecha0utc."<br>";
echo $fecha1utc."<br>";
$utc_date0 = DateTime::createFromFormat(
'Y/m/d H:i',
$fecha0utc,
new DateTimeZone('UTC'));
$acst_date0 = clone $utc_date0;
$acst_date0->setTimeZone(new DateTimeZone('Europe/Madrid'));
echo $acst_date0->format('Y/m/d H:i');
echo "<br>";
$fecha0= $acst_date0->format('Y/m/d H:i');
$utc_date1 = DateTime::createFromFormat(
'Y/m/d H:i',
$fecha1utc,
new DateTimeZone('UTC'));
$acst_date1 = clone $utc_date1;
$acst_date1->setTimeZone(new DateTimeZone('Europe/Madrid'));
echo $acst_date1->format('Y/m/d H:i');
echo "<br>";
$fecha1= $acst_date1->format('Y/m/d H:i');
function diferencia($fecha_1,$fecha_2)
{
$minutos = (strtotime($fecha_1)-strtotime($fecha_2))/60;
$minutos = abs($minutos); $minutos = floor($minutos);
return $minutos;
}
$metarti0 = diferencia($fecha0,$fechaactual);
$metarti1 = diferencia($fecha1,$fechaactual);
echo $metarti0;
echo "<br>";
echo $metarti1;
if ($metarti0 >= 65) {
$NOMETAR0 = "0.5";
$metar0 = $fecha0." \nMetar no actualizado\n";}
if ($metarti1 >= 65) {
$NOMETAR1 = "0.5";
$metar1 = $fecha1." \nMetar no actualizado\n";}
$NOMETAR = $NOMETAR0+$NOMETAR1;
$Metar = $metar0."\n".$metar1;
//Codigos
$SKC = strpos($Metar , 'SKC') !== false ? 1 : 0;
$CAVOK = strpos($Metar , 'CAVOK') !== false ? 1 : 0;
$NSC = strpos($Metar , 'NSC') !== false ? 1 : 0;
$NCD = strpos($Metar , 'NCD') !== false ? 1 : 0;
$FEW = strpos($Metar , 'FEW') !== false ? 1 : 0;
$SCT = strpos($Metar , 'SCT') !== false ? 1 : 0;
$BKN = strpos($Metar , 'BKN') !== false ? 1 : 0;
$OVC = strpos($Metar , 'OVC') !== false ? 1 : 0;
$FG = strpos($Metar , 'FG') !== false ? 1 : 0;
$BR = strpos($Metar , 'BR') !== false ? 1 : 0;
$VV = strpos($Metar , 'VV') !== false ? 1 : 0;
$DZ = strpos($Metar , 'DZ') !== false ? 1 : 0;
$SH = strpos($Metar , 'SH') !== false ? 1 : 0;
$RA = strpos($Metar , 'RA') !== false ? 1 : 0;
file_put_contents($filemetar, $CAVOK." ".$NSC." ".$NCD." ".$SKC." ".$FEW." ".$SCT." ".$BKN." ".$OVC." ".$FG." ".$BR." ".$VV." ".$DZ." ".$SH." ".$RA." ".$NOMETAR);
file_put_contents($filegetmetar, $Metar);
?>
<?php
date_default_timezone_set('UTC');
$filegetmetar = ("/var/www/html/script/condicionesmx/getmetar.txt");
$filemetar = ("/var/www/html/script/condicionesmx/metar.txt");
$metar0 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEZL.TXT");
$metar1 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEMO.TXT");
$nometarfile = file_get_contents($filemetar);
$nometarfileok = substr($nometarfile,0,27);
$fecha0utc = substr($metar0,0,16);
$fecha1utc = substr($metar1,0,16);
$fechaactualutc= time(); // hora unix, mismo resultado que strtotime(gmdate('d-m-Y H:i'))
echo $fecha0utc."<br>";
echo $fecha1utc."<br>";
//nos ahorramos este bloque
function diferencia($fecha_1,$fecha_2)
{
$minutos = (strtotime($fecha_1)-strtotime($fecha_2))/60;
$minutos = floor(abs($minutos));
return $minutos;
}
$metarti0 = diferencia($fecha0utc,$fechaactualutc);
$metarti1 = diferencia($fecha1utc,$fechaactualutc);
echo $metarti0;
echo "<br>";
echo $metarti1;
//continúa...
?>
echo date_default_timezone_get();
<?php
$filegetmetar = ("/var/www/html/script/condicionesmx/getmetar.txt");
$filemetar = ("/var/www/html/script/condicionesmx/metar.txt");
$metar0 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEZL.TXT");
$metar1 = file_get_contents("https://tgftp.nws.noaa.gov/data/observations/metar/stations/LEMO.TXT");
$nometarfile = file_get_contents($filemetar);
$nometarfileok = substr($nometarfile,0,27);
$fecha0utc = substr($metar0,0,16).' UTC';
$fecha1utc = substr($metar1,0,16).' UTC';
$fechaactualutc= gmdate('d-m-Y H:i').' UTC';
echo $fecha0utc."<br>";
echo $fecha1utc."<br>";
function diferencia($fecha_1,$fecha_2)
{
$minutos = (strtotime($fecha_1)-strtotime($fecha_2))/60;
$minutos = floor(abs($minutos));
return $minutos;
}
$metarti0 = diferencia($fecha0utc,$fechaactualutc);
$metarti1 = diferencia($fecha1utc,$fechaactualutc);
echo $metarti0;
echo "<br>";
echo $metarti1;
//continúa...
?>
<span class="ajax" id="ajaxconditionicon2">
<img src="<?php echo $condIconDir . newIcon($iconnumber) ?>"
alt="<?php $t1 = fixupCondition($Currentsolardescription);
echo $t1; ?>"
title="<?php echo $t1; ?>" height="58" width="55" />
</span>
</td>
<td class="data1" style="text-align: center;border: 0px solid lightblue"><div align="center"><div class="contenedor"><div style="text-align:center;"><span class="ajax" id="ajaxcurrentcond">
<div class="contenedor"><a><?php echo $t1; ?>
<span class="ajax" id="ajaxcurrentcond2"></span>
</td>
</tr></table>
<span class="ajax" id="ajaxconditionicon2"></span>
</td>
<td class="data1" style="text-align: center;border: 0px solid lightblue"><div align="center"><div class="contenedor"><div style="text-align:center;"><span class="ajax" id="ajaxcurrentcond">
<div class="contenedor"><a>
<span class="ajax" id="ajaxcurrentcond2"></span>
</td>
</tr></table>
<span class="ajax" id="ajaxconditionicon2">
<img src="ajax-images/none.jpg" width="55px">
</span>
</td>
<td class="data1" style="text-align: center;border: 0px solid lightblue"><div align="center" class="contenedor" style="text-align:center;"><span class="ajax" id="ajaxcurrentcond">
<div class="contenedor"><?php echo " "; ?></span>
<span class="ajax" id="ajaxcurrentcond2"></span>
</td>
</tr></table>
#ajaxconditionicon2 {
display: inline-block;
height: 58px;
width: 55px;
}
var ajaxtimeformat = realtime[1];
var porcen = realtime[59];
var rad1min = realtime[60];
var rad2min = realtime[61];
var porcen10m = realtime[62];
var porcen1h = realtime[63];
var diaonoche = realtime[49];
var teomaxrad = realtime[56];
a
var ajaxtimeformat = realtime[1];
var porcen = realtime[60];
var rad1min = realtime[61];
var rad2min = realtime[62];
var porcen10m = realtime[63];
var porcen1h = realtime[64];
var diaonoche = realtime[49];
var teomaxrad = realtime[56];
Con este cambio volverá a funcionar bien