![]() |
|
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|||||
|
|||||
|
La misteriosa acción ESPERAR-HASTA
Este tema procede de otro hilo ( http://www.htcmania.com/showthread.php?t=714519 ) donde surgió como asunto lateral y ha cobrado cierta importancia por lo que he decidido crear un hilo específico y dejar aquél para lo que se creo inicialmente.
Tasker tiene una acción ESPERAR HASTA, en la que se puede especificar un tiempo y una condición. No entiendo cómo funciona. El manual ( http://tasker.dinglisch.net/userguid.../ah_index.html ), dice lo siguiente: Esperar hastaAhora copio los mensajes que hemos cruzado en aquel hilo ya referenciado: Cita:
Cita:
Cita:
Cita:
Cita:
He comprobado que las tareas de Mlesir son correctas. Haciendo lo que él dice, la ejecución de la segunda tarea modifica la variable y eso hace que la primera tarea deje de estar retenida en la acción ESPERAR HASTA, y lo hace de forma instantánea, sin el periodo de espera previsto. He pensado que tal vez la diferencia pueda estar en que Mlesir usa una variable de usuario (%Times) más una variable interna de Tasker (%TIMES), mientras que yo solo usaba una variable interna (%TIME). Para tratar de comprobar esta hipótesis he preparado unas tareas similares a las de Mlesir, pero con una sola variable de usuario, así: Gshj (99) A1: Establecer variable [ Nombre:%Alfa A:aa Calcular:Encendido Añadir:Apagado ] A2: Esperar hasta [ MS:0 Segundos:0 Minutos:1 Horas:0 Días:0 ] Si (if) [ %Alfa !~ aa ] A3: Notificación sonora [ Título:Alfa Texto: Icono:null Número:0 Archivo de sonido: Prioridad:3 ] Kxl (100) A1: Establecer variable [ Nombre:%Alfa A:bbbbbbbbbb Calcular:Apagado Añadir:Apagado ] La sorpresa es que ni siquiera funciona bien la primera tarea. La acción ESPERAR HASTA no parece trabajar, y lo más curioso es que la NOTIFICACIÓN tampoco aparece, a pesar de que la ejecución finaliza enseguida. Provisionalmente, la única explicación que me parece razonable es que la acción ESPERAR HASTA provoca un error y Tasker aborta la tarea. Agradeceré que algún compañero verifique este problema e informe de sus resultados. Así pues, parece que de momento tenemos tres escenarios posibles: - Que la acción haga comprobaciones cada cierto tiempo como yo decía inicialmente. - Que la acción pase del tiempo de comprobación y funcione instantáneamente como demuestran las pruebas de Mlesir. - Que todo falle y la acción no funcione, como parece ser que ocurre con el último experimento. Sugerencia (para otros y para mí): si alguien tiene tiempo que investigue un poco en Google con las palabras "tasker wait until". |
|
|
|
#2
|
||||
|
||||
|
Caravantes a mi me funciona la tarea y lo hace inmediatamente después de ejecutar la segunda, ósea no espera al minuto para comprobar. Creo que el problema está al establecer %Alfa A:aa y seleccionar calcular:activado; yo no lo he activado. Mi pregunta es ¿Para es necesario activar la opción calcular aquí? ¿Esa opción no es para realizar operaciones (%Alfa+5)?
|
|
#3
|
||||
|
||||
|
Tienes toda la razón, ha sido un despiste mío y eso era lo que provocaba que mi tarea funcionase mal. Desmarcando esa casilla también me funciona como dices. Muchas gracias.
|
|
#4
|
|
Para mi que el temava a estar en que unas variables tasker las monitoriza y otras no. Así que el intervalo solo tendría sentido y efecto con las q no monitoriza. A ver si tengo tiempo y lo miro.
|
|
#5
|
||||
|
||||
|
Para mí lo que tendría sentido es que esta opción funcionará de otra manera, ósea que si en X tiempo la variable no ha cambiado continuara la tarea, creo que de esa forma sería mucho más útil. Pero la única explicación lógica parece lo que dices tú, porque según el manual debería mirar si cambiado la variable cada X tiempo.
Última edición por darkopro Día 12/11/13 a las 13:45:11 |
|
#6
|
||||
|
||||
|
He intentado matar varios pájaros de un tiro, quería saber si la opción esperar hasta era capaz de interactuar también con los ajustes:
- Preferencias comprobación ubicación móvil 120 segundos 1 Establecer variable %prueba A: %LOCN 2 Establecer variable %tmi A: %TIMES 3 Esperar 1 minuto hasta %LOCN NO COINCIDE: %prueba 4 Establecer variable %tmf A: %TIMES 5 Establecer variable %tmt A: %tmf-%tmi calcular:activado 5 Flash: El tiempo tardado en localizar la nueva ubicación es de %tpt segundos El tiempo ha sido de 83 segundos, el tiempo entre que tasker ha establecido la variable %tmi y la última comprobación de la ubicación por red. Así que, está acción no es capaz de saltarse los ajustes de comprobación y la variable %LOCN la compila al instante. |
|
#7
|
||||
|
||||
|
Cita:
01- Establecer variable %TiempoMaximo a 120 (son segundos) 02- Establecer variable %TiempoInicial a %TIMES 03- (Etiqueta) COMPROBAR 04- Ir a acción (etiqueta) SALIDA si %Variable1 es-distinta-de %Variable2 05- Esperar 1 segundo 06- Establecer variable %TiempoTranscurrido a %TIMES-%TiempoInicial (calcular) 07- Ir a acción (etiqueta) COMPROBAR si %TiempoTranscurrido < %TiempoMaximo 08- (Etiqueta) SALIDA 09- Si %Variable1 ~ %Variable2 10- ... (acciones que deben ejecutarse si se ha agotado el tiempo máximo) 11- Else 12- ... (acciones que deben ejecutarse si las variables han dejado de ser iguales) 13- Fin-Si He puesto las variables con alguna mayúscula para que sean más inteligibles, pero sería más eficaz usando variables locales. También es posible modificar ligeramente este esquema para construirlo como una SubTaea que pueda ser invocada desde cualquier otra tarea principal, para que esa tarea principal no se vea complicada con estas menudencias. Al invocar la subtarea se pueden pasar parámetros flexibles como el tiempo de espera, por ejemplo; de esa forma la subtarea puede funcionar de distinto modo según cómo haya sido invocada. Cita:
Yo estuve mirando los resultados de Google respecto a la búsqueda de "Tasker wait until" y no encontré nada relacionado con lo que aquí estamos hablando. |
|
#8
|
||||
|
||||
|
Cita:
|
|
#9
|
||||
|
||||
|
Cita:
El resultado ha sido muy sorprendente, en vez de acortar el tiempo el resultado ha sido de 121 segundos |
| Gracias de parte de: | ||
|
#10
|
|
Bueno pues he posteado la cuestión en el foro oficial:
https://groups.google.com/forum/m/?f...er/DL2EBdVQRzM Si pudieras participar Caravantes genial pq no me entero muy bien. Quizá pudieras poner otro ejemplo. |
|
#11
|
||||
|
||||
|
Cita:
Creo que has demostrado muy bien que el funcionamiento de la acción no se corresponde con lo dicho en el manual. Y has conseguido que el autor de la app intervenga, reconozca que la explicación del manual es confusa y decida cambiarlo (al menos en la versión anglófona, supongo)... y de paso encuentra que hay un error de programación en esa acción, cosa que promete arreglar próximamente. Conclusión: lo has hecho muy bien. Pero lo que más me ha gustado ha sido el título que has puesto al hilo: "Wait until action Fix, problem, bug or we are not very clever?" que viene a ser como "Aclaración de la acción ESPERAR-HASTA: hay un problema, un error o acaso es que no somos bastante listos?". Eso ha sido genial.
|
|
#12
|
|
Jeje gracias es que parecia eso no? Que no eramos capaces Si lo que me queda pendiente es darle las gracias a Pent y al tal Bob Hensen mostrarle un ejemplo de la gracia y la mala leche española no? Yo al menos no interpreto su ultimo post de una manera no positiva tu que crees? A ver si alguien que sepa ingles bien me lo puede confirmar, no vaya a ser que no capte alguna cosa y en realidad no haya querido decir que no somos muy listos, sobre todo antes de cagarme en su pastelera madre.
Última edición por mlesir Día 12/12/13 a las 09:37:48 |
|
#13
|
||||
|
||||
|
Yo interpreto todas las intervenciones positivamente, no atisbo nada raro ni irónico. El único pequeño problema es que aquí habías dicho que también le darías las gracias a Bob Hensen, y se te ha olvidado hacerlo. El bueno de Bob se merece una mención porque es quien explicitamente te agradece que hayas insistido en investigar y aclarar el lío, y también es quien más se esfuerza en contestar directamente a tu pregunta: "They are NOT not very clever!"; "To answer your original question, It's a bug ;>)". Venga, envíale un agradecimiento.
|
|
#14
|
|
Jeje, no, no se me ha olvidado. Mejor lo dejamos como esta. Como se suele decir mejor no menearlo que ya no me duele pero todavía me escuece.
|
|
#15
|
|
Este tema ya tiene varias semanas pero aporto la información.
(Me falta tiempo para poder estar más al corriente.) La condición 'Esperar Hasta' es verificada de nuevo si alguna tarea se ejecuta (incluso si no hace referencia a la variable) o cuando termina el tiempo especificado porque provoca que las tareas pendientes de ejecución (queue) sean verificadas otra vez. Si una variable ha cambiado de valor (ej.: TIME) y se cumple la condición, no se termina inmediatamente porque nada ha forzado la verificación de las tareas pendientes de ejecución (queue). El cambio de valor de una variable por sí sola no verifica de nuevo el queue, ej. %WIFI, lo que pasa es que algún perfil activa alguna tarea que fuerza la verificación del queue. En la prueba de Caravantes: Basura (102) A1: Esperar hasta [ MS:0 Segundos:0 Minutos:10 Horas:0 Días:0 ] Si (if) [ %TIME > 22.35 ] A2: Notificación sonora [ Título:Tiempo Texto: Icono:null Número:0 Archivo de sonido: Prioridad:3 ] Si ejecutas la tarea a las 22:35, vuelve atrás a la lista de tareas y a las 22.36 entra y ves que la condición se cumple (está verde) pero no se ha detenido. Basta con que Tasker ejecute una tarea cualquiera como un flash y se termina sin esperar el tiempo restante. La de mlesir, como ejecuta una tarea que además hace que se cumpla la condición se termina al momento. Y la de Darkopro alguna tarea manual o automática forzó la verificación del queue, en la segunda prueba como le has dado poco tiempo seguramente tardó mucho más para encontrarse. No utilizo esa función tampoco puedo precisar mucho, pero siempre se tiene que actualizar el queue para que termine sin esperar el tiempo restante. La información del manual no estaba del todo precisa y Pent la modificó pero el funcionamiento de 'Esperar Hasta' sigue igual, Pent pensó que había un bug pero después rectificó diciendo que no. Citando: ">p.s. just realized that Wait Until is not being reevaluated when relevant user-variable values change, will fix that. Was wrong about that, because the action which changes the variable causes the pending task queue to be reevaluated (which reevaluates the condition). Pent" Fin de cita |
|
#16
|
|
Hay 2 bugs relacionados con la acción 'esperar', no tienen relación con 'esperar hasta', pero lo menciono por si alguien ha sufrido comportamientos raros en Tasker.
El 1º bug se dá cuando hay una espera en ejecución y se iejecutan ciertas acciones (decir con continuar tarea deshabilitado, AutoContacts plugin), las acciones siguientes se bloquean hasta que termine la espera. Puse el tema en google groups y Pent ya lo arregló en la última beta. https://groups.google.com/forum/#!to...er/OmvCpneJhb8 El 2º si se ejecuta otra espera pero con una condición, apesar de que la condición no se cumple, la espera se ejecuta y con la diferencia de tiempo entre la primera y no el tiempo especificado. Ejecuto una espera de 20 segundos, pasados 5 segundos ejecuto otra de 10 segundos si %Test ~ 1, %Test no coincide con 1 pero la espera se ejecuta y será de 5 segundos y no 10. También está en el mismo enlace para que Pent lo corrija. |
| Los siguientes 2 usuarios han agradecido a GraphicAdventure su comentario: | ||
|
#17
|
|
Graphic enorme el aporte lo postearé en el hilo de noticias para que se entere el máximo número de gente.
|
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 12:26:53 (GMT +1)
HTCMania: líderes desde el 2007



Eso ha sido genial.



