Расскажу как отправить СМС-команду на запуск автомобиля при помощи Алисы.
Что имеем: GSM сигнализация c возможностью управления СМС командами, умная колонка Алиса с привязанными устройствами Мажордомо через ПУ.
В МД создаем Простое устройство Кнопка. В объекте, который привязывается к этому ПУ создаем новое свойство. В моем случае объект "SMS_command" в SButtons, а свойство назвал "TextSMS". Метод Pressed задаем кодом:
$this->setProperty('TextSMS',"смс-команда");
На мобильный телефон, номер которого привязан к сигнализации, необходимо установить программу Tasker.
В моем случае все работает только в локальной сети по понятным причинам - мы разговариваем с колонкой только когда мы дома и нам для этого не нужен белый IP.
Настраиваем Таскер:
Во вкладке Vars создаем переменную %MYSERVER, куда прописываем ip вашего МД.
Во вкладке Tasks создаем задачу "Автозапуск".
Идем назад в Tasks.
Идем назад в Tasks.
Все, мы настроили отправку СМС. Теперь при нажатии кнопки в ПУ - в "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 сек, начиная с момента подачи команды и заканчивая получением ответа от сигнализации.
Архангельск, Россия
На форуме: HeavyHard