Tasker Para hablar de todo lo relacionado con la aplicación tasker


 
Herramientas
  #1  
Viejo 31/10/16, 11:03:50
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
Problema curioso con variables en Tasker

Estuve probando con variables y resulta que ahora cada variable (global) que cree y decida exportar x resultado a ella, Tasker automáticamente me crea una segunda variable con el mismo nombre base, pero agregando un número al final de ésta última.
Recuerdo que es me empezó a a pasar cuando intente tirar de: %xxxx(<), pues antes no me pasa.

Por si no me habeis comprendido, desde ese momento hasta ahora mismo Tasker no para de crearme una segunda variable con el número asociado a ésta segunda, y en vez de volcar el contenido que quiero en la variable principal, me lo almacena en la segunda versión creada por Tasker mismo.

De otro modo:
1. Creo acción para listar archivos, y establesco la variable de salida de datos llamada '%TestOut'.
2. Ejecuto la acción...
3. Compruebo el resultado almacenado, y resulta que en la sección de VARIABLES hay una nueva variable que YO NO HE CREADO llamada '%TestOut1', y en ésta es donde Tasker arrojó el resultado de la acción nº1. La variable original esta VACÍA!

Última edición por SmartPhoneLover Día 01/11/16 a las 09:10:54
Responder Con Cita


  #2  
Viejo 31/10/16, 11:19:06
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
Seguramente no has reparado en ello hasta ahora, pero esa es la forma de funcionar de un array.
Responder Con Cita
  #3  
Viejo 31/10/16, 11:27:46
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
Si, lo sabía. Por eso he intentado con vaciarla usando: Variables > Array Clear, y pongo el nombre de %TestOut y en otra el de la variable %TestOut1. Pero sigue pasando lo mismo.

O quizás lo esté entendiendo y haciendo mal... ¿?
Responder Con Cita
  #4  
Viejo 31/10/16, 11:55:18
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Cita:
Originalmente Escrito por SmartPhoneLover Ver Mensaje
O quizás lo esté entendiendo y haciendo mal... ¿?
Un array puede ser creado automáticamente como consecuencia de algunas acciones, como por ejemplo la acción SEPARAR VARIABLE (o "dividir" variable). Quizá sea que estás utilizando alguna de estas acciones y por eso aparece una sub-variable del array. Si nos muestras la tarea seguramente podamos hacer un diagnóstico más preciso. Porsupuesto, siempre existe la posibilidad de que tu Tasker no esté funcionando bien, cosa que también podríamos intentar comprobar copiando esa tarea en otros dispositivos para ver si el problema desaparece.
Responder Con Cita
  #5  
Viejo 31/10/16, 11:59:22
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
La cosa es que ya elimine las anteriores acciones que creo fue donde surgió el problema. Ahora solo me queda el inconveniente de que cada variable global que cree en Tasker, sea en el proyecto o sección (pestañas) que sea, siempre se me duplica la variable original y Tasker crea una segunda con el contenido que debería estar en la que YO he creado.
Responder Con Cita
  #6  
Viejo 31/10/16, 12:13:52
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por SmartPhoneLover Ver Mensaje
Si, lo sabía. Por eso he intentado con vaciarla usando: Variables > Array Clear, y pongo el nombre de %TestOut y en otra el de la variable %TestOut1. Pero sigue pasando lo mismo.

O quizás lo esté entendiendo y haciendo mal... ¿?
Me parece que Array Clear elimina el contenido, no la variable.
Responder Con Cita
  #7  
Viejo 31/10/16, 12:15:29
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
Me acabo de acordar que tengo habilitada la opción en Tasker de crear backups automáticos. Voy a ver si en alguno de esos archivos figura el cambio inicial a partir del cual surgió todo, y si logro encontrar la anterior a eso para ver si es posible restaurarlo.
Responder Con Cita
  #8  
