Main

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

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

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

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

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

http://192.168.0.96/objects/?script=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& где

 test1 - имя объекта
 m111 - имя метода

В таскере :

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

Обсуждение

 

sergejey: Обсуждение страницы Использование событий Android-смартфона в Умном Доме

Vit: классно....интересно под iphone существует что то подобное?

Vip: Судя по исходникам(/objects/index.php) в случае со скриптами скорее всего используется HTTP-GET запрос Tasker`a...Или нет?

sergejey: Судя по исходникам(/objects/index.php) в случае со скриптами скорее всего используется HTTP-GET запрос Tasker`a...Или нет? Можно и POST и GET -- работает в обоих случаях

Jager: При включенной авторизации для доступа извне, в таскере адрес своего сервера пишем в формате login:pass@xxx.xxx.xxx.xxx

dmw: Как правильно установить значение переменной? Настраиваю задачу HTTP Post в таскере вот так: Server= "192.168.1.20" Path= "/objects/" Data= "object=GalaxyNote&op=set&p=online&v=1" не работает, т.е. значение "1" переменной GalaxyNote.online не присваивается. Однако через адресную строку браузера ссылкой: http://192.168.1.20/objects/?object=Gal ... online&v=1 значение переменной GalaxyNote.online присваивается нормально.

dmw: В общем для установки значения переменной в таскере нужно использовать задачу HTTP Get (с методом HTTP Post нормально отрабатывает только чтение переменных MJD), кроме того в поле Attributes каждый параметр нужно указывать с новой строки: Attributes object=GalaxyNote op=set p=online v=1

Stanislav: Ребят, а как сформировать http запрос для запуска метода? Где-то видел на форуме, но уже часа 2 ищу, не могу найти. Подскажите, пожалуйста. Сам нашел. При редактировании метода внизу есть ссылка на него. Все оказалось так просто... Еще раз спасибо разработчику!

ErmolenkoM: Обновил страницу http://smartliving.ru/Main/ScAndroidTasker. Добавил примеры использования Tasker.

ignat99: https://play.google.com/store/apps/deta ... ateddevice Возможно эта программа будет проще и лучше в настройке?

ErmolenkoM: Описываю реализацию сценария: Машина поехала/машина остановилась. За подробностями - ко мне в коннект. 1. В машине магнитола с БлуеТулсом. Автоматом соединяется с телефоном. 2. В таскере создаем профиль на состояние Подключено по блютулз. МАК я заполнил *. Проверяем, что профиль активируется при соединении. 3. К профилю привязываем входящую и исходящие задачи. 4. Задачи запускают скрипты с МЖД. Типа http://192.168.0.96/objects/?script=BlueOn. Подробно Здесь: http://smartliving.ru/Main/ScAndroidTasker Все.

shemnik69: Спасибо! Это сценарии на смартфоне. Но на ссылке у ВАС локальный адрес 192... и тд. А при движении и остановке смарт отправляет на внешний инет адрес? Я подобную цепочку пытался реализовать но почему-то никакими способами не могу "пробить" доступ к серверу. Он работает через GSM (МТС) безлимит. Скорость нормальная, но вот внешний доступ никак ... А вот вариант с приездом я решил. Машина подъезжает к дому 100-70 м. попадает в зону домашнего WI-fi. Смарт "знает" что "он" в машине, по конекту с "блютузом" HendFree. Kогда заехал. датчики на воротах зафиксировали на 3-5 сек прерываниет. те именно факт въезда машины. Машина остановилась. Зажигание выключено, пропадаетт и конект с смартом, он дает кооманду (через Wi-Fi ,благо роутер и гараж рядом 2 м.) на закрытие внешних ворот (на МК) . а сервер, ее подтверждает , т.е защита от сбоя (например в проеме может быть человек стоять и т.д) согласуюсь с сигналом от датчиков прерывания ИК луча а также времени. ( Например в остальное нестандартное время управление от брелков) И далее концевики . Работатет вроде без трудностей. Но вот хочу еще чтобы еще была возможность и внешнего управления. Да, забыл, еще фонари (прожекторы) загораются, когда темно (восход/заход) и появление вечером (по времени) смарта в сети ... :D

ErmolenkoM: 1. я купил белый IP адрес для домашнего интернета. Второй вариант: dyn-dns например. 2. в конфиге Алисы есть имя и пароль для внешнего доступа http://smartliving.ru/Main/AdvancedSetup 3. в таскере пишу IP адрес так: http://MyUserName:MySuperPass@8.8.8.8 (IP адрес внешний в конце) 4. на роутере пробросил 80 порт от Алисы наружу. Вроде все.

