Skip to content

schema_example.json

Какое функциональное назначение у schema_example.json?

Данный файл - это контракт между Разработчиком Unit и Pepeunit:

  1. Разработчик Unit гарантирует, что он реализует в функционале Unit, работу указанных в schema_example.json стандартных топиков Pepeunit: input_base_topic и output_base_topic
  2. Разработчик Unit гарантирует работу input_topic и output_topic в соответствии описанием, которое он составил в Readme
  3. Pepeunit гарантирует корректное взаимодействие со стандартными топиками input_base_topic и output_base_topic
  4. Pepeunit гарантирует, что будет поддерживать актуальный набор UnitNode в соответствии с input_topic и output_topic, указанных разработчиком в schema_example.json, для каждой версии Unit.

Структура

json
{   
    "input_base_topic": [
        "update/pepeunit",
        "env_update/pepeunit",
        "schema_update/pepeunit",
        "log_sync/pepeunit"
    ],
    "output_base_topic": [
        "state/pepeunit",
        "log/pepeunit"
    ],
    "input_topic": [
        "set_fan_state/pepeunit"
    ],
    "output_topic": [
        "current_fan_speed_percentage/pepeunit",
        "current_temp/pepeunit"
    ]
}

Всего в schema_example.json есть 4 типа топиков:

ТопикОписаниеПодробности
input_base_topicТопики стандартных MQTT команд, которые Unit может выполнитьСтандартные MQTT команды
output_base_topicТопики стандартной публикации данных, в которые Unit может публиковать данныеСтандартные MQTT топики состояния
input_topicInput топики Разработчика Unit. Pepeunit использует их как шаблон для создания Input UnitNodeТопики разработчика
output_topicOutput топики Разработчика Unit. Pepeunit использует их как шаблон для создания Output UnitNodeТопики разработчика

INFO

При использовании клиентских библиотек Micropython, Golang и Python, можно указывать все топики из input_base_topic и output_base_topic, они будут корректно работать.

Если вы сами реализуете взаимодействие с Pepeunit без библиотек, то можно оставить только те топики, которые нужны для реализации Unit.

WARNING

При создании Unit или изменении его версии, Pepeunit автоматически создаёт и удаляет недостающие Input и Output UnitNode в соответствии с schema_example.json.