Программируемая облачная кнопка

Программируемая
облачная кнопка

В 2016 году к нам обратилась компания Unicorn за разработкой ПО для продукта «Sapfir» — отечественного аналога Amazon Dash Button. Sapfir – это решение призванное увеличить повторные заказы, благодаря геймификации. Проект разрабатывался совместно с АО «Сбербанк Технологии».

Для повышения лояльности клиента, компания может предоставить своему клиенту беспроводную Wi-Fi кнопку, по нажатию на которую будет автоматически выполнено то или иное действие пользователя. Например, служба такси может дать своему клиенту возможность по одному лишь нажатию на кнопку вызвать авто на домашний адрес своего клиента. Производитель бритвенных принадлежностей может добавить в корзину интернет-магазина комплект сменных картриджей особой серии лишь по нажатию на кнопку. Способов применения данной технологии масса, подробнее с ними можно ознакомиться на странице Amazon Dash: https://aws.amazon.com/ru/iotbutton/

Нашей задачей было разработать ПО для IoT-устройства на базе ESP8266, а также веб-сервис, который бы позволил партнёрам осуществлять настройку своих устройств и реализовать интеграцию с собственными сервисами посредствам API.

Функционал IoT-устройства

Решения для разных партнёров могут иметь разный набор аппаратных компонентов. Это необходимо учесть при разработке ПО, т.к. с целью унификации, а также удешевления стоимости обслуживания, все устройства должны иметь единую прошивку. Некоторые устройства могут исполнять лишь одну команду, другие — сразу несколько (имя несколько кнопок или посредствам переключения «барашка»). Некоторые устройства не имеют обратной связи и лишь передают команду на удаленный сервер, другие — могут получать ответ или произвольные уведомления, в этом случае загорается LED-индикатор или раздается звуковой сигнал. К слову, такие возможности являются конкурентным преимуществом перед Amazon Dash Button, которые в этот момент патентовали свое решение в РФ.

Естественно, в устройствах было предусмотрено автоматическое обновление прошивок «по воздуху». А все передаваемые и получаемые данные зашифрованы с помощью SHA512. При отправке команд, также передается уникальный идентификатор устройства не поддающийся перебору и уровень заряда устройства. При низком уровне заряда конечному пользователю придет уведомление о том, что устройство необходимо подзарядить (если оно имеет USB-порт) или партнёру будет предложено произвести замену устройства при следующем визите к конечному клиенту (если устройство не предусматривает зарядку по USB).

Для работы с интернетом в устройстве был реализован следующий функционал — если подключение к сети интернет отсутствует, IoT-устройство превращается в точку доступа WiFi, пароль к данной точке доступа уникален и указан на этикетке устройства. Если подключиться к этой точке доступа с любого устройства — будет открыта веб-страничка для выбора необходимой точки доступа и авторизации. Указанные пользователем данные будут использованы для подключения IoT-устройства к интернету, точка доступа от IoT-устройства станет недоступной и появится повторно в том случае, если соединение с интернетом будет прервано. 

API и личный кабинет партнёра

В своем личном кабинете партнёр может видеть перечень приобретенных им IoT-устройств, их идентификаторы, уровень заряда, статус активации конечным пользователем, дату и время последней отправки команды. Партнёр может получить статистику по вызовам команд как по всем устройствам, так и в разрезе какого-то конкретного. Партнёру доступен журнал действий и ошибок по устройствам, а также возможность реализовать интеграцию со своими сервисами. Для этого партнёр должен указать URL для получения веб-хуков, а также выпустить ключ доступа, с помощью которого будут зашифрованы запросы, уходящие в API партнёра.

При отправке запроса с устройства, он фиксируется в системе Sapfir. Далее в зависимости от идентификатора устройства определится партнёр, с которым связано данное устройство. Запрос шифруется пересылается в API партнёра. Таким же способом, используя API Sapfir и свой ключ доступа, партнёр может отправить запрос на устройство для того, чтобы оно издало звуковой сигнал или зажгло LED-индикатор.

В случае каких-либо ошибок, при работе с API или на устройстве в своем личном кабинете партнёр может увидеть подробное описание возникшей ошибки и устранить её причины.

В 2016 году к нам обратилась компания Unicorn за разработкой ПО для продукта «Sapfir» – отечественного аналога Amazon Dash Button. Sapfir – это решение призванное увеличить повторные заказы, благодаря геймификации. Проект разрабатывался совместно с АО «Сбербанк Технологии».

Для повышения лояльности клиента, компания может предоставить своему клиенту беспроводную Wi-Fi кнопку, по нажатию на которую будет автоматически выполнено то или иное действие пользователя. Например, служба такси может дать своему клиенту возможность по одному лишь нажатию на кнопку вызвать авто на домашний адрес своего клиента. Производитель бритвенных принадлежностей может добавить в корзину интернет-магазина комплект сменных картриджей особой серии лишь по нажатию на кнопку. Способов применения данной технологии масса, подробнее с ними можно ознакомиться на странице Amazon Dash: https://aws.amazon.com/ru/iotbutton/

Нашей задачей было разработать ПО для IoT-устройства на базе ESP8266, а также веб-сервис, который бы позволил партнёрам осуществлять настройку своих устройств и реализовать интеграцию с собственными сервисами посредствам API.

Функционал IoT-устройства

Решения для разных партнёров могут иметь разный набор аппаратных компонентов. Это необходимо учесть при разработке ПО, т.к. с целью унификации, а также удешевления стоимости обслуживания, все устройства должны иметь единую прошивку. Некоторые устройства могут исполнять лишь одну команду, другие – сразу несколько (имя несколько кнопок или посредствам переключения “барашка”). Некоторые устройства не имеют обратной связи и лишь передают команду на удаленный сервер, другие – могут получать ответ или произвольные уведомления, в этом случае загорается LED-индикатор или раздается звуковой сигнал. К слову, такие возможности являются конкурентным преимуществом перед Amazon Dash Button, которые в этот момент патентовали свое решение в РФ.

Естественно, в устройствах было предусмотрено автоматическое обновление прошивок “по воздуху”. А все передаваемые и получаемые данные зашифрованы с помощью SHA512. При отправке команд, также передается уникальный идентификатор устройства не поддающийся перебору и уровень заряда устройства. При низком уровне заряда конечному пользователю придет уведомление о том, что устройство необходимо подзарядить (если оно имеет USB-порт) или партнёру будет предложено произвести замену устройства при следующем визите к конечному клиенту (если устройство не предусматривает зарядку по USB).

Для работы с интернетом в устройстве был реализован следующий функционал – если подключение к сети интернет отсутствует, IoT-устройство превращается в точку доступа WiFi, пароль к данной точке доступа уникален и указан на этикетке устройства. Если подключиться к этой точке доступа с любого устройства – будет открыта веб-страничка для выбора необходимой точки доступа и авторизации. Указанные пользователем данные будут использованы для подключения IoT-устройства к интернету, точка доступа от IoT-устройства станет недоступной и появится повторно в том случае, если соединение с интернетом будет прервано. 

API и личный кабинет партнёра

В своем личном кабинете партнёр может видеть перечень приобретенных им IoT-устройств, их идентификаторы, уровень заряда, статус активации конечным пользователем, дату и время последней отправки команды. Партнёр может получить статистику по вызовам команд как по всем устройствам, так и в разрезе какого-то конкретного. Партнёру доступен журнал действий и ошибок по устройствам, а также возможность реализовать интеграцию со своими сервисами. Для этого партнёр должен указать URL для получения веб-хуков, а также выпустить ключ доступа, с помощью которого будут зашифрованы запросы, уходящие в API партнёра.

При отправке запроса с устройства, он фиксируется в системе Sapfir. Далее в зависимости от идентификатора устройства определится партнёр, с которым связано данное устройство. Запрос шифруется пересылается в API партнёра. Таким же способом, используя API Sapfir и свой ключ доступа, партнёр может отправить запрос на устройство для того, чтобы оно издало звуковой сигнал или зажгло LED-индикатор.

В случае каких-либо ошибок, при работе с API или на устройстве в своем личном кабинете партнёр может увидеть подробное описание возникшей ошибки и устранить её причины.

Контакты

info@linkodium.com
+7 (342) 225-02-94
ПН-ПТ: 08:00-16:00 (МСК)
Главный офис:
г. Пермь, ул. Вильвенская, 2 (этаж 1)

Политика конфиденциальности

