Pokazywanie postów oznaczonych etykietą profil. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą profil. Pokaż wszystkie posty

27 listopada 2014

Właściwości profili i tasków

Gdy zaczynałem pisać ten wpis dotyczący właściwości profili i tasków wydawało mi się, że będzie on krótki, zajmie mi mało czasu i napiszę go bez zaglądania do pomocy Taskera. W trakcie pisania okazało się, że temat się rozrósł, a ja muszę przeczytać parę paragrafów pomocy i dowiedzieć się czegoś nowego. Zapraszam do lektury i komentowania.

Właściwości profili

Aby dostać się do właściwości profilu należy dłużej przytrzymać jego nazwę i w górnym pasku pojawią się dodatkowe klawisze, z których drugi od prawej strony prowadzi do właściwości danego profilu. Ekran właściwości prezentuje się następująco:

Priorytety tasków

Zanim przejdę do omawiania poszczególnych pozycji właściwości profilu muszę nieco przybliżyć sposób w jaki Takser traktuje taski oraz ich priorytety.
Gdy Tasker ma do wykonania jeden task to kolejno wykonuje jego wszystkie akcje. Jeśli jednak w kolejce do wykonania jest więcej tasków Tasker wykonuje je według następujących zasad:

  • nie może być wykonana więcej niż jedna akcja z danej grupy w tym samym czasie
  • task z wyższym priorytetem jest wykonywany przed taskiem z niższym priorytetem
  • taski o tych samych priorytetach wykonywane są kolejno (ich akcje mogą być wykonywane na przemian) zaczynając od tego, który został dodany do kolejki najwcześniej
  • wyjątek stanowi task będący potomkiem innego tasku, który zostanie wykonany przed pozostałymi taskami czekającymi w kolejce
Uważny czytelnik zapyta w tym miejscu o wspomniane w pierwszym punkcie grupy akcji. Akcje pod względem prędkości wykonywania i wpływu między sobą zostały podzielone na następujące grupy:
  • Speach: np. akcja Say
  • Javascript
  • Fix: wszelkie akcje związane z lokalizacją
  • Voice: akcja Get Voice
  • Proxy: akcje Display Brightness, Query Action, Photo, Photo Series, Photo Series Time
  • Proxy Scene: akcje Enter Key, Menu, Popup, Popup Task Buttons, Variable Query
  • Other Scenes: inne akcje wywołane przez scenę
  • Normal: wszystkie inne akcje
  • akcje Wait oraz Wait Until
Każdy uruchamiany task otrzymuje swój priorytet, który mówi o tym jak szybko będzie wykonany jeśli w kolejce czekają inne taski do wykonania. Im większa wartość priorytetu tym task będzie szybciej wykonany.
  • taski wejściowe profili ustawia się we właściwościach profilu w zakresie 1-10, domyślnie 5
  • taski wyjściowe profili mają priorytet ustawiony na wartość z właściwości profilu plus 11, domyślnie 16
  • taski skrótów i widżetów mają domyślnie ustawiony priorytet na 7, można go zmienić w ustawieniach Taskera
  • task uruchomiony przez klawisz Test na ekranie edycji tasku ma priorytet o wartości 10
  • task uruchomiony przez element sceny ma priorytet o jeden większy od priorytetu tasku, który wyświetlił scenę
Jeśli w kolejce czeka kilka tasków pochodzących od tego samego profilu (przykładowo task wejściowy i wyjściowy) to z domyślnymi ustawieniami mamy gwarancję, że task wyjściowy zacznie być wykonywany dopiero po całkowitym zakończeniu tasku wejściowego. Mimo, że task wyjściowy ma większy priorytet. Zachowanie to można zmienić o czym za chwilę.

Launched Task Priority

Ustawia wartość priorytetu tasku wejściowego profilu w zakresie 1-10. Domyślna wartość to 5. Od tej wartości zależy też wartość priorytetu tasku wyjściowego, który ustalany jest jako suma wartości ustawionej i 11. Domyślna wartość to 16.

Cooldown Time

Czas, po którym profil może stać się aktywny mierzony od momentu utraty aktywności przez ten profil. Restart systemu zeruje licznik czasu.
Ja używam tej funkcjonalności dla profilu, który uruchamia mi synchronizację danych z Dropboksem za pomocą aplikacji DropSync gdy telefon podłączony jest do ładowarki. Cooldown Time ustawiłem na 12 godzin i dzięki temu synchronizacja nie jest uruchamiana częściej niż 2 razy na dobę.

