Administración de perfiles básicos de manera mas efectiva
Hola, no soy mucho de escribir en el foro, pero luego de mucho tiempo probando y pensando, he creado una serie de perfiles, que creo solucionan muchos problemas, tomando como base el ya conocido "Autómata de estados" publicando en un pasado (y que sin ella, no hubiese inventado esto), y he que he querido compartir
Descripción
Esta idea, como ya dije, se basa en "autómata de estados", y se centra en la administración de aquellos perfiles que muy probablemente todos usamos, y son los mas básicos. Tales "Casa", "Trabajo", "Calle", entre otros. Esta serie de perfiles y tareas basa su funcionamiento en tareas básicas, que ocupan otras Subtareas, como "Administradores" de cada uno de los parámetros que se configuran en cada perfil. Es decir, existe una tarea llamada "Casa" que como acción tiene llamar a la subtarea "Sub - Admin (Volumen, Brillo, Datos, Notificación, o cualquiera que el usuario desee)" y esta de encarga de revisar si debe ejecutarse o guardarse en una variable para que se ejecute cuando sea necesario. Parece complicado, pero tanto no lo es.
Desarrollo
EL conjunto de tareas ocupa principalmente 3 Proyectos, pero se pueden juntar en uno solo: Variables, Assist (como el de Motorola ) y Subtareas
Variables
El primero, Variables, es fundamental, ya que dentro están los perfiles encargados de setear todas las variables que luego se ocuparan para disparar los perfiles de Assist
Dentro del proyecto, hay otros tres tipos de perfiles: Estado, Hora, y Ubicación. Pongo un ejemplo de cada uno (aunque se entiende por el nombre la función que cumple)
Hora
(Click para mostrar/ocultar)
Perfil: Hora - Mañana Fin de Semana (246) -No nos levantamos a la misma hora en la semana que el fin de semana .Esto se aplica también a "Noche" y "Dia"
Hora: Desde 8:00a. m. Hasta 12:00p. m.
Día: Dom o Sáb
Entrada: Hora - Mañana (236)
A1: Establecer variable [ Nombre:%Hora A:Mañana Calcular:Apagado Añadir:Apagado ]
Ubicacion
Texto oculto (Click para mostrar/ocultar)
Perfil: Ubicacion - Casa (247) -Aplicable a cualquier lugar, siempre y cuando la tarea de salida sea "Calle"
Ubicación: -() / -() / 100.0m
Entrada: Ubicacion - Casa (233)
A1: Establecer variable [ Nombre:%Ubicacion A:Casa Calcular:Apagado Añadir:Apagado ]
Salida: Estado - Cargador No (220)
A1: Establecer variable [ Nombre:%Estado_Cargador_Conectado A:No Calcular:Apagado Añadir:Apagado ]
Ademas de estos, están "computador encendido", "presente en computador (usando eventghost), datos, y wifi. Que se entienda que aplica a cualquier cosa que podamos necesitar
Esto seria el proyecto Variables
SubTareas
Aquí se encargan de realizar todas las acciones que nos interesan, brillo, volumen, o cualquiera que se desee. Actualmente tengo 4, Volumen, Brillo, Modo, y notificación, pero debo advertir, que por ser Volumen, el mas antiguo, aparte de ser el mas estable (llevara dos meses sin ningún cambio) es también, el único que tiene un funcionamiento un poco diferente, o al menos, otra disposición de tareas, aunque cumpla lo mismo.
Fundamentalmente, cada Admin, para modificar un parámetro, necesita saber que tipo de cambio es, y si se puede hacer o no. Me explico, hay dos tipos de la cambio, cuando su función es bloquear su modificación, y imponer la suya (es decir, por ejemplo, bajar el volumen si dormimos, aunque el perfil Noche lo mantenga en 2), y el otro, el que setea el perfil básico (Cuando viene "Perfil - Noche", a establecer sus parámetros), pero este solo se ejecutara, si esque el perfil no esta bloqueado con anterioridad. Si esta bloqueado, se esperara hasta que se desbloquee (por ejemplo, hasta que despertáramos), ejecuta la parte de tarea necesaria, y se establecen los parámetros (se deja el nivel del volumen según "noche") Espero estar siendo claro con esto, es muy importante para el resto de la idea, podrían preguntar cuantas veces quieran y lo explicare, no es muy fácil de entender, y aveces hasta yo me pierdo. Ire a la practica con Sub - Admin Brillo, muy básico, pero que tiene un problema, y es que no logro pensar en una forma de no tener que repetir cada vez todos los ajustes, a ver si me pueden echar una manito
Sub - Admin Modo
(Click para mostrar/ocultar)
Sub - Admin Brillo (158) -Como verán, en este perfil, no he agregado el cambio del nombre de variables de %par1 y %par2 a nombres mas familiares, solo por pereza, pero son libres de hacerlo. $par1 contiene la acción (desbloquear, bloquear o principal) y %par2 el dato (automático, alto, etc)
<Desbloquear> - Esta seccion es la que se ejecuta en caso de que el perfil haya estado bloqueado, y ya no (debe respetarse el hecho de que este vaya primero en todos los Admin) A1: Si (if) [ %par1 ~ Desbloquear ]
A2: Establecer variable [ Nombre:%Brillo_Estado Aesbloqueado Calcular:Apagado Añadir:Apagado ] - %Brillo_Estado puede tener dos valores, o Desbloqueado o Bloqueado, y creo que se entiende su razon
A3: Establecer variable [ Nombre:%Brillo_Actual A:%par2 Calcular:Apagado Añadir:Apagado ] -%Brillo_Actual almacena el valor de $par2
<Brillo Bajo>
A4: Brillo de pantalla [ Nivel:10 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Bajo ]
<Brillo Medio>
A5: Brillo de pantalla [ Nivel:130 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Medio ]
<Brillo Alto>
A6: Brillo de pantalla [ Nivel:255 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Alto ]
<Brillo Auto>
A7: Estado del perfil [ Nombre:Brillo - Auto Establecer:Encendido ] Si (if) [ %par2 ~ Auto ] -Esto aun no lo hago realidad, ya que, como al final dire, tengo un pequeño problema con esta tarea
A8: Fin si (End if)
<Bloqueo> - Aqui se ejecuta cuando se va a bloquear el brillo por otra tarea (por ejemplo, si hay poca bateria, le dara igual si "Casa" dice "Brillo Alto", y lo mantendra bajo)
A9: Si (if) [ %par1 ~ Bloqueo ]
A10: Establecer variable [ Nombre:%Brillo_Estado A:Bloqueado Calcular:Apagado Añadir:Apagado ]
A11: Establecer variable [ Nombre:%Brillo_Actual A:%par2 Calcular:Apagado Añadir:Apagado ]
<Brillo Bajo>
A12: Brillo de pantalla [ Nivel:10 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Bajo ]
<Brillo Medio>
A13: Brillo de pantalla [ Nivel:130 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Medio ]
<Brillo Alto>
A14: Brillo de pantalla [ Nivel:255 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Alto ]
<Brillo Auto>
A15: Estado del perfil [ Nombre:Brillo - Auto Establecer:Encendido ] Si (if) [ %par2 ~ Auto ]
A16: Fin si (End if)
<Principal> - Aca se ejecuta cuando se setearan los valores iniciales
A17: Si (if) [ %par1 ~ Principal ]
A18: Establecer variable [ Nombre:%Brillo_Principal A:%par2 Calcular:Apagado Añadir:Apagado ]
A19: Si (if) [ %Brillo_Estado ~ Desbloqueado ] - Aqui para que solo se cambie el brillo si esta disponible
A20: Establecer variable [ Nombre:%Brillo_Actual A:%par2 Calcular:Apagado Añadir:Apagado ]
<Brillo Bajo>
A21: Brillo de pantalla [ Nivel:10 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Bajo ]
<Brillo Medio>
A22: Brillo de pantalla [ Nivel:130 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Medio ]
<Brillo Alto>
A23: Brillo de pantalla [ Nivel:255 Deshabilitar 'Safeguard':Apagado Ignorar nivel actual:Apagado Efecto inmediato:Apagado ] Si (if) [ %par2 ~ Alto ]
<Brillo Auto>
A24: Estado del perfil [ Nombre:Brillo - Auto Establecer:Encendido ] Si (if) [ %par2 ~ Auto ]
A25: Fin si (End if)
A26: Fin si (End if)
Sub - Admin Notificacion
(Click para mostrar/ocultar)
Sub - Admin Notificacion (180)
<Variables>
A1: Si (if) [ %1ii No ajust. ]
A2: Establecer variable [ Nombre:%accion A:%par1 Calcular:Apagado Añadir:Apagado ]
A3: Si (if) [ %par2 Ajuste ] - Esto es para que, por ejemplo, Desbloquear lleva este valor vacio, y dara error si se intenta separar.
A4: Separar variable [ Nombre:%par2 Separador:; Eliminar base:Apagado ]
A5: Establecer variable [ Nombre:%notificacion A:%par21 Calcular:Apagado Añadir:Apagado ]
A6: Establecer variable [ Nombre:%titulo A:%par22 Calcular:Apagado Añadir:Apagado ]
A7: Fin si (End if)
A8: Fin si (End if)
<Bloqueo> -En esta ocasión, permití que la acción la hiciera la tarea madre, para ampliar las posibilidades de la notificación.
A9: Si (if) [ %accion ~ Bloqueo ]
A10: Cancelar notificación [ Título:%Notificacion_Actual_Titulo Atención No existe:Apagado ]
A11: Establecer variable [ Nombre:%Notificacion_Estado A:Bloqueado Calcular:Apagado Añadir:Apagado ]
A12: Establecer variable [ Nombre:%Notificacion_Actual A:%notificacion Calcular:Apagado Añadir:Apagado ]
A13: Establecer variable [ Nombre:%Notificacion_Actual_Titulo A:%titulo Calcular:Apagado Añadir:Apagado ]
A14: Fin si (End if)
<Desbloquear>
A15: Si (if) [ %accion ~ Desbloquear ]
A16: Establecer variable [ Nombre:%Notificacion_Estado Aesbloqueado Calcular:Apagado Añadir:Apagado ]
A17: Establecer variable [ Nombre:%notificacion A:%Notificacion_Principal Calcular:Apagado Añadir:Apagado ]
A18: Establecer variable [ Nombre:%titulo A:%Notificacion_Principal_Titulo Calcular:Apagado Añadir:Apagado ]
A19: Fin si (End if)
<Principal>
A20: Si (if) [ %accion ~ Principal | %accion ~ Desbloquear ] -Si es desbloquear o Principal se ejecutara igual, pero debe haberse ejecutado Desbloquear primero
A21: Establecer variable [ Nombre:%Notificacion_Principal A:%notificacion Calcular:Apagado Añadir:Apagado ]
A22: Establecer variable [ Nombre:%Notificacion_Principal_Titulo A:%titulo Calcular:Apagado Añadir:Apagado ]
<Notificaciones>
A23: Si (if) [ %Notificacion_Estado ~ Desbloqueado ]
A24: Cancelar notificación [ Título:%Notificacion_Actual_Titulo Atención No existe:Apagado ] -Aqui se ocupa la segunda parte de %par2
A25: Establecer variable [ Nombre:%Notificacion_Actual A:%notificacion Calcular:Apagado Añadir:Apagado ]
A26: Establecer variable [ Nombre:%Notificacion_Actual_Titulo A:%titulo Calcular:Apagado Añadir:Apagado ]
<Casa>
A27: Notificación [ Título:Buenas Tardes! Texto:En Casa. Todo ok! Icono:hd_aaa_ext_home Número:0 Permanente:Encendido Prioridad:1 ] Si (if) [ %notificacion ~ Casa ] -Notece que aqui se ocupa la primera parte de %par2.
<Noche>
A28: Notificación [ Título:Buenas Noches! Texto:En %Ubicacion. Todo Ok! Icono:hd_collections_cloud Número:0 Permanente:Encendido Prioridad:1 ] Si (if) [ %notificacion ~ Noche ]
<Mañana>
A29: Notificación [ Título:Buenos Dias! Texto:En %Ubicacion. Todo ok! Icono:hd_aaa_ext_coffee Número:0 Permanente:Encendido Prioridad:1 ] Si (if) [ %notificacion ~ Mañana ]
<Colegio>
A30: Notificación [ Título:Buenas Tardes! Texto:En el IN Todo ok! Icono:hd_aaa_ext_book Número:0 Permanente:Encendido Prioridad:1 ] Si (if) [ %notificacion ~ Colegio ]
<Calle>
A31: Notificación [ Título:Buenas Tardes! Texto:En calle Icono:hd_aaa_ext_car Número:0 Permanente:Encendido Prioridad:1 ] Si (if) [ %notificacion ~ Calle ]
A32: Fin si (End if)
A33: Fin si (End if)
Asi pueden haber multitud de este tipo de tareas, limitados por la necesidad y las ideas. Espero haya quedado la funcion de este proyecto.
Assist
Aunque Variables sea el fundamental, es este el principal, el que junta todo
Este proyecto, tiene dos sub niveles de perfiles: Perfiles y Modo Sonido, que explicare en otro post del mismo hilo.
Perfiles, como el nombre indica, tiene relación con "Casa", "Trabajo", o cualquiera que el usuario desee, y pondré por ejemplo Casa y Noche, y su funcionamiento, se explico al inicio.
Casa
(Click para mostrar/ocultar)
Perfil: Perfil - Casa (186) -Obviamente, esta tambien "Noche", "Calle" y todos los que se deseen agregar.
Restore: no
Estado: Valor de variable [ %Hora ~ Dia & %Ubicacion ~ Casa ] -Aqui participan las tareas antes mencionadas
Entrada: Casa (179)
<Setear Notificación>-Lo que hace esto, es precisamente, setear la notificación en la barra de estado, aquella que permite que Tasker no se cierre, y sirve también para tener una idea de que sucede en Tasker mientras hacemos otras cosas. Como primer parámetro, como antes explique, le dice que se seteara el valor principal, y como segundo, separado por un ; , el nombre de la notificación, y el titulo, como ya se vio.
A1: Realizar tarea [ Nombre:Sub - Admin Notificacion Prioridad:5 Parámetro 1 (%par1):Principal Parámetro 2 (%par2):Casa;Buenas Tardes! Devolver Valor de Variable: Detener:Apagado ]
<Setear Brillo>
A2: Realizar tarea [ Nombre:Sub - Admin Brillo Prioridad:5 Parámetro 1 (%par1):Principal Parámetro 2 (%par2):Alto Devolver Valor de Variable: Detener:Apagado ]
<Setear Volumen>-Esta función la explicare en otro post, detalladamente, ya que si bien es parte de esto, tiene un funcionamiento mas complejo.
A3: Realizar tarea [ Nombre:Sub - Admin Volumen Prioridad:10 Parámetro 1 (%par1):Preferido Parámetro 2 (%par2):Alto,7 Devolver Valor de Variable: Detener:Apagado ]
<Setear Modo>
A4: Realizar tarea [ Nombre:Sub - Admin Modo Prioridad:10 Parámetro 1 (%par1):Principal Parámetro 2 (%par2):Casa Devolver Valor de Variable: Detener:Apagado ]
<WiFi Cerca>-Esto tiene relacion con los datos, los cuales explicare en conjunto con volumen, aun siendo este algo completamente diferente, pero que cumple su función.
A5: Realizar tarea [ Nombre:Internet - Wifi Cerca Prioridad:12 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: Detener:Apagado ]
A6: Flash [ Texto:Buenas Tardes! Largo:Apagado ] Si (if) [ %par1 nig desbloqueo ] -De bonito
Esto seria finalmente. No es un tutorial, si no que son ideas para que puedan implementar en sus teléfonos.
Lo antes posible, en el mismo hilo publicare Volumen y Datos, muy importantes, pero diferentes.
Espero se haya entendido, y serviría de mucho recibir sus criticas acerca de cualquier cosa dicha aquí. Y asimismo, explicarles que tengo un problema con Sub - Admin Brillo, y es que la funcion de brillo automatico, necesita comprobarse seguidamente (cada 2 segunos quizas) mientras la pantalla esta encendida, pero la accion de Hora, solo puede repetir entre un minimo de dos minutos, y un bucle no me convence. De antemano, muchas gracias.
Saludos!
Los siguientes 4 usuarios han agradecido a vicholp su comentario: