Просмотр истории (графики)

Всех приветствую!
Объясните пожалуйста, что необходимо для просмотра истории (графики). Контроллер в сети уже почти месяц, график открыть могу максимум за сутки. Потом вообще говорит “нет истории”
Что не так делаю?!

С уважением!

Здравствуйте! Я — автоматический помощник техподдержки Wiren Board.
Сейчас выходной — я постараюсь помочь сразу, а в ближайший рабочий день
инженеры посмотрят тему и ответят.

Похоже, у вас ограничение связано не с самим графиком, а с тем, сколько истории хранится в системе. Для просмотра истории обычно нужны:

  • работающий сборщик данных/хранилище истории на контроллере;
  • достаточно места на диске;
  • корректно настроенное время на контроллере.

Что можно быстро проверить:

  1. Откройте настройки хранилища истории/графиков и посмотрите, за какой период там хранится data.
  2. Проверьте свободное место на контроллере.
  3. Убедитесь, что время и часовой пояс на контроллере выставлены правильно.
  4. Если история есть только за сутки, значит, вероятно, хранение ограничено настройкой или данные не пишутся в архив.

Если хотите, пришлите:

  • модель контроллера и версию прошивки;
  • какой именно интерфейс графиков используете;
  • скрин/описание настроек истории.

Примечание: я — ИИ, а не человек; в моих ответах возможны неточности.
Инженеры посмотрят тему в ближайший рабочий день. Если хотите ускорить —
приложите диагностические данные.

это состояние релейного выхода уличного освещения, я его сделал самым первым этот сценарий и он уже работает больше недели, на графике видно только три дня. Что тут я не понимаю?

какие ограничения по созданию базы данных штатными средствами WB ?
Из мануалов понятно, что есть некие ограничения, пока не пойму как расширить интрвал. Пишутся ведь все данные, а чем больше я “накручиваю” систему тем больше данных. Пока не пойму как записывать особо нужные (ну их много конечно). Хотя бы добиться что бы месяц архива был или это не возможно штатными средствами?
Флеш карта, я так понимаю, ситуацию не спасет

grafana нам в помощь ! :slight_smile:

Добрый день.

Настраивать ничего не нужно, история пишется сразу. Ограничена она не временем, а числом записей, при достижении лимита старые удаляются. Настройки в разделе Настройки → Конфигурационные файлы → История данных MQTT

Лимит на группу общий, его расходуют все каналы вместе, а удаляются самые старые записи по всей группе. Поэтому вытесняется и реле, хотя оно меняется редко. При нескольких десятках активных каналов это как раз 2-4 суток. Проверить можно командой

journalctl -u wb-mqtt-db | grep -i limit

Возможно. Порядок такой:

  • Создайте отдельную группу с нужными каналами и поставьте её выше all, при пересечении применяются настройки верхней группы. Новая группа создаётся с меньшими лимитами, 4000 и 40000, их нужно задать самому.
  • Посчитайте записи. В сутки на канал это 86400, делённое на период записи, для меняющихся величин берите период для изменяющихся значений, для реле - для одинаковых. На месяц умножьте на 30 с запасом.
  • Лимит на группу задайте как лимит на канал, умноженный на число каналов группы.
  • У быстро меняющихся каналов увеличьте период записи и уменьшите число внеочередных записей, выбросы при этом видны на графике как дельта.
  • Группу all оставьте последней с небольшими лимитами.

Верно, ограничение в записях, а не в объёме носителя

Для архива на месяцы и по многим каналам это хорошее решение, данные хранятся во внешней базе и не нагружают контроллер. Инструкция здесь, если еще не нашли.

Если еще остались вопросы по теме - пишите

я наверное поторопился и удалил группу all в которую писались все параметры, а можно было просто уменьшить лимит. Как-то можно восстановить эту группу командой ?

Проще всего через веб-интерфейс. Настройки - Конфигурационные файлы - История данных MQTT, кнопка JSON, и добавьте в конец списка групп такой блок. Именно в конец, чтобы all не перехватывала настройки у остальных групп:

{
  "name": "all",
  "channels": ["+/+"],
  "values": 10000,
  "values_total": 100000,
  "min_interval": 120,
  "min_unchanged_interval": 1200,
  "max_burst": 30
}

Это заводские значения. Проверил у себя и увидел, что если добавлять группу кнопкой в интерфейсе, то поля заполнятся меньшими числами, 4000 и 40000, поэтому лимиты лучше проставить вручную. После сохранения через веб-интерфейс сервис перезапустится сам.

После правки проверьте состояние сервиса.

systemctl status wb-mqtt-db

Если что-то пойдёт не так, пришлите вывод этой команды и текущий JSON настроек, разберёмся.