Limit Repeats

Ta opcja włącza limit powtórzeń aktywności profilu.

Remaining Repeats

W tym miejscu ustawia się limit ilości powtórzeń aktywności profilu.
Przykładowo jeśli ustawisz limit na 10, to za każdym razem gdy dany profil stanie się aktywny licznik ten zmniejszy się o 1, a gdy osiągnie 0, profil mimo spełnionych warunków kontekstów nie stanie się aktywny.

Delete On Zero Repeats

Zaznaczenie tej opcji spowoduje, że gdy limit ilości powtórzeń aktywności dojdzie do zera, Tasker usunie profil, którego tyczy się to ustawienie.

Restore Settings

Opcja ta decyduje czy przy dezaktywacji profilu będą przywracane wartości ustawień zmienionych za pomocą akcji typu ustawienie wykonanych w tasku wejściowym.

Enforce Task Order

Zaznaczenie tej opcji zapewnia zakończenie tasku wejściowego danego profilu przed rozpoczęciem tasku wyjściowego.
Przykładowo profil Test ma task wejściowy enter1, a w nim za pomocą akcji Perform Task uruchamiany jest task enter2, natomiast taskiem wyjściowym profilu jest exit1, w którym uruchamiany jest task exit2. Jeśli opcja Enforce Task Order jest zaznaczona to taski wyjściowe zaczną być wykonywane dopiero po zakończeniu tasków enter1 i enter2. Taski enter1 i enter2 będą wykonywane w zależności od nadanych im priorytetów.
Z wyłączoną opcją Enforce Task Order taski będą wykonywane w kolejności wynikającej z ich priorytetów, a skoro taski wyjściowe mają priorytety większe zostaną wykonane przed zakończeniem tasków wejściowych.

Show In Notification Pulldown

Opcja ta odpowiada za wyświetlanie nazwy profilu gdy jest on aktywny na powiadomieniu Taskera.

Właściwości tasków

Ekan właściwości tasku dostępny jest pod drugim klawiszem od prawej strony na dole ekranu edycji tasku i prezentuje się on tak:

Collision Handling

Czasami zdarzyć się może, że podczas wykonywania tasku jest on uruchamiany ponownie. Opcja ta decyduje jak Tasker ma postępować w takich sytuacjach. Możliwe są trzy warianty:

  • Abort New Task - Tasker zignoruje nową kopię tasku (to działanie jest domyślne)
  • Abort Existing Task - Tasker zatrzyma obecnie wykonywaną kopię tasku i zacznie wykonywanie nowej kopii
  • Run Both Together - Tasker będzie wykonywał obie kopie tasku równocześnie

Keep Device Awake

Domyślnie dla każdego tasku gwarantowany jest czas równy jednej minucie kiedy Tasker blokuje procesor urządzenia przed przejściem w stan uśpienia. W przypadku tasków, które mogą trwać dłużej zaznaczenie tej opcji zapewni utrzymanie aktywności procesora aż do pełnego wykonania tasku. Należy pamiętać, że w przypadku błędu w tasku, np. zapętlenia, może dojść do szybkiego rozładowania baterii jeśli ta opcja będzie zaznaczona.

6 sierpnia 2014

Tworzymy pierwszy profil

Przyszedł w końcu czas na własnoręczne stworzenie pierwszego profilu. Przedstawię krok po kroku jak stworzyć bardzo prosty profil wyświetlający tzw. tost "Witaj" po odblokowaniu ekranu. Do opisu załączę wyeksportowany plik xml do pobrania, opis wszystkich akcji i kontekstów oraz klip wideo, na którym pokażę, co i jak trzeba po kolei wykonać.

Ekran edycji tasku

Zaczniemy jednak od omówienia ekranu edycji tasku. Standardowo na dole mamy klawisz +, który umożliwia dodanie nowej akcji, w dolnym pasku jest jeszcze klawisz ze znakiem Play umożliwiający uruchomienie tasku. Dłuższe przytrzymanie palca na którejś z dodanych już akcji wyświetla na górze ekranu pasek umożliwiający kopiowanie, wklejanie i wyłączanie tej akcji. Wyłączona akcja oznaczona będzie fioletowym paskiem i nie będzie uruchamiana.

Profil "Witaj"

