HeavyHard

<<< Назад

Реализация автозапуска автомобиля с GSM сигнализацией при помощи Алисы

Расскажу как отправить СМС-команду на запуск автомобиля при помощи Алисы.

Что имеем: GSM сигнализация c возможностью управления СМС командами, умная колонка Алиса с привязанными устройствами Мажордомо через ПУ.

В МД создаем Простое устройство Кнопка. В объекте, который привязывается к этому ПУ создаем новое свойство. В моем случае объект "SMS_command" в SButtons, а свойство назвал "TextSMS". Метод Pressed задаем кодом:

$this->setProperty('TextSMS',"смс-команда");

На мобильный телефон, номер которого привязан к сигнализации, необходимо установить программу Tasker.
В моем случае все работает только в локальной сети по понятным причинам - мы разговариваем с колонкой только когда мы дома и нам для этого не нужен белый IP.
Настраиваем Таскер:
Во вкладке Vars создаем переменную %MYSERVER, куда прописываем ip вашего МД.
Во вкладке Tasks создаем задачу "Автозапуск".

  1. "+" -> сеть -> HTTP Get. Server выбираем %MYSERVER из переменных. В Path прописываем путь до свойства "SMS_command.TextSMS" в МД: /pChart/p?=SMS_command.TextSMS&op=value

Идем назад в Tasks.

  1. "+" -> сеть -> Task -> Если. Задаем условие при котором будет отправляться СМС. Условий может быть несколько, в зависимости сколько разных команд вы планируете отправлять по СМС. В данном случае переменную вписываем %HTTPD, оператор ставим "совпадает", в значение вписываем вашу СМС-команду.

Идем назад в Tasks.

  1. "+" -> телефон -> отправить SMS. Указываем номер вашей сигнализации или выбираем из контактов. В сообщении записываем: %HTTPD. Выбираем SIM Card с которой будет отправляться СМС, если у вас несколько симок.
    Если хотите настроить что-то еще, то вам необходимо добавить наже условия "Else Если" и там прописать другие команды (см. пункт 2 - на каждое условие "Если" указывается своя СМС-команда) и на каждую команду добавить кнопку в ПУ в МД.
  2. Заканчиваем выполнение условия "+" -> сеть -> Task -> Конец Если.

Все, мы настроили отправку СМС. Теперь при нажатии кнопки в ПУ - в "SMS_command.TextSMS" прописывается ваша СМС команда.
Теперь надо в Таскере настроить выполнение этой команды.
Идем в Профили, жмем +, выбираем Состояние -> Значение переменной. Записываем переменную %HTTPD. Здесь укажем оператор "Не совпадает", а значение 0. И выбираем задание, которое будет выполняться при выполнении условия. В нашем случае это "Автозапуск", который мы ранее создали.
Теперь при значении в "SMS_command.TextSMS" отличном от нуля, будет выполняться наше задание. Дальше после того, как команда выполнена, нам приходит СМС-ответ от сигнализации (в сигналке у меня так). Мы будем это использовать, чтобы обнулить "SMS_command.TextSMS". Чтобы никаких команд там больше не висело.
В МД создаем сценарий, имя "return_0", код:

sg('SMS_command.TextSMS',0);

В Таскере по аналогии создаем в Tasks еще одну задачу. Назовем ее "Возврат Значения 0". Заполняем:
Server: %MYSERVER
Path: /objects/
Data/File: script=return_0

Возвращаемся в Профили и создаем новый, аналогично предыдущему, профиль.
Событие -> Телефон -> Получено текст.сообщ.
Тип: SMS
Отправитель: номер вашей сигнализации.
Содержание не вписываем.
Выбираем задание, которое создали - "Возврат Значения 0".

Вот и все. Проверено, работает. Правда, с небольшой задержкой примерно в 30 сек, начиная с момента подачи команды и заканчивая получением ответа от сигнализации.

Обсуждение (0) (5)

Архангельск, Россия