Политика конфиденциальности персональной информации (далее — Политика) действует в отношении всей информации, которую Администрация сайта может получить о Пользователе во время использования им любого из сайтов, сервисов, служб, программ, продуктов или услуг компании (далее — Сервисы). Использование настоящего Сайта и Сервисов означает безоговорочное согласие Пользователя с настоящей Политикой и указанными в ней условиями обработки его персональной информации; в случае несогласия с этими условиями Пользователь должен воздержаться от использования настоящего Сайта и Сервисов.

1. Термины и определения
1.1. Администрация сайта – руководство компании Линкодиум, владеющей и имеющей внутренний доступ к настоящему Сайту.

1.2. Пользователь – лицо, получающее доступ к приложениям, сервисам, услугам и информации, размещенной на Сайте.

1.3. Сайт – веб-сайт компании, размещенный в сети Интернет по адресу linkodium.dev, в том числе поддомены *.linkodium.dev, а также любые другие веб-сайты компании, содержащие ссылку на данную Политику.

1.4. Сервисы – сайты, сервисы, службы, программы, продукты или услуги компании;

1.5. Политика – политика конфиденциальности персональной информации, устанавливающее правила обработки персональной информации пользователя.

1.6. Персональная информация Пользователя – персональная информация, которую Пользователь предоставляет о себе самостоятельно при отправке своих контактных данных с помощью формы обратной связи, регистрации (создании учётной записи) или в процессе использования Сервисов, включая персональные данные Пользователя. Обязательная для предоставления информация помечена специальным образом. Иная информация предоставляется Пользователем на его усмотрение.

2. Согласие на обработку персональной информации
Принимая условия настоящей Политики Пользователь выражает свое согласие на:

2.1. Предоставление своих персональных данных, включающих фамилию, имя, отчество, адрес электронной почты, номер контактного телефона, дату рождения, регион, город, организацию, должность для их обработки Администрацией сайта свободно, своей волей и в своем интересе.

2.2. Получение посредством электронной почты, адрес которой Пользователь указывает при регистрации на Сайте, рекламно-информационных сообщений, касающихся продукции и услуг компании и ее партнеров.

3. Цели обработки персональной информации Пользователей
3.1. Предоставление Пользователю услуг Сайта и Сервисов;

3.2. Направление уведомлений, касающихся услуг Сайта;

3.3. Подготовка и направление ответов на запросы Пользователя;

3.4. Направление информации о мероприятиях, проводимых Администрацией сайта;

3.5. Направление информации о продуктах и услугах компании.

4. Условия обработки персональной информации Пользователей
4.1. Перечень действий с персональными данными, на которые Пользователь выражает свое согласие: сбор, систематизация, накопление, хранение, уточнение (обновление, изменение), использование, обезличивание, передача третьим лицам для указанных выше целей, а так же осуществление любых иных действий, предусмотренных действующим законодательством РФ как неавтоматизированными, так и автоматизированными способами.

5. Изменение и удаление персональной информации
5.1. Пользователь может в любой момент изменить или удалить предоставленную им персональную информацию или её часть путем направления соответствующего уведомления на электронный адрес info@linkodium.com.

5.2. Информация будет изменена или удалена в течение 3-х рабочих дней.

6. Меры, применяемые для защиты персональной информации Пользователя
6.1. Администрация сайта обязуется принимать все необходимые достаточные организационные и технические меры для защиты персональных данных Пользователя от неправомерного доступа или раскрытия.

7. Изменение Политики конфиденциальности
7.1. Администрация сайта имеет право вносить изменения в настоящую Политику конфиденциальности. При внесении изменений в актуальной редакции указывается дата последнего обновления. Новая редакция Политики вступает в силу с момента ее размещения, если иное не предусмотрено новой редакцией Политики. Действующая редакция постоянно доступна на странице по адресу https://linkodium.dev/.

8. Прочие положения
8.1. К настоящей Политике и отношениям между Пользователем и Администрацией сайта, возникающим в связи с применением Политики конфиденциальности, подлежит применению право Российской Федерации.

Пользователь подтверждает, что ознакомлен со всеми пунктами настоящего Соглашения и безоговорочно принимает их.

По всем вопросам, связанным с нарушением авторских прав компании, незаконного использования материалов Сайта или размещением ложной, вводящей в заблуждение информации о компании, просим обращаться по e-mail: info@linkodium.com

Дата последнего обновления политики конфиденциальности: 01.05.2021 г.