Zaczynamy tworzyć profil. Na zakładce profile Taskera naciskamy klawisz +. Pojawi się lista rodzajów kontekstów. Chcemy by nasz profil uaktywniał się przy odblokowaniu ekranu z listy wybieramy Event, a następnie z listy Display / Display Unlocked. W tym momencie Tasker wyświetli ekran konfiguracji tego kontekstu gdzie można wybrać priorytet kontekstu. Od priorytetu zależy pozycja tasku wejściowego profilu na liście oczekiwania (jeśli akurat wykonują się inne taski). W tym przypadku nie zależy nam na wysokim priorytecie więc pozostawiamy standardowy Normal.
Naciskamy klawisz Back i z listy, która się pokaże wybieramy New Task. W tym momencie Tasker zapyta o nazwę tasku. Nie ma konieczności podawania nazwy tasku ale na dłuższą metę dzięki nazwom tasków łatwiej się zorientować co i kiedy się uruchamia. W naszym przypadku nie wpisujemy nazwy zadania. Tasker przenosi nas do ekranu edycji tasku wejściowego.
Przy okazji tworzenia tego tasku użyjemy po raz pierwszy zmiennych. Nie są one w tym przypadku konieczne ale im szybciej zaczniesz ich używać tym szybciej je opanujesz. Naciskamy więc klawisz plus, z listy akcji wybieramy Variables / Variable Set. Na ekranie edycji tej akcji w polu Name wpisujemy %tekst (czyli tworzymy zmienną lokalną o nazwie %tekst), a w polu To wpisujemy Witaj (czyli nadajemy zmiennej wartość). Naciskamy klawisz wstecz i wracamy do ekranu edycji tasku. Znów naciskamy klawisz plus i wybieramy Alert / Flash. Na ekranie edycji tej akcji w polu Text wpisujemy %tekst oraz zaznaczamy opcję Long (by nasz tost dłużej trwał). Zadaniem akcji Flash będzie wyświetlenie na ekranie tekstu znajdującego się w zmiennej %tekst czyli słowa Witaj. Naciskamy klawisz wstecz i mamy przed sobą cały task tworzonego profilu. Po ponownym naciśnięciu klawisza wstecz widzimy gotowy profil. Ekrany te powinny wyglądać jak na poniższych zrzutach ekranu.

Jeśli wszystko wygląda prawidłowo możemy wyjść z Taskera, wyłączyć i włączyć ekran urządzenia i po odblokowaniu powinien pojawić się tost o treści "Witaj".

Rozpisany profil

Profile: Powitanie po odblokowaniu (152)
Event: Display Unlocked
Enter: Anon (160)
A1: Variable Set [ Name:%tekst To:Witaj Do Maths:Off Append:Off ]
A2: Flash [ Text:%tekst Long:On ]

Wideo

Pobieranie profilu

Profil Witaj [Tasker 4.4u2]

29 lipca 2014

Podstawowe pojęcia i omówienie interfejsu Taskera

Przy pierwszym uruchomieniu Taskera większość użytkowników nie wie jak zacząć na nim pracować. Wbrew temu co mogłoby się wydawać aplikacja ma bardzo przemyślany i logicznie zaprojektowany interfejs. Trzeba go jedynie poznać i się do niego przyzwyczaić. Jeśli ktoś ma ambicję by poznać Taskera to od razu proponuję wyłączyć Beginner Mode. Bez tego część możliwości aplikacji jest niewidoczna. Opcję tą wyłącza się w ustawieniach Preferences / UI.

Podstawowe pojęcia

Zanim zaczniemy omawiać wygląd okna i stawiać pierwsze kroki w automatyzacji naszego urządzenia należy zapoznać się z nazewnictwem poszczególnych elementów aplikacji by później łatwiej poruszać się w opisach możliwości Taskera.

Profil

Profilem nazywa się powiązanie kontekstu (warunków uruchomienia) z taskiem (zadaniem) do wykonania. Profil może mieć kilka kontekstów, pomiędzy którymi występuje operator logiczny ORAZ czyli muszą być wszystkie spełnione by profil stał się aktywny. Profil może mieć status włączony lub wyłączony. Jeśli jest wyłączony to pomimo spełnienia warunków jego kontekstów nie uaktywni się. Należy pamiętać, że wyłączenie profilu w trakcie jego aktywności spowoduje wykonanie tasku wyjściowego.

Task

