Pepeunit Framework
Ccылки на репозитории библиотек
INFO
Каждая из библиотек является клиентским Framework для работы с Pepeunit
Цель Framework - облегчить разработку новых Unit, обеспечив работу базового функционала для интеграции с Pepeunit, а также предоставить инструменты управления циклом выполнения
Набор возможностей
- Встроенный MQTT клиент:
- массовая подписка на топики на основе schema.json
- отправка данных в топики массово на основе schema.json
- Встроенный REST клиент:
- Приём и корректная обработка cтандартных MQTT команд Pepeunit
- Отправки и генерации состояния Unit
- Функционал для работы с schema.json:
- Динамическое обновление
- Поиск по всем
4типам топиков - Поиск топиков по UnitNode.uuid или по полному названию конкретных топиков
- Функционал для работы с env.json:
- Динамическое обновление
- Получение Unit.uuid из токена
- Получение любой переменной, как атрибута класса
- Функционал для работы с логами:
- Установка кастомного
handlerдля обновления Unit - Установка
handlerдляInputсообщений MQTT - Установка
handlerдляOutputсообщений MQTT - Возможность выбрать несколько типов обновлений
- Шифрование
aes-gcm-256поддерживающее16/24/32байтовый ключ, работает только при ручном использовании - Функционал для работы с главным циклом приложения:
- Запуск
- Остановка
- Динамическое изменение
handler
log.json
INFO
'Чёрный ящик' Unit - позволяет хранить последние N логов, независимо от состояния сети.
Логи хранятся в формате ndjson, где каждая новая строка, отделённая \n, это новый словарь:
{"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"}Ёмкость данного буфера зависит от переменной окружения PU_MAX_LOG_LENGTH, все новые записи попадают в конец файла, а все старые записи, если их порядковый номер от конца больше PU_MAX_LOG_LENGTH, удаляются.
Доступ к данному файлу возможен физически через порты устройств или через команду log_sync