|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Elementos de escena y variables
Uff, vaya lio me estoy montando. A ver, voy a tratar de explicarme. Tengo una escena que aparece cuando hago clic en un widget transparente en la pantalla de bloqueo. Contiene tres botones creados como texto. Uno es activacion/desactivacion de wifi, otro igual pero para el bluetooth y el tercero igual pero alterna entre sonido, vibracion y silencio. En la escena estos elementos estan ocultos hasta que la creo y muestro al lanzar la tarea (clic en widget). Aquí en la tarea establezco la visibilidad de los elementos en funcion del estado en el que se encuentren, de forma tal que wifi sale en color blanco si esta activado (%WIFI~on) o gris si esta desactivado (%WIFI~off). Trabaja perfecto la escena. Para los tres elementos. Pero ahora se me ha ocurrido meter dos elementos mas de los cuales no existen variables internas, un elemento es desactivar/activar un perfil. Y el otro activar/desactivar con secure setting (Samsung) el power saver mode (ahorro de energia). Pues bien. Trabaja perfecto, pero no puedo meter ninguna variable interna de estos elementos en la tarea que muestra la escena porque obviamente no existen. Y por tanto no puedo hacer visible, por ejemplo, ahorro en color blanco cuando esta en ahorro de energía o ahorro en color gris cuando no esta en modo ahorro. Imagino, porque es lo que llevo horas intentando, que el asunto se resuelve creando variables. Pero se ve que no tengo ni idea. He creado una variable (%Ahorro) y le he dado mil vueltas, pero nada.
Última edición por emiegna Día 04/07/14 a las 07:11:13. |
|
#2
|
||||
|
||||
Las variables internas de Tasker son actualizadas automáticamente por el propio Tasker. Pero Tasker no va a cambiar ni actualizar tus variables de usuario, has de hacerlo tú. Tienes que crearte una tarea que active el power saver mode y que también haga una segunda acción consistente en poner en la variable %Ahorro el valor "on". - Activar el power saver mode - Establecer variable %Ahorro, on Luego te creas otra tarea que desactive el power saver mode y que también ponga en la variable %Ahorro el valor "off". - Desactivar el power saver mode - Establecer variable %Ahorro, off En realidad los valores "on" y "off" pueden dar problemas por confusiones entre las mayúsculas y las minúsculas ("on" no es igual que "On" ni "ON"); desde esa perspectiva quizá sea preferible utilizar los valores 1 (uno) y 0 (cero) en los que no hay confusión posible. Después de que hayas ejecutado por primera vez una de estas dos tareas ya tienes la variable %Ahorro con el valor correspondiente y creo que ya podrás manejarla desde la escena igual que manejas las variables internas de Tasker. Dependiendo del contenido de la variable %Ahorro puedes hacer que el indicador correspondiente se vea blanco brillante o en gris atenuado. Y cuando toques ese elemento puedes lanzar la tarea que corresponda. ¿Era ese el problema? Ahora que lo has entendido (eso espero), te sugiero que realmente no hagas dos tareas sino una sola, del tipo siguiente: - Si(if) Ahorro ~ 0 - - Activar el power saver mode - - Establecer variable %Ahorro a 1 - Else - -Desactivar el power saver mode - - Establecer variable %Ahorro a 0 - Finsi (Endif) Si también has entendido esta tarea, todavía te propongo otro método para simplificarla más: - Activar el power saver mode, si(if) %Ahorro ~ 0 - Desactivar el power saver mode, si(if) %Ahorro ~ 1 - Establecer variable %Ahorro a 1 - %Ahorro, Calcular Activado. Una ventaja de usar 1 (uno) y 0 (cero) es que se pueden hacer una operación matemática (hay que tener activada la casilla de CALCULAR) que comute ese valor, cambiando el que tuviera la variable por el otro. Si tenía 1 cambia a 0, y si tenía 0 cambia a 1. Esta "genialidad" se la debemos a nuestro compañero Soymicmic, que nos la explilcó en http://www.htcmania.com/showpost.php...4&postcount=13
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 02/07/14 a las 00:31:13. |
#3
|
||||
|
||||
Uff, así da gusto. A eso le llamo yo explicar bien las cosas. Y es que huyo del tema de las variables porque no consigo entenderlo bien. Pero como has explicado este caso, da gusto. Y es que soy consciente de que dominando el tema de las variables tengo un buen camino ya recorrido con Tasker. Muchas gracias. Lo pongo en práctica, a ver si de verdad lo he entendido bien.
|
Gracias de parte de: | ||
#4
|
||||
|
||||
No se, pero debo ser gafe. No se porque no trabaja. Algo debo estar haciendo mal o se me escapa. Voy a tratar de explicarlo lo mas detallado que pueda.
He creado una escena con varios elementos. Pongamos por ejemplo los casos del Bluetooth y del Ahorro de energia. Todos funcionan bien (Bluetooth, Wifi y Sonido), pero no ocurre lo mismo con el caso del Ahorro de energia, y no se porque. Todos siguen el mismo "patron". Y los he revisado muy despacio por si hubiese algun error, pero no lo encuentro. En la escena he creado, al igual que para el resto de los elementos (Bluetooth, Wifi, etc), 2 textos para el elemento Ahorro de energia. Muestran por texto "ahorro". Uno se llama Ahorro activado y el otro Ahorro desactivado. El primero de ellos tiene un color blanco y el segundo un color gris claro. Ambos elementos los he establecidos como ocultos. Y he asignado una tarea a cada uno de ellos al hacer clic sobre ellos (segun se muestre uno u otro). Cuando hago clic sobre Ahorro activado la tarea esta compuesta de las siguientes acciones: (1) Secure Settings Power Saver Mode Disabled, (2) Visibilidad del Elemento "Nombre de la escena", Ahorro activado, Falso, (3) Visibilidad del Elemento "Nombre de la escena", Ahorro desactivado, Verdadero. Ahora bien, cuando hago clic sobre Ahorro desactivado, pues todo lo contrario, claro esta... Secure Settings en Enabled, Visibilidad Ahorro desactivado Falso y Visibilidad Ahorro activado Verdadero. Bueno, pues esto mismo he hecho con Bluetooth, Wifi, etc. Aclaro, tambien he creado un texto "cerrar" que al hacer clic sobre el destruye la escena en cuestion. Por otro lado he creado 3 tareas. Antetodo aclaro que entiendo (al menos eso creo) las tres opciones que me propusiste. Y pienso que la ultima de ellas es la mas comoda y razonable. He probado con las tres (con 1-0, y otros casos con on-off), pero nada. Actualmente tengo la primera opcion, de forma que tengo una tarea para el "Ahorro on", con la accion Secure Settings Power Saver Mode Enabled, mas Establecer Variable %Ahorro A on. Otra tarea para el "Ahorro off", Secure Settings Power Saver Mode Disabled, Establecer Variable %Ahorro A off. Y una tercera tarea que crea/muestra la escena. En esta tarea, que es la que asigno al widget transparente creado con Minimalistic Text, las acciones son "Sota, Caballo y Rey"... (1) Crear Escena, (2) Visibilidad del Elemento "Nombre de la Escena", Ahorro activado, Verdadero, Si (if) %Ahorro~on, (3) Visibilidad del Elemento "Nombre de la Escena", Ahorro desactivado, Verdadero, Si (if) %Ahorro~off, (4) Visibilidad del Elemento "Nombre de la Escena", Bluetooth activado, Verdadero, Si (if) %BLUE~on, (5)... Etc, y finalmente Mostrar Escena. Pues bien, hago clic en el widget transparente creado con Minimalistic Text y que he ubicado en la pantalla de bloqueo y sale la escena descrita. Si el Bluetooth ("bluetooth") esta desactivado esta entonces en color gris y si hago clic sobre este texto se activa el Bluetooth y se "vuelve" de color blanco. Cierro la escena ("cerrar") y listo. Trabaja bien. Tanto si lo desactivo en la barra de estado, como donde sea. Vamos, que siempre estara el texto Bluetooth con el color que corresponde en funcion de estado en el que se encuentre Bluetooth (blanco o gris, segun este activado o desactivado). Pero no ocurre lo mismo con el elemento Ahorro de energia ("ahorro"). En la escena siempre me lo encuentro al abrirlo en color gris (desactivado), independientemente de que realmente el toggle de Ahorro de energia este activado o desactivado. Y claro, si esta en color gris obviamente puedo activar el ahorro de energia y pasara de color gris a color blanco. Pero tras cerrar la escena, la abro de nuevo, me encuentro el texto en color gris, cuando deberia estar en color blanco puesto que el ahorro de energia esta activado. La verdad, le he dado mil vueltas, pero nada. He mirado la tarea principal, y los colores rojo y verde estan correctos en todos los casos, pero ni idea. |
#5
|
||||
|
||||
En Tasker tienes una pestaña de VARIABLES en la que puedes ver el valor de cualquier variable incluyendo la variable %Ahorro. 1) Ejecuta la tarea que activa el ahorro de energía y luego mira cuál es el contenido de la variable %Ahorro. Toma nota de ese valor prestando especial atención a los detalles (mayúsculas, etc). 2) Ejecuta la tarea que DESactiva el ahorro de energía y luego mira cuál es el contenido de la variable %Ahorro. Toma nota del valor. Si eso parece funcionar bien... Repasa la tarea que muestra la escena. Comprueba las condiciones que hacen referencia a esa variable, y presta atención a los detalles (mayúsculas, etc). Comprueba también que estés manejando las propiedades (visibilidad) de los elementos correctos en la escena. No te funcionará si tienes algún error (letra incorrecta o un espacio donde no debe haberlo) en el nombre de la escena o en el nombre del elemento que quieres hacer visible o incluso en el nombre de la variable. Un error de este tipo fastidia mucho porque a veces es difícil de detectar. Algunas veces incluso merece la pena borrarlo todo y reescribirlo de nuevo para no arrastrar ese tipo de errores. Otras opciones: hazte un proyecto nuevo y una escena nueva, similar a la que tienes pero solo para el ahorro de energía, sin nada que ver con el Wifi o el Bluetooth. De esta forma puedes tratar de "aislar" todo lo relacionado con el ahorro de energía, para evitar posibles contaminaciones o influencias. Si todavía no te funciona... exporta las descripciones de las tres tareas para que las veamos.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
#6
|
||||
|
||||
Bueno, siguiendo tus consejos he hecho un proyecto nuevo solo con el ahorro de energía. He comprobado y corregido. Y parece que voy por buen camino, aunque aun no trabaja como lo hacían el bluetooth, el wifi y el sonido. ¿Porque? Porque en el caso, pongamos como ejemplo el wifi (aunque sucede lo mismo con el bluetooth y el sonido), cuando hago clic en el elemento wifi de la escena, estando este en color gris (wifi desactivado) automaticamente activo el wifi y el elemento wifi pasa a ser de color blanco, indicandome de esta forma que el wifi esta activado. En el caso del ahorro de energia, esto tambien lo he conseguido ya. Obviamente me refiero en ambos casos tanto para activar, como para desactivar. Ahora bien, en el caso del wifi podria optar por activar/desactivar este haciendo clic en el toggle de la barra de estado. Pues bien, si asi decido hacerlo en algún momento y posteriormente abro la escena me encuentro con que el elemento wifi está en el color que le corresponde segun su estado. Es decir, si active el wifi haciendo clic en el propio toggle, que no en la escena, me encuentro el elemento wifi en la escena, al abrirla, con su color de activado (blanco). Bien, ahora podria decidir activar o desactivar el ahorro de energia en el toggle que se encuentra en la barra de tareas, en lugar de activarlo/desactivarlo en la escena. Pues bien, al abrir la escena me encuentro el elemento ahorro de energia, pero no con el color que le corresponde en función de su estado. Y claro, esto confunde.
He probado añadiendo otro elemento que deseo añadir a este proyecto. Estableciendo su variable correspondiente, una global. Este nuevo elemento simplemente activa/desactiva unos perfiles. Pues bien, ocurre lo mismo. Trabaja bien. La variable toma correctamente su valor, como asi ocurre tambien en el caso del ahorro de energia (pestaña "variables"). Pero si decidiera desactivar/activar estos perfiles dentro de Tasker, no toma el elemento nuevo su color. Hombre, tambien es cierto que en este segundo caso me importa menos, puesto que no es lo mismo un toggle, en el caso del ahorro de energia, que entrar en Tasker y desactivar los perfiles para el caso del segundo elemento... Pero no es perfecto, tambien es cierto. Actualmente tengo lo siguiente. Tareas (pestaña "Tareas"): He creado 5 tareas distintas. Ahorro on (93) A1: Establecer variable [ Nombre:%Ahorro A ![]() ------------------- Ahorro off (96) A1: Establecer variable [ Nombre:%Ahorro A ![]() ------------------- Popup on (148) A1: Estado del perfil [ Nombre:Calendario Popup Establecer:Encendido ] A2: Estado del perfil [ Nombre:WhatsApp Popup Establecer:Encendido ] A3: Estado del perfil [ Nombre:Enhanced Email Popup Establecer:Encendido ] A4: Estado del perfil [ Nombre:SMS Popup Establecer:Encendido ] A5: Establecer variable [ Nombre:%Popup A ![]() ------------------- Popup off (149) A1: Estado del perfil [ Nombre:Calendario Popup Establecer:Apagado ] A2: Estado del perfil [ Nombre:WhatsApp Popup Establecer:Apagado ] A3: Estado del perfil [ Nombre:Enhanced Email Popup Establecer:Apagado ] A4: Estado del perfil [ Nombre:SMS Popup Establecer:Apagado ] A5: Establecer variable [ Nombre:%Popup A ![]() ------------------- Toggles Prueba (145) A1: Crear Escena [ Nombre:Toggles Prueba ] A2: Visibilidad del Elemento [ Nombre Escena:Toggles Prueba Coincidir Elemento:Ahorro activado Establecer:Verdadero Tiempo de animación (ms):0 ] Si (if) [ %Ahorro ~ on ] A3: Visibilidad del Elemento [ Nombre Escena:Toggles Prueba Coincidir Elemento:Ahorro desactivado Establecer:Verdadero Tiempo de animación (ms):0 ] Si (if) [ %Ahorro ~ off ] A4: Visibilidad del Elemento [ Nombre Escena:Toggles Prueba Coincidir Elemento:Popup activado Establecer:Verdadero Tiempo de animación (ms):0 ] Si (if) [ %Popup ~ on ] A5: Visibilidad del Elemento [ Nombre Escena:Toggles Prueba Coincidir Elemento:Popup desactivado Establecer:Verdadero Tiempo de animación (ms):0 ] Si (if) [ %Popup ~ off ] A6: Mostrar Escena [ Nombre:Toggles Prueba Mostrar como:Capa Superpuesta, Bloqueada, Ventana Completa Posición Horizontal:100 Posición Vertical:100 Animación:Sistema Mostrar Botón Salida:Apagado Continuar tarea inmediatamente:Encendido ] ------------------- Y por otro lado tengo creada una escena con los elementos "ahorro" y "popup". Con "popup" he hecho exactamente lo mismo que con "ahorro". Es decir, y en el caso de "ahorro", he creado dos elementos de texto (Ahorro activado y Ahorro desactivado). Tanto uno como otro se llaman "ahorro", pero uno es de color blanco y el otro de color gris. Ambos elementos (activado y desactivado) estan localizados en la misma posición, y ambos están ocultos. La tarea que he creado al hacer clic en ahorro activado tiene las siguientes acciones: (1) Secure Settings, Disabled (2) Establecer variable, %Ahorro A off (3) Visibilidad del Elemento, "nombre de la escena", ahorro activado (falso) (4) Visibilidad del Elemento, "nombre de la escena", ahorro desactivado (verdadero) Por otro lado, la tarea que he creado al hacer clic en ahorro desactivado tiene, obviamente, las acciones contrarias al anterior. Es decir, Secure Settings, Enabled. La variable a on. Y las visibilidades de los elementos desactivado (falso) y activado (verdadero). No se si esta bien hecho todo este "tinglao", que para muchos de vosotros será de lo mas básico, pero el caso es que trabaja bien en la escena. Sin embargo, no trabaja bien si activo/desactivo el ahorro de energia en el toggle de la barra de estado, ni si activo/desactivo los perfiles dentro de Tasker (manualmente). |
#7
|
||||
|
||||
No se si esta bien hecho todo este "tinglao", que para muchos de vosotros será de lo mas básico, pero el caso es que trabaja bien en la escena. Sin embargo, no trabaja bien si activo/desactivo el ahorro de energia en el toggle de la barra de estado, ni si activo/desactivo los perfiles dentro de Tasker (manualmente).
![]() - Si(If) %PENABLED ~ *,NombreDelPerfil,* - . Establecer variable [ Nombre:%Popup A on Calcular:Apagado Añadir:Apagado ] - . (se pueden añadir otras acciones) - Else - . Establecer variable [ Nombre:%Popup A off Calcular:Apagado Añadir:Apagado ] - . (se pueden añadir otras acciones) - Endif. La tarea que lanza la escena puede incorporar esta estructura para ajustar correctamente la variable %Popup, que es la que controla el color del elemento de la escena. Con eso ya tienes certeza de que la escena se mostrará correctamente. Más información sobre esta variable y las posibles formas de utilizarla, en los enlaces siguientes: http://www.htcmania.com/showpost.php...88&postcount=2 http://www.htcmania.com/showthread.php?t=709554 http://www.htcmania.com/showthread.php?t=712718 http://www.htcmania.com/showthread.php?p=10750433 Respecto al ahorro de energía, no creo que pueda hacerse mejor porque creo que Tasker no tiene manera de informarse sobre cómo está el ahorro de energía (activado o desactivado) en la otra app. O sea que lo que tienes hecho es lo mejor que se puede hacer, según mi punto de vista. Un último consejo: te sugiero que no utilices varias palabras en los nombres de los perfiles. O sea que no incluyas espacios. En lugar de utilizar "Enhanced Email Popup" , yo creo que es mejor "EnhancedEmailPopup". Sobre esto ya he hablado en http://www.htcmania.com/showthread.php?t=814267
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 04/07/14 a las 00:45:41. |
#8
|
||||
|
||||
Muchisimas gracias Caravantes. Se aprende muchisimo contigo. La verdad es que Tasker tiene infinidad de posibilidades. Como de costumbre sigo tus consejos magistrales y los pongo en práctica. Son perfectos. Gracias.
|
Gracias de parte de: | ||
![]() |
![]() |
||||||
|