sergejey: Подскажу ещё вариант отправки команд в систему без белого IP и пробрасывания порта: 1. Регистрируемся в connect.smartliving.ru 2. В настройках majordomo в разделе connect ставим галочку на использование cloudsync После чего появляются следующие возможности: * В браузере можно использовать http://connect.smartliving.ru/menu.html для доступа к меню (имя/пароль как при регистрации в connect-е) * В приложении MajorDroid в качестве внешнего хоста можно указать connect.smartliving.ru (имя/пароль как при регистрации в connect-е) * В Tasker-е можно использовать http://username:password@connect.smartl ... ommand.php для передачи (голосовых) команд * В BigBrother GPS можно в качестве адреса использовать http://connect.smartliving.ru/gps.php (в настройках надо указать значение secret равный username:password)

Jager: Можно ли из таскера вызвать метод напрямую, минуя скрипты?

ErmolenkoM: Можно ли из таскера вызвать метод напрямую, минуя скрипты? На странице метода внизу есть ссылки для вызова его через адресную строку. http://192.168.1.1:80/objects/?object=ClockChime&op=m&m=onNewMinute&  Tasker умеет GET и POST. Так что думаю вполне можно звать метод сразу из таскера.

Jager: Можно ли из таскера вызвать метод напрямую, минуя скрипты? На странице метода внизу есть ссылки для вызова его через адресную строку. http://192.168.1.1:80/objects/?object=ClockChime&op=m&m=onNewMinute&     Tasker умеет GET и POST. Так что думаю вполне можно звать метод сразу из таскера. Не хочет, пробовал такие варианты https://lh3.googleusercontent.com/-XdGXakzPDlQ/VHrYsQD3IhI/AAAAAAAAFMA/6VQeDzHLC6s/s400/Screenshot_2014-11-30-11-42-32.jpg https://lh4.googleusercontent.com/-vK1y7V27ttk/VHrZX-1KB9I/AAAAAAAAFMQ/o9pU5filQBM/s400/Screenshot_2014-11-30-11-41-56.jpg

shemnik69: Подскажу ещё вариант отправки команд в систему без белого IP и пробрасывания порта: 1. Регистрируемся в connect.smartliving.ru 2. В настройках majordomo в разделе connect ставим галочку на использование cloudsync После чего появляются следующие возможности: * В браузере можно использовать http://connect.smartliving.ru/menu.html для доступа к меню (имя/пароль как при регистрации в connect-е) * В приложении MajorDroid в качестве внешнего хоста можно указать connect.smartliving.ru (имя/пароль как при регистрации в connect-е) * В Tasker-е можно использовать http://username:password@connect.smartl ... ommand.php для передачи (голосовых) команд * В BigBrother GPS можно в качестве адреса использовать http://connect.smartliving.ru/gps.php (в настройках надо указать значение secret равный username:password) Спасибо огромное!!! Дошли руки попробовал.Работает. Ну теперь совсем другой уровень. Поскольку программировать телефон точнее его программу Auomatelt (ал-я Tasker) очень даже просто . Пробовал открыть и закрыть ворота ..Да и светом управлял ... класс.

ErmolenkoM: Не хочет, ... хочет. http://smartliving.ru/Main/ScAndroidTasker добавил в конце Как из таскера вызвать метод напрямую, минуя скрипты PS Лучше вопросы про Tasker задавать в теме про Tasker.

Jager: Не хочет, ... хочет. http://smartliving.ru/Main/ScAndroidTasker добавил в конце Как из таскера вызвать метод напрямую, минуя скрипты PS Лучше вопросы про Tasker задавать в теме про Tasker. Спасибо.

Ivan: Давно пользуюсь но забыл описать. Алиса проговаривает кто звонит по телефону. Очень удобно в большом доме. Не нужно таскать телефон. %MYSERVER добавляем переменную со своим ip локальным. Тогда если будут звонить вне дома, задача не выполнется

Amarok: лучше ставить * вместо C:ANY

Amarok: По умолчанию.jpg Чот не робит

sergejey: Если используется GET-запрос, то лучше прямо в поле PATH писать: /objects/?script=Call&cname=%CNAME

Ivan: Пробовал вставлять запросы с & - Tasker не воспринимает. Где то нашел что атрибуты нужно писать с новой строки

sergejey: Пробовал вставлять запросы с & - Tasker не воспринимает. Где то нашел что атрибуты нужно писать с новой строки Для POST-запроса нужно писать с новой строки, для GET-запроса надо перечислять параметры в Path

Vit: я попорбовал...вместо имени абонента вопросительные знаки....у всех так?

Ivan: Забыл но где то ставил UTF8

ErmolenkoM: я попорбовал...вместо имени абонента вопросительные знаки....у всех так? отправляю GET запросом - все хорошо. При этом даже не стал писать скрипт - пользую qry=Звонит %CNAME

Victor Zotov: Настроил передачу GPS и батарейки из Tasker. В приложении "Трекинг GPS" в MD все отображается. Из таскера через httpGET передается системная переменная %BATT в переменную battlevel в МД, как я понимаю. Подскажите, пожалуйста, как достать из полученных данных из приложения GPS значение переменной battlevel для каждого устройства. Хочу встроить в главное меню слева. Пробовал Пробовал gg('battlevel') Пробовал %айдидевайса.battlevel% Пробовал gg('айдидевайса.battlevel') Спасибо.

