Я ищу способ получить список всех тем, известных брокеру. Есть несколько очень похожих вопросов, но они не помогли мне понять это для моего варианта использования.
У меня есть 3 Raspberry Pi с несколькими датчиками (температура, влажность), которые подключены через сеть MQTT. Каждый Pi имеет собственную базу данных, содержащую временные ряды измерений и другие системные переменные (например, ЦП).
Сейчас ищу способ для следующего сценария:
Я хочу контролировать свою систему и обнаруживать аномалии. Для этого я хочу получить все временные ряды датчиков за последние x секунд и обработать их в скрипте Python. Моя система для выполнения расчетов мониторинга может быть любой Pi.
Пример: я использую RPI2 и хочу контролировать всю распределенную сеть. Нет данных о датчиках, подключенных к Pi. Теперь из моего скрипта Python, работающего на RP2, я бы инициализировал клиент MQTT и подписывал данные каждого датчика на брокере.
Я знаю о подстановочном знаке #, но не знаю, как его использовать в этом случае. Моя волшебная команда выглядела бы как следующий псевдокод:
1) client subscribe to all sensor data - #/sensor/#
2) get list with all topics
3) client subscribe to all topics from given list list/#
4) analyse data for anomalies every x seconds