Viejo 31/10/16, 12:23:30
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Cita:
Originalmente Escrito por SmartPhoneLover Ver Mensaje
La cosa es que ya elimine las anteriores acciones que creo fue donde surgió el problema. Ahora solo me queda el inconveniente de que cada variable global que cree en Tasker, sea en el proyecto o sección (pestañas) que sea, siempre se me duplica la variable original y Tasker crea una segunda con el contenido que debería estar en la que YO he creado.
Repito: si nos muestras una de esas tareas que te duplican la variable original tal vez podamos hacer un diagnóstico preciso, y/o podamos probar esa tarea en otros dispositivos.

Como parece que tú no estás por la labor, lo haré yo:

A1: Establecer variable [ Nombre:%Alfa A:"bla bla bla" Calcular:Apagado Añadir:Apagado ]
A2: Flash [ Texto:%Alfa1 Largo:Apagado ]

El flash me muestra el texto "%Alfa1" como era de esperar porque esa variable %Alfa1 está vacía. O sea que yo no tengo el problema que has descrito (en tu primer post), o al menos no lo tengo con esta tarea de prueba. Si quieres, copia esta tarea en tu dispositivo y miras a ver si te funciona bien como a mí... o te funciona tal y como has descrito en tu primer post.

Si no pones tareas concretas... creo que todo van a ser especulaciones e hipotésis con poca base real, y supongo que eso no es lo que quieres.
Responder Con Cita
  #9  
Viejo 31/10/16, 17:10:20
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
No es que no quiera hacerlo, no había pensado devidamente en lo que me comentastes en el mensaje anterior, y entendí otra cosa. Aquí te dejo un ejemplo de lo que TÚ querías que te pusiese por escrito, además de unas imagenes:


Tarea de prueba:
A1: Variable Set [ Name:%Alpha To:Hola Do Maths:Off Append:Off ]
A2: Flash [ Text:%Alpha Long:Off ]
A3: List Files [ Dir:/sdcard/Tasker/Archivos/TTS/audiotemp Match: Include Hidden Files:Off Use Root:Off Variable:%AlphaOut ]
A4: Flash [ Text:%AlphaOut Long:Off ]

Te preguntarás por qué he creado las acciones de tal modo que el primer grupo (A1 y A2) almacene un valor x en la variable 'Alpha', y el otro con similar función, pero almacenando el valor en la variable 'AlphaOut'.
Bien, lo he hecho porque no sé si estoy delirando pero he notado que Tasker solo me hace eso de repetir las variables cuando utilizó la acción de listar archivos bajo un directorio (cualquier). En vez, cuando ejecuto SOLO las dos primeras acciones la variable queda correctamente llena y no se produce ninguna sub-variable de 'Alpha'.
Empienzo a pensar que el problema esta con esa función de Lista Archivos, que da la casualidad que es con la que empezé a hacer esas pruebas hoy a la mañana cuando me empezó a suceder todo lo comentado hasta ahora.


Aquí dejo unas capturas después de crear las acciones, y el contenido de sus variables posterior a su ejecuión:

Responder Con Cita
  #10  
Viejo 31/10/16, 19:06:19
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por SmartPhoneLover Ver Mensaje
Tarea de prueba:
A1: Variable Set [ Name:%Alpha To:Hola Do Maths:Off Append:Off ]
A2: Flash [ Text:%Alpha Long:Off ]
A3: List Files [ Dir:/sdcard/Tasker/Archivos/TTS/audiotemp Match: Include Hidden Files:Off Use Root:Off Variable:%AlphaOut ]
A4: Flash [ Text:%AlphaOut Long:Off ]
En A1 defines la variable global %Alpha y en A2 muestras con un flash su valor. El mismo que puedes comprobar en la imagen. Todo correcto.

En A3 usas "List Files" y estableces que la salida se guarde en la variable global %AlphaOut. Lo que hace esa acción es generar un array con un elemento por archivo, es decir %AlphaOut1 [o dicho de otro modo, %AlphaOut(1) que sería lo mismo] contiene el primer archivo del listado y así hasta el final. Esa acción no guarda nada en %AlphaOut, como puedes comprobar en el flash de A4 y en la imagen.

