Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - jmviper

Páginas: 1 ... 3 4 [5]
61
Weather Display / Wiki editada para corregir inconsistencias de WD
« en: 07 de Enero del 2017, 20:06:08 pm »
Se ha editado la wiki para hacer más fácil (por lo menos esa es la intención  ::)) arreglar inconsistencias en WD.

http://wiki.meteoclimatic.net/wiki/FAQ_WD#.C2.BFC.C3.B3mo_se_modifican_datos_de_temperatura.2C_humedad.2C_presi.C3.B3n_o_viento_en_el_Weather_Display.3F

Ahora se explica como cambiar datos diarios, mensuales y anuales para arreglar inconsistencias.

Se ha respetado el artículo original de Breitling y se ofrece un método alternativo 2 (que viene a ser casi lo mismo) para corregir los valores mensuales.

Si alguien tiene alguna puntualización, sugerencia etc etc es libre de exponerla en este mismo hilo y... si se anima puede editarlo directamente él / ella en la wiki  :D :D


62
Abro este hilo con la intención de crear o transformar nuestras páginas webs con datos estáticos que tienen que recargarse y subirse al FTP enteramente a hacerlo dinámicamente con Ajax iniciales de Asynchronous JavaScript And XML (JavaScript asíncrono y XML).

Ajax no hace falta instalarse de ningún sitio ya que viene implementado en cualquier navegador con JavaScript. Consiste básicamente en solicitar los datos al servidor por parte del navegador (cliente) en un segundo plano y eso es lo que le hace especialmente atractivo... el que actualice datos en la página sin necesidad de tener que recargar toda la página de nuevo. Actualmente todos los navegadores modernos lo soportan ya que está desde hace bastante tiempo.

Para entender mejor el funcionamiento hacen falta unas nociones básicas de HTML y JavaScript mayormente.

Los sitios web basados en los scripts de Saratoga usan esta técnica pero veamos cómo trabaja con un ejemplo...

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Archena, Murcia Tiempo</title>
    <link rel="stylesheet" type="text/css" href="weewx.css"/>
    <link rel="icon" type="image/png" href="favicon.ico" />
 
  </head>

  <body>
    <div id="container">
      <div id="masthead">
        <h1>Archena, Murcia</h1>
        <h2>Condiciones actuales</h2>
          <h2> <span class="ajax" id="ajaxfecha"></span> </h2>
          <h3>Temp CPU: <span class="ajax" id="ajaxtempcpu"></span> </h3>
     </div>

      <div id="stats_group">

        <div class="stats">
          <div class="stats_header">
            Condiciones actuales
          </div>

          <table>
            <tbody>
              <tr>
                <td class="stats_label">Temperatura</td>
                <td class="stats_data"> <span class="ajax" id="ajaxtemp"></span> </td>
              </tr>
            </tbody>
          </table>
        </div>

        <p>&nbsp;</p>

        <div class="stats">
          <div class="stats_header">
            Máx/Mín
          </div>
          <table>
            <tbody>
              <tr>
                <td class="stats_label">
                  Temp máxima

                  Temp mínima
                </td>
                <td class="stats_data">
                  <span class="ajax" id="ajaxmaxtemp"></span> a las <span class="ajax" id="ajaxmaxtemptime"></span>

                  <span class="ajax" id="ajaxmintemp"></span> a las <span class="ajax" id="ajaxmintemptime"></span>
                </td>
              </tr>
             
            </tbody>
          </table>
        </div> <!--End class "stats" -->

       </div> <!--End class "stats_group" -->

      <div id="content">
       
          <div id="plots">
     
          <img src="daypond.png"      alt="Pond Temperatures" />
         
        </div> <!-- End id "plots" -->
      </div> <!-- End id "content" -->

     
    </div>
<script>
var clientrawFile = 'realtime.php'; // Ubicación de la plantilla con los datos

var flashtime  = 2000; // Tiempo en milisegundos que dura el flasheo

var flashcolor = "green"; // Color con el que se flashea

var reloadTime = 10000; // Tiempo en milisegundos en que actualiza los datos (se ejecuta la función ajaxLoader)

var uomTemp = "&deg;C"; // Unidad de temperatura

function get_ajax_tags ( ) {
// search all the span tags and return the list with class="ajax" in it
//
 
    var elem = document.getElementsByTagName('span');
   var lookfor = 'class';
 
     var arr = new Array();
    var iarr = 0;
     for(var e = 0; e < elem.length; e++) {
          var att = elem[e].getAttribute(lookfor);
          if(att == 'ajax') {
               arr[iarr] = elem[e];
               iarr++;
          }
     }

    return arr;

}

function reset_ajax_color( usecolor ) {
// reset all the <span class="ajax"...> styles to have no color override
      var elements = get_ajax_tags();
     var numelements = elements.length;
     for (var index=0;index!=numelements;index++) {
         var element = elements[index];
       element.style.color = usecolor;
     }
}