Vit: я попорбовал...вместо имени абонента вопросительные знаки....у всех так? отправляю GET запросом - все хорошо. При этом даже не стал писать скрипт - пользую qry=Звонит %CNAME Русские имена нормально озвучивает?

Dark_Veter: У меня была такая проблема, помогла функция urlencode в таскере, перед отправкой в mdm.

SergeyF: Для использования уровня заряда батареи в системе необходимо в GPS - трекере войти на закладку "Устройства" связать устройство с пользователем системы (Users). При следующем добавлении местоположения устройства связанному users будет добавлено свойство со значением уровня заряда. т.е. .BattLevel

ErmolenkoM: Подскажите, пожалуйста, как достать из полученных данных из приложения GPS значение переменной battlevel для каждого устройства. 1. Создать пользователя (Users) 2. Привязать устройство к Пользователю. 3. Дальше уже %имя_пользователя.battlevel% или gg('имя_пользователя.battlevel') Как я узнал что нужно так сделать? 1. Смотрим в корне файл gps.php, именно ему скармливаются гпс-коотдинаты. 2. Видим, что после разбора цифры записываются в базу. 3. Дальше видим, что если есть связка пользователь-устройство, то пользователю пишут в свойства разные данные. как-то так.

Vit: А пример можно использовать ия функции urlencode где прописать и какой синтаксис.

Dark_Veter: А пример можно использовать ия функции urlencode где прописать и какой синтаксис. Вот скриншот из моего таскера: https://yadi.sk/i/mkBK3IGreAS5n

Vit: А внутри этих вызовов можно скрины?) никак не получается у меня с этим таскером)) заранее благодарен.

Dark_Veter: А внутри этих вызовов можно скрины?) никак не получается у меня с этим таскером)) заранее благодарен. https://yadi.sk/i/LwIKD3BIeAdEU https://yadi.sk/i/JRrdEi3zeAdES

Vit: А внутри этих вызовов можно скрины?) никак не получается у меня с этим таскером)) заранее благодарен. https://yadi.sk/i/LwIKD3BIeAdEU https://yadi.sk/i/JRrdEi3zeAdES все получилось, спасибо

