Acceder

Ver la Versión Completa : [ CONSULTA ] Tarea para cambiar las preferencias de tasker


mpiero
30/10/13, 11:46:01
Estoy creando mi propio modo noche, en donde desactivo datos, wifi,... y quería que en modo noche se cambiaran las preferencias de tasker con pantalla apagada, concretamente el Tiempo de comprobaciones con pantalla apagada, y el Tiempo de espera en comprobaciones de pantalla apagada.

En la tarea en cuestión, al añadir la accion: Tasker -> Establec. Prefs. Tasker, elijo Comprobaciones con Pantalla Apagada (segs.), y le pongo un valor, por ejemplo 3600, pero al salir y volver entrar me pone -1 ¿? ¿sabeis porque no puedo cambiar este valor?.
La idea sería que en modo noche evitar wakeups al máximo para minimizar el consumo de batería.

Por otro lado, también quiero desactivar los perfiles menos el de modo noche en dicha tarea, y he ido uno a uno con todos los perfiles con la accion: Tasker -> Estado del perfil, en la lupa elijo el perfil y en valor Apagado.
Pero, ¿Sabeis si hay alguna manera de indicarle con una sola orden que desactive todos menos uno (el modo noche por ejemplo)?

Caravantes
30/10/13, 16:00:32
Por otro lado, también quiero desactivar los perfiles menos el de modo noche en dicha tarea, y he ido uno a uno con todos los perfiles con la accion: Tasker -> Estado del perfil, en la lupa elijo el perfil y en valor Apagado.
Pero, ¿Sabeis si hay alguna manera de indicarle con una sola orden que desactive todos menos uno (el modo noche por ejemplo)?

Sí hay un modo de desactivar todos los perfiles, aunque no es con UNA SOLA ORDEN sino con una secuencia de acciones. Veamos. Según la guía de Tasker, la variable %PENABLED contiene los perfiles habilitados en el momento actual; en concreto contiene la lista de perfiles habilitados -separados por comas-, en orden de creación (los perfiles duplicados sólo aparecen una vez en la lista). Es posible copiar esa información a una variable para trabajarla como si fuera una matriz:

1- Establecer variable %Perfiles a %PENABLED
2- Separar variable %Perfiles, usando una coma (,) como separador.
Con esto obtenemos una matriz %Perfiles() con los nombres de cada perfil que estaba habilitado.
3- For variable %perfil items %Perfiles()
4- Estado del Perfil %perfil Desactivar Si %perfil es distinto a Noche
5- Fin-For

Luego, para volver a habilitarlos... lamentablemente Tasker no tiene una variable %PDISABLED que contenga la lista de los perfiles deshabilitados. Pero podemos usar la lista de perfiles que anteriormente estaban habilitados, y que habíamos guardado en la matriz %Perfiles(). Es por eso que puse una letra mayúscula al nombre de esa variable, para que fuese variable Global y no se perdiera al terminar la primera tarea. La nueva tarea de rehabilitar perfiles es así de sencilla:
1- For variable %perfil items %Perfiles()
2- Estado del Perfil %perfil Activar Si %perfil es distinto a Noche
3- Fin-For

Ahora mismo solo necesitas una excepción (Noche) porque seguramente tengas pocos perfiles, pero eso puede complicarse en el futuro cuando tal vez tengas más perfiles que no quieras deshabilitar. Eso significaría complicar la tarea metiendo otras condiciones SI-IF (una para cada exepción adicional). Pero piensa que puedes añadir al planteamiento anterior una leve modificación para considerar más perifles que deban ser excepciones. Hazte una variable %Pexcepciones que incluya los nombres de todos los perfiles que no deban ser desabilitados, separados por comas. De momento solo tienes uno así que %Pexcepciones será igual a ",Noche,". El el futuro puedes añadir ahí más nombres de otros perfiles que no quieras deshabilitar: ",Noche,Urgencias,Despertador,"

