Использование событий Android-смартфона в Умном Доме

4. Азбука Комментариев нет

Меню:

Для смартфонов и планшетов на платформе Android есть замечательное приложение Tasker, основная задача которого заключается в том, чтобы выполнять какие-то действия в качестве реакции на различные события. Эти события могут быть связаны как с коммуникционными функциями телефона (входящий звонок или сообщение), так и с большим количеством функций общего характера -- срабатывание будильника, вход в домашнюю Wi-Fi сеть и тому подобное. Домашняя страницаОбсуждение на 4PDA. К сожалению, программа платная, но она того стоит. Вы же хотите, что бы у вас был не только "Умный дом", но и "Умный телефон"?

Работа с программой Tasker состоит из двух частей. Во-первых, нужно сделать Задачу (Task), которая определяет то действие, которое должен выполнить телефон. Во-вторых, нужно задать Профиль (Profile), определяющий контекст, в котором данная задача будет выполнена. В профиле можно задать начальную и конечную задачу -- первая выполняется, когда профиль активируется, вторая -- когда профиль становится неактуальным. Например, профиль может описывать работу в домашней wi-fi сети, при этом первая задача выполнится, когда телефон к ней подключился, а вторая, когда телефон потерял с ней соединение.

Для интеграции с MajorDoMo создадим задачу, которая будет отправлять HTTP Post (или Get) запрос в систему, инициируя запуск тестового сценария под название testScript. Аналогичным образом можно сделать вызов метода какого-то объекта либо установку какого-то свойства.

Для запуска сценария нам нужно сделать запрос вида:

(вместо 192.168.0.96 должен быть адрес сервера, на котором работает MajorDoMo)

В программе Tasker создадим задачу под названием TestScript, в качестве действия выберем Сеть -> HTTP Post и настроим её так, как показано на картинках:

Для проверки можем запустить эту задачу и убедиться, что наш тестовый скрипт вызывается.

Далее, сделаем профиль для реакции на вход в домашнюю сеть. Выглядеть это в итоге должно приблизительно так:

Теперь телефон будет инициировать запуск тестового скрипта при подключении к домашней сети. Подобным образом можно сделать реакцию на любое другое событие, доступное в настройках приложения Tasker -- там их огромное количество: нахождение в определённой точке gps-координат, состояние батареи телефона, наличие рядом определённых wifi-сетей, запуск каких-то приложений на телефоне, звонок будильника и многое многое другое.

Возможные сценарии применения:

  • Автоматически включать освещение при появлении дома
  • Перевод систем в экономный режим при уходе из дома
  • Запуск "утренних" сценариев при срабатывании будильника
  • Напоминание о низком заряде батареи телефеона
  • Изменение громкости (постановка на паузу) аудио-системы при входящем звонке

Таким образом, телефон может быть отличным универсальным сенсором и инициатором сценариев Умного Дома.

Другие примеры использования

Ярлыки запуска задач

Создадим несколько ярлыков запуска сценариев на телефоне. Это удобно, так как позволяет быстро выполнить какое-либо действие. Например выключить звук или свет, создать напоминание или задачу, получить информацию. То есть то, что требуется не слишком часто, но лезть в меню - долго.

  1. Создадим в МЖД Сценарий с требуемыми действиями.
  2. В Tasker создадим задачу запускающую наш сценарий (см. выше).
  3. В Tasker откроем нашу задачу. В правом нижнем углу нажмем пиктограмму с клетками и выберем подходящую иконку.
  4. В Меню Андройда выберем закладку Виджеты и найдем виджет Задача(Task ShortCut).
  5. В открывшемся списке задач Таскера выберем созданную в п.2 задачу.

Теперь при нажатии на иконку нашей задачи на домашнем экране андройда, Алиса выполнит связанный с ней сценарий.

Сценарий соединения по Bluetooth

