Меню:
- Ярлыки запуска задач
- Сценарий соединения по Bluetooth
- Отправка координат GPS
- Голосовой ввод команд
- Как передать обратно Таскеру с МД
- Как из таскера вызвать метод напрямую, минуя скрипты?
Для смартфонов и планшетов на платформе Android есть замечательное приложение Tasker, основная задача которого заключается в том, чтобы выполнять какие-то действия в качестве реакции на различные события. Эти события могут быть связаны как с коммуникционными функциями телефона (входящий звонок или сообщение), так и с большим количеством функций общего характера -- срабатывание будильника, вход в домашнюю Wi-Fi сеть и тому подобное. Домашняя страница. Обсуждение на 4PDA. К сожалению, программа платная, но она того стоит. Вы же хотите, что бы у вас был не только "Умный дом", но и "Умный телефон"?
Работа с программой Tasker состоит из двух частей. Во-первых, нужно сделать Задачу (Task), которая определяет то действие, которое должен выполнить телефон. Во-вторых, нужно задать Профиль (Profile), определяющий контекст, в котором данная задача будет выполнена. В профиле можно задать начальную и конечную задачу -- первая выполняется, когда профиль активируется, вторая -- когда профиль становится неактуальным. Например, профиль может описывать работу в домашней wi-fi сети, при этом первая задача выполнится, когда телефон к ней подключился, а вторая, когда телефон потерял с ней соединение.
Для интеграции с MajorDoMo создадим задачу, которая будет отправлять HTTP Post (или Get) запрос в систему, инициируя запуск тестового сценария под название testScript. Аналогичным образом можно сделать вызов метода какого-то объекта либо установку какого-то свойства.
Для запуска сценария нам нужно сделать запрос вида:
1 |
http://192.168.0.96/objects/?script=testScript |
(вместо 192.168.0.96 должен быть адрес сервера, на котором работает MajorDoMo)
В программе Tasker создадим задачу под названием TestScript, в качестве действия выберем Сеть -> HTTP Post и настроим её так, как показано на картинках:
Для проверки можем запустить эту задачу и убедиться, что наш тестовый скрипт вызывается.
Далее, сделаем профиль для реакции на вход в домашнюю сеть. Выглядеть это в итоге должно приблизительно так:
Теперь телефон будет инициировать запуск тестового скрипта при подключении к домашней сети. Подобным образом можно сделать реакцию на любое другое событие, доступное в настройках приложения Tasker -- там их огромное количество: нахождение в определённой точке gps-координат, состояние батареи телефона, наличие рядом определённых wifi-сетей, запуск каких-то приложений на телефоне, звонок будильника и многое многое другое.
Возможные сценарии применения:
- Автоматически включать освещение при появлении дома
- Перевод систем в экономный режим при уходе из дома
- Запуск "утренних" сценариев при срабатывании будильника
- Напоминание о низком заряде батареи телефеона
- Изменение громкости (постановка на паузу) аудио-системы при входящем звонке
Таким образом, телефон может быть отличным универсальным сенсором и инициатором сценариев Умного Дома.
Другие примеры использования
Ярлыки запуска задач
Создадим несколько ярлыков запуска сценариев на телефоне. Это удобно, так как позволяет быстро выполнить какое-либо действие. Например выключить звук или свет, создать напоминание или задачу, получить информацию. То есть то, что требуется не слишком часто, но лезть в меню - долго.
- Создадим в МЖД Сценарий с требуемыми действиями.
- В Tasker создадим задачу запускающую наш сценарий (см. выше).
- В Tasker откроем нашу задачу. В правом нижнем углу нажмем пиктограмму с клетками и выберем подходящую иконку.
- В Меню Андройда выберем закладку Виджеты и найдем виджет Задача(Task ShortCut).
- В открывшемся списке задач Таскера выберем созданную в п.2 задачу.
Теперь при нажатии на иконку нашей задачи на домашнем экране андройда, Алиса выполнит связанный с ней сценарий.
Сценарий соединения по Bluetooth
Создадим сценарий, запускающийся при соединении Bluetooth. Например магнитола в машине с Bluetooth. То есть теперь, когда мы садимся в машину - запускается сценарий МЖД.(Скрипт встречи дома, чаще отправлять координаты GPS,...)
- Создадим в МЖД Сценарии с требуемыми действиями BlueOn и BlueOff.
- В Tasker создадим задачу BlueOn запускающую наш сценарий BlueOn.
- Аналогично для BlueOff.
- В Tasker создадим профиль / Состояние / Подключено по блутулз. Имя оставить пустым, заполнить MAK.
- Назначим входную и выводную задачи соответственно BlueOn и BlueOff.
Теперь при соединении с устройством Bluetooth будет выполнен сценарий МЖД BlueOn, при разрыве связи - BlueOff.
Отправка координат GPS
В качестве альтернативы отправки координат GPS через Big Brother можно использовать Tasker. Преимущества: более гибкая настройка интервала отправки, параметров смартфона. Недостатки: более сложная настройка.
- Создадим задачу Gps
- Добавим действие Разное / Получить координаты. Источник -> GPS
- Добавим действие Переменные / Расчленить переменную. Имя -> %LOC; Разделитель -> ,(запятая)
- Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER; Path -> gps.php Attributes ->
- latitude=%LOC1
- longitude=%LOC2
- altitude=%LOCALT
- provider=%TNET
- speed=%LOCSPD
- battlevel=%BATT
- deviceid=%DEVID
- accuracy=%LOCACC (каждый атрибут с новой строчки без пробелов)
- На закладке VARS создадим переменную %MYSERVER -> имя:пароль@адресМЖД.
- Создадим профиль GpsSend. В меню выберем Время. Откроется форма с тремя CheckBox-ами. Галку только для "Повторять". 5 минут. Выберем задачу Gps.
В результате мы получили отправку GPS координат на сервер MajorDoMo каждые 5 минут. Можно создать несколько профилей с разным временем отправки и включать/выключать их через действие Tasker / Статус профиля. Можно создать несколько задач с разными источниками координат в действии "Получить координаты"
Голосовой ввод команд
Работает так: на главном экране ярлык. Тыкаем его, открывается окошко распознавания Гугл, говорим команду, она отображается в распознаном виде и отправляется Алисе.
- В Tasker создадим задачу Voice
- Добавим действие Ввод / Get Voice. Настраивать особо не надо. В название пропишем "Говорите"
- Добавим действие Сигнал / Всплывающее окно. Текст -> %VOICE
- Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER/command.php; Attributes -> qry=%VOICE
- На закладке VARS создадим переменную %MYSERVER -> имя:пароль@адресМЖД.
- Назначим иконку задаче(смотри выше как)
- Создадим на рабочем столе виджет запуска задачи 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& где
1 2 |
test1 - имя объекта m111 - имя метода |
В таскере :
- HTTP GET (запрос на сервер)
- Server:Port 192.168.1.1 (всё заменить на своё) можно использовать имя/пасс как в примерах выше
- Path: objects
- Attributes: (каждый параметр с новой строки, амперсанды не нужны)
- object=test1
- op=m
- m=m111