вариант использования сервиса IFTTT

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

вариант использования сервиса IFTTT

Сообщение Vovix » Ср янв 27, 2016 1:56 pm

Хочу поделиться вариантом использования этого - https://ifttt.com/wtf,
но сначала немного вступления:

<начало вступления>
Возникла, в своё время, у меня потребность точно (удобно, надежно) определять нахождение меня дома. Да конечно есть замечательные и простые варианты, которые я конечно использовал, например если принять за основу, что я и мой телефон неразлучны, то:

1) наиболее просто - это ждать появления в домашнем Wi-Fi моего телефона (перехода IP-адреса привязанного к мену в online).

Но у меня iPhone, а он живет в домашней сети своей жизнью - если в данный момент на нем не используют Wi-Fi, то он перестает отвечать на пинги (т.е. переходит, для сети, в режим offline), что приводит к разрушению всей идеи контроля!

2) использовать модуль GPS с программой для iPhone.

Проверенно - очень жрет батарею!

3) использовать замечательный модуль http://majordomo.smartliving.ru/forum/v ... f=4&t=1528

Всё замечательно, но батарею всё-равно ест хорошо!

И вот тут мне подвернулся сервис https://ifttt.com/wtf

тестирование в течении 1 месяца показало отличные результаты, но при установке этого всего придется немного замарочиться (вариант для Apple).
<окончание вступления>

И так, что понадобиться (в моём варианте):

- зарегистрироваться на https://ifttt.com/wtf
- иметь установленным на сервер с MDM сервис Dropbox
- использовать модуль MDM Папки (watchfolders)


1) создать в сервисе IFTTT рецепт (Recipe), который будет создавать файл в Dropbox с определенным именем, например: _vovix_enter_home_location_{{OccurredAt}}
где vovix - идентификатор пользователя
enter - что сделал (пришел - enter или ушел - exit)
home - куда пришел (ушел)
location - признак для удобства поиска файла в дальнейшем
{{OccurredAt}} - системная переменная IFTTT - дата и время создания файла
т.е. файл будет таким например: _vovix_exit_home_location_january_27__2016_at_1006am.txt

выглядеть это на сайте IFTTT будет примерно так:
Скриншот 2016-01-27 14.32.46.png
Скриншот 2016-01-27 14.32.46.png (35.96 КБ) 3818 просмотров
2) далее необходимо создать в модуле Папки например такую запись (обратите внимание на название папки Dropbox (путь) - у вас будет своя!):
Скриншот 2016-01-27 14.36.40.png
Скриншот 2016-01-27 14.36.40.png (47.58 КБ) 3818 просмотров
3) создадим Скрипт (Сценарий): if_user_enter_or_exit у меня такой (внимание у меня этот скрипт завязан на структуру свойств пользователя, в которой указывается пол и альтернативные имена):

Код: Выделить всё

// установим внутреннюю кодировку символов
mb_internal_encoding("UTF-8");


$fn = explode("_", $params['FILENAME']); // раскладываем имя файла в массив

//say ("0 - ".$fn[0],-1); // путь к файлу
//say ("1 - ".$fn[1],-1); // имя User
//say ("2 - ".$fn[2],-1); // что сделал: enter/exit
//say ("3 - ".$fn[3],-1); // куда пришел/ушел

$user='unknown';

// переберем всех пользователей
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
        // проверим, может это главное имя и перебирать альтернативы имён тогда не надо! 
        if (gg($obj['TITLE'].".fullName")==$fn[1]) {
            $user=$obj['TITLE']; 
        } else {
            
            $altName=gg($obj['TITLE'].'.altName');
         
             // проверим - а есть-ли в альтернативных именах такая подстрока?
            $inc = mb_stripos($altName,$fn[1]);
             
             $user = ($inc === false) ? $user : $obj['TITLE'];

        }
}

$gender=gg($user.'.gender');
$ending1=($gender<>'ж') ? 'ёл' : 'ла';