function set_ajax_obs( name, value, title ) {
// store away the current value in both the doc and the span as lastobs="value"
// change color if value != lastobs
     
      var element = document.getElementById(name);
      if (! element ) { return; } // V1.04 -- don't set if missing the <span id=name> tag
      var lastobs = element.getAttribute("lastobs");
      element.setAttribute("lastobs",value);
      if (value != unescape(lastobs)) {
             element.style.color=flashcolor;} 
      if(!title) title = "";
      element.innerHTML = value;
      }

function ajaxLoader(url) {

  if (document.getElementById) {

    var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(url);

  }

  if (x) {

    x.onreadystatechange = function() {

     if (x.readyState == 4 && x.status == 200) {

    var wx30 = x.responseText.split('|');  // Se guardan los datos en un array en una variable

   var temp = parseFloat(wx30[0]); // Se accede a cada dato según su posición en el array y se trata con javascript
   var fecha = wx30[1];
   var maxtemp = parseFloat(wx30[2]);
   var maxtemptime = wx30[3];
   var mintemp = parseFloat(wx30[4]);
   var mintemptime = wx30[5];
   var tempcpu = wx30[6];
   
   set_ajax_obs("ajaxtemp", temp.toFixed(1) + uomTemp); // Se asigna cada valor al span con el id que queremos
   set_ajax_obs("ajaxfecha", fecha);
   set_ajax_obs("ajaxmaxtemp", maxtemp.toFixed(1) + uomTemp);
   set_ajax_obs("ajaxmaxtemptime", maxtemptime);
   set_ajax_obs("ajaxmintemp", mintemp.toFixed(1) + uomTemp);
   set_ajax_obs("ajaxmintemptime", mintemptime);
   set_ajax_obs("ajaxtempcpu", tempcpu.trim() + uomTemp);
   document.title = "Temp: " + temp.toFixed(1) + "°C";
   }
  }
}

   x.open("GET", url, true);

   x.send(null);

setTimeout(function(){ajaxLoader(clientrawFile + '?' + new Date().getTime());}, reloadTime); // Se inicia el temporizador de la función
setTimeout(function(){reset_ajax_color('');},flashtime); // Se inicia también el temporizador del flasheo
 

}

ajaxLoader(clientrawFile + '?' + new Date().getTime()); // Se pone en marcha la función

</script>
   

</body>

</html>

http://www.meteoarchena.es/weewx/

Esta es una sencilla página web alojada en mi servidor con un sensor de temperatura DS18B20 con weewx en una Orange Pi PC para explicar el funcionamiento y ver las distintas partes. Seguro que a los que tengan página con weewx les resulta familiar el código HTML.

En el código HTML tenemos etiquetas <span> con class="ajax" e id="nombre" como atributos. Ahí es donde saldrán los datos actualizados con ajax.
Por ejemplo <span class="ajax" id="ajaxtemp"> para la temperatura.

En las variables he puesto comentarios para saber qué cambiar y personalizar tiempos y color de flasheo a nuestras necesidades y/o gustos.

Después vienen una serie de funciones que son necesarias para el funcionamiento. Por ejemplo la función get_ajax_tags coge todos los elementos con la etiqueta <span> y reset_ajax_color resetea todos esos valores al color por defecto que tenían al flashearse.
La función set_ajax_obs es muy importante ya que almacena el dato en un atributo y si el nuevo dato leído no es iguala que guardó en el atributo lo flashea con el color que hayamos puesto en la variable flashcolor.
Por último viene la función ajaxLoader que es la más importante ya que recoge los datos y los actualiza en el intervalo de tiempo que esté puesto en la variable reloadTime.

La creación de la plantilla la podemos hacer con una plantilla personalizada separados en este caso los valores a rellenar por el símbolo "|" (Alt Gr + 1) que ayuda a separar los valores mejor.
En este caso la plantilla es: www.meteoarchena.es/weewx/realtime.php que es un archivo php que tiene la ventaja de poder "incluir" diferentes archivos de texto como plantillas u otros archivos de datos para hacerlos uno sólo. Por supuesto se puede poner una plantilla en formato txt o html como está en meteoclimatic.