triada13: Народ подскажите плиз, что нужно сюда добавить что бы передавался статус на зарядке телефон или нет: Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER; Path -> gps.php Attributes ->
latitude=%LOC1
longitude
=%LOC2
altitude
=%LOCALT
provider
=%TNET
speed
=%LOCSPD
battlevel
=%BATT
deviceid
=%DEVID
accuracy
=%LOCACC (каждый атрибут с новой строчки без пробелов

Amarok: А у меня вообще таскер координаты не передает(

Alien: Передает таскер, делал все как в примере (правда периодически таймаут соединения бывает, но это скорее из-за ddns или провайдера). И еще добавил себе выбор определения координат по сети или GPS в зависимости от местоположения - какой смысл убивать акк, находясь на работе или дома, когда особая точность не нужна. Подправил так-же deviceid=%DEVID на deviceid=%DEVTID, чтобы передавал IMEI, а не номер прошивки, как BG передает.

Amarok: А как запустить скрипт с параметрами? wget -"http://192.168.0.2/objects/?script=REGBLedOn&room=AmarokLair" -O nul Чегойт не отрабатывает(

Vit: Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER; Path -> gps.php Attributes ->
latitude=%LOC1
longitude
=%LOC2
altitude
=%LOCALT
provider
=%TNET
speed
=%LOCSPD
battlevel
=%BATT
deviceid
=%DEVID
accuracy
=%LOCACC (каждый атрибут с новой строчки без пробелов) подскажите кто настроил, из-за чего может ошибка такая быть? http://c2n.me/3cEVAIA.jpg

ErmolenkoM: а из браузера в телефоне нормально уходит? Достаточно только первых пару параметров передать. Может проблема в IP адресе локольной сетки

Amarok: Передает таскер, делал все как в примере (правда периодически таймаут соединения бывает, но это скорее из-за ddns или провайдера). И еще добавил себе выбор определения координат по сети или GPS в зависимости от местоположения - какой смысл убивать акк, находясь на работе или дома, когда особая точность не нужна. Подправил так-же deviceid=%DEVID на deviceid=%DEVTID, чтобы передавал IMEI, а не номер прошивки, как BG передает. Можно шаблон задачи посмотреть?

Vit: а из браузера в телефоне нормально уходит? Достаточно только первых пару параметров передать. Может проблема в IP адресе локольной сетки попробую сегодня, отпишусь

Alien: Профайл: <TaskerData sr="" dvi="1" tv="4.6u3m"> <Profile sr="prof20" ve="2"> <cdate>1422355583288</cdate> <edate>1422521958895</edate> <id>20</id> <mid0>21</mid0> <nme>MD_SendLocation</nme> <Time sr="con0"> <fh>0</fh> <fm>0</fm> <rep>2</rep> <repval>5</repval> <th>-1</th> <tm>-1</tm> </Time> </Profile> <Task sr="task21"> <cdate>1422355608840</cdate> <edate>1422867066571</edate> <id>21</id> <nme>MD_SelectLocProvider</nme> <pri>6</pri> <Action sr="act0" ve="7"> <code>137</code> <Int sr="arg0" val="0"/> <Str sr="arg1" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%AIR</lhs> <op>1</op> <rhs>off</rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>37</code> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%myLoc</lhs> <op>2</op> <rhs>atHome</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%myLoc</lhs> <op>2</op> <rhs>atWork</rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>130</code> <Str sr="arg0" ve="3">MD_SendLocNet</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> </Action> <Action sr="act3" ve="7"> <code>43</code> </Action> <Action sr="act4" ve="7"> <code>130</code> <Str sr="arg0" ve="3">MD_SendLocGPS</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> </Action> <Action sr="act5" ve="7"> <code>38</code> </Action> <Img sr="icn" ve="2"> <nme>hd_device_access_location_off</nme> </Img> </Task> </TaskerData> Задача выбора поставщика координат: <TaskerData sr="" dvi="1" tv="4.6u3m"> <Task sr="task21"> <cdate>1422355608840</cdate> <edate>1424260820694</edate> <id>21</id> <nme>MD_SelectLocProvider</nme> <pri>6</pri> <Action sr="act0" ve="7"> <code>137</code> <Int sr="arg0" val="0"/> <Str sr="arg1" ve="3"/> <ConditionList sr="if"> <Condition sr="c0" ve="3"> <lhs>%AIR</lhs> <op>1</op> <rhs>off</rhs> </Condition> </ConditionList> </Action> <Action sr="act1" ve="7"> <code>37</code> <ConditionList sr="if"> <bool0>Or</bool0> <Condition sr="c0" ve="3"> <lhs>%myLoc</lhs> <op>2</op> <rhs>atHome</rhs> </Condition> <Condition sr="c1" ve="3"> <lhs>%myLoc</lhs> <op>2</op> <rhs>atWork</rhs> </Condition> </ConditionList> </Action> <Action sr="act2" ve="7"> <code>130</code> <Str sr="arg0" ve="3">MD_SendLocNet</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> </Action> <Action sr="act3" ve="7"> <code>43</code> </Action> <Action sr="act4" ve="7"> <code>130</code> <Str sr="arg0" ve="3">MD_SendLocGPS</Str> <Int sr="arg1"> <var>%priority</var> </Int> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="0"/> </Action> <Action sr="act5" ve="7"> <code>38</code> </Action> <Img sr="icn" ve="2"> <nme>hd_device_access_location_off</nme> </Img> </Task> </TaskerData> Задача отправки координат с GPS: <TaskerData sr="" dvi="1" tv="4.6u3m"> <Task sr="task13"> <cdate>1422015505595</cdate> <edate>1424260960297</edate> <id>13</id> <nme>MD_SendLocGPS</nme> <pri>10</pri> <Action sr="act0" ve="7"> <code>902</code> <Int sr="arg0" val="0"/> <Int sr="arg1" val="100"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> <Action sr="act1" ve="7"> <code>590</code> <Str sr="arg0" ve="3">%LOC</Str> <Str sr="arg1" ve="3">,</Str> <Int sr="arg2" val="0"/> </Action> <Action sr="act2" ve="7"> <code>118</code> <Str sr="arg0" ve="3">http://%MDUSER:%MDPASS@%MDSERVER</Str> <Str sr="arg1" ve="3">gps.php</Str> <Str sr="arg2" ve="3">latitude=LOC2 altitude=TNET speed=BATT deviceid=LOCACC</Str> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="10"/> <Str sr="arg6" ve="3"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> </Action> <Img sr="icn" ve="2"> <nme>hd_device_access_location_found</nme> </Img> </Task> </TaskerData> Задача отправки координат из сети: <TaskerData sr="" dvi="1" tv="4.6u3m"> <Task sr="task19"> <cdate>1422015505595</cdate> <edate>1422867057084</edate> <id>19</id> <nme>MD_SendLocNet</nme> <pri>10</pri> <Action sr="act0" ve="7"> <code>902</code> <Int sr="arg0" val="1"/> <Int sr="arg1" val="100"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> <Action sr="act1" ve="7"> <code>590</code> <Str sr="arg0" ve="3">%LOCN</Str> <Str sr="arg1" ve="3">,</Str> <Int sr="arg2" val="0"/> </Action> <Action sr="act2" ve="7"> <code>118</code> <Str sr="arg0" ve="3">http://%MDUSER:%MDPASS@%MDSERVER</Str> <Str sr="arg1" ve="3">gps.php</Str> <Str sr="arg2" ve="3">latitude=LOCN2 provider=BATT deviceid=LOCNACC</Str> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3"/> <Int sr="arg5" val="10"/> <Str sr="arg6" ve="3"/> <Str sr="arg7" ve="3"/> <Int sr="arg8" val="0"/> </Action> <Img sr="icn" ve="2"> <nme>hd_device_access_location_searching</nme> </Img> </Task> </TaskerData> Пока так. В планах купить Auto location, там круче настоить можно, но есть проблема с оплатой гривневой картой (двойная конвертация). Хорошо хоть за таскер успел заплатить ;)

ErmolenkoM: В планах купить Auto location, там круче настоить можно А что может быть круче чем Таскер? Удобнее, проще - согласен. Но что бы именно "Круче"... Таскер поддерживает все события андроида, есть как И так и ИЛИ. Может есть какой юзкейс, для примера? Не холивара ради - мне правда интересно. Считаю покупку таскера - одной из самых оправданных своих покупок ПО. UPDATE. Почитал про Auto location. Это плагин к Таскеру :-))) Ага, клевая штука. Вопрос только к жору батарейки.