if ($fn[2]=='enter') {

 switch ($fn[3]) {
    
      case 'home':
  
        callMethod($user.'.gotHome');
          say (gg($user.'.fullName').' приш'.$ending1.' домой.',-1);
          // отключим слежение - раз USER дома (экономия батареи)
        sg ($user.'.monitor',0); 
        break;
  
    case 'office':
  
        say (gg($user.'.fullName').' приш'.$ending1.' в офис.',-1);
          // отключим слежение - раз USER в офисе (экономия батареи)
        sg ($user.'.monitor',0);
        break;
  
    default:
  
          //say ("А куда пришел?", -1);
}

} elseif ($fn[2]=='exit') {

switch ($fn[3]) {
    
      case 'home':
  
        callMethod($user.'.outOfHome');
          say (gg($user.'.fullName').' уш'.$ending1.' из дома.',-1);
          // Включим слежение - раз USER ушел 
         // sg ($user.".monitor",1); 
        break;
  
    case 'office':
  
        say (gg($user.'.fullName').' уш'.$ending1.' из офиса.',-1);
          // отключим слежение - раз USER в офисе (экономия батареи)
        // sg ($user.".monitor",0);
        break;
  
    default:
  
          //say ("А от куда ушел?", -1);
}
 
} else {

 //say ("А что сделал-то?", -1);
 
}
 
вообще, возможно с IFTTT (или вообще другим способом) можно сделать как-то всё проще, но...
я как всегда пошел другим путем...

ОБЯЗАТЕЛЬНО (естественно) ПРИЛОЖЕНИЕ IFTTT ДОЛЖНО БЫТЬ НА iPhone!
Последний раз редактировалось Vovix Ср янв 27, 2016 3:46 pm, всего редактировалось 1 раз.
За это сообщение автора Vovix поблагодарили (всего 4):
olehs (Ср янв 27, 2016 3:30 pm) • odinvolk (Вс янв 07, 2018 9:33 am) • directman66 (Чт фев 01, 2018 9:25 am) • TrDA (Сб фев 03, 2018 5:31 pm)
Рейтинг: 5.06%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
sergejey
Site Admin
Сообщения: 4275
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1469 раз
Контактная информация:

Re: вариант использования сервиса IFTTT

Сообщение sergejey » Ср янв 27, 2016 3:16 pm

Отлично получилось!
Ещё рекомендую обратить внимание на канал Maker на IFFTTT: https://ifttt.com/maker

Этот канал как раз предназначен для хитрых интеграций всего и вся :)
За это сообщение автора sergejey поблагодарил:
olehs (Ср янв 27, 2016 3:30 pm)
Рейтинг: 1.27%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
olehs
Сообщения: 1111
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 84 раза
Поблагодарили: 329 раз

Re: вариант использования сервиса IFTTT

Сообщение olehs » Ср янв 27, 2016 3:32 pm

Супер. Спасибо за идеи!
А какие сложности на iOS?
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

Re: вариант использования сервиса IFTTT

Сообщение Vovix » Ср янв 27, 2016 3:40 pm

sergejey писал(а):Отлично получилось!
Ещё рекомендую обратить внимание на канал Maker на IFFTTT: https://ifttt.com/maker

Этот канал как раз предназначен для хитрых интеграций всего и вся :)
Спасибо!
Да я видел этот канал, но небыло времени поразбираться!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

Re: вариант использования сервиса IFTTT

Сообщение Vovix » Ср янв 27, 2016 3:43 pm

olehs писал(а):Супер. Спасибо за идеи!
А какие сложности на iOS?
Как-раз эти "танцы с бубном" и нужны в основном для iOS (iPhone), т.к. такой программы как Таскер для Андроид, нет для этой системы!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
olehs
Сообщения: 1111
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 84 раза
Поблагодарили: 329 раз

Re: вариант использования сервиса IFTTT

Сообщение olehs » Чт янв 28, 2016 5:16 pm

sergejey писал(а):Отлично получилось!
Ещё рекомендую обратить внимание на канал Maker на IFFTTT: https://ifttt.com/maker

Этот канал как раз предназначен для хитрых интеграций всего и вся :)
Попробовал канал Maker. Не проходят запросы. Есть подозрение, что Maker не поддерживает Basic-авторизацию в URL, а прямых настроек там нету.

UPD. Заработало (была ошибка в пароле). Запрос такого вида
http://user:password@external_ip:80/objects/?object=oleg&op=set&p=atHome&v=1
Ответить