Como te he comentado antes, ese es el comportamiento normal de un array en Tasker.

¿Dónde ves el "problema"?
Responder Con Cita
  #11  
Viejo 31/10/16, 21:43:55
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
Al final he decidido por reinstalar Tasker y borrar todo rastro de archivos asociados a él, y restauré todo a como antes. Pero el problema sigue ocurriendo.

Aunque ahora cabe decir que el problema ni está con tasker, ni con la vriable ni nada. Así es como funciona la función de listar archivos en tasker verdad? cada elemento que encuentra lo almacena en una array. Por lo que lo de la desinatalación y restauración ha sido tiempo perdido.
Responder Con Cita
  #12  
Viejo 31/10/16, 22:05:12
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
Cita:
Originalmente Escrito por SmartPhoneLover Ver Mensaje
... Así es como funciona la función de listar archivos en tasker verdad? cada elemento que encuentra lo almacena en una array. Por lo que lo de la desinatalación y restauración ha sido tiempo perdido.
No es cada elemento lo que mete en un array. Es la lista de archivos de la carpeta que estás procesando lo que mete en un array de forma que cada archivo es un elemento de ese array.

Ya te lo he contado esta mañana aquí...

http://www.htcmania.com/showthread.php?t=1247843

La reinstalación no hacía falta, aunque nunca está de más hacer limpieza.
Responder Con Cita
  #13  
Viejo 31/10/16, 23:13:08
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Cita:
Originalmente Escrito por Caravantes Ver Mensaje
Un array puede ser creado automáticamente como consecuencia de algunas acciones, como por ejemplo la acción SEPARAR VARIABLE (o "dividir" variable). Quizá sea que estás utilizando alguna de estas acciones y por eso aparece una sub-variable del array. Si nos muestras la tarea seguramente podamos hacer un diagnóstico más preciso.
ListarArchivos.jpg

Es la ayuda de esa acción.
Creo que con ésto hemos terminado de resolver el misterio.
Responder Con Cita
  #14  
Viejo 01/11/16, 09:06:52
Avatar de SmartPhoneLover
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
Mensajes: 542
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar
Mencionado: 4 comentarios
Tagged: 1 hilos
Si correcto Caravantes, el gran misterio queda resuelto. Bueno muchas gracias a los dos por la ayuda, y sorry por lo cabezón que puedo llegar a ser a veces
Ahora ya comprendo un poco mejor como funcionan las variables y los arrays, y la relación entre ellas ;)

Nota: estaba confundido y tenía metido en la cabeza la idea de que antes no me hacía eso Tasker, pero era porque usaba el comando shell (find /...) en vez de la opción nativa de Tasker de listar archivos. Ésta última es en la que no se me crean sub-variables por cada elemento (+ruta).
Responder Con Cita
  #15  
Viejo 01/11/16, 17:22:18
Avatar de danko9696
danko9696 danko9696 no está en línea
Usuario muy activo
Mensajes: 2,371
 
Fecha de registro: ago 2012
Mensajes: 2,371
Modelo de smartphone: Mate 8
Tu operador: Yoigo
Mencionado: 34 comentarios
Tagged: 1 hilos
El tema es que Tasker no usa arrays propiamente dichos sino pseudoarrays, por eso lo mejor es usar con ellos siempre variables locales, nunca globales. Y para guardar resultados a nivel global hacer antes un join usando algún caracter "raro" como separador, de modo que todo quede en una única variable global. Luego para trabajar con ellos nada más empezar haces un split hacia un array local.

Y esto es con un solo nivel. Usando la misma técnica puedes almacenar varios niveles usando más de un separador en una única variable global.

Así se obtiene más consistencia y evitas variables descontroladas que a lo mejor por usar para algo muy puntual has olvidado vaciar antes de terminar la tarea.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a danko9696 su comentario:
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Otro software para Android > Tasker


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 23:33:19 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007