6 Комунікації та доступи
Зберігайте всі дані підключень об'єкта: інтернет, ТБ, сигналізація, відеоспостереження, розумний дім — з обліковими даними, документами та датами дії.
Навіщо зберігати комунікації?
Кожен об'єкт має багато сервісів і підключень: інтернет, телефон, сигналізація, відеоспостереження, доступ до воріт, системи розумного дому. Зберігання всієї цієї інформації в одному місці економить час і запобігає плутанині — особливо коли ви керуєте кількома об'єктами або потрібно поділитися доступом з орендарями.
Що можна організувати
- Дані WiFi та інтернет-провайдера
- Доступ до сигналізації та відеоспостереження
- Налаштування розумного дому та пульта воріт
- Деталі ТВ та телефонного сервісу
- Прикріплені договори та інструкції для кожного сервісу
Яку інформацію зберігати
Кожен запис комунікації може зберігати наступну інформацію:
Паролі зберігаються у зашифрованому вигляді та за замовчуванням приховані в інтерфейсі. Хоча ви можете використовувати поле пароля для кодів WiFi, PIN-кодів сигналізації та подібних даних доступу, ми рекомендуємо використовувати поле пароля лише для некритичних кодів. Для особливо важливих облікових даних розгляньте використання спеціалізованого менеджера паролів. Сервіс зберігає дані безпечно, але кожен користувач самостійно вирішує, яку інформацію зберігати.
Як додати комунікації
Ви можете додавати та керувати комунікаціями через веб-інтерфейс або через API.
У веб-інтерфейсі: відкрийте сторінку об'єкта, потім натисніть "Комунікації" у меню об'єкта.
Дивіться повну документацію у Бібліотеці: Комунікації.
Типи комунікацій
14 вбудованих типів охоплюють усі типові сервіси об'єкта. Використовуйте GET /api/communication-types для повного списку з ID.
Прикріплені документи
До кожної комунікації можна прикріпити документи — договори, інструкції, рахунки. Спочатку завантажте документ до об'єкта (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-форматування (таблиці, списки, заголовки, параграфи, посилання, вбудовані стилі). З міркувань безпеки весь 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
Параметри запиту:
Відповідь (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": "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
}
Поле `information` підтримує HTML-форматування (таблиці, списки, заголовки, параграфи, посилання, вбудовані стилі). З міркувань безпеки весь HTML проходить санітизацію на сервері — скрипти, iframe, обробники подій та небезпечні атрибути автоматично видаляються.
POST Прикріпити документ
▶Прикріпити існуючий документ об'єкта до комунікації. Документ повинен належати тому ж об'єкту.
POST /api/v1/communications/{communicationId}/documents
Тіло запиту:
{
"document_id": 50,
"comment": "Provider contract"
}
Відповідь (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"
}'