Welcome to Pandora FMS Community!

Find answers, ask questions, and connect with our community around the world.

  • Valores decimales

    Posted by lbauchwitz on mayo 6, 2007 at 05:05

    Hola, estoy monitoreando la temperatura, y quiero que los datos lleguen con un decimal.
    Por ejemplo: 10,1 % C
    Sin embargo no sucede, me registra solamente la parte entera.
    He probado agregando un “punto” como separador decimal, o agregando una “coma”, y en ninguno de los dos casos llega dicho valor.

    La configuración del agente:

    module_begin
    module_name temperatura_sensor_placa
    module_type generic_data
    module_interval 1
    module_exec datatemperatura.py |awk -F ‘;’ ‘{print $1}’|awk ‘{print $2}’|awk -F ” ‘{print $1$2 “.” $3}’
    module_max 100
    module_min 0
    module_descripcion Temperatura del sensor ubicada en la placa remota vía Radio (ºC)
    module_end

    Gracias
    Leonardo

    Leonardo F. Bauchwitz

    lbauchwitz replied 17 years, 7 months ago 2 Members · 7 Replies
  • 7 Replies
  • lbauchwitz

    Member
    mayo 6, 2007 at 13:55
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Lo más extraño es que en la base de datos (consultandola directamente a través de phpmyadmin), los valores están ingresados con coma, es decir al visualizarlos desde Pandora es que no se ven.

  • lbauchwitz

    Member
    mayo 6, 2007 at 14:08
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Definitivamente es un tema de visualización, ya que al exportar los datos, lo hace correctamente, pero al consultarlos a través de Agent detai Raw data, muestra solamente la parte entera.
    ¿Es posible modificar esto?

    Salu2
    Leonardo F. Bauchwitz

  • raul

    Member
    mayo 7, 2007 at 13:15
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Definitivamente es un tema de visualización, ya que al exportar los datos, lo hace correctamente, pero al consultarlos a través de Agent detai Raw data, muestra solamente la parte entera.
    ¿Es posible modificar esto?

    Salu2
    Leonardo F. Bauchwitz

    Déjame echarle un vistazo y te comento cuales son los cambios necesarios en el código.

    Si puedes, abre una incidencia en Sourceforge (http://sourceforge.net/tracker/?func=add&group_id=155200&atid=794852), y así podemos añadir el código parcheado a Sourceforge.

    Un saludo,

    Raúl

  • lbauchwitz

    Member
    mayo 7, 2007 at 13:43
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    La incidencia fué abierta
    Salu2
    Leonardo

  • raul

    Member
    mayo 7, 2007 at 14:55
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Por lo que veo, el problema está en línea 97 de la página operationagentesdatos_agente.php:

    [code:1]echo “

    “.salida_limpia($row[“datos”]);

    Para solucionarlo rápidamente, puedes sustituirla por:

    [code:1]echo “ “.$row[“datos”];

    ya que el “parche” definitivo implica una modificación de la función y eso necesita una verificación más exhaustiva.

    Prueba a ver y nos cuentas.

    EDICIÓN: HTML deshabilitado en el Post para mostrar la clase.

    Un saludo,

    Raúl

  • lbauchwitz

    Member
    mayo 7, 2007 at 16:03
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Tal como comenté en la incidencia, el código qe tengo no coincide, a pesar de que la versión del pandora es 1.2
    El código que dispongo es el siguiente (en el archivo operationagentesdatos_agente.php):

    echo “

    “;
    if (($row[“datos”] != 0) AND (is_numeric($row[“datos”]))) {
    $mytempdata = fmod($row[“datos”], $row[“datos”]);
    if ($mytempdata == 0)
    $myvalue = intval($row[“datos”]);
    else
    $myvalue = $row[“datos”];
    if ($myvalue > 1000000) { // Add sufix “M” for millions
    $mytempdata = $myvalue / 1000000;
    echo $mytempdata.” M”;
    } elseif ( $myvalue > 1000){ // Add sufix “K” for thousands
    $mytempdata = $myvalue / 1000;
    echo $mytempdata.” K”;
    } else
    echo substr($myvalue,0,12);
    } else
    echo substr($row[“datos”],0,12);
  • lbauchwitz

    Member
    mayo 7, 2007 at 16:10
    0 Karma points
    Community rank: tentacle-noob-1 Tentacle noob
    Like it
    Up
    0
    Down
    Drop it
    ::

    Lo he resuelto, editando en el archivo operationagentesdatos_agente.php
    la línea 99

    $mytempdata = fmod ($row[“datos”], $row[“datos”]);
    reemplazandola por:
    $mytempdata = $row[“datos”];