Alien: Вот именно для экономии батарейки. Чтоб в некритичных ситуациях брать координаты с сети и вайфай, и только по необходимости со спутника.

ErmolenkoM: Вот именно для экономии батарейки. Чтоб в некритичных ситуациях брать координаты с сети и вайфай, и только по необходимости со спутника. так вроде таскер из коробки это умеет? В свое время когда разбирался у меня была обратная проблема - получить координаты и не заморачиваться какие они - спутник или соты.

Alien: Таскер умеет, но мне не очень нравится создавать профайлы под каждое местоположение. В AutoLocation мне понравились Geofences и возможность определения пешком или на авто...

Vit: а из браузера в телефоне нормально уходит? Достаточно только первых пару параметров передать. Может проблема в IP адресе локольной сетки попробую сегодня, отпишусь Попробовал из браузера отправить 2 первых параметра.....в браузере не ошибок ничего...просто белый экран....в модуле gps ничего не появляется мажордройд работает нормально и таскер например при подключении к домашнему вайфай тоже скрипт отрабатывает при раззных вариантах (входящий вызов, будильник) все норм что нетак сgps не пойму

I_I_Imonder: Друзья. поделитесь скриптом для звонящего абонента.

Controer: Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER; Path -> gps.php Attributes ->
latitude=%LOC1
longitude
=%LOC2
altitude
=%LOCALT
provider
=%TNET
speed
=%LOCSPD
battlevel
=%BATT
deviceid
=%DEVID
accuracy
=%LOCACC (каждый атрибут с новой строчки без пробелов) подскажите кто настроил, из-за чего может ошибка такая быть? http://c2n.me/3cEVAIA.jpg Проверь IP адрес куда передаются данные

Controer: Народ подскажите плиз, что нужно сюда добавить что бы передавался статус на зарядке телефон или нет: Добавим действие Сеть / HTTP Get. Настроим: Server -> %MYSERVER; Path -> gps.php Attributes ->
latitude=%LOC1
longitude
=%LOC2
altitude
=%LOCALT
provider
=%TNET
speed
=%LOCSPD
battlevel
=%BATT
deviceid
=%DEVID
accuracy
=%LOCACC (каждый атрибут с новой строчки без пробелов) Тоже все варианты пробовал, не получается никак предать статус на зарядке или нет

sega6549: Здравствуйте, возможно не в тему но все же, есть меню управления, раздел State вот с таким кодом; <big style="font-size:24px">%ThisComputer.timeNow%</big>

<
img src="/img/icons/status/lock_32_%Security.stateColor%.png" align="absmiddle"> %Security.stateDetails%
<
img src="/img/icons/status/system_32_%System.stateColor%.png" align="absmiddle"> %System.stateDetails%
<
img src="/img/icons/status/network_32_%Communication.stateColor%.png" align="absmiddle"> %Communication.stateDetails%
<
br/>%ThisComputer.somebodyHomeText%
<
br/>Сергей:
<
br/>Батарея %Sergey.BattLevel% % 
<br/>Посл. коорд. %Sergey.CoordinatesUpdated%<br/>Батарея %Sergey.BattLevel% % так же есть свойство пользователя Sergey.Charging которому присваивается значение 1 если телефон на зарядке и 0 если нет, как бы мне после <br/>Батарея %Sergey.BattLevel% % приклеить надпись заряжается если Sergey.Charging имеет свойство 1 и ничего не писать если 0 выглядеть будет так: Сергей Батарея 94% заряжается

