Как работать с базой данных HIstory. wb-mqtt-db

Добрый день!

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

Добрый день!

Есть готовое решение, чтобы работать с базой исторических данных. Это https://github.com/contactless/wb-mqtt-db-cli

можно ли работать с другой машины с локальной базой? или это делать по ssh на контроллере?

Пожалуйста, начните с чтения документации, попробуйте поработать - при запуске утилиты указывается IP-адрес устройства

так я ее и почитал, ту которой нет. там в тексте есть IP, поэтому и спросил -это ошибка или нет. когда начнешь копаться- потом опять это не работает. это зависает, это не подключается…

Traceback (most recent call last):
File “wb-mqtt-db-cli.py”, line 17, in
from mqttrpc.client import TMQTTRPCClient, MQTTRPCError
ImportError: No module named mqttrpc.client

установил питон
установил pip
установил paho-mqtt
так же ругается. что ему еще нужно чтобы запустить этот cli…

полезно всё-таки читать сообщения об ошибках, а не воспринимать это как абстрактное “ругается”.

вот нет чего-то, что называется mqttrpc

Найти можно тут например: http://releases.contactless.ru.s3-eu-west-1.amazonaws.com/experimental/pool/experimental/p/python-mqttrpc/python-mqttrpc_1.1_all.deb

В документацию добавим.

именно этот модуль искал в поисковике. не был найден ни в гугле ни в яндексе

а можно ли сразу писать в базу mysql вместо sqlite? было бы удобно.

я попытался восстановить через .dump - еще то упражнение, тк sql синтксис не соответствует и приходится восстанавливать через допконвертер

root@cubietruck:~# dpkg -i python-mqttrpc_1.1_all.deb
Selecting previously unselected package python-mqttrpc.
(Reading database … 68241 files and directories currently installed.)
Preparing to unpack python-mqttrpc_1.1_all.deb …
Unpacking python-mqttrpc (1.1) …
dpkg: dependency problems prevent configuration of python-mqttrpc:
python-mqttrpc depends on python-json-rpc; however:
Package python-json-rpc is not installed.

dpkg: error processing package python-mqttrpc (–install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
python-mqttrpc

делаю apt-get install python-jsonrpc2
Reading package lists… Done
Building dependency tree
Reading state information… Done
python-jsonrpc2 is already the newest version.
The following packages were automatically installed and are no longer required:
libcfg4 libelfg0 libftdi1 liblircclient0 libquorum4 libtotem-pg4 libuuid-perl libvotequorum4
rlwrap unixodbc
Use ‘apt-get autoremove’ to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

и все равно просит еще пакет python-jsonrpc

Он просит пакет python-json-rpc, а вы ему поставили python-jsonrpc2.

понятное дело. но python-json-rpc не находит в репозиториях

root@cubietruck:~# apt-get install python-json-rpc
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package python-json-rpc is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package ‘python-json-rpc’ has no installation candidate

все… нашел в другом репозитории… квест какой то… теперь проблема с версиями питона

аааа… запустил… вот это квест бл…

нужно

  1. запускать не на wirenboard потому что в wheezy репозитории стоит версия питона 2.7.3, к которой не устанавливается пакет python-mqttrpc
  2. прописать на другой линукс машине репозитории указанные в /etc/apt/ SOURCES.LIST.D с ключами gpg
  3. установить питон 2.7.9 версии
  4. установить python-json-rpc, python-mqttrpc
  5. установить pip( установщик модулей python)
  6. установить библиотеки которых нет по умолчанию - у меня pip install python-dateutil

и только потом работать по документации…

мне база данных нужна для сбора информации и отчетов… может я не туда иду? и нужно использовать zabixx?

ну если база не на контроллере крутится, то можно поднять influx+grafana например, это нынче более модно чем заббикс

немного не понятно про zabbix. установил zabbix-server 3.4 на другой машине с mysql, настроил,все работает. как подключить шаблон? я так понимаю на wirenboard нужен агент? документацию прочитал.
как связать агента zabbix на wirenboard и заббикс сервер на другой машине?

раз https://contactless.ru/wiki/index.php/Zabbix_support
два https://github.com/contactless/wb-mqtt-zabbix

на wb нужно запустить wb-mqtt-zabbix и zabbix-agent?
адрес сервера в конфиге адрес wb?

с сервера считывать значения mqtt.[] или прописывать в конфиге zabbix-agent?

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

вопрос снят. zabbix-agent ставиться на WB. zabbix-server я поставил на другой linux компьютер со своей базой mysql. Так надежнее т.к. wb-mqtt-db работает с локальной базой и данные вытягивать оттуда нужно через csv файлы или через sql скрипты с трансформацией PHP конвертером, тк SQL синтаксис разный…

вообщем service apt-get install zabbix-agent
необходимые параметры прописываются в его конфиге /etc/zabbix/zabbix_agentd.conf

Server=[адрес сервера Zabbix]
ServerActive=[адрес сервера Zabbix]
UserParameter=mqtt.value[*],mosquitto_sub -t ‘$1’ -C 1

На сервере Zabbix Настройка -> Узлы сети -> создать Узел
в узле без всяких Templates создаем элемент данных с ключом mqtt.value[/devices/sht1x/controls/humidity]

у меня это mqtt.value[/devices/mercury230ar02_24/controls/AP1]
и все работает.

вообщем я это сказал для систематизации опыта. конечно это все есть, но в разных местах

вот это для zabbix-agent не нужно

полезная статья https://it4it.club/topic/62-obuchaem-zabbix-rabotat-s-mqtt-protokolom/

1 лайк

Если каналов много, то я конечно рекомендую попробовать другой способ: через wb-mqtt-zabbix , без агента. Первоначальная настройка может чуть сложнее, зато не нужно будет забивать каждый канал ручками в настройки заббикса. И работает заметно быстрее.

чтобы zabbix-сервер узнал о каналах, нужно чтобы zabbix-сервер имел template. а его нет… но попробую еще раз

можно уточнить- при установке следовать инструкции или можно просто установить wb-mqtt-zabbix?

нужно ли устанавливать zabbix-server на wb?

нужно ли zabbix-agent устанавливать на wb?

откуда wb-mqtt-zabbix получает информацию? от zabix -agent или напрямую от mosquitto?