Y luego sustituyes la acción 4 por
4- Estado del Perfil %perfil Desactivar Si %Pexcepciones no coincide con *%perfil*
Con eso, en una sola acción salvas todas las excepciones sin cambiar nada de la tarea.

mpiero
30/10/13, 20:24:51
Lo he probado y funciona!!!
Cosillas:

1) Al generar el array %Perfiles, se genera una primera entrada vacia (Perfiles1), ya que el %PENABLED empieza por , (perfil1,perfil2,perfil3).
Para que no intente activar/desactivar esta primera falsa, he puesto una condicion de Si '%Perfiles(2) Ajustado' no entre en la condicion ya sale un error (aunque supongo que no pasaria nada).
No se sí hay alguna otra manera de saltarse ese primer elemento, ¿quizá con un %Perfiles(2:) en el for: For variable %perfil items %Perfiles(2:)?

2) Si ejecuto por error o torpeza el Desactivar perfiles 2 veces seguidas, la segunda vez hace que el array contega el único perfil activo 'Modo Noche', con lo cual luego no activa los desactivados.
Para arreglarlo he hecho una condición de que si %Perfiles(3) no ajustado (solo hay un elemento en el array) detenga la ejecución.

Supongo que iré encontrado detallitos, pero por ahora parece que chosca bien.

Respecto al tema de 'En la tarea en cuestión, al añadir la accion: Tasker -> Establec. Prefs. Tasker-...' comentado en el post 1 sabes algo?


Ah, y me olvidadaba, como puedo destruir totalmente una variable por programación? Solo he visto la opción de limpiar, pero la variable sigue ahí.

Salu2.

Caravantes
31/10/13, 00:17:40
Lo he probado y funciona!!!... Para arreglarlo he hecho una condición de que si %Perfiles(3) no ajustado (solo hay un elemento en el array) detenga la ejecución.

Bien, hecho, sobre todo las correcciones y ajustes que has añadido.

Se me ha ocurrido otra forma de manejar mejor las excepciones, los perfiles que no quieres deshabilitar. Bastaría que el nombre de esos perfiles tuviera alguna característica especial, como por ejemplo que esos nombres de perfil terminasen siempre con un guión "Noche-", "Alarma-", etc. y luego...
4- Estado del Perfil %perfil Desactivar Si %perfil no coincide con *-

En Preferencias, Monitor, Tiempos con la pantalla apagada, Todas las comprobaciones (segundos)... yo sí puedo poner ahí 3600 y parece que lo memoriza bien porque luego vuelvo a preferencias y veo que sigue con 3600. No uses coma ni punto para los millares, pon los cuatro dígitos seguidos sin más.

Para destruir una variable... debiera bastar con limpiarla... Si no desaparece supongo que sea porque esa variable sigue estando nombrada (usada) en alguna tarea. Tasker siempre mantiene vigentes las variables globales que has establecido en las tareas.

mpiero
31/10/13, 09:21:46
Bien, hecho, sobre todo las correcciones y ajustes que has añadido.

Se me ha ocurrido otra forma de manejar mejor las excepciones, los perfiles que no quieres deshabilitar. Bastaría que el nombre de esos perfiles tuviera alguna característica especial, como por ejemplo que esos nombres de perfil terminasen siempre con un guión "Noche-", "Alarma-", etc. y luego...
4- Estado del Perfil %perfil Desactivar Si %perfil no coincide con *-

En Preferencias, Monitor, Tiempos con la pantalla apagada, Todas las comprobaciones (segundos)... yo sí puedo poner ahí 3600 y parece que lo memoriza bien porque luego vuelvo a preferencias y veo que sigue con 3600. No uses coma ni punto para los millares, pon los cuatro dígitos seguidos sin más.

