Главная › Настройка объекта › Коммуникации и доступы

6 Коммуникации и доступы

Храните все данные подключений объекта: интернет, ТВ, сигнализация, видеонаблюдение, умный дом — с учётными данными, документами и датами действия.

Зачем хранить коммуникации?

Каждый объект имеет множество сервисов и подключений: интернет, телефон, сигнализация, видеонаблюдение, доступ к воротам, системы умного дома. Хранение всей этой информации в одном месте экономит время и предотвращает путаницу — особенно когда вы управляете несколькими объектами или нужно поделиться доступом с арендаторами.

Что можно организовать

  • Данные WiFi и интернет-провайдера
  • Доступ к сигнализации и видеонаблюдению
  • Настройки умного дома и пульта ворот
  • Детали ТВ и телефонного сервиса
  • Прикреплённые договоры и инструкции для каждого сервиса

Какую информацию хранить

Каждая запись коммуникации может хранить следующую информацию:

communication_type_id Тип сервиса (обязательный)
login Имя учётной записи, SSID или логин
password Пароль или код доступа (хранится зашифрованно)
access_address URL, IP-адрес или ссылка на веб-панель
information Заметки в формате HTML (провайдер, тариф и т.д.)
is_active Флаг активный/неактивный
О хранении конфиденциальных данных
Пароли хранятся в зашифрованном виде и по умолчанию скрыты в интерфейсе. Хотя вы можете использовать поле пароля для кодов WiFi, PIN-кодов сигнализации и подобных данных доступа, мы рекомендуем использовать поле пароля только для некритичных кодов. Для особо важных учётных данных рассмотрите использование специализированного менеджера паролей. Сервис хранит данные безопасно, но каждый пользователь самостоятельно решает, какую информацию сохранять.

Как добавить коммуникации

Вы можете добавлять и управлять коммуникациями через веб-интерфейс или через API.

В веб-интерфейсе: откройте страницу объекта, затем нажмите "Коммуникации" в меню объекта.

Смотрите полную документацию в Библиотеке: Коммуникации.

Типы коммуникаций

14 встроенных типов охватывают все типичные сервисы объекта. Используйте GET /api/communication-types для полного списка с ID.

WIFI WiFi сеть
INTERNET_FIBER Оптоволоконный интернет
STARLINK Спутниковый интернет Starlink
TV_IPTV / TV_SATELLITE Телевидение (IPTV / Спутник)
VIDEO_SURVEILLANCE Видеонаблюдение (CCTV)
ALARM_SYSTEM Сигнализация / охранная система
REMOTE_GATE Ворота / шлагбаум
SMART_HOME Система умного дома
PHONE_WIRED / PHONE_WIRELESS Стационарный / мобильный телефон
OTHER_COMMUNICATION Любой другой сервис

Прикреплённые документы

К каждой коммуникации можно прикрепить документы — договоры, инструкции, счета. Сначала загрузите документ в объект (POST /api/properties/{id}/documents), затем прикрепите его к коммуникации по ID документа.

Примеры документов

  • Договор с интернет-провайдером
  • Инструкция по монтажу сигнализации
  • Инструкция по настройке приложения умного дома
  • Инструкция по программированию пульта ворот

Для разработчиков: REST API

Управляйте коммуникациями объекта через REST API. Поле information поддерживает HTML для форматирования.

GET Получить типы коммуникаций

▶

Получить список всех доступных типов коммуникаций с их ID.

GET /api/v1/communication-types

Ответ (200 OK):

{ "data": [ {"id": 1, "code": "WIFI", "name_key": "communication_type.wifi.name"}, {"id": 5, "code": "INTERNET_FIBER", "name_key": "communication_type.internet_fiber.name"}, {"id": 10, "code": "VIDEO_SURVEILLANCE", "name_key": "communication_type.video_surveillance.name"}, {"id": 11, "code": "ALARM_SYSTEM", "name_key": "communication_type.alarm_system.name"} ] }

POST Создать коммуникацию

▶

Создать новую запись коммуникации для объекта. Только communication_type_id обязателен, остальные поля необязательны.

POST /api/v1/properties/{id}/communications

Заголовки:

Authorization: Bearer {token} Content-Type: application/json

Тело запроса:

{ "communication_type_id": 1, "login": "MyNetwork", "password": "wifi-pass-2026", "access_address": "192.168.1.1", "information": "<p>Router: TP-Link Archer AX73</p><p>Provider: Kyivstar Fiber 500 Mbps</p>", "is_active": true }
Поле information принимает HTML. Используйте теги &lt;p&gt;, &lt;b&gt;, &lt;ul&gt;/&lt;li&gt; для структурированного содержимого.

Поле `information` поддерживает HTML-форматирование (таблицы, списки, заголовки, параграфы, ссылки, встроенные стили). В целях безопасности весь HTML проходит санитизацию на сервере — скрипты, iframe, обработчики событий и опасные атрибуты автоматически удаляются.

Ответ (201 Created):

{ "message": "Communication created successfully", "data": { "id": 1, "property_id": "019a1b2c-3d4e-7f5a-8b9c-0123456789ab", "communication_type": {"id": 1, "code": "WIFI"}, "login": "MyNetwork", "password_set": true, "access_address": "192.168.1.1", "is_active": true, "documents_count": 0 } }

GET Список коммуникаций

▶

Получить все коммуникации объекта.

GET /api/v1/properties/{id}/communications

Параметры запроса:

active_only Показать только активные коммуникации (true/false)

Ответ (200 OK):

{ "data": [ { "id": 1, "communication_type": {"id": 1, "code": "WIFI"}, "login": "MyNetwork", "password_set": true, "access_address": "192.168.1.1", "is_active": true, "is_currently_active": true, "documents_count": 1 } ], "total": 5 }

PUT Обновить коммуникацию

▶

Обновить любые поля коммуникации. Отправляйте только те поля, которые хотите изменить.

PUT /api/v1/communications/{communicationId}

Доступные поля (отправляйте только те, которые хотите изменить):

login string | null
password string | null
access_address string | null
information string (HTML) | null
is_active boolean

Тело запроса:

{ "login": "NewNetwork_5G", "password": "new-wifi-pass-2026", "access_address": "192.168.1.1", "information": "<h3>Updated Router Info</h3><p>Speed: 1 Gbps</p>", "is_active": true }
Используйте ID коммуникации из ответа на запрос списка (GET) или создания (POST).

Поле `information` поддерживает HTML-форматирование (таблицы, списки, заголовки, параграфы, ссылки, встроенные стили). В целях безопасности весь HTML проходит санитизацию на сервере — скрипты, iframe, обработчики событий и опасные атрибуты автоматически удаляются.

POST Прикрепить документ

▶

Прикрепить существующий документ объекта к коммуникации. Документ должен принадлежать тому же объекту.

POST /api/v1/communications/{communicationId}/documents

Тело запроса:

{ "document_id": 50, "comment": "Provider contract" }
Сначала загрузите документ в объект через POST /api/properties/{id}/documents, затем прикрепите его здесь, используя полученный ID документа.

Ответ (201 Created):

{ "message": "Document attached successfully", "data": { "link_id": 12, "document_id": 50, "comment": "Provider contract" } }

Открепить документ

DELETE /api/v1/communications/{communicationId}/documents/{documentId}

Удаляет связь между коммуникацией и документом. Сам документ не удаляется.

Примеры cURL

▶

1. Создать коммуникацию

curl -X POST https://landlordkeeper.com/api/v1/properties/019a1b2c-3d4e-7f5a-8b9c-0123456789ab/communications \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN_HERE" \ -d '{ "communication_type_id": 1, "login": "MyNetwork", "password": "wifi-pass-2026", "access_address": "192.168.1.1", "is_active": true }'

2. Список коммуникаций

curl https://landlordkeeper.com/api/v1/properties/019a1b2c-3d4e-7f5a-8b9c-0123456789ab/communications \ -H "Authorization: Bearer YOUR_TOKEN_HERE"

3. Прикрепить документ

curl -X POST https://landlordkeeper.com/api/v1/communications/1/documents \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN_HERE" \ -d '{ "document_id": 50, "comment": "Provider contract" }'
Замените YOUR_TOKEN_HERE на JWT-токен из шага аутентификации.