Ответ на запрос может быть либо пустым, либо типа application/json, либо в случае ошибки — строкой с описанием ошибки.
| HTTP-метод |
URI |
Тело запроса |
| GET |
/api/v1/configuration |
пустое |
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
см. пример |
Пример ответа (конфигурация устройства по умолчанию):
{
"system": {
"loglevel": -1,
"update_link": "",
"state_link": ""
},
"sip": {
"domain": "127.0.0.1:5060",
"user": "user",
"password": "password",
"dtmfmode": "rtpevent",
"outbound": ""
},
"extra_sip": {
"domain": "",
"user": "user",
"password": "password",
"dtmfmode": "rtpevent",
"outbound": ""
},
"commutator": {
"type": "VIZIT",
"mode": 1,
"ap_min": 1,
"ap_max": 36,
"ap_shift": 0,
"ap_cnt": [
0,
0,
0,
0,
0,
0,
0,
0
],
"calltime": 120
},
"volume": {
"speaker": 8.0,
"mic": 8.0,
"sys": 75,
"sys_night": 15,
"analog_speaker": 75,
"analog_speaker_night": 35,
"analog_mic": 75,
"bell_vol": 75,
"line_vol": 75,
"time_night": "0:00",
"time_day": "0:00"
},
"display": {
"rotate": false,
"text_speed": 15,
"text_color": "FFFFFF",
"labels": [
"",
"",
""
],
"localization": {
"ENTER_APARTMENT": "ENTER APARTMENT",
"ENTER_PREFIX": "ENTER PREFIX",
"CALL": "CALL",
"CALL_GATE": "CALL GATE",
"CALL_COMPLETE": "CALL COMPLETE",
"CONNECT": "CONNECT",
"OPEN": "OPEN",
"FAIL_NO_CLIENT": "FAIL NO CLIENT",
"FAIL_NO_APP_AND_FLAT": "FAIL NO APP AND FLAT",
"FAIL_LONG_SPEAK": "FAIL LONG SPEAK",
"FAIL_NO_ANSWER": "FAIL NO ANSWER",
"FAIL_UNKNOWN": "FAIL UNKNOWN",
"FAIL_BLACK_LIST": "FAIL BLACK LIST",
"FAIL_LINE_BUSY": "FAIL LINE BUSY",
"KEY_DUPLICATE_ERROR": "KEY DUPLICATE ERROR",
"KEY_READ_ERROR": "KEY READ ERROR",
"KEY_BROKEN_ERROR": "KEY BROKEN ERROR",
"KEY_UNSUPPORTED_ERROR": "KEY UNSUPPORTED ERROR",
"ALWAYS_OPEN": "The door is open",
"SOS_CALL": "SOS calling",
"SOS_CONNECT": "SOS connected",
"SOS_CALL_COMPLETE": "SOS call complete",
"SOS_ERROR": "SOS error",
"CONS_CALL": "CONS calling",
"CONS_CONNECT": "CONS connected",
"CONS_CALL_COMPLETE": "CONS call complete",
"CONS_ERROR": "CONS error",
"KALITKA_CALL": "KALITKA calling",
"KALITKA_CONNECT": "KALITKA connected",
"KALITKA_CALL_COMPLETE": "KALITKA call complete",
"KALITKA_ERROR": "KALITKA error",
"FRSI_CALL": "FRSI calling",
"FRSI_CONNECT": "FRSI connected",
"FRSI_CALL_COMPLETE": "FRSI call complete",
"FRSI_ERROR": "FRSI error",
"ALARM_TEXT_1": "ALARM 1",
"ALARM_TEXT_2": "ALARM 2",
"ALARM_TEXT_3": "ALARM 3"
}
},
"door": {
"open_time": 3.0,
"open_2_time": 3.0,
"open_sound": 1,
"open_2_sound": true,
"relay_open": 0,
"lock_invert": false,
"autocollect": "",
"unlock": "",
"unlock2": "",
"alarm_mode": 0,
"ble_open": false,
"skud_id":"",
"aes_token":"",
"rfid_pass_en": true,
"rfid_password": "",
"dtmf_open_local": ["#*0", "12"],
"dtmf_open_remote": "#"
},
"backlight": {
"level": 50
}
}
door.autocollect - время отключения автосбора ключей; пустая строка, если автосбор отключен. Пример: "2024-12-31 23:59:59"
door.unlock - время отключения разблокировки замка; пустая строка, если разблокировка отключена. Пример: "2024-12-31 23:59:59"
door.open_sound - звук открытия по кнопке: 0 - пищание, 1 - звук OPEN, 2 - звук OP_SND_2, 3 - звук OP_SND_3.
system.loglevel - уровень логирования 0..7, либо -1 - уровень по умолчанию
sip.dtmfmode - режим DTMF для исходящих DTMF-кодов. Варианты: rtpevent, info, auto.
Пример ответа для solo (конфигурация устройства по умолчанию):
{
"system": {
"loglevel": -1,
"update_link": "",
"state_link": ""
},
"sip": {
"domain": "127.0.0.1:5060",
"user": "user",
"password": "password",
"dtmfmode": "rtpevent",
"outbound": ""
},
"extra_sip": {
"domain": "",
"user": "user",
"password": "password",
"dtmfmode": "rtpevent",
"outbound": ""
},
"commutator": {
"calltime": 120
},
"volume": {
"speaker": 8.0,
"mic": 8.0
},
"door": {
"open_duration": [3.0, 3.0, 3.0],
"autocollect": "",
"unlock": "",
"ble_open": false,
"skud_id":"",
"aes_token":"",
"rfid_pass_en": true,
"rfid_password": "",
"dtmf_open_local": ["#*0", "12", "3"],
"btn_led_mode": 1
}
}
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/configuration |
application/json |
Конфигурация устройства обновляется в соответствии с запросом. Поля, отсутствующие в запросе, принимают значения по умолчанию.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| PATCH |
/api/v1/configuration |
application/json |
Конфигурация устройства обновляется в соответствии с запросом. Значение полей, отсутствующих в запросе, остаётся без изменений.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| GET |
/api/v1/apartments/ |
пустое |
{id} — номер квартиры либо одно из значений: SOS, CONS, KALITKA, FRSI. Для solo только FRSI.
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
см. пример |
| 404 |
ID not found |
квартира не найдена |
Пример ответа (натройки квартиры по умолчанию):
{
"sip_number": "",
"analog": true,
"sip": true,
"map": 0
}
Пример ответа для solo (натройки по умолчанию):
{
"sip_number": "",
"sip": true
}
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/apartments/ |
application/json |
{id} — номер квартиры либо одно из значений: SOS, CONS, KALITKA, FRSI. Для solo только FRSI. Поля, отсутствующие в запросе, принимают значения по умолчанию.
| HTTP-статус |
Тело ответа |
Описание |
| 201 |
|
успешное создание |
| 204 |
|
успешное изменение |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| PATCH |
/api/v1/apartments/ |
application/json |
{id} — номер квартиры либо одно из значений: SOS, CONS, KALITKA, FRSI. Для solo только FRSI. Квартира должна быть создана перед запросом. Значение полей, отсутствующих в запросе, остаётся без изменений.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
ID not found |
квартира не найдена |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/apartments/ |
application/json |
{id} — номер квартиры либо одно из значений: SOS, CONS, KALITKA, FRSI. Для solo только FRSI.
| HTTP-статус |
Тело ответа |
Описание |
| 201 |
|
успех |
| 409 |
ID already exists |
квартира уже существует |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| DELETE |
/api/v1/apartments/ |
пустое |
{id} — номер квартиры либо одно из значений: SOS, CONS, KALITKA, FRSI. Для solo только FRSI.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
ID not found |
квартира не найдена |
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/apartments |
{} |
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| HTTP-метод |
URI |
Тело запроса |
| GET |
/api/v1/apartments |
пустое |
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
см. пример |
Пример ответа:
{
"5": {
"sip_number": "xz2c@192.168.0.184",
"analog": true,
"sip": true,
"map": 0
},
"FRSI": {
"sip_number": "53669@lenny.from-nv.com",
"analog": true,
"sip": true,
"map": 0
},
"6": {
"sip_number": "z3c@Xperia-Z3-Compact.ufanet.ru",
"analog": true,
"sip": true,
"map": 0
},
"4": {
"sip_number": "t@engineer13.ufanet.ru",
"analog": true,
"sip": true,
"map": 0
}
}
Пример ответа для solo:
{
"FRSI": {
"sip_number": "53669@lenny.from-nv.com",
"sip": true
}
}
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/apartments |
application/json |
Список квартир с их настройками обновляется в соответствии с запросом. Поля, отсутствующие в запросе, принимают значения по умолчанию.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/rfids/ |
application/json |
{id} — ключ. В теле запроса JSON-строка с описанием ключа.
| HTTP-статус |
Тело ответа |
Описание |
| 201 |
|
успех |
| 409 |
ID already exists |
ключ уже существует |
| 400 |
Not a JSON string |
запрос не является JSON-строкой |
| 500 |
UnQLite error |
ошибка базы данных |
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/rfids/ |
application/json |
{id} — ключ. В теле запроса JSON-строка с описанием ключа.
| HTTP-статус |
Тело ответа |
Описание |
| 201 |
|
успешное создание |
| 204 |
|
успешное изменение |
| 400 |
Not a JSON string |
запрос не является JSON-строкой |
| 500 |
UnQLite error |
ошибка базы данных |
| HTTP-метод |
URI |
Тело запроса |
| PATCH |
/api/v1/rfids/ |
application/json |
{id} — ключ. В теле запроса JSON-строка с описанием ключа.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
ID not found |
ключ не найден |
| 400 |
Not a JSON string |
запрос не является JSON-строкой |
| 500 |
UnQLite error |
ошибка базы данных |
| HTTP-метод |
URI |
Тело запроса |
| DELETE |
/api/v1/rfids/ |
пустое |
{id} — ключ.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
ID not found |
ключ не найден |
| 500 |
UnQLite error |
ошибка базы данных |
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/rfids |
{} |
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| HTTP-метод |
URI |
Тело запроса |
| GET |
/api/v1/rfids |
пустое |
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
см. пример |
| 500 |
UnQLite error |
ошибка базы данных |
Пример ответа:
{
"10931015": "",
"5031159": ""
}
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/rfids |
application/json |
Список ключей с их описаниями обновляется в соответствии с запросом.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 500 |
UnQLite error |
ошибка базы данных |
| HTTP-метод |
URI |
Тело запроса |
| PATCH |
/api/v1/rfids |
application/json |
Список ключей с их описаниями модифицируется в соответствии с запросом. Ключи, перечисленные в запросе, добавляются к базе, либо меняется их описание, если они там уже есть. Ключи, отсутствующие в запросе, но имеющиеся в базе, остаются без изменений.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 500 |
UnQLite error |
ошибка базы данных |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/key_types/ |
application/json |
{id} — тип ключа. Пример тела запроса:
{
"sound": 1,
"name_eng": "Type 1",
"name_rus": "Тип 1"
}
| HTTP-статус |
Тело ответа |
Описание |
| 201 |
|
успех |
| 409 |
ID already exists |
тип ключа уже существует |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/key_types/ |
application/json |
{id} — тип ключа.
| HTTP-статус |
Тело ответа |
Описание |
| 201 |
|
успешное создание |
| 204 |
|
успешное изменение |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| PATCH |
/api/v1/key_types/ |
application/json |
{id} — тип ключа.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
ID not found |
тип ключа не найден |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| DELETE |
/api/v1/key_types/ |
пустое |
{id} — тип ключа.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
ID not found |
тип ключа не найден |
| HTTP-метод |
URI |
Тело запроса |
| GET |
/api/v1/key_types |
пустое |
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
см. пример |
Пример ответа:
{
"1": {
"sound": 1,
"name_eng": "Type 1",
"name_rus": "Тип 1"
},
"2": {
"sound": 2,
"name_eng": "Type 2",
"name_rus": "Тип 2"
}
}
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/key_types |
application/json |
Список типов ключей обновляется в соответствии с запросом.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| PUT |
/api/v1/key_types |
{} |
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/doors/{id}/open |
пустое либо application/json |
{id} — номер двери: 1, 2 или 3.
Пример запроса:
{
"hangup": true,
"sound": 1
}
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
Door not found |
нет такой двери |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/file |
multipart/form-data |
Параметр name в запросе может принимать одно из значений: IMAGE, ALARM_IMG_1, ALARM_IMG_2, ALARM_IMG_3, BELL, OPEN, OP_SND_2, OP_SND_3, ERROR, ALARM_SND_1, ALARM_SND_2, ALARM_SND_3. Для IMAGE, ALARM_IMG_1, ALARM_IMG_2, ALARM_IMG_3 загружаемый файл должен иметь формат JPEG 480x320, без EXIF и комментариев в метаданных. Для BELL, OPEN, OP_SND_2, OP_SND_3, ERROR, ALARM_SND_1, ALARM_SND_2, ALARM_SND_3 - формат WAV mono 8 bit. Размер файла - не более 512 кБ.
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 404 |
File not found |
нет такого файла |
| 413 |
File too large |
файл слишком большой |
| 500 |
File update error |
ошибка обновления |
| 503 |
Service Unavailable |
сервис недоступен |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/display/message |
application/json |
Пример запроса:
{
"text": "Привет",
"duration": 5
}
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| 400 |
Not a valid JSON object |
запрос не является JSON-объектом |
| 422 |
Wrong JSON structure |
структура JSON не валидна |
| HTTP-метод |
URI |
Тело запроса |
| GET |
/api/v1/status |
пустое |
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
см. пример |
Пример ответа:
{
"sipreg": true,
"uicl_ver": "0.6.10",
"mcu_ver": "0.0.93",
"mac_addr": "50-62-55-00-a4-04",
"t_cpu": 59.659999847412109,
"uptime": "0 days 0:32:17",
"alarm": false
}
sipreg - состояние SIP регистрации
mcu_ver - версия прошивки MCU
alarm - режим оповещения
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/apartments/{id}/test |
пустое |
{id} — номер квартиры
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| HTTP-метод |
URI |
Тело запроса |
| GET |
/api/v1/apartments/{id}/test |
пустое |
{id} — номер квартиры
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
см. пример |
Пример ответа:
{
"result": "LINE_ERROR_BROKEN"
}
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/apartments/{id}/call |
пустое либо application/json |
{id} — номер квартиры
Пример запроса:
{
"uri": "4444@sip2sip.info"
}
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/relay/on |
пустое либо application/json |
Пример запроса:
{
"duration": 3.5
}
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/relay/off |
пустое |
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/alarm/{id}/on |
пустое |
{id} — номер режима уведомления: 1, 2 или 3
| HTTP-статус |
Тело ответа |
Описание |
| 200 |
application/json |
дверь открыта (lock1=true) |
| 500 |
application/json |
дверь не открыта (lock1=false) |
| 503 |
Service Unavailable |
сервис недоступен |
Пример ответа:
{
"snd": true,
"img": true,
"lock1": true,
"lock2": true,
"text": "ALARM 1"
}
| HTTP-метод |
URI |
Тело запроса |
| POST |
/api/v1/alarm/off |
пустое |
| HTTP-статус |
Тело ответа |
Описание |
| 204 |
|
успех |