En el caso que he puesto el script está al final de la página ya que se deben de cargar todos los elementos de la página implicados (los spans) para que funcione correctamente.
Si se quiere poner en la cabecera deberá o bien encerrarse en un evento onload (onload = function{...} Se puede crear un archivo js con el script y enlazarlo de esa manera en la cabecera de la página.

Se pueden crear plantillas personalizadas y crear tantas funciones ajaxLoader como se quieran (por ejemplo ajaxLoader2, ajaxLoader3 etc etc) con diferentes plantillas, archivos o por ejemplo actualizar las imágenes con diferentes tiempos de actualización.

P.D. La página puesta como ejemplo puede tener problemas de actualización ya que la Orange Pi PC casi no tiene cobertura del wifi  >:(

63
Bricometeo / MOVIDO: Estacion metereologica
« en: 09 de Diciembre del 2016, 11:25:44 am »

64
Davis Instruments / MOVIDO: inconsistencias
« en: 02 de Diciembre del 2016, 18:09:04 pm »

65
Forum General / MOVIDO: Problemas ISS Davis Vantage Vue
« en: 11 de Noviembre del 2016, 13:21:09 pm »

66
Software de Meteoclimatic / MOVIDO: weathersnoop
« en: 12 de Septiembre del 2016, 23:18:15 pm »

67
Ordenadores / MOVIDO: Meteoplug
« en: 07 de Septiembre del 2016, 08:35:12 am »

69
Viendo que tu página web está basada en la de Saratoga antes de intentar tocar el wdisplay.ini (que con WD nunca sabes lo que puede suceder) yo modificaría el valor en el archivo ajax-dashboard.php...

Sería modificar en ese archivo la línea:

Código: [Seleccionar]
<?php echo strip_units($vpstormrain).$uomRain?>
Por la cantidad real como por ejemplo:

Código: [Seleccionar]
<?php echo "28.4 mm (2 d&iacute;as)"//strip_units($vpstormrain).$uomRain; ?>
OJO hazlo si sabes manejar PHP y habiendo hecho previamente una copia de seguridad del archivo por si se pone mal (un error en PHP es fatal y o no sale la página o parte de ella).

Después cuando pasara el episodio sería dejarlo como estaba aunque si se produjera nueva lluvia no la sumaría y se tendría que poner otra vez manualmente...

Es una posible solución.

Saludos


70
Incidencias / Actualización cada hora de los datos
« en: 24 de Julio del 2016, 20:36:32 pm »
Buenas.

La pregunta es con respecto a la estación de Font de la Figuera (ESPVA4600000046630C).

Los datos en meteoclimatic son actualizados cada aproximadamente 1 hora y la plantilla es actualizada en su URL cada 5 minutos por Cumulus.

Cuál puede ser el problema?

Saludos

71
Davis Instruments / SHT75 Primeras impresiones
« en: 27 de Marzo del 2016, 11:17:15 am »
Como he comentado en un reciente post estoy probando el Sensirion SHT75 en la Davis.

Las comparaciones están siendo realizadas con un sensor de temperatura de una WMR100N en garita Davis el cual siempre he comparado con el anterior SHT11.

Las primeras impresiones son muy buenas. Tiene una inercia térmica muy rápida. Detecta cambios de temperatura más rápidamente que la Oregon a la que le cuesta más llegar hasta esos valores.
Creo que la mayor ventaja de este sensor sobre el que llevan montado las Davis (ya sea el de fábrica SHT11 o los clonados como el SHT15 de Belfryboy) es que no va montado en superficie sobre la placa y por lo tanto no tiene superficie de contacto como el SHT11/SHT15, de hecho va de pie gracias a sus patillas. Además como se puede ver en la siguiente foto tiene orificios de entrada del aire tanto por delante como por detrás (el de la imagen es el SHT71 que es el equivalente al SHT11 pero con patillas):



Básicamente está montado como el termistor de la Oregon de pie y solamente unido por las patillas a la placa sin nada que afecte a su inercia térmica.

De momento en el día de hoy: mínima Oregon 15.0ºC y mínima SHT75 15.0ºC.

Seguirá de pruebas y a ver cuál es su comportamiento con humedades altas ya que estos días el ambiente por aquí está muy seco.

Saludos

P.D. Ahora mismo con 612 W/m2 de radiación solar y apenas viento Oregon 21.1ºC y SHT75 21.1ºC.

P.D.2 máxima Oregon 24.3ºC y máxima SHT75 24.2ºC.

Manda eggs que el sensor de la Oregon sea tan bueno y lo vendan con una cutre seta de protección  :-\

72
Incidencias / No se lee la plantilla con nuevo hosting
« en: 11 de Diciembre del 2015, 15:55:21 pm »
Buenas.

Acabo de cambiar de hosting y desde esta mañana WD está enviando la plantilla a la URL de mi web a la que ha apuntado siempre pero parece ser que el robot de meteoclimatic no puede leerla aunque sí se puede ver en un navegador cualquiera.
Se lo he comentado al soporte de mi nuevo hosting y me han dicho cuáles son los robots de meteoclimatic.
No entiendo... se puede visualizar vía web y no puede leerla el robot??

En fin a ver si a alguien  a quien le ha ocurrido un caso similar puede ayudarme.

La estación es la de mi firma  ;D ;D

Saludos

Páginas: 1 ... 3 4 [5]