Mamibot MQTT v2
Описание
Этот скрипт предназначен для взаимодействия с устройством Mamibot через MQTT-брокер. Он отправляет статус и информацию об устройстве, а также принимает команды от брокера.
Зависимости
- Mosquitto MQTT: для публикации и подписки на топики.
- jq: для обработки JSON-ответов.
- a.out: для получения данных от bvrobot
- sendbvmsg: для передачи команд в bvrobot
Конфигурация
В начале скрипта установлены следующие параметры:
broker
: адрес MQTT-брокера.port
: порт брокера.topic_s
,topic_i
,topic_cmd
,response_topic
: топики для публикации и подписки.client_id
: идентификатор клиента.username
,password
: учетные данные для подключения к брокеру.
Функции
send_message()
Отправляет сообщения на брокер. Принимает два параметра: тип топика (s
для статуса, i
для информации) и сообщение.
response_message()
Форматирует и отправляет ответ на брокер. Принимает массив строк и отправляет их как одно сообщение.
on_message()
Обрабатывает входящие сообщения. Выполняет команду из сообщения и отправляет результат обратно на брокер.
check_and_restart_mosquitto_sub()
Проверяет, запущен ли процесс mosquitto_sub
, и если нет, перезапускает его.
Основной цикл
В основном цикле скрипт:
- Отправляет статус и информацию об устройстве каждые
send_interval
секунд. - Обрабатывает входящие команды.
- Проверяет состояние подписки на брокер и перезапускает её при необходимости.
Завершение
В конце скрипта удаляется временный файл с данными и завершается процесс mosquitto_sub
.
Запуск
Скрипт должен быть запущен с правами суперпользователя, так как он взаимодействует с системными процессами.
sudo ./script.sh
Примечания
- Убедитесь, что у вас есть необходимые права для выполнения команд и чтения файлов, указанных в скрипте.
- Обновите параметры в начале скрипта для соответствия вашей конфигурации MQTT-брокера и устройства.
- Этот скрипт предназначен для работы в среде Linux с установленными зависимостями.