Создадим сценарий, запускающийся при соединении Bluetooth. Например магнитола в машине с Bluetooth. То есть теперь, когда мы садимся в машину - запускается сценарий МЖД.(Скрипт встречи дома, чаще отправлять координаты GPS,...)

  1. Создадим в МЖД Сценарии с требуемыми действиями BlueOn и BlueOff.
  2. В Tasker создадим задачу BlueOn запускающую наш сценарий BlueOn.
  3. Аналогично для BlueOff.
  4. В Tasker создадим профиль / Состояние / Подключено по блутулз. Имя оставить пустым, заполнить MAK.
  5. Назначим входную и выводную задачи соответственно BlueOn и BlueOff.

Теперь при соединении с устройством Bluetooth будет выполнен сценарий МЖД BlueOn, при разрыве связи - BlueOff.

Отправка координат GPS

В качестве альтернативы отправки координат GPS через Big Brother можно использовать Tasker. Преимущества: более гибкая настройка интервала отправки, параметров смартфона. Недостатки: более сложная настройка.

  1. Создадим задачу Gps
  2. Добавим действие Разное / Получить координаты. Источник -> GPS
  3. Добавим действие Переменные / Расчленить переменную. Имя -> %LOC; Разделитель -> ,(запятая)
  4. Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER; Path -> gps.php Attributes ->
    1. latitude=%LOC1
    2. longitude=%LOC2
    3. altitude=%LOCALT
    4. provider=%TNET
    5. speed=%LOCSPD
    6. battlevel=%BATT
    7. deviceid=%DEVID
    8. accuracy=%LOCACC (каждый атрибут с новой строчки без пробелов)
  5. На закладке VARS создадим переменную %MYSERVER -> имя:пароль@адресМЖД.
  6. Создадим профиль GpsSend. В меню выберем Время. Откроется форма с тремя CheckBox-ами. Галку только для "Повторять". 5 минут. Выберем задачу Gps.

В результате мы получили отправку GPS координат на сервер MajorDoMo каждые 5 минут. Можно создать несколько профилей с разным временем отправки и включать/выключать их через действие Tasker / Статус профиля. Можно создать несколько задач с разными источниками координат в действии "Получить координаты"

Голосовой ввод команд

Работает так: на главном экране ярлык. Тыкаем его, открывается окошко распознавания Гугл, говорим команду, она отображается в распознаном виде и отправляется Алисе.

  1. В Tasker создадим задачу Voice
  2. Добавим действие Ввод / Get Voice. Настраивать особо не надо. В название пропишем "Говорите"
  3. Добавим действие Сигнал / Всплывающее окно. Текст -> %VOICE
  4. Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER/command.php; Attributes -> qry=%VOICE
  5. На закладке VARS создадим переменную %MYSERVER -> имя:пароль@адресМЖД.
  6. Назначим иконку задаче(смотри выше как)
  7. Создадим на рабочем столе виджет запуска задачи Voice

Возможные проблемы: не установлен "голосовой ввод" на телефоне - установить.

Закладка VARS

Чтобы она появилась в настройках снимите галочку с "Beginer mode"

Как передать обратно Таскеру с МД, например значение свойства объекта "ThisComputer.temperatura" ?

Я в таскер передаю общий статус системы создав таск со следующими действиями:

  • HTTP GET (запрос на сервер)
    • Server:Port username:password@homeserver.com (всё заменить на своё)
    • Path: /pChart/?p=ThisComputer.HomeStatus&op=value
  • Variable Set (установка переменной таскера)
    • pct HomeStatus to pct HTTPD
  • Zooper Widget Variable (тут не помню точно как, но Zooper Widget как раз позволяет переменную из таскера в качестве виджета на рабочий стол выводить)

Как из таскера вызвать метод напрямую, минуя скрипты?

Из браузера метод можно вызвать отправив запрос на адрес: http://192.168.1.1/objects/?object=test1&op=m&m=m111& где

В таскере :

  • HTTP GET (запрос на сервер)
    • Server:Port 192.168.1.1 (всё заменить на своё) можно использовать имя/пасс как в примерах выше
    • Path: objects
    • Attributes: (каждый параметр с новой строки, амперсанды не нужны)
      • object=test1
      • op=m
      • m=m111

 

Поделитесь в соц сетях

Теги: