Conference for DevOps, Software Architects and Engineers. Register until August, 22!
×Закрыть

DOU Labs: як у GlobalLogic створили SmartHome для керування пристроями від різних виробників

У рубриці DOU Labs ми запрошуємо IT-компанії ділитись досвідом власних цікавих розробок та внутрішніх технологічних ініціатив. Питання і заявки на участь надсилайте на editors@dou.ua.

Сучасні технології 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 кластери:

  1. Кластер з додатками для web і API, завдяки яким елементи розумного будинку є доступними через зовнішню мережу.
  2. Logic-кластер, який поділяється на:
    • Time Server — відповідає за виконання сценаріїв з попередньо визначеним часом;
    • Notification service — відповідає за push-notifications, e-mail, SMS;
    • Gateway to cloud server — з’єднує gateway з cloud-ом. Він розділений на 2 додатки: пересилання MQTT-повідомлень, керування повідомленнями у черзі;
    • Rule engine — відповідає за створення та виконання. Він теж поділяється на 2 додатки, за тим самим принципом, що і gateway to cloud server.
  3. Кластер адаптерів, які з’єднують пристрої через наш 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, — долучайтесь до нашої команди!

LinkedIn

13 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Чето вспомнилось «если кучку программистов оставить на некоторое время без присмотра, они очень быстро скатываются в производство не продукта, а прикольных фиговин для самих себя»

На пальцах 3-4 продукта интеграционных с историей, экосистемой, тусовкой и сильно бОльшим набором поддерживаемых продуктов и технологий

А вообще не обращайте внимания на всех этих недолугих критиков зато вы красивая!

новітнім устаткуванням з використанням провідних IoT-технологій (Java, Docker, реляційні бази даних).

#плакалЪ сирёзно.

code.qt.io/...​e/tradeshow/iot-sensortag
вот например простенькое демо на кьют с шлюхами и блэкджеком облаком, mqtt и тп

з використанням провідних IoT-технологій (Java, Docker, реляційні бази даних).

шта? ©
что из вышеперечисленного «ведущая IoT технология»?

ява без докера — инвестиции на ветер

Тобто, ви хочете увімкнути лампочку. Ви кажете «Alexa, turn on lights».
Після цього сигнал має пройти наступний шлях: Echo Dot -> Amazon cloud -> IFTTT -> ваша хмара -> IFTTT -> хмара виробника лампочки -> лампочка

Мені не зрозуміло наступне:
— для чого потрібне ваше хмарне рішення, чому не можна обійтись IFTTT плагіном або рішенням від виробника лампочки (SmartThings, eWelink, etc) ?
Ви вставили ще одну прослойку в і так нестабільну архітектуру. Варто впасти інтернету або одному з серверів, і ви не зможете увімкнути лампочку (у кращому випадку, у гіршому датчик диму не буде працювати)

— яку роль відіграє Raspberry PI + SDK + z-wave/zigbee ? Чи може воно також втикається в ланцюжок?

PS: мені схоже на та, що ваш клієнт не проти позбирати бігдату

Проте не все так просто, як може здаватися на перший погляд...
...30 експертів з різних технологій

так. Два питання:
1. Що станеться з вашою системою при обриві зв’язку? Причини можуть бути як від навмисного втручання, так і «забув сплатити Інтернет». Не бачу каналів резервування.
2. Як вирішується проблема відсутності енергопостачання і взаємодії з вузлами без ручного контролю?

референс-додатком для Android, що дозволяє керувати та/або слідкувати за усіма елементами

На сколько я понял, они изобрели очередной гребаный пульт дистанционного управления.
В процессе ремонта квартиры я честно пытался перебрать пару тройку экосистем умных домов, но разобравшись по-ближе — забил на них и сделал «по-старинке». Тыкаться в телефон чтобы в комнате загорелся свет через 5 секунд — идиотизм.

прсоединятся во Львове или в Киеве тоже есть команда?

досі не існувало уніфікованого рішення, яке б дозволяло керувати пристроями (комплексними компонентами) від різних виробників

А как же все эти MajorDoMo, Domoticz, openHAB, Home Assistant, ioBroker и т.д.? Народ уже полным ходом строит себе «умные дома» на их основе, где можно связать разные устройства типа Broadlink, Xiaomi, Apple, Sonoff и т.д.

Просто неделя пет-проектов, связанных с умным домом

Подписаться на комментарии