Para destruir una variable... debiera bastar con limpiarla... Si no desaparece supongo que sea porque esa variable sigue estando nombrada (usada) en alguna tarea. Tasker siempre mantiene vigentes las variables globales que has establecido en las tareas.
Buena idea lo de incluir una palabra clave en las tareas, he optado por (N) al final, osea que la condicion sería *(N).

Respecto a lo variar las preferencias de tasker me sucede al establecerlas mendiante acción, si lo hago manualmente desde el men de Preferencias si que lo cambia, pero si creo una tarea que haga la acción:
Tasker -> Establec. Prefs. Tasker -> Comprobaciones con Pantalla Apagada (segs.) y pongo un valor númerico, por ejemplo 3600, al salir de la acción y volver para editarla me aparece -1.

Caravantes
31/10/13, 15:09:29
Tasker -> Establec. Prefs. Tasker -> Comprobaciones con Pantalla Apagada (segs.) y pongo un valor númerico, por ejemplo 3600, al salir de la acción y volver para editarla me aparece -1.

Acabo de crear una tarea para hacer esa misma prueba creando una tarea con la acción
Tasker -> Establec. Prefs. Tasker -> Comprobaciones con Pantalla Apagada (segs.) y pongo 3600. No he marcado la casilla CONTINUAR TAREA TRAS ERROR, y he puesto en la tarea una segunda acción de notificación. Al lanzar la tarea todo parece ir bien, la notificación aparece. Luego voy a mirar en Preferencias, Monitor, Tiempos con la pantalla apagada, Todas las comprobaciones (segundos)... y sí tengo ahí los 3600. Manualmente he vuelto a poner los 600 que siempre tengo establecidos. No tengo ni idea de por qué no te funciona. He mirado la ayuda y no dice nada al respecto.

mlesir
31/10/13, 17:29:22
Idea remota y a lo mejor absurda pero has probado a en preferencias de tasker permitir accesibilidad?

mpiero
31/10/13, 19:31:07
Pues a mi no me va. Aparte que no cambia el valor al ejecutar la tarea, al volver a editarla me aparece -1.
x mlesir pues si te refieres a Preferencias -> Varios -> Permitir acceso externo, si que está marcado.
Mi versión es la 4.2b7m, igual es un bug de la versión.

mlesir
31/10/13, 19:54:54
Pues tiene toda la pinta de ser un bufa comentalo a pent por correo a ver q te dice.

mpiero
31/10/13, 19:58:16
pent

Quien? Donde?

mlesir
31/10/13, 21:41:39
Vale jeje se me olvida q no tienes pq saberlo Pent es el nombre del creador de tasker.En la pagina de google play de tasker tienes su correo.
Otra cosa q puedes hacer es instalar la versión del play .Yo desde luego no a consejo ponerse betas de tasker.Si ya las normales ya tienen a veces bugs,ni te cuento una beta.Luego pasa que te vuelves loco con una cosa pensando q es lo que haces mal y resulta q a lo mejor es un bug. A no ser claro, que necesites usar una cosa q soló este en la beta.

mlesir
31/10/13, 21:57:37
Por cierto como ya ha pasado antes, sea o no sea este el problema cuando uséis una beta decirlo y tenerlo en cuenta cuando tengáis un problema porque lo primero que deberíais hacer es mirar en la pagina oficial los posibles bug q tiene la beta.
Un saludo Mpiero y espero ver tu perfil publicado por aquí cuando lo acabes.

mpiero
01/11/13, 14:11:21
No lo dudes, en cuanto haya testado bien lo publico

mlesir
01/11/13, 14:16:48
Darkopro he visto tu agradecimiento lo cual me hace pensar ...no tendrás tu también una beta?

darkopro
01/11/13, 18:35:09
Darkopro he visto tu agradecimiento lo cual me hace pensar ...no tendrás tu también una beta?

No, que va el mío es el normal del play store. Pero mientras te leía pensaba que tenías toda la razón, que cuando tengamos cualquier problema cuántos más datos os demos mejor porque bastante locos os tendremos que llevar, al menos, yo jejeje