GreatBAO: а разве туда PHP код нельзя вставлять ? <?php
if(gg("Sergey.BattLevel")) {
  echo 
"на зарядке";
} else {
  echo 
"не на зарядке";

Dark_Veter: PHP врядли, зато ява скрипт получиться:  <script type="text/javascript">
  var Charging='%Sergey.Charging%';
  if (Charging!=0) {
    document.write('На зарядке');
  }
 </script>

Wave: А можно ли снимать состояние датчиков и отдавать их в МД? Поворота, освещения, акселометра?

ErmolenkoM: А можно ли снимать состояние датчиков и отдавать их в МД? Поворота, освещения, акселометра? Да, используя TASKER. Здесь описание http://majordomo.smartliving.ru/Main/ScAndroidTasker В таскере не забудьте в настройках ВКЛЮЧИТЬ опрос датчиков. По умолчанию они выключены.

BeletskyAV: Может есть какой юзкейс, для примера? Решил выводить в "карман" данные с датчиков DHT22 (их на даче планирую использовать 12шт) + барометр. На борту телефона стоит Таскер и "Минималистичный текстовый виджет" https://play.google.com/store/apps/details?id=de.devmil.minimaltext. Что получилось, скрипт для Алисы, фото скрина и импорты для Андроида можно забрать здесь. https://drive.google.com/folderview?id=0B9hvrgxxTBiZTFNMUkRXTl9MUXc&usp=sharing

sashmen: Доброе время суток. Можете подсказать как в Tasker сделать проверку, если GPS не получает кординаты %LOC, то отправлять сетевые кординаты %LOCN? Как узнать получает GPS координаты или нет?

ErmolenkoM: Доброе время суток. Можете подсказать как в Tasker сделать проверку, если GPS не получает кординаты %LOC, то отправлять сетевые кординаты %LOCN? Как узнать получает GPS координаты или нет? Ага. Именно по этому я и остался на BBGPS - он как-то определяет что точнее. Кстати, если появится решение - отпишитесь в этой теме плиз.

nick7zmail: 2 вопроса по таскеру и gps... 1) как отправить параметр - на зарядке или нет 2) что за параметры >
altitude=%LOCALT
accuracy
=%LOCACC

nick7zmail: 2 вопроса по таскеру и gps... 1) как отправить параметр - на зарядке или нет 2) что за параметры >
altitude=%LOCALT
accuracy
=%LOCACC Отвечу сам себе... 1) Для отправки статуса зарядки делаем следующее (по крайней мере я инструкции не нашел, простите если повторяюсь)... -создаем переменную на вкладке VARS %CHARGING -создаем таск ch - установить переменную %CHARGING на 1 -создаем таск no_ch - установить переменную %CHARGING на 0 -создаем профиль - состояние - зарядка - запустить таск ch -создаем профиль - состояние - зарядка - если не - запустить таск no_ch -в список отправляемых атрибутов добавляем charging=%CHARGING почти уверен что это можно при помощи одного таска оформить...но как то пока не думал над этим... 2) altitude-видимо высота...а accuracy-точность вроде...так я понял? Если accuracy хотя бы отображается в админке, зачем посылается altitude, provider? просто в таблице хранить?))

ученик: Работа gps.php проблема с получением данных настроил таскер в в логе access.log вижу, есть запись с данными ... а в логе трекера эти данные не отображаются?

Alien: А устройство с пользователем связано? Модуль работает. Передаю данные таскером.

ученик: А устройство с пользователем связано? Модуль работает. Передаю данные таскером. Я сегодня настроил таскер на планшете и GPS трекер спокойно показал данные от нового устройства. и без привязки с пользователем,а данные телефона чего то не хочет.

Alien: Тогда стоит попробовать переменные сначала зафлешить таскером. Может телефон свой айди не передает. Тогда, как вариант, задать его вручную.

ученик: Тогда стоит попробовать переменные сначала зафлешить таскером. Может телефон свой айди не передает. Тогда, как вариант, задать его вручную. в access.log id телефона есть и данные все есть а значений нет чета какая то беда. единственный телефон с таким багом. а Как "переменные сначала зафлешить таскером" ?

Alien: В таскере Alert Flash переменная - на экране окошко со значением выводится.

ученик: Давно пользуюсь но забыл описать. Алиса проговаривает кто звонит по телефону. Очень удобно в большом доме. Не нужно таскать телефон. %MYSERVER добавляем переменную со своим ip локальным. Тогда если будут звонить вне дома, задача не выполнется Вопрос , а где в таскере есть опция телефон звонит? Я перешерстил категорию "телефон", но там не нашел опции, что бы создать действие на "вызов" телефона? может не там ищу или не та версия таскера?

nick7zmail: Вопрос , а где в таскере есть опция телефон звонит? Я перешерстил категорию "телефон", но там не нашел опции, что бы создать действие на "вызов" телефона? может не там ищу или не та версия таскера? Есть...создать профиль - событие -> Телефон ->Телефон звонит А дальше хоть имя звонящего на сервер отправляйте.

ученик: В таскере сделал http get с данными звонящего... Создал скрипт в say("Звонит",Callcname,2); написал, а Алиса молчит хотя в логе есть инфа о данных

Dark_Veter: не say("Звонит",Callcname,2);, а say("Звонит ".$Callcname,2); наверное, если $Callcname это переменная, которой у вас значение из параметров присваивается. А вообще покажите get запрос в таскере.

