PDA

Ver la Versión Completa : [ ARTICULO ] Trucos y Consejos


ATaskREADOS
04/02/17, 00:02:54
El objetivo es tener un listado de pequeñas ideas/funcionalidades que son poco conocidas/claras con una breve explicación.
Podéis comentar/debatir y aportar vuestros trucos/consejos para añadirlos al listado.



(CONDICIONES)

Operadores Booleanos
XOR < OR < AND < XOR+ < OR+ < AND+
Ordenados de menor a mayor prioridad.
XOR significa que solo una condición puede ser verdadera, no las 2.
Un booleano coge la condición a su izquierda si el booleano anterior tiene menor prioridad.

%111=1 ; %222=2 ; %333=3
if %111=1 XOR+ %222=0 AND %333=0
Esta condición significa (1 Y 3) O (2 Y 3) y es falsa.
Con un XOR significaría 1 O (2 Y 3) y sería verdadera.



ESCENAS

Cambiar Paleta de Colores
Utilizando una variable local con una cadena de códigos de color hexadecimales.
Ver comentario #4 (http://www.htcmania.com/showpost.php?p=25734702&postcount=4)



IU > TAREAS

Nombre de Tareas
Usar un carácter especial al inicio como un guión bajo con las tareas que no pertenecen a ningún perfil para que aparezcan primero.



IU > VARIABLES

Limpiar Variable
No borrar el contenido manualmente, se queda establecida con "nada".
Al ponerla en una condición que queremos "no establecida" falla.
Presionar largo sobre la variable y tocar la X que aparece arriba.



PERFILES > CONTEXTOS > ESTADO > DÍA/HORA

Hora Nocturna de Finde
Las horas van por día y no por tramo. Empiezan a las 00:00 y terminan a las 23:59.
En esta combinación la madrugada de Lunes a Viernes va hasta las 06:00, Sábado y Domingo hasta las 08:00.
El perfil Finde se activa Viernes a las 22:59, se desactiva Domingo a las 00:00 y se activa el perfil Semana.
Finde sin el viernes no cogería la madrugada de sábado hasta las 08:00 porque se activaría a las 22:59.
Semana sin el domingo no cogería la madrugada de lunes hasta las 06:00 porque se activaría a las 23:00.

Perfil: Semana
L, M, X, J, V, D de 23 hasta 06:00
%PACTIVE !~ *,Finde,*

Perfil: Finde
V, S, D de 22:59 hasta 08:00



PERFILES > CONTEXTOS > ESTADO > HORA

Variable en Segundos
Se pueden usar segundos lo que evita tener que convertirlos.
Esto facilita el uso de una variable nuestra con %TIMES o %UPS.



PERFILES > CONTEXTOS > EVENTO > REINICIO

Limpiar Variables
Es conveniente hacerlo a las que no deberían tener valor en un reinicio por lo siguiente:

- Un perfil se quedó atascado anteriormente

- El móvil se apaga inesperadamente



PERFILES > TAREA DE ENTRADA/SALIDA

Detener Tarea con Espera

- Verificando el perfil:
A1: Esperar 10 segundos
A2: Detener si PACTIVE ~ *,nombre del perfil,*