что-то я похоже всё снес и свои настройки параметров
root@wirenboard-AUSRVB3H:~# systemctl status wb-mqtt-db
● wb-mqtt-db.service - Wiren Board database logger
Loaded: loaded (/lib/systemd/system/wb-mqtt-db.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2026-07-27 11:25:48 +05; 2min 16s ago
Main PID: 1147114 (main)
Tasks: 7 (limit: 4408)
Memory: 4.6M
CPU: 2min 15.816s
CGroup: /system.slice/wb-mqtt-db.service
└─1147114 /usr/bin/wb-mqtt-db

Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [sqlite] Create indices if necessary
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [sqlite] Analyzing data table
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [sqlite] DB initialization is done
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: DB logger started, go to main loop
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [mqtt] connection estabilished with code “0”
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [mqtt] subscription succeeded (message id 1)
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [mqtt] subscription succeeded (message id 2)
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [mqtt] subscription succeeded (message id 5)
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [mqtt] subscription succeeded (message id 8)
Jul 27 11:25:48 wirenboard-AUSRVB3H wb-mqtt-db[1147114]: INFO: [mqtt] subscription succeeded (message id 10)

Выложите, пожалуйста, полный изначальный json который идет в начальной конфигурации “история данных mqtt”

Похоже блоком с группой вы заменили всё содержимое настроек вместо добавления в конец списка.

json

{
  "debug": false,
  "database": "/var/lib/wirenboard/db/data.db",
  "groups": [
    {
      "name": "all",
      "channels": ["+/+"],
      "values": 10000,
      "values_total": 100000,
      "min_interval": 120,
      "min_unchanged_interval": 1200,
      "max_burst": 30
    }
  ]
}

Нажмите кнопку JSON в разделе История данных MQTT, замените содержимое на этот текст и нажмите Записать, сервис перезапустится сам. Если свои группы уже созданы, вставляйте только блок группы all и в конец списка.

По вашему скриншоту, сейчас в группе 4000 и 40000, а в поставке 10000 и 100000. Такие значения подставляются при создании группы кнопкой в интерфейсе. С этим же связана высокая загрузка процессора из присланного статуса, сервис удаляет старые записи под уменьшенные лимиты.

После записи пришлите, пожалуйста, текущий JSON и вывод команд.

systemctl status wb-mqtt-db | head -n 8
ls -lh /var/lib/wirenboard/db/data.db

Для месяца архива к этой конфигурации добавляется своя группа с нужными каналами, поставленная выше all. Для канала вроде вашего реле месяц это около 2200 записей, значит 5000 на канал хватает с запасом, а лимит группы считайте как это число, умноженное на количество каналов группы.

Посмотрите также статью как работает история здесь

Давайте еще раз поразбираемся: я откатил json к настройкам по умолчанию. база вроде как работает

root@wirenboard-AUSRVB3H:~# systemctl status wb-mqtt-db
● wb-mqtt-db.service - Wiren Board database logger
Loaded: loaded (/lib/systemd/system/wb-mqtt-db.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2026-07-27 13:17:11 +05; 8min ago
Main PID: 1863 (main)
Tasks: 7 (limit: 4408)
Memory: 16.2M
CPU: 30.588s
CGroup: /system.slice/wb-mqtt-db.service
└─1863 /usr/bin/wb-mqtt-db

Jul 27 13:17:22 wirenboard-AUSRVB3H wb-mqtt-db[1863]: WARNING: [conventions] converting empty value to boolean “false”
Jul 27 13:17:22 wirenboard-AUSRVB3H wb-mqtt-db[1863]: WARNING: [conventions] converting empty value to boolean “false”
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/Connectivity
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/State
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/Device
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/Type
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/UUID
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/Active
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/Name
Jul 27 13:18:53 wirenboard-AUSRVB3H wb-mqtt-db[1863]: INFO: [sqlite] Creating channel system__networks__1987e940-1c63-4411-825b-ac9cb575af5f/Address

Да, всё в порядке

По логам не совсем понял что вы хотите. Строки Creating channel system__networks__... это регистрация служебных каналов сетевых соединений, они попали в базу из-за маски +/+. Отсюда вывод, служебные каналы тоже расходуют общий лимит группы all, поэтому ваш редкий канал освещения и терял историю.

Если хотите сделать по месяцу архива:

  1. Узнать MQTT-имена нужных каналов, подписи из интерфейса не подойдут.
  2. Посчитать записи. Для реле писал выше. А для постоянно меняющихся величин при периоде 120 с это 720 в сутки и около 21600 за месяц.
  3. Записать конфигурацию через кнопку JSON, своя группа первой, all - последней с заводскими лимитами. Лимит своей группы это лимит на канал, умноженный на число каналов.

Через сутки глубина по вашей группе начнёт расти. Если что-то упирается в лимит, видно командой journalctl -u wb-mqtt-db | grep -i limit.

я ничего не добавлял, я вставил json который прислали

что-то мозг закипел уже.. жарко видимо..

Тогда пройдите по шагам из прошлого моего сообщения :+1:

Что надо сделать, какие это служебные сообщения, какой у них mqtt что бы удалить из группы all ?

Лимит выедают обычные каналы измерений, простите, не проверил сразу. Удалять что-либо из all не нужно, да и возможности такой в настройках нет, там задаётся только список того, что писать.

Нужно одно действие - добавить свою группу с нужными каналами выше all, JSON я приводил выше в теме.

Сообщения Creating channel system__networks__... относятся к виртуальному устройству сетевых соединений, это не ошибка и на вашу историю они не влияют.

сориентируйте, я сейчас создал группу my data куда вписываю необходимые мне на месяц данные, Вы говорите, для месяца записи одного дискретного канала надо 5000 записей, а сколько для одного датчика температуры на месяц? и смогу ли я расширить базу до полугода, до года?