README.md

    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 с установленными зависимостями.
    Конвейеры
    0 успешных
    0 с ошибкой