Ejemplos de datos de registro de API web JSON

Esta página contiene algunos ejemplos básicos de cómo obtener datos de registro históricos de un medidor eGauge utilizando la WebAPI.

Estos ejemplos utilizan la biblioteca Python eGauge, pero se pueden utilizar otros lenguajes y bibliotecas.

Obtener valores instantáneos


Solicitud: dev.get('/register?reg=3+5+7+9&rate')

Parámetros:
reg=3+5+7+9 solicita esos ID de registro
rate solicita la tasa instantánea de cambio en el momento
No se proporcionó ningún parámetro de tiempo, por lo que obtiene el último valor

Respuesta:

{
 "ts": "1679506470.000420096",
 "registers": [
  {"name": "Panel 3 Mains", "type": "P", "idx": 3, "did": 0, "rate": 2400},
  {"name": "Panel 3 L1",    "type": "P", "idx": 5, "did": 2, "rate": 551},
  {"name": "Panel 3 L2",    "type": "P", "idx": 7, "did": 3, "rate": 1080},
  {"name": "Panel 3 L3",    "type": "P", "idx": 9, "did": 4, "rate": 769},
 ],
}

Obtenga un período de 6 horas de datos históricos

Solicitud: dev.get('/register?reg=3+5+7+9&rate&time=1672556400:3600:1672578000')

Parámetros:
reg=3+5+7+9 solicita esos ID de registro
rate solicita la tasa instantánea de cambio en el momento
time=1672556400:3600:1672578000 es:

  • 1672556400 : 1 de enero, 12:00 a. m. (hora de inicio)
  • 3600 : número de segundos para saltar entre filas (genera una granularidad de 1 hora)
  • 1672578000 : 2 de enero, 6:00 a. m. (hora de finalización)

Respuesta:

{
  "ts": "1679505959.000420096",
  "registers": [
    {"name": "Panel 3 Mains", "type": "P", "idx": 3, "did": 0, "rate": 4185},
    {"name": "Panel 3 L1",    "type": "P", "idx": 5, "did": 2, "rate": 506},
    {"name": "Panel 3 L2",    "type": "P", "idx": 7, "did": 3, "rate": 2902},
    {"name": "Panel 3 L3",    "type": "P", "idx": 9, "did": 4, "rate": 777},
  ],
  "ranges": [
    {
      "ts": "1672578000",
      "delta": 3600.0,
      "rows": [
        ["150555067851", "64158660544", "57705425071", "28690982234"],
        ["150552980706", "64157713471", "57704901028", "28690366205"],
        ["150550413006", "64156764160", "57703892567", "28689756277"],
        ["150548310776", "64155810457", "57703366875", "28689133443"],
        ["150546201980", "64154853051", "57702841741", "28688507186"],
        ["150543949276", "64153896433", "57702279596", "28687773245"],
        ["150541826993", "64152938219", "57701751003", "28687137769"],
      ],
    }
  ],
}

Notas

Analice la salida de la misma manera que lo haría para los datos XML.

Cada fila tiene delta segundos (3600) más que la fila anterior. Las columnas están ordenadas por registros: el primer valor de cada fila corresponde al "Panel 3 Mains", el segundo al "Panel 3 L1", y así sucesivamente.

Fila 1:
150555067851 es el valor acumulado de "Panel 3 Mains" en el momento "ts" (1672578000 = 1 de enero, 6:00 a. m.)
64158660544 es el valor acumulado del "Panel 3 L1" en el momento "ts" (1672578000 = 1 de enero, 6:00 a. m.)
57705425071 es el valor acumulado del "Panel 3 L2" en el momento "ts" (1672578000 = 1 de enero, 6:00 a. m.)

Fila 2:
150552980706 es el valor acumulado de "Panel 3 Mains" en el tiempo "ts"-"delta"*1 (1672578000-3600*1 = 1 de enero, 5:00 a. m.)

Fila 3:
150550413006 es el valor acumulado de "Panel 3 Mains" en el tiempo "ts"-"delta"*2 (1672578000-3600*2 = 1 de enero, 4:00 a. m.)

Fila 4:
150548310776 es el valor acumulado de "Panel 3 Mains" en el tiempo "ts"-"delta"*3 (1672578000-3600*3 = 1 de enero, 3:00 a. m.)

Fila 7:
28687137769 es el valor acumulado del "Panel 3 L3" en el momento "ts"-"delta"*6 (1672578000-3600*6 = 1 de enero, 12:00 a. m.)

Por ejemplo, "Panel 3 Red", entre las 12:00 a. m. y las 6:00 a. m. del 1 de enero, utilizó (150555067851-150541826993)/3 600 000 == 3,679 kWh

Obtenga 3 marcas de tiempo particulares

Solicitud: dev.get('/register?reg=3:5&time=1672556400,1672642800,1672729200')

Parámetros:
reg=3:5 solicita registros que comienzan en ID 3 y terminan en ID 5
time=1672556400,1672642800,1672729200 solicita los valores en las marcas de tiempo de:

  • 1672556400 : 1 de enero, 12:00 a. m.
  • 1672642800 : 2 de enero, 12:00 a. m.
  • 1672729200 : 3 de enero, 12:00 a. m.

Respuesta:

{
  "ts": "1679507855.000420096",
  "registers": [
    {"name": "Panel 3 Mains", "type": "P", "idx": 3, "did": 0},
    {"name": "Panel 3 Mains*", "type": "S", "idx": 4, "did": 1},
    {"name": "Panel 3 L1", "type": "P", "idx": 5, "did": 2},
  ],
  "ranges": [
    {
      "ts": "1672556400",
      "delta": 60.0,
      "rows": [["150541826993", "182491473811", "64152938219"]],
    },
    {
      "ts": "1672642800",
      "delta": 60.0,
      "rows": [["150591166950", "182556552340", "64175776009"]],
    },
    {
      "ts": "1672729200",
      "delta": 60.0,
      "rows": [["150704245365", "182691087288", "64205578174"]],
    },
  ],
}

Notas

Analizar igual que la salida XML. Hay tres rangos: uno para cada marca de tiempo solicitada y el valor acumulado de cada registro en ese momento.

Por ejemplo:

El último rango muestra el 1 de enero ("ts" de 1672729200) que el "Panel 3 L1*" (columna del medio) tenía un valor acumulado de 64205578174 vatios-segundo.

El segundo último rango muestra el 2 de enero ("ts" de 1672642800) que el "Panel 3 L1*" (columna del medio) tuvo un valor acumulado de 64175776009 vatios-segundo.

Esto significa que entre el 1 y el 2 de enero, el registro "Panel L1" cambió en (64175776009-64205578174) = -29802165 vatios-segundo, que es -29802165/3600000 = -8,27 kWh

Dependiendo de la orientación del sensor de amperaje (TC), la potencia/energía se registrará como positiva o negativa. Si la potencia es unidireccional (sin retroalimentación, etc.), suele ser seguro tomar el valor absoluto entre fechas. Sin embargo, una polaridad de potencia inesperada también puede deberse a problemas físicos de instalación que generan datos inexactos.