nick7zmail: В таскере сделал http get с данными звонящего... Создал скрипт в say("Звонит",Callcname,2); написал, а Алиса молчит хотя в логе есть инфа о данных Ну начнем с того что - непонятно что вы хотели своим скриптом сделать...У функции say всего 2 параметра, вы ей скармливаете 3. Почитайте основы. Во вторых что за Callcname? Откуда он его брать должен? скрипт incoming  say('Звонит '.$params['name'], 2);  Настройки таскера Screenshot_2016-02-01-18-36-27.jpg Не проверял, но должно работать...лень объяснять как... PS: сори за первый громадный скрин...телефон с fullhd =D...залил не посмотрев - потом прифигел от размера)) скрин перезалил. UPD: Проверил...действительно работает...

nick7zmail: почти уверен что это можно при помощи одного таска оформить...но как то пока не думал над этим... Кстати...кому интересно - сделал одним таском...но профиля по-прежнему 2, ибо задачу надо вызывать и когда подключена зарядка, и когда отключена. Алгоритм тот же, профили On_charge и No_charge вызывают одну и ту же задачу.

Zaezd2008: Есть пример как совместить определение через GPS/Сеть? А то GPS вроде как сажает батарейку...

nick7zmail: Есть пример как совместить определение через GPS/Сеть? А то GPS вроде как сажает батарейку... Gps сажает. По-этому у меня выставлено только через сеть. NLOC переменная вроде вместо LOC Отправлено с моего Xperia Z через Tapatalk

Zaezd2008: LOCN переменная. В принципе одну сеть и оставлю, тем более что определяет неплохо.

ученик: Заработала система!!!! да... еще для удобства определения на чей телефон звонят, в таскере сделал переменную boss в неё забил имя владельца телефона что бы система проговаривала на чей телефон звонят и передаю две переменных boss, name boss и name вот скрипт :
say
($params['boss']);
say("Звонит  " .$params['name']);
 
то же самое и сделал что бы читал смс но только момент такой если номер записан в контакты проблем нет а если не записан то система молчит как партизан как победить данную проблему ?

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

Alexiy2: Уважаемые форумчане! Позвольте Вас, в начале своего диалога, поздравить с социалистическим праздником 1 МАЯ! ;-) Ну а теперь вопрос? Имеется highScreen PowerFive на 5-ом Андроиде. Установлен Tasker и плагин к нему Secure Settings. Так вот сам таскер, после гашения экрана, не желает выполнять задачи. Такое ощущение, что закрывается сама программа. Может надо какие то настройки и права дать таскер на пятерке. Телефон с рут правами. На телефоне с 4-ым андроидом таких проблем не имеем. Кто и что может подсказать. Уже столько времени бьюсь с этим агрегатом... Руки начинают опускаться.

nick7zmail: Уважаемые форумчане! Позвольте Вас, в начале своего диалога, поздравить с социалистическим праздником 1 МАЯ! ;-) Ну а теперь вопрос? Имеется highScreen PowerFive на 5-ом Андроиде. Установлен Tasker и плагин к нему Secure Settings. Так вот сам таскер, после гашения экрана, не желает выполнять задачи. Такое ощущение, что закрывается сама программа. Может надо какие то настройки и права дать таскер на пятерке. Телефон с рут правами. На телефоне с 4-ым андроидом таких проблем не имеем. Кто и что может подсказать. Уже столько времени бьюсь с этим агрегатом... Руки начинают опускаться. У меня экспириа с 5.1 андроидом...всё работает как часы. Проверьте в настройки>специальные возможности>таскер должен быть вкл. Отправлено с моего Xperia Z через Tapatalk

Alexiy2: Доброго времени суток, Господа! Не могу сообразить, направьте в нужное русло! Имеются профиля "дома", "вне дома" и "GpsSend" (который отправляет мои координаты каждые 5 минут на сервер). В целях экономии батареи задался включать профиль "GpsSend" только при срабатывании профиля "вне дома". Для этих целей создал глобальную переменную %HOME и присваиваю ей при включении профиля "дома" 1, а "вне дома" свойство 0. Профиль "GpsSend" срабатывает каждые 5 минут, но там же имеются галочки ОТ и ДО, где можно указать либо временной промежуток срабатывания данного профиля, либо указать переменную, при которой будет срабатывает данный профиль. Так вот и не могу сообразить, как сделать так, что бы при присвоении переменной %HOME равной нулю "GpsSend " начинал отправку координат, а при присвоении единицы - прекращал это дело?

nick7zmail: Заходите в таскере в профили - долгий тап на условии и можно добавить второе-третье и тд. условия. PS: раз в 5 минут, наверное, капец батарею высаживает)) Лично мне - раз в пол часа вполне достаточно. Отправлено с моего Xperia Z через Tapatalk

Alexiy2: С моими детьми и пяти минут много. За это время они могут оказаться где угодно. Поэтому то и задумался об экономии. Спасибо за совет. Все получилось! Отправлено с моего SM-T116 через Tapatalk

