# History

**URL:** <https://support.wirenboard.com/t/history/8314>\
**Category:** Программное обеспечение\
**Created:** [July 6, 2021, 6:46am UTC](https://support.wirenboard.com/t/history/8314 "2021-07-06T06:46:38Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 6, 2021, 6:46am UTC](https://support.wirenboard.com/t/history/8314/1 "2021-07-06T06:46:39Z")

</div>

Добрый день  
WB 6.7.2 release wb-2104 (as stable)  
df

> **Сводка**
>
> Filesystem 1K-blocks Used Available Use% Mounted on  
> /dev/root 999320 482532 447976 52% /  
> devtmpfs 245856 0 245856 0% /dev  
> tmpfs 254560 0 254560 0% /dev/shm  
> tmpfs 254560 540 254020 1% /run  
> tmpfs 5120 0 5120 0% /run/lock  
> tmpfs 254560 0 254560 0% /sys/fs/cgroup  
> /dev/mmcblk0p6 4914580 189520 4455700 5% /mnt/data  
> tmpfs 50912 0 50912 0% /run/user/0

В history глубина записи 2-4 суток. Началось все с появления plotly (в версиях ПО до него было все нормально). 28 июня сделал сброс к заводским установкам, на текущий момент 06 июля. В history если выбрать диапазон 2021-06-28 2021-07-07, то показывает данные со 2 июля. При этом таблица под графиком со значениями показывает только сегодняшние.

Не нашел никакой инструкции как пользоваться history в текущем исполнении. Есть ли у вас она на сайте?

Как можно вытащить данные без plotly?

Как настроить history? Указать какие данные сохранять а какие нет? Как регулировать глубину записи для каждого топика отдельно?

Настройки все стандарнтые. К WB подключено 5 шт ds18b20 и wb-map6s fw2. data.db занимает 10МБ.

---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [July 6, 2021, 7:17am UTC](https://support.wirenboard.com/t/history/8314/2 "2021-07-06T07:17:18Z")

</div>



---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [July 6, 2021, 8:27am UTC](https://support.wirenboard.com/t/history/8314/3 "2021-07-06T08:27:40Z")

</div>

Здравствуйте!

> Не нашел никакой инструкции как пользоваться history в текущем исполнении. Есть ли у вас она на сайте?

Почитать про History можно здесь:  
[https://wirenboard.com/wiki/Wiren\_Board\_Web\_Interface#History\_.28.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F\_.D0.BF.D0.BE.D0.BA.D0.B0.D0.B7.D0.B0.D0.BD.D0.B8.D0.B9.29](https://wirenboard.com/wiki/Wiren_Board_Web_Interface#History_.28.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F_.D0.BF.D0.BE.D0.BA.D0.B0.D0.B7.D0.B0.D0.BD.D0.B8.D0.B9.29)

> Как можно вытащить данные без plotly?

Можно воспользоваться специальной утилитой:  
[https://wirenboard.com/wiki/Wb-mqtt-db-cli](https://wirenboard.com/wiki/Wb-mqtt-db-cli)  
Или работать напрямую с базой данной, например, из bash:

> [@Как можно оптимизировать wb-mqtt-db?](https://support.wirenboard.com/t/kak-mozhno-optimizirovat-wb-mqtt-db/7583/2):
>
> Добрый день. А подскажите, какое количество записей сейчас в базе (реально столько нужно)? Для того чтобы проанализировать количество записей можно сделать так: Ставим sqlite3 apt install sqlite3 -y потом выполняем, Для подсчета количества записей по контролам (по источникам): echo "select count(CHANNEL), (select device from channels where channels.int\_id=data.channel) as DEVICE, (select control from channels where channels.int\_id=data.channel) as CHANNEL from data group by CHANNEL;" | sql…

> Как настроить history? Указать какие данные сохранять а какие нет? Как регулировать глубину записи для каждого топика отдельно?

History настраивается на вкладке Settings → Configs → MQTT History Configuration

На странице можно создавать группы топиков для архивирования: задать имя группы, топики для архивирования, задать максимальное количество записей для топика, для группы, интервал архивирования. По умолчанию выбраны все топики (+/+) , группа называется all.

---

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 6, 2021, 12:36pm UTC](https://support.wirenboard.com/t/history/8314/4 "2021-07-06T12:36:53Z")

</div>

> [@Explorerol](#):
>
> Почитать про History можно здесь:  
> [Веб-интерфейс контроллеров Wiren Board — Wiren Board](https://wirenboard.com/wiki/Wiren_Board_Web_Interface#History_.28.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F_.D0.BF.D0.BE.D0.BA.D0.B0.D0.B7.D0.B0.D0.BD.D0.B8.D0.B9.29)

Это я видел, спасибо. Но это только для вывода данных.

> [@Explorerol](#):
>
> History настраивается на вкладке Settings → Configs → MQTT History Configuration
> 
> На странице можно создавать группы топиков для архивирования: задать имя группы, топики для архивирования, задать максимальное количество записей для топика, для группы, интервал архивирования. По умолчанию выбраны все топики (+/+) , группа называется all.

А вот это скорее всего то, что меня интересует. Не совсем понял как пользоваться, вы можете привести примеры?

1. Как исключить топик из логгирования.
2. Как сделать группу с глубиной в неделю.
3. Как сделать группу с глубиной в полгода.

Ну и соответственно как добавлять нужные данные в группы.

Если честно, то я воспринял все эти параметры к галке Enable debug logging. Предлагаю как-то ее иначе расположить.

---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [July 7, 2021, 8:12am UTC](https://support.wirenboard.com/t/history/8314/5 "2021-07-07T08:12:29Z")

</div>

> 1. Как исключить топик из логгирования.

Тут идея в том, что указываются те топики, для которых нужно хранить историю. По умолчанию архивируются все топики (+/+). Если для всех подряд не нужно, то группу удобнее переименовать (“all” → в понятное название) и добавить только те топики, которые нужны по отдельности или по маске. Поле MQTT topic pattern пустым не оставляйте: или заполните или удалите. Можно создавать несколько групп, в группе можно добавлять сколько нужно топиков.

Вот пример страницы Settings → Configs → MQTT History Configuration. Тут я для примера выбрал все топики, которые начинаются с buzzer, и один топик напряжения hwmon/Vin. Остальные топики не будут архивироваться. Список доступных топиков можно посмотреть на странице Settings → MQTT Channels (из полного имени нужно убрать /devices/ и /controls/).

 ![image](https://support.wirenboard.com/uploads/default/original/2X/c/cc18f19714315618d10ed9d4205dbbc730955a25.png)

> 1. Как сделать группу с глубиной в неделю.
> 2. Как сделать группу с глубиной в полгода.

Глубина архивирования задается количеством точек архивирования для топика и для группы. При превышении заданного количества точек самые старые будут автоматически удаляться.

 ![image](https://support.wirenboard.com/uploads/default/original/2X/a/a76be02ef3b8af51ac6a08fbdcd549ac072b21b7.png)

Во вкладке History получим следующие графики:

 ![image](https://support.wirenboard.com/uploads/default/original/2X/6/6b652cfe4b325dd625533e382cc1a019eb2ba6a0.png)

При отображении на графике и в виде csv при разном масштабе может отображаться разное количество точен. Поэтому выбирайте самый крупный масштаб по возможности. Также внимательно указывайте дату начала и конца для просмотра истории (легко ошибиться). Для простомтра страницы History рекомендуем использовать браузер Chrome.

---

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 7, 2021, 1:10pm UTC](https://support.wirenboard.com/t/history/8314/6 "2021-07-07T13:10:54Z")

</div>

Спасибо, буду пробовать. Вот это бы в вики еще)  
Для начала изменил Number of values to store, per group, посмотрю увеличиться ли глубина записи.

У меня только 2 вопроса осталось:

1. Галка debug logging - относится к установкам групп и топиков или это просто расширенное логгирование всего?
2. Почему “+”? Простите не могу не докопаться, это же не логично, везде в таких случаях используются “\*”.

---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [July 8, 2021, 6:06am UTC](https://support.wirenboard.com/t/history/8314/7 "2021-07-08T06:06:50Z")

</div>

Вам спасибо за замечания, постараемся дополнить документацию.

> 1. Галка debug logging - относится к установкам групп и топиков или это просто расширенное логгирование всего?

Установка этой галочки означает вывод дополнительной информации о работе сервиса архивирования в лог. Просмотр лога командой journalctl в командной стоке Линукса (опции добавьте как нужно из описания).

> 1. 
> 1. Почему “+”? Простите не могу не докопаться, это же не логично, везде в таких случаях используются “\*”.

Это обозначение, принятое для описания MQTT топиков. То есть “+” обозначает любое имя в одном уровне топика MQTT. Подробнее можете почитать, например, тут: [MQTT Topics, Wildcards, & Best Practices – MQTT Essentials: Part 5](https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/)

---

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 14, 2021, 8:05am UTC](https://support.wirenboard.com/t/history/8314/8 "2021-07-14T08:05:46Z")

</div>

Прошло несколько дней, данные теперь сохраняются, спасибо. Появилась еще пара вопросов. Подскажите пожалуйста.

1. Я убрал группу +/+ но размер базы не изменился, подозреваю, что старые данные там остались. Они сами со временем сотрутся или мне теперь вручную надо стирать? Я про те данные на которые в текущий момент у меня каких-либо настроек в history не стоит.

2. Когда начнет заканчиваться свободное место, старые данные начнут затираться вне зависимости от настроек или у меня будет проблема и надо этим за ранее озаботиться?

3. Если я хочу обнулить базу, как это правильно сделать? теоретически я понимаю, что могу просто файл БД в настройках поменять, но если хочу по правильному.

4. Подключил к А1 геркон на дверь. Работает, дверь открываешь - состояние меняется. В history для него делаю:  
topic: wb-gpio/A1\_IN - дискретный, мне надо только открыто/закрыто  
Number of values to store, per topic: 20000  
Number of values to store, per group: 20000  
Minimum time interval between two data points (s): 1 сек.  
Minimum time interval between two data points with the same value (s): 1

Открываю/закрываю дверь. Получаю:  
2021-07-14 10:24:13 1  
2021-07-14 10:26:21 1  
2021-07-14 10:29:50 0.75  
2021-07-14 10:55:31 0.75

Дверь открывалась дольше, чем на 1 сек. Топик бинарный. Откуда взялись 0,75? Почему при установке Minimum time interval between two data points with the same value (s): 1 Так мало записей? Я же правильно понимаю, что этот параметр должен писать в базу состояние топика в моем случае каждую секунду?

Прошивка 202106250954\_stable\_webupd\_wb67 заливалась как сброс к заводским. Плюс обновление с неделю назад.

---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [July 14, 2021, 8:54am UTC](https://support.wirenboard.com/t/history/8314/9 "2021-07-14T08:54:28Z")

</div>

> Они сами со временем сотрутся или мне теперь вручную надо стирать?

Да, они должны перезаписаться. Но можно и вручную: [Как правильно удалить историю?](https://support.wirenboard.com/t/kak-pravilno-udalit-istoriyu/7547)

> Когда начнет заканчиваться свободное место, старые данные начнут затираться вне зависимости от настроек или у меня будет проблема и надо этим за ранее озаботиться?

Должны затираться сами.

> Если я хочу обнулить базу, как это правильно сделать? теоретически я понимаю, что могу просто файл БД в настройках поменять, но если хочу по правильному.

В этой же теме: [Как правильно удалить историю?](https://support.wirenboard.com/t/kak-pravilno-udalit-istoriyu/7547)

> Откуда взялись 0,75?  
> При отображении на графике часто изменяющихся значений происходит усреднение:  
> [Почему такая странная разница между графиком в истории и полученными данными](https://support.wirenboard.com/t/pochemu-takaya-strannaya-raznicza-mezhdu-grafikom-v-istorii-i-poluchennymi-dannymi/1905).  
> [WB6. GPIO Скачет значение](https://support.wirenboard.com/t/wb6-gpio-skachet-znachenie/4937)

Попробуйте увеличить масштаб для просмотра (график динамически изменяет количество точек для отображения при разном масштабе).

> Так мало записей? Я же правильно понимаю, что этот параметр должен писать в базу состояние топика в моем случае каждую секунду?

В базу должны записываться все точки. Но в зависимости от выбранного масштаба на экране и в виде CSV отображаться может разное количество точек и еще усреднение. Попробуйте укрупнить масштаб отображения. Уже разговаривали с программистами, что это не очень удобно и понятно, они обещали подумать над улучшениями.

---

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 14, 2021, 9:42am UTC](https://support.wirenboard.com/t/history/8314/10 "2021-07-14T09:42:36Z")

</div>

> [@Explorerol](#):
>
> Попробуйте увеличить масштаб для просмотра (график динамически изменяет количество точек для отображения при разном масштабе).

Поставил интервал 10 минут. 4 записи. Картинку прикрепляю.

> [@Explorerol](#):
>
> В базу должны записываться все точки. Но в зависимости от выбранного масштаба на экране и в виде CSV отображаться может разное количество точек и еще усреднение. Попробуйте укрупнить масштаб отображения. Уже разговаривали с программистами, что это не очень удобно и понятно, они обещали подумать над улучшениями.

Было бы очень полезно иметь возможность отключать это усреднение. При скачивании csv меня интересуют точные данные, а не усредненные.

А еще лучше вариант просмотра необработанных данных в web интерфейсе, а не только через консоль.

Также пожелание - возможность округлять значения. Например, тот же ds18b20 показывает в history, порой, 15 знаков после запятой. Он у меня воду горячую меряет в стояке, мне максимум точность до 0,1 надо. А реально вопще только целые.

 ![wb](https://support.wirenboard.com/uploads/default/original/2X/1/11f6f09e4a7b1f7e884248448e66eec0f88e80cb.jpeg)

---

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 14, 2021, 9:50am UTC](https://support.wirenboard.com/t/history/8314/11 "2021-07-14T09:50:59Z")

</div>

Кажется разобрался.  
У вас в БД пишется макс, мин значения и их среднее. За какой-то промежуток (пока не понял какой). В history выдает только вот это вот среднее. devices/wb-gpio/controls/A1\_OUT может принимать 0 или 1, зато среднее арифметическое может быть любым. Чтобы корректно показывало, надо выводить либо медианное значение, либо как-то учитывать формат. В конкретном случае с дверью, нужны данные когда она реально была открыта и закрыта, а не среднее. Учесть еще защиту от дребезга.

> **Сводка**
>
> | wb-gpio/A1\_IN | 2021-07-14 07:24:13.000000 | 1 | 1 | 1 |
> | --- | --- | --- | --- | --- |
> | wb-gpio/A1\_IN | 2021-07-14 07:24:14.000000 | 1 | | |
> | wb-gpio/A1\_IN | 2021-07-14 07:26:21.000000 | 1 | 1 | 1 |
> | wb-gpio/A1\_IN | 2021-07-14 07:26:22.000000 | 1 | | |
> | wb-gpio/A1\_IN | 2021-07-14 07:29:50.000000 | 0.5 | 0 | 1 |
> | wb-gpio/A1\_IN | 2021-07-14 07:29:51.000000 | 1 | | |
> | wb-gpio/A1\_IN | 2021-07-14 07:55:31.000000 | 0.5 | 0 | 1 |
> | wb-gpio/A1\_IN | 2021-07-14 07:55:32.000000 | 1 | | |

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [July 14, 2021, 9:52am UTC](https://support.wirenboard.com/t/history/8314/12 "2021-07-14T09:52:22Z")

</div>

Чуть поправлю коллегу:

> [@Explorerol](#):
>
> > Когда начнет заканчиваться свободное место, старые данные начнут затираться вне зависимости от настроек или у меня будет проблема и надо этим за ранее озаботиться?
> 
> Должны затираться сами.

Нет, если место **на разделе** закончится, например из-за того что будет занято другими файлами - данные в БД удаляться не будет. Удаляются только при превышении установленного количества записей.

---

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 14, 2021, 10:15am UTC](https://support.wirenboard.com/t/history/8314/13 "2021-07-14T10:15:04Z")

</div>

> [@BrainRoot](#):
>
> Нет, если место **на разделе** закончится, например из-за того что будет занято другими файлами - данные в БД удаляться не будет. Удаляются только при превышении установленного количества записей.

А как тогда решить эту задачку? Нельзя же за ранее рассчитать ни размер БД ни как будет меняться место на разделе.

Допустим, можно как мониторить свободное место как таковое и при определенном пороге давать уведомление пользователю. Но сокращать размер записей придется уже “на ощупь”.

---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [July 14, 2021, 10:58am UTC](https://support.wirenboard.com/t/history/8314/14 "2021-07-14T10:58:45Z")

</div>

Можно сохранять базу данных на внешний накопитель, например (путь прописывается на странице настроек).  
Также можно мониторить размер свободного места, пример здесь: [Ошибка Error getting history: MQTT RPC request timed out - #14 от пользователя poglazov](https://support.wirenboard.com/t/oshibka-error-getting-history-mqtt-rpc-request-timed-out/5071/14)

---

<div class="post-metadata">

**Author:** ![WaterCatcher](https://avatars.discourse-cdn.com/v2/letter/w/5daacb/32.png) [@WaterCatcher](https://support.wirenboard.com/u/WaterCatcher)\
**Post date:** [July 15, 2021, 9:33am UTC](https://support.wirenboard.com/t/history/8314/15 "2021-07-15T09:33:33Z")

</div>

Хорошо, как тогда вам оформить запрос на изменение работы этого модуля? Тут или отдельной темой?

В текущей реализации крайне неудобно пользоваться history.

1. Бинарные значения. Пример геркон/клапан и тд. Он должен быть либо 0 либо 1. History выдает среднее значение 0,75, 0,66666 и тд. При чем не совсем понятно еще и за какой промежуток времени. В итоге невозможно ни построить график, ни вытащить значения для экспорта в csv, через web интерфейс. В саму БД тоже пишутся зачастую средние значения за какое-то время. Т.е. геркон мог сработать 3-4 раза, а запись в БД будет одна.

2. Из-за тех же средних значений показания датчиков температуры принимают значения с диким количеством знаков после запятой (10+), что тоже крайне неудобно, предлагаю добавить такой параметр как округление для средних значений. До целых, десятых, сотых… При этом min/max значения не трогать.

3. Добавить возможность выгрузки сырых значений не только через cli специальной утилитой, но и через web интерфейс.

---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [July 15, 2021, 10:12am UTC](https://support.wirenboard.com/t/history/8314/16 "2021-07-15T10:12:04Z")

</div>

Да, можно здесь. Пожелания передам разработчикам на совещании, впишу в перечень запросов. Уже был по этому поводу разговор. Но обещать что-то пока, наверное, не получится.

---

<div class="post-metadata">

**Author:** ![Explorerol](https://avatars.discourse-cdn.com/v2/letter/e/7ab992/32.png) [@Explorerol](https://support.wirenboard.com/u/Explorerol)\
**Post date:** [December 6, 2021, 8:58am UTC](https://support.wirenboard.com/t/history/8314/17 "2021-12-06T08:58:53Z")

</div>


