АПК Синапс v1.0. ПО. Спецификации на разработку
Последнее изменение: 14.12.2025, 13:26 МСК
ПНР - настройки меняющиеся райне редко. Как правило только при установке системы.
В данном документе речь идёт только об изменениях данных USM, относящихся к ПНР. Остальные данные рассматриваются в других документах:
- CONTROLLERS.NAME - тут
- CONTROLLERS.TIMESTAMP - в Взаимодействие с телефоном
- CONTROLLERS.IS_AUTO - в Оперативное управление
1. Изменение ПНР-параметров контроллера
1.1. Изменение имени, иконки и пароля контроллера — это изменение полей CONTROLLERS.NAME, CONTROLLERS.ICO_NUM, CONTROLLERS.PASSWORD (отдельные поля, не в IDATA).
1.2. Приложение отправляет телеграмму с изменёнными полями контроллера.
1.3. Если изменилось имя или иконка контроллера:
- Прошивка обновляет имя Bluetooth-устройства;
- Новое имя формата:
[ICO]Name.
1.4. Про изменение других полей CONTROLLERS — в других разделах описания логики.
2. Инициализация линии DALI
2.1. Инициализация стартуется телеграммой с изменением CONTROLLERS.STATUS = I.
2.2. При получении этой телеграммы прошивка:
- Сбрасывает все данные FW-USM в начальные значения (кроме NAME, PASSWORD, ICO_NUM контроллера); IDATA сбрасывает в 0;
- Сбрасывает состояние всех устройств в линии DALI к состоянию RESET;
- Ставит в своей USM CONTROLLERS.STATUS =
I(и отправляет об этом телегу телефону).
2.3. Прошивка производит инициализацию светильников:
- Широковещательно выключает все светильники (DALI-команда);
- Выполняет поиск устройств в линии DALI;
- Присваивает каждому найденному светильнику короткий адрес;
- Добавляет светильники в FW-USM с:
EXIST = 1;LOCATION_ID = -1(без локации);GROUP_ID = -1(без группы);DALI_ADDR— присвоенный короткий адрес;- Начальными значениями VAL_BRIGHT, VAL_TW и т.д. из устройства-светильника DALI;
STATUS = A.
- Включает светильник (DALI-команда) после присвоения адреса.
2.4. Прошивка инициализирует сцены 0-4 во всех DALI-светильниках и своей FW-USM (таблица SCENE_LUMINAIRES):
- Сцена 0: яркость 0% (выключено);
- Сцена 1: яркость 25%;
- Сцена 2: яркость 50%;
- Сцена 3: яркость 75%;
- Сцена 4: яркость 100%;
- Для RGB-светильников: красный цвет с максимальной насыщенностью.
2.5. Прошивка производит инициализацию устройств управления (датчики, кнопочные панели):
- Выполняет поиск устройств в линии DALI;
- Присваивает короткие адреса;
- Добавляет в FW-USM с:
EXIST = 1;LOCATION_ID = -1(без локации);STATUS = A;- Остальные поля — по умолчанию (для датчиков присутствия ACTION_OCCUPANCY_ID = -1, ACTION_VACANCY_ID = -1).
- Включает светодиоды на кнопочных панелях (DALI-команда).
2.6. После завершения инициализации прошивка:
- Ставит в своей USM CONTROLLERS.STATUS =
A; - Рассылает финальное полное состояние FW-USM с обнуленным IDATA всем телефонам.
3. Расширение линии DALI
3.1. Расширение стартуется телеграммой с изменением CONTROLLERS.STATUS = E (расширение).
3.2. Расширение производится аналогично инициализации, но без сброса FW-USM.
3.3. На время расширения у CONTROLLERS IS_SCHEDULE и IS_AUTO выставляются в 0.
3.4. Прошивка:
- Выполняет поиск устройств в линии DALI;
- Находит устройства без короткого адреса (новые);
- Присваивает им адреса;
- Добавляет в свободные слоты FW-USM (где
EXIST = 0).
3.5. Новые устройства добавляются с дефолтными параметрами без локации и группы.
4. Замена устройства в линии DALI
4.1. На время замены у CONTROLLERS IS_SCHEDULE и IS_AUTO выставляются в 0.
4.2. Вышедшие из строя устройства заменяются поштучно:
- Устройство физически заменяется на новое в линии DALI.
- Пользователь жмёт кнопку Заменить у устройства в приложении.
4.3. Замена стартуется телеграммой с изменением LUMINAIRES[i].STATUS = C (или PRES_SENSORS[i].STATUS = C и т.д.).
4.4. Прошивка находит устройства того же типа без привязки (новые).
4.5. Если найдено несколько устройств нужного типа прошивка выставляет у устройства .STATUS = F и шлет телегу-ответку.
4.6. Если найдено одно новое устройство нужного типа:
- Прошивка копирует все настройки из записи заменяемого устройства в запись нового;
- Присваивает новому устройству короткий адрес старого (DALI-команда);
- Отправляет необходимые DALI-команды для установки параметров (MIN_LEVEL, MAX_LEVEL, FADE_TIME и т.д.);
- Устройство проверяется на работоспособность:
- Если всё нормально, ставится STATUS =
Aу устройства. - Иначе STATUS =
F.
- Если всё нормально, ставится STATUS =
4.7. Если устройство не найдено, у него ставится статус F.
4.8. Прошивка рассылает изменения всем телефонам.
5. Изменение параметров устройств
5.1. Светильники
5.1.1. Рабочие: MAX_LEVEL, MIN_LEVEL, FADE_TIME.
5.1.2. IDATA: имя, иконка, позиция.
5.2. Датчики присутствия
5.2.1. Рабочие: HOLD_TIME.
5.2.2. IDATA: имя.
5.3. Датчики освещённости
5.3.1. IDATA: имя.
5.4. Кнопочные панели и кнопки
5.4.1. IDATA: имя.
6. Локации и распределение по ним устройств
6.1. Создание локации: приложение отправляет телеграмму с изменением LOCATIONS[i].EXIST = 1 для свободного слота. При этом в телеге возможны и другие изменения, в том числе в IDATA, где хранится имя локации.
Значения у IS_AUTO и SCENE_NUM устанавливаются по умолчанию.
6.2. Помещение устройства в локацию: приложение отправляет телеграмму с изменением LUMINAIRES[j].LOCATION_ID = i. Аналогично для кнопок и датчиков.
6.3. Удаление локации: приложение отправляет телеграмму с изменением LOCATIONS[i].EXIST = 0. Если в локации есть устройства, всем им прошивкой назначается в FW-USM LOCATIONS_ID = -1.
7. Группы и распределение по ним устройств
7.1. Создание группы: приложение отправляет телеграмму с изменением GROUPS[i].EXIST = 1 и GROUPS[i].LOCATION_ID = loc (или -1 для корня). При этом в телеге возможны и другие изменения, в том числе в IDATA, где хранится имя группы.
7.2. Добавление светильника в группу: приложение отправляет телеграмму с изменением LUMINAIRES[j].GROUP_ID = i. Прошивка отправляет DALI-команду присвоения светильника группе i.
7.3. Удаление группы: приложение отправляет телеграмму с изменением GROUPS[i].EXIST = 0. Прошивка убирает у всех светильников с GROUP_ID = i привязку к группе (GROUP_ID = -1), если группа привязана к датчику освещенности, ставит у датчика GROUP_ID = -1 и отправляет соответствующие DALI-команды. Удаляются все поддействия, в которых фигурирует эта группа (если поддействие в действии одно - удаляется и действие)
8. Добавление/удаление поддействия в/из действия
8.1. Опишем процесс добавления поддействия в действие здесь и сразу, т.к. он позже будет встречаться несколько раз.
8.2. Добавление поддействия — телега с записью SUBACTIONS[j]:
- ACTION_ID =
i; - OBJECT_TYPE = тип объекта (1-контроллер, 2-локация, 3-группа, 4-светильник);
- OBJECT_NUM = номер объекта;
- VALUE = значение (номер сцены, температура TW, флаг АВТО).
8.3. Удаление поддействия — SUBACTIONS[j].ACTION_ID = -1.
9. Назначение действий на датчики присутствия
9.1. Назначение на присутствие — PRES_SENSORS[i].ACTION_OCCUPANCY_ID = j (j — ID действия из числа свободных).
9.2. Снятие назначения на присутствие:
- PRES_SENSORS[i].ACTION_OCCUPANCY_ID = -1;
- Прошивка всем поддействиям с ACTION_ID = очищаемого ACTION_OCCUPANCY_ID ставит ACTION_ID = -1.
9.3. Назначение на отсутствие — PRES_SENSORS[i].ACTION_VACANCY_ID = j (j — ID действия из числа свободных).
9.4. Снятие назначения на отсутствие:
- PRES_SENSORS[i].ACTION_VACANCY_ID = -1;
- Прошивка всем поддействиям с ACTION_ID = очищаемого ACTION_VACANCY_ID ставит ACTION_ID = -1.
9.5. После этого пользователь добавляет в действие поддействия (см. раздел 8), но это уже отдельные телеги.
10. Привязка датчиков освещённости к группам светильников
10.1. Приложение отправляет телеграмму с изменением BRIGHT_SENSORS[i].GROUP_ID = j.
10.2. Прошивка последовательно переводит светильники группы в сцены 0-4 (DALI-команды).
10.3. Для каждой сцены N (0-4) прошивка:
- Считывает текущую освещённость с датчика (DALI-команда);
- Сохраняет значение в соответствующее поле BRIGHT_SENSORS[i].SCENE_BRIGHTNESS_N;
- Например, для сцены 0 → SCENE_BRIGHTNESS_0, для сцены 1 → SCENE_BRIGHTNESS_1 и т.д.
11. Назначение действий на настенные кнопки
11.1. Короткое нажатие (набор действий)
11.1.1. Добавление действия в набор:
- ACTIONS[j].BUTTON_SHORT_ID =
i(ссылка на кнопку); - ACTIONS[j].POS =
pos.
11.1.2. Пересортировка действий в наборе:
- Приложение отправляет телеграмму с изменёнными ACTIONS[j].POS, ACTIONS[k].POS и т.д. для нескольких действий одновременно;
- Прошивка обновляет позиции действий в наборе.
11.1.3. После добавления действия пользователь добавляет в действие поддействия (см. раздел 8), но это уже отдельные телеги.
11.1.4. Удаление действия из набора:
- ACTIONS[j].BUTTON_SHORT_ID = -1.
11.2. Долгое нажатие (одно действие)
11.2.1. Добавление действия на долгое нажатие:
- ACTIONS[j].BUTTON_LONG_ID =
i.
11.2.2. После добавления действия пользователь добавляет в действие поддействия (см. раздел 8), но это уже отдельные телеги.
11.2.3. Удаление действия:
- ACTIONS[j].BUTTON_LONG_ID = -1.