Amarok: В очередной раз накатило желание поэксперементировать. Возникло два вопроса: 1. как таскером считать значение переменной в Алисе? 2. Autovoice... Не могу понять, как работает HotPhrase.

chip: Всем привет. Вопрос относительно выведения сообщения о входящем звонке. Есть скрипт параметры которому передает таскер GET запросом: Скрипт: say("".$params." Звонит ".$params); Он выводит в чат сообщения формата: Алиса: Кирилл Звонит Вася Пупкин. Так вот, какое-то время назад в чат начало выводиться по 2-а сообщения подряд, выглядит так: 14:29 Алиса: Кирилл Звонит Вася Пупкин 14:29 Алиса: Кирилл Звонит Вася Пупкин кто подскажет куда копать? При чём, крайне редко, но выводится 1-о сообщение. Связи не заметил. Ранее отрабатывалось на этих же телефонах нормально. Настройки ни таскера ни мдм - не менялись.

nick7zmail: Перезагрузи сервер...У меня такое бывает из-за голосового движка, после вмешательства в системные объекты/методы...и по 2 и по 3 раза повторяет)) Отправлено с моего Xperia Z через Tapatalk

chip: после перезагрузки так-же... Голосовой, хм, у меня даже Yandex TTS не установлен в дополнениях.

nick7zmail: Голосовой, хм, у меня даже Yandex TTS не установлен в дополнениях. Погоди...хоть 1 TTS по-любому должен быть установлен в дополнениях...иначе как она у тебя говорит вообще?)) Раз повторилось после загрузки - попробуй в панели управления -> Console (вверху) Ввести say('какой-либо текст');  Тоже 2 раза повторит? Если нет - проблема в настройках таскера, надо искать.

chip: Голосовой, хм, у меня даже Yandex TTS не установлен в дополнениях. Погоди...хоть 1 TTS по-любому должен быть установлен в дополнениях...иначе как она у тебя говорит вообще?)) Тоже 2 раза повторит? Если нет - проблема в настройках таскера, надо искать. 1. никак не говорит с сервера, только через терминалы 2. нет, если запустить скрипт - выдает 1-е раз. В таскере ничего не менялось да и настроек там нет никаких кроме - по входящему звонку сделать гет запрос с такими то параметрами

nick7zmail: нет, если запустить скрипт - выдает 1-е раз. Вывод какой? Таскер делает запрос 2 раза... В таскере ничего не менялось да и настроек там нет никаких кроме - по входящему звонку сделать гет запрос с такими то параметрами Это ты зря)) это в задаче настроек мало...а в самом таскере - потеряться можно...половина на английском...и хоть я его неплохо знаю, но про некоторые настройки ток догадываюсь что они значат)))

ipz: Кто-нибудь пользуется AnyBalance? По отдельности AnyBalance работает. А в связке с таскером никак. В MDM прилетают сообщения следующего содержания: script=anybalance id=%anybal_acc_id; tariff=%anybal___tariff; balance=%anybal_balance; Т.е. вместо значений переменных AnyBalance названия.

lanket: Кто-нибудь пользуется AnyBalance? По отдельности AnyBalance работает. А в связке с таскером никак. В MDM прилетают сообщения следующего содержания: script=anybalance id=%anybal_acc_id; tariff=%anybal___tariff; balance=%anybal_balance; Т.е. вместо значений переменных AnyBalance названия. С AnyBalance не баловался, но судя по описанию переменным не присваиваются значения. Для вылавливания глюка для начала тот запрос в дебагер. Если запрос верный со значениями переменных то разбираетесь с МД. Если запрос с названиями переменных, как вы описали, то разбираетесь с таскером. На 4pda сильная поддержка по таскеру. нет, если запустить скрипт - выдает 1-е раз. Вывод какой? Таскер делает запрос 2 раза... В таскере ничего не менялось да и настроек там нет никаких кроме - по входящему звонку сделать гет запрос с такими то параметрами Это ты зря)) это в задаче настроек мало...а в самом таскере - потеряться можно...половина на английском...и хоть я его неплохо знаю, но про некоторые настройки ток догадываюсь что они значат))) Отправлено с моего Redmi Note 3 через Tapatalk

ipz: 4pda гуглится первым, только вот 896 страниц форума пугают... Если можно подробней, что за дебагер? В Таскере? Андроидом почти не пользовался, таскером всего пару дней... Ушел читать))

pdmitry2: Я пользуюсь any balance. Было такое. Перед отправкой данных в таскере, добавил паузу (у меня 120 сек). Any balance, не успевал обновиться и таскер отправлял просто названия переменных

ipz: Точно, еще при выборе профиля чек бокс `Wait for update ended`

[ Обсудить на форуме ]

 

MajorDomo

Информация

Проекты

Партнёры

edit SideBar

 
 
 

 

Blix theme adapted by David Gilbert, powered by PmWiki