DOU Labs: як у GlobalLogic витворили SmartHome для керування пристроями від різних виробників
У рубриці DOU Labs ми запрошуємо IT-компанії ділитись досвідом власних цікавих розробок та внутрішніх технологічних ініціатив. Питання і заявки на участь надсилайте на [email protected] .
Сучасні технології IoT так стрімко інтегруються в наше повсякденне життя, що зараз вже нікого не здивуєш системою «розумний дім». Проте не все так просто, як може здаватися на перший погляд: незважаючи на широку популярність систем smart home, досі не існувало уніфікованого рішення, яке б дозволяло керувати пристроями (комплексними компонентами) від різних виробників. Команда розробників GlobalLogic створила своє програмне забезпечення Gateway SDK (software development kit), яке забезпечує керування комплексними компонентами розумного будинку.
Реалізація
GL SmartHome Cloud Solution — це внутрішня розробка львівського офісу компанії, готові продуктове рішення, що може застосовуватись для автоматизації роботи багатьох функцій (керування опаленням, світлом, перевірка рівня забрудненості повітря і т. д.) сучасного будинку (квартири) чи навіть цілого розумного міста.
Наразі рішення представлене у вигляді функціонального демостенду: це міні-будинок, обладнаний новітнім устаткуванням з використанням провідних IoT-технологій (Java, Docker, реляційні бази даних).
Smart-home-платформа складається з під'єднаних до неї приладів, що раніше не взаємодіяли між собою в одному середовищі. Платформа доповнена референс-додатком для Android, що дозволяє керувати та/або слідкувати за усіма елементами розумного будинку віддалено, використовуючи смартфон чи комп'ютер. Рішення, яке розроблялося для компанії США, пройшло всі необхідні сертифікації у цій країні. На сьогоднішній день продукт уявлень на світовому ринку. Вихід на український ринок не планується.
Як функціонує рішення та які прилади підтримуються хмарною платформою?
Унікальність рішення полягає в тому, що воно об'єднання єднало керування приладами різних виробників в одну систему через модуль IFTTT (If This Then That ). GL SmartHome Cloud Solution підтримує 55 приладів, і їх кількість постійно збільшується. Серед локальних приладів є кольорові лампи Philips, термостат Honeywell, камера Nest та ін. Ми вибирали найпопулярніші прилади, які доступні в США. Також ми використовували Amazon Web Services, інноваційні апаратні платформи (ARM Cortex: Raspberry PI 2-3, Qualcomm Dragonboard 410, x86-64: Any) та стеки з'єднання єднання IoT. Віддалений доступ користувача зі з'єднання єднаними між собою приладами розумного будинку здійснюється через такі бездротові інтерфейси, як Z-Wave, Zigbee та протоколи Wi-Fi.
Рішення підтримує високе навантаження — більше 50 000 одночасних запитів на cloud для зміни налаштувань доданих приладів.
GL SmartHome складається з референс-gateway, cloud-рішення з використанням Amazon-сервісів, референс-Android-додатка та демостенду розумного будинку з реальними приладами.
Яка архітектура Cloud-рішення?
Як вже було зазначено, Cloud-рішення побудоване за допомогою Amazon-сервісів, серед яких:
- EC2 (Amazon Elastic Compute Cloud) — задає інфраструктуру серверів;
- ECS (Amazon EC2 Container Service) — використовує докер для централізованого об'єднання контейнерів в кластери і безпосереднього управління ними;
- RDS (Amazon Relational Database) — окремий сервіс для баз даних, де зберігаються акаунти, користувачі та сценарії;
- VPC (Amazon Virtual Private Cloud) — сервіс для управління ятерами, що створює приватні мережі (із закритим доступом);
- IoT — сюди входити MQTT брокер, який ми використовуємо;
- S3 (Amazon Simple Storage Service) — сховище з різними розділами (buckets), у яких ми створюємо свої дані — сертифікати. До прикладу, ми використовуємо firmware для gateway як storage;
- SQS (Amazon Simple Queue Service) — сервіс, який формує черги для Java-додатків;
- SES (Amazon Simple Email Service) — мейл-сервіс від Amazon;
- SNS (Amazon Simple Notification Service) — сервіс для сповіщень.
Всі використані сервіси Amazon і Java-додатки ми поділили на 3 кластери:
- Кластер з додатками для web і API, завдяки яким елементи розумного будинку є доступними через зовнішню мережу.
- Logic-кластер, який поділяється на:
- Time Server — відповідає за виконання сценаріїв з попередньо визначеним часом;
- Notification service — відповідає за push-повідомлення, e-mail, SMS;
- Gateway to cloud server — з'єднання єднує gateway з cloud-му. Він розділений на 2 додатки: пересилання MQTT-повідомлень, керування повідомленнями у черзі;
- Rule engine — відповідає за створення та виконання. Він теж поділяється на 2 додатки, за тим самим принципом, що і gateway to cloud server.
- Кластер адаптерів, які з'єднання єднують пристрої через наш cloud з cloud-му виробників девайсів. Кластер складається з чотирьох компонентів: adapter, consumer, publisher та четвертий компонент для черги. Adapter опрацьовує повідомлення, які надсилаються в cloud. Коли повідомлення повертається з відповіддю, publisher закидає повідомлення в чергу, а consumer бере їх з черги і опрацьовує.
Сервіси Amazоn були обрані для реалізації проекту " тому, що вони стабільні, є адаптивними та гнучкими. Крім цього, AWS вибудували надзвичайно якісну безпеку інфраструктури, як фізично так і у всесвітній павутині, а це велика перевага коли йдеться про контроль доступу до вашої домівки.
Як інтегрована Amazon Alexa?
Також ми додали Amazon Alexa, яку запрограмували для взаємодії з нашим cloud-му і управління розумним будинком через тієї самий cloud.
Amazon Alexa Integration
Які ще референс-компоненти входять до комплексу?
Окрім cloud-рішення, було також створен два компоненти, що допомагають швидко інтегруватися з уже розробленим cloud API.
Перший компонент — це програмне забезпечення Gateway SDK на основі Raspberry PI 2/3, що здійснює зв'язок між локальними пристроями, які комунікують, використовуючи бездротові інтерфейси ZigBee, Z-Wave, Wi-Fi, та здійснюють двосторонній зв'язок з cloud-му, застосовуючи MQTT-протокол.
Стандартів щодо цього зараз практично не існує, в цьому і полягала основна складність — розробити уніфіковане рішення, яке дозволить керувати пристроями від різних виробників. Тому і було вирішено створити своє програмне забезпечення — Gateway SDK. Воно передбачає такі можливості:
- керувати пристроями, що працюють використовуючи бездротові інтерфейси ZigBee, Z-Wave, Wi-Fi;
- отримувати команди з мобільного додатку через cloud, використовуючи MQTT-протокол;
- виконувати IFTTT-сценарії, коли немає зв'язку з cloud;
- надсилати повідомлення про зміну стану девайсів на мобільний додаток.
Другий компонент — це мобільний демододаток на основі Android, який демонструє функціональні можливості cloud API та показує, як правильно ними користуватися.
На додачу до переліченого, розробникі витворили документацію, яка дозволить іншим виробникам розробляти власне програмне забезпечення, мобільні додатки та інше, використовуючи cloud-рішення від GlobalLogic.
Результати і плани
Над рішенням протягом 5 місяців працювали 30 експертів з різних технологій. Зараз роботу GL SmartHome Cloud Solution демонструють потенційним замовникам та під час офісних турів. Ми не можемо сказати, що це кінець проекту, він знаходиться у нас на саппорті і з досвіду — ми постійно розвиваємо свої ж ідеї. Тому якщо вам цікаві технології, починаючи від Embedded і закінчуючи Data Science, — долучайтесь до нашої команди!
Опубліковано: 12/04/18 @ 10:15
Розділ Різне
Рекомендуємо:
Technical writer: як потрапити в професію і що вчити
DOU Проектор: CLAP — розумний будинок українського виробництва
Java дайджест #38: Java 10
Ruby/Rails дайджест #16: офіційний реліз Rails 5.0.7 і 5.1.6, нова бета-версія Hanami, створюємо Slack bot на Rails
DOU Books: 5 книжок про менеджмент від Сергія Хлівненка, Engineering Manager у Lucky Labs