Контролов много, но в каких-то кол-во записей 30-70, в каких-то десятки тысяч. Например, мне точно не нужна подробная история о напряжении на каждом подключенном модуле, а записей очень много:
68214|dimmer01|supply_voltage
68213|relay02|supply_voltage
68212|relay03|supply_voltage
Вопрос в том, что это все настраивается очень негибко. Некоторые каналы мне нужно сохранять с высоким разрешением (раз в 5-10 сек). Иногда нужно ненадолго это включить, а через 1-2 часа вернуть стандартные настройки. Сейчас каждое такое действие останавливает запись истории на 25 минут, пока процесс wb-mqtt-db что-то перечитает.
Второе. Вижу в базе множество записей с тестовых и давно удаленных устройств. При удалении их из очереди, как я понимаю, из базы оно не удаляется. Как теперь это все почистить? Только руками командами sqlite? Было бы неплохо сделать какой-то скрипт или кнопку, которая бы очищала базу от неактуальных устройств.
А что это даст? Наборот, будет еще медленее по 100-Мбитному интерфейсу, чем с USB-флешки. Идея же в том, чтобы сам процесс wb-mqtt-db работал на другом более производительном хосте, а history в веб-интерфейсе просто обращался бы к этой базе по сети. Но я не нашел никаких настроек в плане указания хоста и даже в исходниках этого нет.
Сейчас у меня вот такой конфиг. Можете оценить, что здесь не оптимально и как лучше сделать?
"database": "/mnt/usbflash/var/lib/wirenboard/db/data.db",
"debug": false,
"groups": [
{
"channels": [
"energy01/ch09_active_power"
],
"min_interval": 10,
"min_unchanged_interval": 120,
"name": "Energy Ch9",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"energy01/ch06_active_power"
],
"min_interval": 30,
"min_unchanged_interval": 120,
"name": "Energy Ch6",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"zb_climate01/temperature"
],
"min_interval": 30,
"min_unchanged_interval": 120,
"name": "zb_climate01_temperature",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"zb_climate02/temperature"
],
"min_interval": 30,
"min_unchanged_interval": 120,
"name": "zb_climate02_temperature",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"zb_climate03/temperature"
],
"min_interval": 30,
"min_unchanged_interval": 120,
"name": "zb_climate03_temperature",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"zb_climate04/temperature"
],
"min_interval": 30,
"min_unchanged_interval": 120,
"name": "zb_climate04_temperature",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"zb_climate05/temperature"
],
"min_interval": 30,
"min_unchanged_interval": 120,
"name": "zb_climate05_temperature",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"oregon_rx_1D20_15_1/temperature"
],
"min_interval": 30,
"min_unchanged_interval": 120,
"name": "oregon_rx_1D20_15_1_temperature",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"zb_relay01/power"
],
"min_interval": 10,
"min_unchanged_interval": 60,
"name": "zb_relay01_power",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"energy01/ch02_active_power"
],
"min_interval": 10,
"min_unchanged_interval": 120,
"name": "Energy Ch2",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"temperature02/voltage"
],
"min_interval": 10,
"min_unchanged_interval": 60,
"name": "temperature02_voltage",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"relay05/supply_voltage"
],
"min_interval": 10,
"min_unchanged_interval": 60,
"name": "relay05_voltage",
"values": 100000,
"values_total": 1000000
},
{
"channels": [
"+/+"
],
"min_interval": 60,
"min_unchanged_interval": 1200,
"name": "all",
"values": 500000,
"values_total": 5000000
}
]
}