Task (zadanie) jest zbiorem akcji do wykonania. W przypadku tasków powiązanych z profilem rozróżnia się task wejściowy (uruchamiany gdy profil staje się aktywny) i task wyjściowy (uruchamiany gdy profil przestaje być aktywny). Wyjątkiem od tego są profile uruchamiane kontekstem typu event (zdarzenie), które nie trwają w czasie (po prostu wykonywany jest task wejściowy i nie ma tasku wyjściowego). Przykładem kontekstu typu event jest włączenie ekranu. Jest to tylko zdarzenie i nie trwa ileś czasu. Task nie musi być powiązany z profilem. W takim wypadku, odnosząc się do języków programowania, pełni rolę procedury lub funkcji.

Scena

Scena jest zbudowanym przez użytkownika ekranem umożliwiającym wyświetlanie lub pobieranie danych.

Zmienna

Zmienna jest to konstrukcja programistyczna charakteryzująca się nazwą, typem oraz wartością, umożliwiająca odwoływanie się do jej wartości za pomocą jej nazwy. Ktoś zrozumiał? Upraszczając mamy sobie zmienna %TIME (nazwy zmiennych w Taskerze zawsze poprzedzane są znakiem % i muszą mieć długość minimum 3 znaków). Jest to zmienna na stałe wbudowana w Taskera i przez niego aktualizowana na bieżąco, a zawiera aktualny czas. Czyli jeśli projektując task potrzebujemy użyć aktualnej godziny to wystarczy, że odczytamy wartość ze zmiennej %TIME. Zmienne możemy tworzyć samemu i przechowywać w nich dane. Są to zmienne użytkownika. W Taskerze występują dwa rodzaje zmiennych użytkownika: lokalne i globalne. Zmienne globalne (ich nazwy muszą zawierać przynajmniej jedną wielką literę np. %Dom lub %doM) to takie, do których mamy dostęp we wszystkich taskach. We wcześniejszych wersjach Taskera zmienne globalne musiały mieć całe nazwy pisane wielkimi literami i ja z przyzwyczajenia stosuję tą zasadę. Zmienne lokalne (z nazwami pisanymi małymi literami np. %liczba) dostępne są tylko w obrębie jednego tasku. Jeśli nie ma potrzeby by wartość ze zmiennej była dostępna w innych taskach zaleca się stosować zmienne lokalne. W Taskerze nie ma podziału zmiennych w zależności od typów danych jak w wielu językach programowania. Należy pamiętać, że zmienne %Dom i %doM to całkowicie różne zmienne.

Kontekst

Kontekst to inaczej warunek aktywacji profilu. Warunkiem tym mogą być bardzo różne zdarzenia, przykładowo: data, czas, połączenie z siecią WiFi, uruchomienie wybranej aplikacji, podłączenie urządzenia do ładowarki czy spadek naładowania baterii do określonego poziomu. Część kontekstów ma określony czas trwania np. gdy poziom naładowania baterii zawiera się w przedziale 10-20%, ale są też konteksty typu event (zdarzenie), które wywołują uruchomienie tylko tasku wejściowego (profil uaktywniany takim kontekstem jest aktywny tylko przez chwilę).

Akcja

Akcję można opisać jak polecenie. Z akcji składają się taski. Akcją może być komenda warunkowa if albo polecenie włączenia WiFi. W taskerze akcje dzieli się na dwie grupy. Akcje zwykłe oraz akcje typu ustawienie. Te drugie odpowiedzialne są zmiany ustawień systemu (np. poziomu głośności czy włączenia Bluetooth). Akcje ustawień mają dość charakterystyczną cechę. Jeśli wykonane zostaną w tasku wejściowym profilu to po dezaktywacji profilu same przywrócą się do poprzedniej wartości. Przykładowo jeśli stworzymy profil noc, który ma być aktywny miedzy godzinami 23, a 7 rano i w tasku wejściowym dodamy akcję wyłączającą WiFi to rano gdy profil przestanie być aktywny WiFi automatycznie zostanie włączone mimo, że takiej akcji nie ma w tasku wyjściowym profilu. Akcje ustawień oznaczone są ikoną małego trybika.

Projekt

Projekt jest zbiorem profili i tasków, które tworzą jedną całość np. zarządzają ustawieniami telefonu w zależności od lokalizacji. Dzięki podziałowi profili na projekty można zachować porządek w Taskerze i łatwiej jest wyeksportować pliki dla innego użytkownika.

Wtyczka

