Pepeunit Framework
INFO
Каждая из библиотек является Framework`ом для работы с Pepeunit
Цель Framework - облегчить разработку новых Unit, обеспечив работу базового функционала для интеграции с Pepeunit и предоставить инструменты управления программой
Набор возможностей
- Встроенный MQTT клиент:
- массовая подписка на топики на основе schema.json
- отправка данных в топики массово на основе schema.json
- Встроенный REST клиент:
- загрузка архива обновлений
- загрузка env.json
- загрузка schema.json
- установка состояния storage
- получение состояния storage
- Приём и корректная обработка cтандартных MQTT команды Pepeunit
- Отправки и генерации состояния Unit
- Функционал для работы с schema.json:
- Динамическое обновление
- Поиск по всем
4типам топиков - Поиск топиков по UnitNode.uuid или по полному названию конкретных топиков
- Функционал для работы с env.json:
- Динамическое обновление
- Получение Unit.uuid из токена
- Получение любой перменной, как атрибута класса
- Функционал для работы с логами:
- Установка кастомного
handlerдля обновления Unit - Установка
handlerдляInputсообщений MQTT - Установка
handlerдляOutputсообщений MQTT - Возможность выбрать несколько типов обновлений
- Функционал для работы с главным циклом приложения:
- Запуск
- Остановка
- Динамическое изменение
handler
log.json
INFO
Чёрный ящик Unit - позволяет хранить последние N логов не зависимо от состояния сети.
Логи хранятся в нём в формате ndjson, где каждая новая строка отделённая \n - это новый словарь:
ndjson
{"create_datetime":"2025-11-12T19:43:53Z","level":"Info","text":"MQTT connected successfully"}
{"create_datetime":"2025-11-12T19:44:37Z","level":"Info","text":"MQTT client connected successfully"}
{"create_datetime":"2025-11-12T22:00:10Z","level":"Info","text":"Get base MQTT command: update/pepeunit"}
{"create_datetime":"2025-11-12T22:00:10Z","level":"Warning","text":"COMPILED_FIRMWARE_LINK is missing in update payload"}
{"create_datetime":"2025-11-12T23:00:10Z","level":"Info","text":"Get base MQTT command: update/pepeunit"}
{"create_datetime":"2025-11-12T23:00:10Z","level":"Warning","text":"COMPILED_FIRMWARE_LINK is missing in update payload"}
{"create_datetime":"2025-11-12T23:08:50Z","level":"Info","text":"Get base MQTT command: update/pepeunit"}
{"create_datetime":"2025-11-12T23:08:50Z","level":"Warning","text":"COMPILED_FIRMWARE_LINK is missing in update payload"}
{"create_datetime":"2025-11-12T23:25:41Z","level":"Info","text":"MQTT client connected successfully"}
{"create_datetime":"2025-11-12T23:25:41Z","level":"Info","text":"Connected to MQTT Broker"}
{"create_datetime":"2025-11-12T23:25:42Z","level":"Info","text":"Success subscribed to 4 topics"}Ёмкость данного буфера зависит от переменной окружения MAX_LOG_LENGTH, все новые записи попадают в конец файла, а все старые записи, если их порядковый номер от конца больше MAX_LOG_LENGTH удаляются.
Доступ к даному файлу возможен либо физически через порты устройств или через команду log_sync