Нестандартные ответы от wb-mqtt-db


#1

Добрый день!

От базы данных иногда приходят нестандартные ответы:
отсутствует min max, а value содержит текст.

В README ничего не указано по этому поводу.

Для:

"control": "Ch 2 Q L2"
"timestamp": 1533287400

max, min отсутствуют. value - текст.

Для:
"timestamp": 1533287340
min, max - есть, value - число

Полный лог
{
  "error": null,
  "id": 20110,
  "result": {
    "has_more": true,
    "values": [
      {
        "control": "Ch 2 P L1",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": 0,
        "timestamp": 1533287340,
        "uid": 637284,
        "value": 0.0025000000000000001
      },
      {
        "control": "Ch 2 Q L1",
        "device": "wb-map12h_5",
        "max": 0,
        "min": -0.01,
        "timestamp": 1533287340,
        "uid": 637285,
        "value": -0.0050000000000000001
      },
      {
        "control": "Ch 2 P L2",
        "device": "wb-map12h_5",
        "max": 0,
        "min": -0.01,
        "timestamp": 1533287340,
        "uid": 637289,
        "value": -0.0025000000000000001
      },
      {
        "control": "Ch 2 Q L2",
        "device": "wb-map12h_5",
        "max": 0,
        "min": -0.01,
        "timestamp": 1533287340,
        "uid": 637290,
        "value": -0.0050000000000000001
      },
      {
        "control": "Ch 2 P L3",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": -0.02,
        "timestamp": 1533287340,
        "uid": 637294,
        "value": -0.0025000000000000001
      },
      {
        "control": "Ch 2 Q L3",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": -0.02,
        "timestamp": 1533287340,
        "uid": 637295,
        "value": -0.0025000000000000001
      },
      {
        "control": "Ch 2 Total P",
        "device": "wb-map12h_5",
        "max": 0.02,
        "min": 0.02,
        "timestamp": 1533287340,
        "uid": 637299,
        "value": 0.02
      },
      {
        "control": "Ch 2 Total Q",
        "device": "wb-map12h_5",
        "max": 0,
        "min": -0.029999999999999999,
        "timestamp": 1533287340,
        "uid": 637300,
        "value": -0.016666666666666701
      },
      {
        "control": "Ch 2 P L1",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": -0.01,
        "timestamp": 1533287370,
        "uid": 637494,
        "value": 0
      },
      {
        "control": "Ch 2 Q L1",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": -0.01,
        "timestamp": 1533287370,
        "uid": 637495,
        "value": 0
      },
      {
        "control": "Ch 2 P L2",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": 0,
        "timestamp": 1533287370,
        "uid": 637499,
        "value": 0.0033333333333333301
      },
      {
        "control": "Ch 2 P L3",
        "device": "wb-map12h_5",
        "max": 0,
        "min": 0,
        "timestamp": 1533287370,
        "uid": 637503,
        "value": 0
      },
      {
        "control": "Ch 2 Q L3",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": -0.01,
        "timestamp": 1533287370,
        "uid": 637504,
        "value": 0
      },
      {
        "control": "Ch 2 Total P",
        "device": "wb-map12h_5",
        "max": 0.02,
        "min": 0,
        "timestamp": 1533287370,
        "uid": 637508,
        "value": 0.0066666666666666697
      },
      {
        "control": "Ch 2 P L1",
        "device": "wb-map12h_5",
        "max": 0,
        "min": 0,
        "timestamp": 1533287400,
        "uid": 637710,
        "value": 0
      },
      {
        "control": "Ch 2 Q L1",
        "device": "wb-map12h_5",
        "max": 0.01,
        "min": -0.029999999999999999,
        "timestamp": 1533287400,
        "uid": 637711,
        "value": -0.0050000000000000001
      },
      {
        "control": "Ch 2 P L2",
        "device": "wb-map12h_5",
        "max": 0,
        "min": -0.01,
        "timestamp": 1533287400,
        "uid": 637715,
        "value": -0.0033333333333333301
      },
      {
        "control": "Ch 2 Q L2",
        "device": "wb-map12h_5",
        "timestamp": 1533287400,
        "uid": 637716,
        "value": "0.0"
      },
      {
        "control": "Ch 2 P L3",
        "device": "wb-map12h_5",
        "max": 0,
        "min": 0,
        "timestamp": 1533287400,
        "uid": 637720,
        "value": 0
      },
      {
        "control": "Ch 2 Q L3",
        "device": "wb-map12h_5",
        "max": 0,
        "min": -0.01,
        "timestamp": 1533287400,
        "uid": 637721,
        "value": -0.0025000000000000001
      }
    ]
  }
}

#2

Скажите, а вы сами по MQTT формируете запросы или делаете это через утилиту wb-mqtt-db-cli?


#3

Посмотрел в исходниках, там действительно есть баг, что значение отдаётся как текст или как флоат в зависимости от наличия полей min/max. Думаю вам проще парсить у себя, чем ждать, пока мы что-то сделаем.

Отсутствие полей min/max - это нормально, значит, что за интервал аггрегации значение канала не менялось.


#4

Формирую запрос сам.

Да, пока буду обрабатывать у себя.

Спасибо.