- Con una tarea única usando la variable caller1
Más información aquí (http://www.htcmania.com/showthread.php?t=1202566)



TAREAS > ACCIONES > TAREA > IR A ACCIÓN > ETIQUETA ACCIÓN

Etiquetas
Las acciones tienen al final una casilla denominada etiqueta que permite escribir comentarios y usarlos con la acción "ir a" en otra acción.
No utilizar la opción Número de acción, si cambia el orden de las acciones hay que modificarlo.


Tamaño y Color
Tamaño: poner <hX> al inicio donde X es un valor entre 1-6.
Color: poner <font color=tucolor> al inicio después del tamaño donde tucolor toma estos valores:
Aqua, Black, Blue, Fuchsia, Gray, Green, Lime, Maroon, Navy, Olive, Purple, Red, Silver, Teal, White, Yellow.
Más información aquí (http://www.htcmania.com/showthread.php?p=12811445)



TAREAS > ACCIONES > VARIABLE > BUSCAR Y REEMPLAZAR

Grupos Regex
Permiten cambiar el orden del contenido o reemplazar la variable completamente.
Por cada () envolviendo lo que se busca, se crea un bloque de información numerado secuencialmente.
En reemplazar se pone $ seguido del número del bloque.

Texto:Diario 25-01-2017 España
Buscar:(25)-(01)-(2017) Reemplazar con:$3-$2-$1
Obtenemos: Diario 2017-01-25 España

Para reemplazar todo, introducir en la búsqueda .*? al principio y .* al final.
Buscar:.*?(25-01-2017).* Reemplazar con:$1
Obtenemos:25-01-2017



TAREAS > ACCIONES > VARIABLE > ESTABLECER VARIABLE

Referencia a Variable
Establecer una variable con el nombre de otra permite manejar el contenido de la segunda a través de %%.
Se pueden establecer en una variable cuantas referencias se quiera.

%Cellid=123 ; %Test=Cellid ; %%Test=123



Firmado: GraphicAdventure

SmartPhoneLover
04/02/17, 00:25:35
Interesante! ;)

Caravantes
06/02/17, 00:52:05
Hola. En primer lugar quiero agradecer a GraphicAdventure por su interesante colección de sugerencias. Para todos los que anden buscando "Trucos y consejos", les indico otros lugares donde pueden encontrar más.

En nuestra "Guía de cabecera para usuarios de Tasker (http://www.htcmania.com/showthread.php?t=614108)", Andreas Ødegård incluye un capítulo específico para este tema: "Lección 5: Trucos y consejos (http://www.htcmania.com/showthread.php?t=637972)".

Posteriormente, yo mismo hice un post con similar planteamiento: "Trucos y consejos para usuarios de Tasker (http://www.htcmania.com/showthread.php?t=814267)", invitando para que otros compañeros añadieran en ese hilo sus propios trucos. Pero esa invitación tampoco tuvo mucha respuesta.

Esperemos que el nuevo formato que ha utilizado GraphicAdventure tenga más éxito y podamos ir reuniendo aquí muchos más trucos.

cace0353
20/02/17, 13:15:56
Desde hace tiempo "enriquezco" mis aplicaciones con la posibilidad de mostrar las escenas con distintas paletas de colores.

Para ello establecia una serie de variables globales (%ColorBase, %ColorFondo, %ColorRecuadro, %ColorTexto, %ColorResaltado, etc) a las que, mediante una escena de configuración y seleccionando un boton del color base se asignaban a estas variables los códigos HEX de una paleta determinada...

Recientemente, siguiendo con mi obsesión en reducir al mínimo el uso de variable globales porque ocupan espacio en memoria RAM y ralentizan la ejecución del programa, he revisado el método y lo he mejorado de la siguiente manera:

Al inicio de la tarea lanzadora establezco una variable local única que es una cadena de códigos de color hexadecimales de manera que las opciones de color se separan con un símbolo "|" y cada uno de los colores de la paleta se separa con un ";" siguiendo este esquema:

Establecer Variable: %colores A: #colorbase1;#colorfondo1;#colorrecuadro1;#colortex to1;#colorresaltado1|#colorbase2;#colorfondo2;#col orrecuadro2;#colortexto2;#colorresaltado2|#colorba se3;#colorfondo3;#colorrecuadro3;#colortexto3;#col orresaltado3|#colorbase4;#colorfondo4;#colorrecuad ro4;#colortexto4;#colorresaltado4

A continuación hago una extracción de los valores de cada opción de color mediante Separar Variable %colores utilizando el separador | con lo que quedan las hijas de la matriz:

%colores1 = #colorbase1;#colorfondo1;#colorrecuadro1;#colortex to1;#colorresaltado1
%colores2 = #colorbase2;#colorfondo2;#colorrecuadro2;#colortex to2;#colorresaltado2
%colores3 = #colorbase3;#colorfondo3;#colorrecuadro3;#colortex to3;#colorresaltado3
%colores4 = #colorbase4;#colorfondo4;#colorrecuadro4;#colortex to4;#colorresaltado4

Establezco UNA sola variable global para el color: %Gama y la inicializo (le doy un valor por defecto) si está vacia a "1"

Selecciono la variable "hija" correspondiente:
Establecer Variable %color a %colores(%Gama)

Y extraigo los valores que tendrán todos los elementos de las escenas mediante un Separar Variable %color usando como separador ";"

Entonces, ya en las escenas, establezco los colores de cada elemento a la variable que corresponda: %color1, %color2, %color3,....

Para cambiar de color entro en el menú de configuración y elijo que gama de colores deseo utilizar (en la primera ejecución como %Gama vale 1 serán los valores guardados en la lista %colores1) pulsando sobre el botón del color correspondiente. En la pestaña Click en Item de cada muestra de color se cambia el valor de la variable %Gama y se ejecuta la tarea lanzadora de nuevo (se reinicializa la aplicación) para mostrar el nuevo aspecto de nuestra aplicación...

Este proceso de asignación de colores hay que hacerlo al final del proceso de depuración y documentación del código ya que, a partir de este momento, sólo vamos a ver los textos y los elementos de las escenas que tengan color fijo, ya que en fase de edición las variables locales están vacias...

Saludos!

GraphicAdventure
07/03/17, 10:30:27
Cace, ya incluí to sugerencia al listado.
Dado que se necesitan varios pasos, puse una breve explicación con el enlace a tu comentario.

vicholp
30/06/17, 08:27:06
Perfil: Semana
L, M, X, J, V, D de 23 hasta 06:00
%PACTIVE !~ *,Finde,*

Perfil: Finde
V, S, D de 22:59 hasta 08:00

Espectacular recopilación, se agradece. Sin embargo, me parece que en el perfil Finde, dados los horarios, se activaria el viernes desde las 00:00 hasta las 08:00. Y así mismo, Semana, el domingo desde las 00:00 hasta las 06:00. La verdad no estoy muy seguro, ya que es bastante complejo el manejo de horarios en Tasker, pero me es dudoso el perfil. De todas maneras, muy buen recopilatorio

SmartPhoneLover
30/06/17, 14:28:05
Siento molestar y escribir en el hilo incorrecto, pero ya deje comentarios en su momento en los posts correspondientes y nadie contestó.
Hay algún grupo en WhatsApp o Telegram de Tasker de HTCMania? Comentaron que sí, pero nunca nadie me agregó, ni nada.

WillyWeb
30/06/17, 18:17:33
Hay algún grupo en WhatsApp o Telegram de Tasker de HTCMania? Comentaron que sí, pero nunca nadie me agregó, ni nada.

Debe existir, pero no tengo la menor idea que quién lo gestiona. Prueba enviando un MP a alguien de los que participaron en esa conversación.

WillyWeb
30/06/17, 18:27:50
... me parece que en el perfil Finde, dados los horarios, se activaria el viernes desde las 00:00 hasta las 08:00. Y así mismo, Semana, el domingo desde las 00:00 hasta las 06:00 ...

Tienes parte de razón en lo que dices. Si te fijas sólo en los días/horas el V y el D se activan ambos perfiles. Pero si tienes en cuenta la segunda condición del perfil "Semana"...

%PACTIVE !~ *,Finde,*

...la cosa cambia. :silbando:

Esa condición obliga al perfil "Semana" a desactivarse cuando se activa el perfil "Finde". Con eso en mente comprobarás que nunca están activos ambos perfiles al mismo tiempo.

Caravantes
30/06/17, 23:44:29
Hay algún grupo en WhatsApp o Telegram de Tasker de HTCMania? Comentaron que sí, pero nunca nadie me agregó, ni nada.

En el buscador de HTCmania, una búsqueda de TASKER TELEGRAM te habría llevado a un hilo titulado "GRUPO TELEGRAM PARA HABLAR DE TASKER".
http://www.htcmania.com/showpost.php?p=22106018&postcount=21
Si quieres que te añadan al grupo, lee la última línea (firma) que pone Zeus en el mensaje que he enlazado, o bien solicítalo mediante un post/respuesta en ese mismo hilo.
http://www.htcmania.com/showthread.php?t=1042863

danko9696
01/07/17, 01:34:30
Ahí va un truquillo, si alguien quiere puede implementar un OCR para recoger texto a partir de fotos o screenshots. Es un script muy simple pero con una funcionalidad que muy posiblemente no hayáis pensado y que resulta muy sencilla de aprovechar (crear catálogos a partir de etiquetas, tarjetas de visita, etc...). Y lo bueno es que si bien muchos OCR son online este es offline.

Usando esta aplicación para una pantalla con 1920x1080 de resolución (necesario modificar los valores de los taps si es distinta):
https://play.google.com/store/apps/details?id=com.offline.ocr.english.image.to.text&hl=en



loadApp("TextScanner","",false);
wait(300);
shell("input tap 1007 150",true,5); // boton de opciones
wait(120);
shell("input tap 680 140",true,5); // import
wait(1600);
shell("input tap 225 1275",true,5); // gallery
wait(120);
shell("input tap 437 300",true,5); // entrar en fotos de cámara. Esto puede variar según la app de galería concreta o si son screenshots u otra carpeta
wait(120);
shell("input tap 133 344",true,5); // coger primera foto
wait(60);
shell("input tap 1019 65",true,5); // ok a primera foto
wait(200);

// ** opcional, por si es necesario recortar la imagen antes de aplicar el OCR
//shell("input swipe 39 1208 435 910 800",true,5); // deslizar desde abajo izda
//wait(500);
//shell("input swipe 1079 700 700 880 800",true,5); // deslizar desde arriba dcha
//wait(500);
// **

shell("input tap 500 1730",true,5); //grab
wait(500);
shell("input tap 166 1740",true,5); // copiar a clipboard
shell("am force-stop com.offline.ocr.english.image.to.text",true,5); // matar OCR, para mayor consistencia, y nos evitamos un tap

A partir de ahí tenemos en el clipboard el texto reconocido. Tocará meterlo en una variable, retocarlo para corregir errores frecuentes según el uso que le vayamos a dar, ejecutandolo multiples veces para ver cuales son estos y actuar en consecuencia hasta que tenga éxito el 99% de las veces.

Este OCR en concreto va bastante bien pero no tanto ni de lejos como otros online o de PC de sobremesa. Aún así, si alguien conoce uno mejor (por ejemplo que funcione mediante linea de comandos shell en lugar de tener que enviar pulsaciones) estaría muy bien.

Versión ultra compacta:

loadApp("TextScanner","",false);
wait(300);
v_tap = "tap 1007 150_150*tap 680 140_1600*tap 225 1275_120*tap 437 300_120*tap 133 344_60*tap 1019 65_200*swipe 39 1208 435 910 800_500*swipe 1079 700 700 880 800_500*tap 500 1730_500*tap 166 1740_60";
var v_mat = v_tap.split("*");
for (i=0; i< v_mat.length ; i++)
{ shell("input " + v_mat[i].split("_")[0],true,5);
wait(v_mat[i].split("_")[1]); }
shell("am force-stop com.offline.ocr.english.image.to.text",true,5);
Versión compacta y usando una función reutilizable desde otros puntos del código:


// comienzo
loadApp("TextScanner","",false);
wait(300);
fuTapSwipe("tap 1007 150_150_opciones*tap 680 140_1600_import*tap 225 1275_120_gallery*tap 437 300_120_entrar en fotos de cámara*tap 133 344_60_coger primera foto*tap 1019 65_200_ok a primera foto*swipe 39 1208 435 910 800_500_deslizar desde abajo izda*swipe 1079 700 700 880 800_500_deslizar desde arriba dcha*tap 500 1730_500_grab*tap 166 1740_60_copiar a clipboard");

shell("am force-stop com.offline.ocr.english.image.to.text",true,5); // matar OCR
// fin

function fuTapSwipe(pCadena)
{
var v_mat = pCadena.split("*");
for (i=0; i< v_mat.length ; i++)
{ shell("input " + v_mat[i].split("_")[0],true,5);
wait(v_mat[i].split("_")[1]); }
}

vicholp
01/07/17, 06:25:41
Tienes parte de razón en lo que dices. Si te fijas sólo en los días/horas el V y el D se activan ambos perfiles. Pero si tienes en cuenta la segunda condición del perfil "Semana"...

%PACTIVE !~ *,Finde,*

...la cosa cambia. :silbando:

Esa condición obliga al perfil "Semana" a desactivarse cuando se activa el perfil "Finde". Con eso en mente comprobarás que nunca están activos ambos perfiles al mismo tiempo.
Muchas gracias, ese condicional me confundia bastante. Saludos :ok:

GraphicAdventure
03/07/17, 14:28:27
me parece que en el perfil Finde, dados los horarios, se activaria el viernes desde las 00:00 hasta las 08:00.

Te aclaro, no se activa viernes a las 00:00, se activa a las 22:59.
Para que pille la madrugada del día en cuestión, el día anterior tiene que estar presente.


Y así mismo, Semana, el domingo desde las 00:00 hasta las 06:00.

Semana se activa lunes a las 00:00, domingo no se activa porque Finde está activo domingo hasta las 23:59.
Esto está explicado en el ejemplo.