Програма для автоматичного керування замком до сховища. Під час тривоги вимикає домофон у під'їзд, щоб люди могли безперешкодно потрапити всередину.
Для моніторингу тривог використовується API https://alerts.in.ua/. Запити відбуваються кожні тридцять секунд. Як тільки фіксується тривога, сервіс за допомогою Tuya Cloud IoT API вимикає розетку в яку вставлено живлення для домофону та забезпечує безпершкодний доступ у під'їзд. Коли тривога припиняється, живлення подається назад.
Також домофон вмикається під час комендантської години (з 00:00 до 05:00) навіть якщо є тривога. В мене на районі ніхто не виходить в цей час, тому це прийнятно.
- Купити будь-яку смарт-розетку, що підтримує Tuya Cloud
- Скачати апку Smart Home та підключити розетку
- Під'єднати живлення домофону до розетки
- Створити девелоперський акаунт на https://eu.iot.tuya.com
- Створити cloud проєкт: https://iot.tuya.com/cloud/
- Ви отримаєте
Client ID
таClient Secret
- Знайти свій девайс у списку та занотувати
Device ID
- Замовити API ключ у https://alerts.in.ua/
- Створити акаунт на fly.io або будь-якому іншому хостингу
- Прописати три env змінних:
ALERTS_TOKEN
— ключ від https://alerts.in.ua/TUYA_CLIENT_ID
—Client ID
проєктаTUYA_CLIENT_SECRET
—Client Secret
проєктаTUYA_DEVICE_ID
—Device ID
вашої розеткиSENTRY_DSN
— опціонально, якщо ви використовуєте Sentry
./gradlew bootJar
fly deploy
або інша команда для деплою
Проєкт пілотний та природньо має обмеження:
- Можна керувати тільки однією розеткою
- Замість того щоб сканувати всі пристрої, ми хардкодимо
Device ID
- Немає можливості додати інші акаунти з іншими ключами
- Немає аплету/нативної інтеграції з Tuya Cloud, щоб інші люди могли підключати сервіс без створення девелоперського акаунту
- Токен Tuya не кешується, тому що ми не очікуємо що тривога буде вмикатися-вимикатися щодесять хвилин
- Читається тільки тривога у Києві