Приложение smart things что это за программа и нужна ли она
Smart Things – программа для управления Умным домом
Smart Things — это приложение для телефона, созданное корпорацией Samsung, которое используется для удаленного управления внешними устройствами с помощью смартфона по Wi-Fi. Поставить приложение можно на любой смартфон (как на Samsung, так и на телефоны других марок), на который установлена операционная система Android (6.0 или выше) или iOS (10.0 или выше). Приложение Smart Things Samsung было создано для интеграции с системой «Умный дом» корпорации Samsung, а управлять с помощью приложения можно совместимыми приборами — телевизорами, роботами-пылесосами, электронными замками, датчиками, камерами видеонаблюдения и так далее. Ниже мы узнаем о Smart Things Самсунг — что это за программа и как с ней работать.
Где можно скачать приложение
Мобильное приложение умный дом SmartThings по умолчанию установлено на телефоны линейки Samsung Galaxy. Если по какой-либо причине Вы не смогли его найти на своем телефоне или Вы пользуетесь другим смартфоном, то нужно установить его в ручную:
Как работать с приложением
Проверка Wi-Fi и активация аккаунта Samsung
Перед работой обязательно убедитесь, что на внешних устройствах и на самом смартфоне включен Wi-Fi. Убедитесь, что на телефоне активирована учетная запись Samsung. Обычно учетная запись активируется в момент первого включения телефона после его покупки — если же Вы по какой-либо причине этого не сделали, то необходимо выполнить активацию вручную:
Регистрация внешних устройств в учетной записи Samsung (опционально)
С помощью Smart Things можно управлять только такими внешними устройствами, которые зарегистрированы в системе Samsung. Обычно регистрация осуществляется автоматически в момент добавления устройства — однако иногда приложение Смарт не добавляет внешнее устройство из-за технических сбоев, что может привести к невозможности активации устройства.
В таком случае может потребоваться ручная регистрация:
Добавление внешних устройств в приложение Smart Things
Теперь необходимо непосредственно синхронизировать все Ваши устройства с приложением Smart Things. Для этого запустите приложение и выберите пункты «Устройства» и «Добавить устройство» — после этого в течение 1–2 минут будет произведен поиск всех доступных приборов в поле действия Wi-Fi. В результате у Вас должен появиться список всех внешних устройств, с которыми Вы можете работать.
К сожалению, программа автоматического поиска иногда работает некорректно, поэтому она не всегда находит все доступные устройства. Если Вы уверены, что привязали устройства к одному аккаунту и включили их, а в списке Smart Things они не появляются, то в таком случае их нужно добавить вручную одним из двух способов:
Вне зависимости от способа получения доступа Вам нужно разблокировать внешнее устройство. Для этого Вам нужно ввести специальный PIN-код, который защищает прибор от неправомерного доступа. Первый заводской PIN-код должен быть указан в технической документации к прибору + пользователь может сам менять PIN по своему усмотрению в любой момент времени.
Работа с приложением Smart Things
Управление приборами осуществляется с помощью утилит-свойств. Для получения доступа к свойствам запустите программу Smart Things — на первой странице Вы увидите список внешних устройств, к которым у Вас есть доступ. Для управления кликните по иконке устройства — перед Вами откроется панель со свойствами. Количество свойств и формат их работы зависит от типа и марки прибора, а их перечень устанавливается по умолчанию производителем Samsung. Узнаем, как пользоваться утилитами Smart Things на примере телевизора:
Создание сценариев и автоматизация
SmartThings позволяет создать сложные сценарии-сцены для автоматического управления приборами. Для создания сценариев используются действия-свойства и так называемые триггеры — они могут изменять любой доступный параметр (время, наличие электричества в сети и так далее). Создаются сценарии так:
Smart Things Hub
Для «Умного дома» с большим количеством датчиков и электронных замков рекомендуется купить Smart Things Hub. Он имеет вид небольшой коробочки, а нужен этот прибор для создания изолированной сети. Главные плюсы концентратора — большой радиус работы сети Wi-Fi, высокая степень защиты и наличие автономного источника питания (особенно это критично для работы электронных замков, которые злоумышленники могут попытаться открыть путем обесточивания дома с последующим электронным взломом замка).
Работать с этим прибором очень просто: Вы подключаете Hub к сети (обязательно) и к интернету (по желанию), запустите устройство и заходите на него, как на обычный роутер (вводите логин и пароль). После этого Вы получите доступ к комплексу программ для поиска и добавления устройств, для фильтрации адресов и так далее, а управление хабом осуществляется с помощью обычного приложения SmartThings.
Отключение Smart Things
Теперь Вы знаете, что это за программа на Андроид — в заключение давайте узнаем, как отключить Smart Things. Существует два способа отключения приложения — удаление программы и приостановка ее работы. Первый метод использовать не рекомендуется: после удаления смартфон может обнаружить отсутствие программы — после этого он сам найдет Smart Things в сети и установит на Ваш телефон во время планового обновления ПО. Поэтому рекомендуется делать именно приостановку, а не удаление. Приостановка делается так: откройте меню смартфона, выберите пункты «Настройка» и «Приложения», найдите Smart Things и используйте кнопку «Остановить». Обратите внимание, что после приостановки все сценарии будут также отключены.
Видео по теме
Встраиваем своё устройство «Умного дома» в экосистему SmartThings
Платформы «Умного дома» позволяют интегрировать устройства и создавать новые сценарии их взаимодействия. Известен эффект платформ: пользователи скорее выберут ту, с которой уже совместимы имеющиеся у них устройства, нежели перейдут на какую-либо новую. Поэтому для разработчиков новых гениальных девайсов может оказаться выгоднее встраиваться в уже готовую платформу, сосредоточив внимание на «железном» продукте, нежели разрабатывать свои собственные «велосипеды» в виде еще одних облачных экосистем и личных кабинетов.
Рассмотрим, как встроить свое собственное устройство с платформой «Умного дома» Samsung SmartThings. Мы реализуем вариант прямого (Direct) подключения для управления устройством «Умного дома» на примере кнопки-выключателя и трехцветной лампочки.
Зачем вообще нужны платформы «Умного дома»?
Сейчас гаджетов и умных устройств в продаже — сколько хочешь. Не проблема купить чайник с управлением по Bluetooth или лампочку с WiFi. Но делает ли это ваш дом «умным»? Нередка ситуация: лампочка управляется только через мобильное приложение от производителя. Это создает неудобства, если вы пытаетесь сочетать хотя бы несколько разных брендов. Поэтому идеальная платформа – это та, которая дает возможность управлять единообразно устройствами разных производителей.
Более того, хотелось бы видеть «растворенный в повседневности компьютер», как мечтал об этом Марк Вайзер из Xerox PARC: не управлять через специальное приложение, не распылять свой фокус внимания. Хотелось бы естественного взаимодействия с умной средой, не меняющего наших привычек. Как реализовать это технически? Например, это могут быть сценарии, где вовлечены разнородные устройства в доме: вы проснулись – носимое устройство это детектировало и включился чайник; вы пришли домой – датчик на двери это зафиксировал, с учетом времени суток задернулись шторы, лампа включилась, с учетом температуры включился кондиционер.
Сценарии становятся ещё более полезными, если мы задействуем Интернет: например, чтобы дистанционно проверить, выключена ли розетка с утюгом. Или банальный пример: ваш умный дом посмотрел прогноз погоды и выдал вам совет, как лучше одеваться. А можно еще добавить управление голосом через умную колонку.
Для всего этого предназначены платформы «Умного дома». Рассмотрим, что умеет платформа Samsung SmartThings.
Предыстория – что такое SmartThings?
SmartThings начинался как стартап. На тот момент, когда он появился, в 2012 году в США, тема «Умного дома» ещё не была на вершине хайпа, не было ещё умных колонок и разнообразия гаджетов в магазинах. Идея пришла основателю стартапа, Алексу Хокинсону, после одного случая: дом его семьи в Колорадо пострадал оттого, что после временного отключения электричества водопроводные трубы сильно замерзли, их прорвало, и весь этаж залило. Тогда он подумал, что мог бы предотвратить проблему, если бы знал о происходящем в доме.
Залогом успеха на Кикстартере было наличие работающих прототипов железа и софта, и дружественность к мейкерскому сообществу
Создатели стартапа вышли из DIY-среды, поэтому они последовательно развивают концепцию открытого API для гиков-мэйкеров, способных на ранней стадии выступить как early adopters. В кампании на Kickstarter был и шилд для Arduino, и различные облачные модули для беспроблемного подключения вашего стороннего устройства. В Интернете вы сможете найти множество примеров самодельных устройств, совместимых со SmartThings, будь то управляемая дверь курятника (с решением серьезной жизненной задачи – спасти цыплят от хищной норки), или дистанционная установка кода электронного замка для гостей с Airbnb.
Источник фото: https://www.hackster.io/aaronpk/auto-airbnb-entry-745799
Архитектура SmartThings
Давайте двигаться по схеме слева направо.
Устройства
SmartThings Devices – это могут быть не только устройства из комплекта SmartThings, но и множество сторонних из списка партнёров.
Если устройства нет в списке официально поддерживаемых, вы можете поискать к нему Device Handler — он может быть предоставлен сообществом разработчиков — или написать свой собственный.
Способы подключения
Подключать устройства к платформе вы можете следующими способами:
Обычно для подключения разнообразной аппаратуры у вас дома должен стоять специальный маленький сервер «Умного дома», поддерживающий различные протоколы. Он же – хаб, концентратор, шлюз – названия бывают разные.
Хаб и комплект устройств к нему. Источник фото: IXBT.
Приложение
SmartThings App – это приложение, которое можно установить на основные мобильные ОС и с его помощью: добавлять новые устройства в систему, контролировать уже добавленные, назначать правила автоматизации, получать уведомления через push и SMS, и многое другое.
Абстракции
В SmartThings, как и во многих других платформах умного дома, есть следующие абстракции: комнаты, сцены, сценарии.
Устройства группируются в комнаты (Rooms). Вы просто присоединяете в приложении те или иные гаджеты к одной комнате, и называете её «Кухня», «Ванная», «Прихожая».
Ещё есть сцены (Scenes) – это ситуации: «сон», «отдых», «работа», «просмотр фильма» — каждая из ситуаций характеризуется своим набором состояний устройств.
Сцены и комнаты на экране приложения
И наконец, сценарии (Routines): правила автоматизации «если – то». По умолчанию в программе четыре сценария: «Я вернулся», «Спокойной ночи», «Пока», «Доброе утро». Можно настроить активацию сценария по условию наступления утра, или в случае движения, или в случае открытия двери, и так далее. Нетривиальный пример: когда я вхожу домой — заблокировать сетевой трафик на домашней камере видеонаблюдения, чтобы исключить возможность утечки моих личных видео. Или жестокий воспитательный пример: принудительно отключить планшет от сети, когда наступило 11 часов вечера, чтобы не дать себе залипать в Интернете вместо здорового сна.
Более того, в программе SmartThings на телефоне есть интересная возможность – запоминание типичных действий. Когда часто пользуешься телефоном, он со временем начинает тебе подсказывать, как лучше сконфигурировать сцены, исходя из самых часто запускаемых приложений.
Для добавления в систему новых устройств предусмотрена система плагинов. Разработчик может запрограммировать плагин для своего собственного устройства – пользовательский интерфейс внутри приложения SmartThings и логику работы устройства. По сути, это веб-приложение. С точки зрения разработчика, плагин может подписываться на события или уведомления с устройства, посылать ему сообщение, мониторить статус соединения с устройством. Есть понятная документация о жизненном цикле плагина.
Скачиваются они пользователем из «магазина плагинов» по мере необходимости, чтобы не раздувать приложение на телефоне.
Но сейчас мы никаких плагинов делать не будем, а сделаем проще: добавим самодельное устройство, пользуясь только стандартными средствами платформы.
Делаем своё устройство совместимым со SmartThings
У вас может возникнуть вопрос: а зачем? В чем смысл делать его совместимым, если вы – разработчик устройства?
Что предлагается сделать
SmartThings Device SDK (STDK) был презентован недавно – на Samsung Developer Conference в октябре 2019 года. Ниже мы предлагаем перевод руководства по этому SDK. И не просто перевод: мы всё то же самое проделали и повторили своими руками, поэтому тут будут некоторые комментарии практического характера, выходящие за пределы изначального руководства.
Как будет выглядеть итоговый результат, показано на видео:
RGB-светильник подключается к платформе SmartThings через WiFi, и вы управляете им через телефон. Сам светильник реализуется максимально дешевым и простым способом – на сверхпопулярной микросхеме ESP8266. Железо не принципиально: можно делать на любом микроконтроллере, ведь SDK написан на языке С, выложен в открытый доступ и его можно портировать при желании. В «продакшн» светильник на ESP вряд ли пойдет (начнем с того, что в «Умном доме» удобнее использовать другие интерфейсы, нежели WiFi), но для модели и иллюстрации вполне сгодится.
Функционал получившейся «умной лампочки» будет такой: управление RGB-светодиодом при помощи цветового круга на телефоне. А также ее выключение и включение посредством кнопки.
Процесс разработки показан на схеме:
Показанный процесс не жесткий, некоторые из шагов можно менять местами, что и покажем в руководстве.
Железо
В оригинальном руководстве показано всё на примере платы WeMos D1 Mini, это отладочная плата на основе ESP8266, которую можно вставлять в макетную плату. В общем-то, ничего хитрого в ней нет, это просто модуль суперпопулярного в среде любителей китайского чипа ESP, напаянный для удобства работы на более широкую плату по размеру макетки. Поэтому вы можете делать всё и на любой другой плате.
Слева: WeMos D1, справа – Troyka WiFi Shield
Что нужно для сборки примера:
И прописать путь к этому SDK в переменной IDF_PATH:
И инструменты разработки (компилятор):
Руководство
В качестве примеров будут рассмотрены следующие устройства: умный выключатель и умная лампочка. Мы начнем с умного выключателя, как более простого и не требующего никакой внешней периферии.
Шаг 1. Регистрируем свое устройство.
Работа начинается в SmartThings Developer Workspace, где нужно залогиниться с помощью Samsung Account. Этот аккаунт создается бесплатно, и для его создания не обязательно иметь телефон Samsung.
В Developer Workspace вам сразу же предлагают создать первый проект. Соглашаемся, после чего из двух вариантов проектов нужно выбрать Device Integration.
На выбор будут даны три варианта интеграции устройства:
Добавляем профиль устройства. Если говорить в терминах ООП, то профиль устройства – это такой «класс», а конкретное устройство – «экземпляр класса».
Нам нужно определить функциональные характеристики устройства в терминах SmartThings Capability («способностей»). О том, какие вообще «способности» устройства существуют, можно прочитать в инструкции.
Заполняем поля своими значениями. Для примера, имя профиля можно вписать Test Switch Profile, описание – любой текст, тип устройства – Switch, Vendor ID – любой текст. «Тип устройства» влияет на иконку вашего устройства и на пользовательский интерфейс. В списке не так много возможных типов устройств (хотя есть и экзотические, например WineCellar – винный шкаф), поэтому, если не найдете именно вашего – не расстраивайтесь и просто выберите наиболее близкое и похожее. На последнем экране (Dashboard Control) можно ничего не менять.
После создания профиля, не забудьте нажать на кнопку «Add device profile to project» вверху справа.
И опять же, по аналогии с предыдущим примером, не забудьте нажать кнопку «Add device onboarding to project».
Останется только нажать кнопку Deploy. После этого вы сможете увидеть ваше устройство в приложении SmartThings – но только в режиме разработчика (Developer Mode). Если Deploy не нажимается, и вам пишут «Please add a Model Name» — то это означает, что вы не указали Device Onboarding ID, промотайте страницу ниже и сделайте это – введите любое имя на ваше усмотрение.
Теперь вы можете начать тестирование вашего виртуального устройства на телефоне.
Весь первый шаг подробно показан в видео:
Регистрация устройства в облаке
Прежде, чем приступать к работе с собственно «железом», нужно сделать еще кое-что. После нажатия кнопки Deploy экран будет выглядеть иначе: там появится новое поле Device Identity.
Для аутентификации вашего устройства в облаке SmartThings нужно ввести его серийный номер и публичный ключ (со схемой подписи ED25519). Это делается достаточно легко.
Linux-версия кейгена расположена в st-iot-device-sdk-c-reference/iot-core/tools/keygen/linux либо в st-device-sdk-c/tools/keygen/linux
Серийный номер для тестового устройства будет сгенерирован случайным образом в формате STDK + [MNID] + буквенно-цифровой формат (8 символов). Свой MNID можно узнать в профиле разработчика, в разделе Manage Account.
Далее, чтобы сгенерировать буквенно-цифровую часть, вам нужно ввести ваш MNID (4 символа) как парамер кейгена. В нижеприведенном примере MNID – это fJ*c.
Скопируйте «abed**5c» из выдачи кейгена, и вставьте в поля XXXXXXXX в разделе Device Identity Registration. Появится окно, в котором вас попросят ввести публичный ключ.
Скопируйте публичный ключ из выдачи кейгена («waGgyjWIvHhF1LU***FG2hx/4u***ADFHr/ry0j5jbk=» в этом примере) и вставьте в поле „Device Public Key“.
Шаг 2. Прошивка устройства
Поговорим о коде, который вы будете загружать в устройство.
Примеры прошивки находятся в папке st-device-sdk-c-ref/apps/esp8266/. Нас будет интересовать пример st_switch.
Или то же самое, но покороче:
! Если у вас никак не получается прошить программу – скорее всего, вы забыли перевести плату ESP8266 в режим программирования. Это делается, как правило, нажатием кнопки на самой плате. Например, Wi-Fi Troyka модуль можно перевести, зажав кнопку PROG, и затем нажав и отпустив кнопку RESET.
После того, как закачается прошивка, не забудьте перезагрузить плату.
Шаг 3. Подключение и управление с телефона
Включите режим разработчика в приложении SmartThings на телефоне. Как это сделать, написано на официальном сайте, но проще объяснить словами: входите в настройки через «шестеренку», и жмете 20 секунд кнопку «Сведения о SmartThings». Внизу появится меню «Режим разработчика».
Наше устройство должно быть видно в списке в приложении SmartThings: запускаем приложение, нажимаем „плюс“ и „Добавить устройство“. Проматываем в конец списка вендоров и видим значок „My Testing Devices“. Нажимаем на него и выбираем своё устройство.
Более того: если вы уже активировали режим разработчика, и включили устройство, то у вас возникнет всплывающее меню, предлагающее добавить именно это устройство!
Управление устройством из приложения SmartThings.
Вначале устройство появляется как точка доступа, поскольку ещё не знает пароля от вашего WiFi. В процессе подключения вы укажете сеть, с которой должно соединяться устройство. Если у вас скрытая точка доступа, то у ESP не получится с ней соединиться, поэтому выбирайте открытую точку.
Результат будет такой:
В этом примере (st-switch) вы управляете встроенным на плату светодиодом, нажимая на кнопку на самой плате. Как видите, для этого примера даже не нужно никакой дополнительной периферии, только сама плата ESP8266.
Вы также можете включать/выключать устройство кнопкой на панели управления в мобильном приложении:
И конечно, если вы жмете физическую кнопку, то и в приложении статус лампочки обновляется.
Пример «Умная лампочка»
После того, как вы сделали пример «Умный выключатель», давайте попробуем всё немного усложнить. Будет RGB-светодиод, и включать/выключать будем внешней кнопкой, а также выбирать цвет через приложение.
Железо
Схема подключения будет простая:
И принципиальная схема тоже не помешает:
Если посмотреть исходник (находится по адресу: st-device-sdk-c-ref/apps/esp8266/st_lamp), то подключение там следующее:
#define GPIO_OUTPUT_NOTIFICATION_LED 2
#define GPIO_INPUT_BUTTON 5
#define GPIO_OUTPUT_COLORLED_R 16
#define GPIO_OUTPUT_COLORLED_G 14
#define GPIO_OUTPUT_COLORLED_B 12
#define GPIO_OUTPUT_COLORLED_0 13
Вы можете переназначить выводы согласно тому, какая именно модель платы у вас. Обратите внимание, что на плате система обозначений одна (D1, D2…), а в коде другая, но в этом легко разобраться, просто глядя на документацию к вашей плате.
Программная часть
По программной части у нас поменяется несколько шагов:
Как это выглядит в действии – еще раз гифка:
Заключение
Итак, вы получили готовый работающий пример. Вы видите, что большая часть кода уже сделана за вас – всё, что касается подключения, аутентификации, интерфейса устройства. Пример SmartThings ценен тем, что он не привязан ни к какому аппаратному устройству, и вы можете смотреть и оценивать, какой функционал платформы нужен в 2k20, если вы разрабатываете «Умный дом».
Татьяна Волкова — Автор учебной программы трека по Интернету вещей IT Академии Samsung, специалист по программам корпоративной социальной ответственности Исследовательского центра Samsung