Команда блокування відправлена, але автомобіль не зачиняється? Ми стикалися з цим десятки разів. Правильна реалізація віддаленого керування замками потребує врахування затримок GSM, зворотного зв'язку по CAN та сумісності з цифровими ключами. Ми розробили понад 12 телематичних додатків і знаємо, як уникнути хибного відчуття безпеки. У цій статті розберемо, як організувати надійне керування замками зі зворотним зв'язком, уникнути типових помилок та реалізувати підтримку цифрових ключів.
Віддалене керування замками: вибір між реле та CAN-інтеграцією
Перша проблема — затримки GSM-команди. Коли користувач стоїть біля машини та натискає «Закрити», команда йде через стільникову мережу і може затриматися на 5–20 секунд. Оптимістичний UI тут не працює: не можна показувати «Зачинено» до підтвердження від ТБУ — користувач піде, думаючи що машина зачинена. Правильна модель: кнопка → «Відправлення команди...» → «Команда доставлена» → очікування підтвердження від пристрою → «Зачинено» або «Таймаут — перевірте машину».
Друга проблема — відсутність зворотного зв'язку при використанні простих реле. ТБУ з реле на проводи центрального замку працює на будь-якому автомобілі, але не знає реального стану замків. Користувач отримує лише «команда відправлена». Для повноцінного зворотного зв'язку потрібна CAN-інтеграція.
| Критерій | Реле | CAN-інтеграція |
|---|---|---|
| Зворотній зв'язок | Ні | Так (реальний статус) |
| Складність установки | Низька | Середня/висока |
| Підтримка автомобілів | Будь-які | Потребує CAN-адаптер |
| Вартість | Низька | Вища (обладнання + налаштування) |
Для комерційних рішень ми рекомендуємо CAN-інтеграцію: вона дає користувачеві впевненість у статусі автомобіля та підвищує точність до 99%. При цьому затримки підтвердження зазвичай становлять 2–3 секунди — в 3 рази швидше реле.
Як забезпечити зворотний зв'язок при віддаленому блокуванні?
Після відправлення команди додаток відстежує життєвий цикл через стрим статусів. Приклад на Dart:
Stream<LockCommandState> watchLockCommand(String commandId) async* { yield LockCommandState.sending; final delivered = await api.awaitCommandDelivery(commandId, timeout: const Duration(seconds: 15)); if (!delivered) { yield LockCommandState.deliveryFailed; return; } yield LockCommandState.delivered; final confirmed = await vehicleStatusStream .where((s) => s.centralLock == LockState.LOCKED) .first .timeout(const Duration(seconds: 30)); yield LockCommandState.confirmed; } CAN-інтеграція в 3 рази надійніше реле за точністю зворотного зв'язку — підтвердження приходить у 90% випадків за 2–3 секунди.
Чому важлива правильна обробка GSM-затримок?
Якщо не враховувати затримки, користувач може піти від машини, думаючи що вона зачинена, а команда ще не дійшла. Наш додаток гарантує: поки не отримано підтвердження від ТБУ (зміна статусу замка), інтерфейс показує «відправка». Тільки після підтвердження — «Зачинено». Це виключає хибне відчуття безпеки.
Технічна реалізація модуля керування замками
Ми використовуємо стек: Swift 5.9+ / Kotlin + Jetpack Compose або Flutter 3.x (Dart) для мобільного додатку. На стороні ТБУ — Teltonika FMB003 з CAN-адаптером або аналог. Взаємодія через REST API або MQTT.
Приклад моделі даних на Kotlin
data class VehicleLockStatus( val frontLeftDoor: DoorState, val frontRightDoor: DoorState, val rearLeftDoor: DoorState, val rearRightDoor: DoorState, val trunk: DoorState, val centralLock: LockState, val lastUpdated: Instant, ) enum class DoorState { OPEN, CLOSED } enum class LockState { LOCKED, UNLOCKED, UNKNOWN } The Digital Key specification enables secure key sharing via UWB and NFC — Car Connectivity Consortium
Процес роботи
- Аналіз: вивчаємо API та можливості вашого ТБУ (модель, версія прошивки).
- Проектування: обираємо спосіб інтеграції (реле/CAN), проектуємо UX-сценарії.
- Реалізація: пишемо код модуля керування замками, включаючи обробку статусів і таймаутів.
- Тестування: перевіряємо на реальному автомобілі з різними умовами GSM.
- Деплой: публікуємо додаток в App Store та Google Play (або розповсюджуємо через TestFlight / Firebase).
Що входить в роботу
При замовленні розробки модуля віддаленого керування замками ви отримуєте:
- Документація по інтеграції з вашим ТБУ (зі схемами та прикладами коду).
- Вихідний код модуля для iOS та Android (у складі додатку або як окрема бібліотека).
- Тестовий доступ до демо-автомобіля для налагодження (за запитом).
- Підтримка на етапі впровадження (2 тижні після постачання).
- Навчання вашої команди роботі з модулем (онлайн-воркшоп на 2 години).
Порівняння підходів за часом та вартістю
| Підхід | Термін реалізації | Вартість |
|---|---|---|
| Реле без зворотного зв'язку | 1–2 тижні | Індивідуально |
| CAN-інтеграція | 3–5 тижнів | Індивідуально |
| Digital Key (UWB/NFC) | +2–3 тижні | Індивідуально |
Digital Key: UWB та NFC
Для сучасних автомобілів ми реалізуємо підтримку Apple CarKey (iOS 14+) та Google Digital Car Key (Android 12+) — стандарти дистанційного відкриття через UWB для пасивного входу та NFC як резерв. Для цього потрібне сумісне обладнання (CCC Digital Key). Розробка такої функції — окрема задача, що потребує додаткового часу.
Зв'яжіться з нами для консультації. Оцінимо ваш проект та запропонуємо оптимальне рішення під ключ.