Jak wiele innych aplikacji tak i Tasker ma możliwość korzystania z wtyczek dzięki czemu rozszerzane są możliwości programu. Pluginy mogą dodawać nowe akcje, konteksty oraz zmienne.

Interfejs Taskera

Główny ekran Taskera ma na górze 4 zakładki (z włączonym Beginner Mode tylko 3 zakładki): Profiles, Tasks, Scenes i Vars (czyli odpowiednio Profile, Taski, Sceny i Zmienne). Na dolnym pasku znajdują się zakładki projektów. W lewym górnym rogu znajduje się ikona Taskera służąca do włączania i wyłączania usługi programu (należy dłużej przytrzymać naciśniętą ikonę). W prawym dolnym rogu ekranu zawsze widoczny jest klawisz +, za pomocą którego można dodawać nowe profile, taski, sceny lub zmienne w zależności, od tego, która zakładka jest aktywna.

Oto przykładowy widok zakładki Profile.

Zakładka Zadania oraz Sceny.

Zakładka Zmienne

Dłuższe dotknięcie profilu, tasku, sceny czy zmiennej powoduje wyświetlenie paska z opcjami związanymi z danym elementem. Podobnie dłuższe dotknięcie górnych i dolnych (projektów) zakładek powoduje wyświetlenie dodatkowego menu z opcjami dla tych elementów. W przypadku zakładek projektów pozwala to dodać nowy projekt, importować projekt, usunąć/zmienić nazwę/ikonę/pozycję istniejącego projektu lub go wyeksportować. W przypadku zakładek Profile, Taski i Sceny dłuższe dotknięcie pozwala głównie na import odpowiednio profili, tasków i scen.

Importowanie projektów, profili, tasków, scen

Omawiając interfejs doszliśmy do bardzo ważnej funkcjonalności Taskera, a mianowicie importu i eksportu jego zawartości. Dzięki temu możemy nasz projekt/profil/task wyeksportować by ktoś mógł wykorzystać go w swoim urządzeniu.

Eksport elementów polega na dłuższym dotknięciu danego projektu/profilu/tasku/sceny i wybraniu opcji Menu / Export / XML to SD. W trakcie eksportu w pamięci urządzenia tworzone są pliki:

  • xxxxxx.prj.xml w folderze /sdcard/Tasker/projects/ dla projektów,
  • xxxxxx.prf.xml w folderze /sdcard/Tasker/profiles/ dla profili,
  • xxxxxx.tsk.xml w folderze /sdcard/Tasker/projects/ dla tasków,
  • xxxxxx.scn.xml w folderze /sdcard/Tasker/scenes/ dla scen.

W podobny sposób wykonuje się import elementów Taskera. Pliki xml należy skopiować do odpowiednich folderów w zależności od typów i następnie dłużej nacisnąć odpowiednią zakładkę projektu, profilu, tasku lub sceny i wybraniu opcji Import.

Należy pamiętać, że Tasker zaimportuje dane tylko wtedy gdy wersja aplikacji jest taka sama lub wyższa niż na urządzeniu gdzie przeprowadzono eksport. Czasem powoduje to konieczność zainstalowania Taskera w wersji beta o czym pisałem w pierwszym wpisie.

Kopia zapasowa

Mówi się, że "ludzie dzielą się na tych co robią kopie zapasowe i na tych co... będą je robić". Kopia zapasowa w przypadku Taskera to bardzo ważna sprawa. Utrata tworzonych przez długie tygodnie profili byłaby katastrofą. Autor Taskera pomyślał o tym i po wybraniu Menu / Data mamy dostęp do opcji Backup i Restore. W ten sposób utworzony backup zawiera wszystkie projekty, profile, taski i sceny jakie mamy wprowadzone w Taskerze.

Ja osobiście polecam włączenie jeszcze tworzenie automatycznych kopii bezpieczeństwa. Dokonuje się tego w ustawieniach aplikacji na zakładce MISC. Opcja nazywa się Maximum Auto-Backup Age i można wybrać jak stare kopie bezpieczeństwa ma przechowywać aplikacja. Ja ustawiam tą opcję na 2 dni. Mam wtedy pewność, że jeśli coś zmienię bez utworzenia ręcznej kopii bezpieczeństwa to w ciągu 2 dni zauważę, że coś jest nie tak i przywrócę poprzednia wersję.

Na dziś to koniec. W następnym wpisie zaczniemy tworzyć profile czyli zaczniemy prawdziwą zabawę z Taskerem.