![]() |
|
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
[Pseudo-Tutorial] Autómata de estados
Hace tiempo leí un tema en el foro oficial (al que Andreas dedicó un articulo en pocketables) hablando de un sistema que me pareció muy interesante para gestionar mejor los distintos estados por los que vamos pasando durante el día mediante Tasker.
Tenía desde entonces pendiente probarlo algún día, pero suponía cambiar casi toda la lógica interna en mis perfiles principales y nunca lo veía un buen momento, hasta que esta semana me he animado a hacerlo. Aún lo estoy puliendo pero me parece muy prometedor y me lo estoy pasando en grande planeándolo y depurándolo ![]() Ojo! Puede ser bastante laborioso (que no realmente dificil si lo planificas bien) montarlo todo y requiere cierta experiencia con la forma en que Tasker hace las cosas, así que si bien no hace falta ser ningún experto para hacerlo, los recién llegados al mundillo mejor abstenerse ![]() Concepto Si hay una serie de perfiles que pienso todos tenemos en nuestro Tasker son los del tipo "Casa", "Coche", "Trabajo" y similares, muy utiles y fáciles de implementar, pero a veces causan conflictos, por ejemplo: cuando paso por delante de mi casa con el coche, al llegarme la señal de mi wifi estoy en casa y en el coche a la vez ![]() Este sistema se basa en que solo puedes estar en uno de estos estados a la vez, y que las transiciones esntre estos se pueden preveer (en mi caso no puedo pasar de "casa" a "trabajo", tengo que pasar antes por "coche" o "fuera" si voy en bus) de modo que se puede diseñar un gráfico de estados e implementar un sistema que gestione las transiciones entre estos. Implementación Primero hay que analizar el caso de cada uno, los ditintos estados que queremos registrar y como pasamos de uno a otro. Yo lo hize mediante un gráfico (en informática se conoce este tipo de gráficos de estados como autómatas, de ahí el titulo), que creo que es la forma más facil de plantearlo y implementarlo después, esta es una versión inicial del mío (luego lo he ido complicando, pero así se ve bien el concepto y es más simple) ![]() En el enlace del tema en el foro original de Tasker está la aproximación del creador de la idea que es bastante diferente, personalmente encuentro esta más efectiva y tolerante a fallos y prefiero que no hayan estados intermedios como "CERCA DE CASA", "RECIEN SALIDO DEL COCHE", etc... pero cada uno puede hacerlo como quiera. Llega lo interesante, pasar esto a Tasker. WARNING: Muy recomendable hacer un backup de como teneis Tasker antes de empezar a trastear, porque es posible que tengais que cambiar toda la logica interna de vuestros perfiles principales actuales, y si no os llega a funcionar o no os acaba de convencer estando a medias no será divertido volverlo a hacer todo. Tendremos un perfil principal que se encargará de gestionar las transiciones entre perfiles, que será algo así: Código:
Perfil: Switch State (129) Priority: 9 Notification: no Evento: Establecer variable [ Variable:%NEWSTATE Valor:* ] (En cuanto se modifique el valor de %NEWSTATE se lanza la tarea) Entrada: SwitchState (123) A1: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:Clear & Stop ] Si (if) [ %STATELOCK Ajuste ] (Si está definida %STATELOCK limpiamos y salimos sin hacer nada) A2: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:Clear & Stop ] Si (if) [ %NEWSTATE ~ %STATE ] (Si intentamos cambiar al estado en que estamos ya actualmente limpiamos y salimos sin hacer nada) A3: Establecer variable [ Nombre:%lstime A:%TIMES - %TSTART Calcular:Encendido Añadir:Apagado ] (Calculamos el tiempo que ha pasado desde que empezó el estado actual) A4: Si (if) [ %NEWSTATE ~ %LASTSTATE ] (Si tratamos de volver al estado en que estábamos antes del actual) A5: Ir a acción [ Tipo:Etiqueta Acción Número:1 Etiqueta:Clear & Stop ] Si (if) [ %lstime < 5 ] (y han pasado menos de 5 segundos desde el anterior cambio limpiamos y salimos, para prevenir rebotes entre 2 estados en ciertas condiciones) A6: Fin si (End if) A7: Establecer variable [ Nombre:%LASTSTATE A:%STATE Calcular:Apagado Añadir:Apagado ] (Guardamos el estado actual como anterior) A8: Establecer variable [ Nombre:%STATE A:%NEWSTATE Calcular:Apagado Añadir:Apagado ] (Guardamos el nuevo estado como actual) A9: AutoNotification [ Configuración: (muestro una notificación persistente con el estado actual, el anterior y el tiempo que había estado en el anterior) Title: Estado actual: %STATE Text: %STATE Ticker: Se cambia a estado: %NEWSTATE Status Bar Icon: action_about_dark Id: switchstate SubText: %LASTSTATE había durado %lstime segundos Persistent: true Text Expanded: Se ha pasado de %LASTSTATE a %NEWSTATE Paquete:com.joaomgcd.autonotification Nombre:AutoNotification Cuenta atrás (segundos):0 ] A10: Establecer variable [ Nombre:%TSTART A:%TIMES Calcular:Apagado Añadir:Apagado ] (guardamos el momento en que pasamos al nuevo estado para calcular luego cuanto tiempo dura) A11: Destino (de goto) Etiqueta:Clear & Stop (limpieza de variables tanto si hemos hecho el cambio como si no) A12: Limpiar variable [ Nombre:%NEWSTATE Coincidencia de Patrón:Apagado ]
A partir de aquí hay que implementar los perfiles que se encargan de hacer las transiciones. Nota: Esto no es un tutorial paso a paso, sino una guía de los aspectos generales para implementar la idea. Cada caso será diferente, y el mio propio no es realmente así, esto es una versión simplificada de mi auténtico sistema porque transcribirlo completo era demasiada faena, podía ser más lio todavía de seguir y realmente no se adaptaría a vuestro caso de todos modos, así que no valía la pena. Dicho esto, vamos a la implementación. No hay casos generales y depende mucho de lo que queráis hacer, pero si que hay pautas habituales: Los contextos tendrán condiciones de activación tipo: - %STATE ~ Estado Origen (o en caso de que a un estado se pueda llegar desde varios: %STATE ~ Estado1/Estado2/Estado3... para los perfiles "de ida y vuelta" como la mayoría de los míos también se tendrá que aceptar el estado al que vamos a cambiar para que las condiciones se sigan cumpliendo y no ejecute la tarea de salida inmediatamente, luego lo vemos con un ejemplo) - Condiciones que activen el estado destino (BT Conectado, WIFI/Antena Cercana...) La Tarea de entrada a realizar será: - Establecer variable %NEWSTATE = Estado Destino - Establecer %STATELOCK a lo que sea si procede Tarea de salida: - Si se ha bloqueado el cambio de perfiles la salida tendrá que limpiar %STATELOCK - En perfiles "de ida y vuelta" se vuelve al estado del que se vino al entrar cuando deja de cumplirse Ejemplo de parte de mi sistema: Mi perfil de "Controlar estado TRABAJO" Contexto: - %STATE ~ FUERA/TRABAJO (como ponía antes, acepto tambien el valor "TRABAJO" para que una vez entre en este estado se siga cumpliendo la condición, si no, nada más entrar dejaría de cumplirse y ejecutaría inmediatamente la tarea de salida, poniendome de nuevo en estado "FUERA") - Calendario tiene entrada "Trabajo" - Antena Cercana - las que tengo por el trabajo Tarea de entrada: - Establecer %NEWSTATE a TRABAJO Tarea de Salida - Establecer %NEWSTATE a FUERA Mi perfil de "Controlar estado COCHE" Contexto - %STATE ~ FUERA/COCHE (lo mismo) - BT Conectado Tarea de entrada: - Establecer %NEWSTATE a COCHE Tarea de Salida - Establecer %NEWSTATE a FUERA Mi perfil de "Estado FUERA" Contexto: - Variable %STATE ~ FUERA Tarea: - Lanza Bluetooth, deja 10 minutos y apaga si no se ha conectado Y así es como interactuan entre ellos: - Por la mañana cuando voy en el coche (%STATE ~ COCHE) y lo apago, el BT se desconecta, con lo que se pasa a estado FUERA, lo que lanza el perfil "Estado FUERA" que deja el bluetooth 10 minutos, por si estoy en la gasolinera y luego vuelvo al coche, pero no es el caso. - Al estar en estado FUERA y con las antenas de mi lugar de trabajo cerca, en cuanto entre en el evento de calendario "Trabajo" se cumplirá el perfil y me pondrá en estado TRABAJO (si llego tarde por ejemplo, el evento de calendario estará y las antenas también, pero mi estado aún será COCHE, con lo que no se lanza hasta que apague el coche) - En cuanto acabo de trabajar (el evento se acaba o me voy lejos del trabajo) mi estado vuelve a ser FUERA, lo que vuelve a lanzar el BT, que si se conecta en esos 10 minutos me devuelve al estado COCHE - etc... Básicamente así es como funciona, se puede ver que tengo varios tipos de perfiles: - Perfiles de control de estado ("Controlar estado COCHE", "Controlar estado TRABAJO"...) Estos controlan la transición de estados, no hacen nada relativo a los estados en si - Perfiles de estado ("Estado FUERA", "Estado TRABAJO"...) estos su condición es que la variable %STATE tenga el valor correspondiente al estado en cuestión y realizan las tareas propias del estado en que están (poner en silencio, quitar bloqueo, etc...) ejemplo: "Estado TRABAJO" Contexto: Valor de Variable %STATE ~ TRABAJO Tarea de entrada: - Apagar Bluetooth (Sé que no va a reconectar, para qué dejarlo los 10 minutos...) - Poner en silencio - Etc... Tarea de Salida - Quitar Silencio Un caso en que uso el %STATELOCK es el modo DORMIR, veamos porqué: perfil "Controlar estado CASA" Contexto: - Variable %STATE ~ FUERA/CASA/DORMIR - Antena Cercana - WIFI Conectado Tarea de entrada: - Establecer %NEWSTATE a CASA Tarea de salida: - Establecer %NEWSTATE a FUERA perfil "Controlar estado DORMIR": Contexto: - Variable %STATE ~ CASA/DORMIR - Tiempo: Entre las 00:00 y las 06:30 Tarea de entrada: - Establecer %NEWSTATE a DORMIR - Establecer %STATELOCK a 1 Tarea de salida: - Limpiar %STATELOCK - Establecer %NEWSTATE a CASA perfil "Estado DORMIR": Contexto: - Variable %STATE ~ DORMIR Tarea de entrada: - Apagar datos - Apagar WIFI Tarea de salida: - Encender WIFI - Encender datos - rutinas mañaneras varias Si no pusiera el bloqueo, tan pronto se pasa a estado DORMIR, se lanza "Estado dormir", que apaga la wifi. Al apagarse pierde la conexión, lo que desactiva el perfil "Controlar estado CASA" que me pondría por tanto en estado "FUERA". Al activar el bloqueo, el perfil "Controlar estado CASA" se desactiva igualmente al desconectarse, pero no permite cambiar a estado FUERA y se queda en modo "DORMIR". Cuando llega la mañana, se quita el bloqueo y se pasa a estado CASA Ventajas aka ¿para qué complicarme la vida? ¿Para qué todo este embrollo si mis perfiles de toda la vida me van bien? Pues primero que nada porque me pareció interesante la idea y quería probarlo, pero además tiene algunas ventajas interesantes:
Pues eso es, un aplauso a los valientes que hayan llegado hasta aqui ![]() Espero que hayais entendido la idea y que os parezca interesante, si tenéis dudas para eso está el foro ![]() Si os atreveis a probarlo contad vuestras impresiones. Última edición por maid450 Día 07/02/14 a las 14:55:02 |
Los siguientes 18 usuarios han agradecido a maid450 su comentario: | ||
|
#2
|
||||
|
||||
Fascinante, tengo oxidados los conocimientos de informática, pero me has traído grandes recuerdos a la mente. Necesito probarlo. Voy a engrasar las neuronas. Por cierto, no se ve el gráfico de Estados, aunque la explicación es tan coherente que se deduce. Estás totalmente comprometido con tasker. Lleva cuidado o te ficharan. Mil gracias por compartir tu experiencia. Me autoproclamo fan (y de Caravantes y mlsir)!
|
#3
|
||||
|
||||
Muy interesante, yo tengo un entramado de interacciones de los perfiles entre si, en algunos muy compleja, para evitar fallos entre ellos. Este método me hubiera evitado bastante trabajo y creo que voy a ir implementándolo poco a poco.
|
#4
|
Es raro, yo si lo veo desde varios PCs... he cambiado el alojamiento de la imágen, a ver si así se ve.
|
#5
|
Ahora sí que se ve el gráfico....
Impresionante trabajo...enhorabuena!!! Creo que en cuanto tenga tiempo voy a intentar implementarlo, no sin antes estudiarlo bien porque hay cosas que no comprendo mucho.... En mi caso yo trabajo "en la calle" y no puedo establecer algo fijo, pero p.ej la casa de mi madre se podría asimilar al "trabajo", porque es una wifi distinta con unas antenas de telefonía distintas....la verdad es que tengo interés en intentar implementar este proceso, ya que normalmente me funcionan bien mis perfiles, pero a veces, con los intentos de conexión de bluetooth en el coche, las pérdidas de señal de antenas, tareas de entrada y salida ejecutándose, etc.....a veces es un poco caos y la cosa se complica.....creo que con este esquema se puede llegar a organizar todo mejor.... 1 saludo y enhorabuena otra vez!! |
#6
|
||||
|
||||
...
Última edición por danidetenerife Día 08/02/14 a las 14:12:08 Razón: no va aquí |
#7
|
||||
|
||||
Estoy fascinado por el planteamiento, interesantísimo. Maid, muchísimas gracias por traerlo y por tus excelentes explicaciones.
El gráfico se ve perfecto. Y también es interesante -lo recomiendo- echar un vistazo al gráfico del foro oficial, enlazado por Maid: https://groups.google.com/forum/#!ms...U/ebtBX8gc2IUJ Solo veo un par de cosas mejorables. La primera es el título del hilo. La maryoría de los taskeros no estamos en la jerga informática y el término "autómata" nos desorienta bastante; suena a robótica o similar. Si utilizamos un buscador para encontrar módos de organizar las distintas situaciones diarias y encontramos [Pseudo-Tutorial] Autómata de estados ... seguramente no haremos clic ahí. Bueno, es el menor de los problemas porque este tema -como bien has dicho- tampoco está al alcance de un taskero novato, y a los otros ya los reconduciremos desde el foro. Tampoco es que haya un título muy evidente para este tema. La otra cosa que me parece mejorable es el nombre de las variables utilizadas. Creo que has cogido los mismos nombres que el hilo original que has enlazado, con palabras inglesas. Julio García Muñoz, con su PlugIn WhatsTasker nos ha enseñado que es una buena idea utilizar variables que tengan un prefijo común: %wt_message, %wt_senderid, %wt_type, etc. Este planteamiento es todavía más importante cuando se trata de variables globales: cuando consultamos la lista de variables globales, las del mismo asunto aparecen agrupadas y se las puede localilzar fácilmente. Por ello creo que sería preferible añadir a las variables un prefijo común. Por otro lado, las variables internas de Tasker tienen todas sus letras en mayúsculas, y me parece buena idea utilizar mezcla de mayúsculas y minúsculas para las variables globales de usuario; de ese modo se distinguen fácilmente las unas y las otras. Mi propuesta sería algo como lo siguiente: - %AutomEstado (%STATE) - %AutomAnteriorEstado (%LASTSTATE) - %AutomNuevoEstado (%NEWSTATE) - %AutomBloqueado (%STATELOCK) - %AutomComienzo (%TSTART) Vamos a tener que leer tu post varias veces para terminar de entender los detalles. Por otro lado, no estoy muy seguro de querer que todos mis perfiles de situación sean excuyentes. Ahora mismo tengo varios perfiles que se solapan. En algunos casos he evitado ese solapamiento añadiendo contextos de tipo PACIVE !~ *Vehiculo*, pero en otos casos permito el solapamiento, cosa que no ocurrirá si adopto este sistema de autómata. Si lo he entendido bien, para cada situación (casa, coche, trabajo) hay que hacer dos perfiles: A - Un primer perfil que sería similar al "perfil clasico" en cuanto a contextos (antena cercana, conectado a wifi, bluetooth, etc) pero cuyas acciones solo modifican variables generales como %NEWSTATE. B - Un segundo perfil cuyo contexto sería la variable %STATE, pero que sería igual al perfil clásico en cuanto a tareas (acciones concretas que queremos ejecutar al entrar o salir de esa situación). Y luego hay un perfil general de control (el Switch State que has exportado completo) para controlar cualquier cambio de situación, que es el que también enlaza los perfiles de tipo A con los de tipo B. Supongo que te podrías hacer un perfil de trabajo atendiendo a horarios y días, o bien por la programación del calendario, como ha explicado Maid. |
Gracias de parte de: | ||
#8
|
||||
|
||||
Hay algo que no comprendo, la primera acción de tarea es:
- ir a acción número 1 si %ESTATELOCK está ajustado ¿Como vamos a ir a la primera acción si ya estamos en la primera acción?¿Que me he perdido? Gracias de antemano por las respuestas. La verdad que es interesante el tema porque mis perfiles son extremadamente complicados para que no den errores entre PACTIVE, TRUN y variables internas; integrar un nuevo perfil puede ser una faena jejeje |
#9
|
|
Cita:
|
Gracias de parte de: | ||
#10
|
||||
|
||||
La variable global TRUN indica una tarea en función ?
|
#11
|
Sí. T (task =tarea) RUN (en ejecución)
|
Gracias de parte de: | ||
#12
|
Estoy intentando hacerme mi gráfico de mis perfiles (casa, fuera, trabajo, gym, casa madre) para empezar a implementar ésto a ver qué tal pero hay cosas que no comprendo...
No es que me sea necesario implementar esto, pero sé que me voy a liar con esto y voy a estar un par de semanas enganchado trasteando...me habéis enganchado a tasker jajaj esto es una droga jejej...sé que la voy a liar y me va a dejar todo de funcionar jejej, pero bueno...luego reinstalo backup de tasker o de titanium jejej... En el perfil gestor de estados, la etiqueta "Clear & Stop" es simplemente eso, o es algo que debemos establecer antes, o simplemente vale con escribir la etiqueta en su correspondiente apartado?.. Y luego, cuando dices %STATE coincide con FUERA/TRABAJO, entiendo que FUERA y TRABAJO es el nombre que le has dado a la variable %STATE en ese momento no? es decir, a ver si lo he entendido bien.... Si por ej, me voy de casa y se ejecuta la tarea de salida de mi perfil casa donde se me desconecta mi wifi y se me enciende el BT...entonces yo creo un perfil de contexto de estado, valor de variable %STATE coincide con FUERA/TRABAJO + contexto de estado, red, conectado a BT (el de mi coche); y ahí la tarea de entrada simplemente es Tarea de entrada: - Establecer %NEWSTATE a COCHE Tarea de Salida - Establecer %NEWSTATE a FUERA Y luego tendría otro perfil de estado conectado a BT donde ya pongo mi tarea de entrada con sus acciones de encender gps, abrir radardroid, desbloquear etc...y su tarea de salida Entonces mi perfil de coche sólo se activará cuando la variable newstate se establezca a coche no? No sé si me he explicado bien....igual se me queda un poco grande ésto para mis conocimientos, lo que pasa que cada vez me engancho más a tasker jejej pero me falta comprender muchas cosas....me ayudaría ver alguna transcripción de tus perfiles para enfocar los míos... 1 saludo y perdón si no se me entiende muy bien... |
#13
|
|||||
Cita:
Cita:
En cuanto a que es buena idea poner prefijos comunes a las variables, lo es para los desarrolladores de plugins que tienen que asegurarse de que sus variables no van a coincidir bajo ningún concepto con alguna que use un usuario, y los prefijos son la mejor opción para esto, sin embargo, para el usuario final es totalmente optativo, y si bien me gusta tener mis variables más o menos organizadas según mis estandares, también me gusta que "suenen bien" y tengan nombres lógicos, y como voy a escribirlas a menudo, que no sean muy largas. Por eso he elegido esos nombres, pero vamos, como he dicho cada uno es libre de poner los que quiera ![]() Cita:
Y si la tarea acaba sigue normalmente y cambia el estado tambien llega a esa etiqueta, hace la limpieza y acaba. Cita:
Cita:
La tarea de cambio de estado a coche está bien salvo por un detalle, tal como lo has puesto (%STATE coincide con FUERA/TRABAJO + contexto de estado, red, conectado a BT) entrará bien y pondra %STATE a COCHE, pero entonces la condición %STATE coincide con FUERA/TRABAJO dejará de cumplirse y ejecutará la salida, por eso debes incluir también entre los posibles valores de %STATE el valor al que vas a pasar, para una vez se haga el cambio el perfil siga cumpliendose, con lo que quedaría así: %STATE coincide con FUERA/TRABAJO/COCHE + contexto de estado, red, conectado a BT Las tareas de entrada/salida son correctas Espero haberte aclarado el tema un poco ![]() Última edición por maid450 Día 12/02/14 a las 09:00:38 |
Los siguientes 2 usuarios han agradecido a maid450 su comentario: | ||
#14
|
||||
|
||||
Maid, una cosa, en los perfiles de control de estado (menos en tu caso el del coche) no sería mejor poner la tarea de salida, del perfil que controla, con el cambio de la variable al final? Así nos aseguramos que se ha acabado la tarea de salida antes de efectuar la de entrada del siguiente estado y nos evitaríamos posibles conflictos entre tareas.
|
#15
|
|
Cita:
|
#16
|
Muchas gracias maid por responder....me ha aclarado bastante...a ver si me pongo a intentar implementarlo que tiene muy buena pinta...
1 saludo! |
#17
|
Hola maid!! Pues me he puesto al meollo y más o menos voy encajando las cosas....gracias a tus explicaciones me he dado cuenta que hay que fijarse mucho en el gráfico para entender el proceso...quería preguntarte un par de dudas a ver si me las puedes resolver...
Estoy comprobando la transición de unos estados a otros y me funcionan muy bien..por. ej...si me encuentro en el estado "fuera" y paso al estado "coche" o al estado "trabajo" funciona bien; tal y como me explicaste, primero creo un perfil de "controlar estado" donde se establece la variable newstate al estado "al que vamos" y la tarea de salida al "estado al que volvemos", en este caso "fuera"; y ese perfil de "controlar estado" es de valor de variable state coincide con "a donde voy y de donde vengo para que no se desactive", es decir en este caso coincide con "coche/fuera" o "trabajo/fuera"....añadiendo en este perfil de controlar estado los contextos necesarios (antena cercana, BT conectado, wifi, etc...). Después creo el perfil de estado "coche" o "trabajo" simplemente con el contexto de valor de variable state coincide con "coche" o "trabajo" y ejecuto mis tareas de entrada y salida. En este aspecto me funciona todo correctamente, y por ej. me he dado cuenta que cuando paso del estado "fuera" al estado "coche" se realiza la transición de estados y paso a tener activos los perfiles (en verde) de "controlar estado coche", "estado coche" y "controlar estado fuera". Espero hasta aquí haberme explicado más o menos bien, si no es así lo siento.... Ahora es donde viene mi duda...al establecer los perfiles de "controlar estado fuera" y "estado fuera"...que está digamos en el "centro" del diagrama o autómata de estados....en este caso llegar al estado fuera se puede llegar desde muy diversos sitios (en mi caso puedo llegar desde casa/casamadre/coche/gym y trabajo) y es en este caso donde no sé si estoy haciendo las cosas mal...en los otros caso se establece una relación de dos, al estado al que voy y del que vengo (p.ej valor de variable state coincide con coche/fuera). ¿al establecer el perfil "controlar estado fuera" debo poner el contexto de valor de variable state coincide con casa/casamadre/coche/gym/trabajo? y entonces viene mi otra duda...al poner la tarea de entrada pongo establecer variable newstate a fuera, que es el estado al que voy de uno de los que vengo...pero a la hora de poner la tarea de salida puede ser que pase desde fuera a casa o a trabajo o a coche etc...¿cómo debo de ponerlo? establecer variable newstate a ???si pongo todos separados por / me he dado cuenta que se queda activo (en verde) el perfil "controlar estado fuera", pero si p.ej he pasado al estado "casa" sólo está en verde el de "estado casa" y no el de "controlar estado casa" junto con "el de "controlar estado fuera" como sí me ocurre en los otros casos que he comentado anteriormente.... Madre mía menudo lío me he montado yo solo jajaj...espero haberme medio "explicado" pero ya de antemano te doy las gracias por esta estupenda posibilidad que nos has brindado....si no tienes excesivos perfiles que se solapen me parece una muy muy buena opción de control..... Otra cosa que me ha llamado mucho la atención, aunque imagino que no lo comprendo por mi falta de conocimientos o no lo estoy entendiendo bien, es que, p.ej en mis otros perfiles, si introduzco una tarea de esperar 10 min con BT encendido y si no ha conectado apaga...hasta que no pasan esos 10 min los otros perfiles o tareas no se ejecutan, esa tarea de "esperar" me da la impresión que "paraliza" lo demás.... En cambio con este modelo (o al menos eso me parece a mí)...en el perfil "estado fuera" le pongo en la tarea de entrada encender BT y esperar 10 min y si por. ej paso al estado Gym en lugar de al de coche y se activa "controlar estado Gym" con su nueva variable newstate a Gym y entonces el perfil "estado gym" se activa se ejecuta su tarea de entrada y si le he puesto la acción de apagar BT porque sé que en el gym no se va a reconectar se ejecuta perfectamente sin necesidad de esa espera de 10 min sin poder actuar lo demás...esto es así o hay algo que se me escapa? Bueno perdón por el rollo, pero todo esto me parece muy interesante y esto es una droga a la hora de probar cosas jejej lástima no tener más conocimientos.... 1 saludo! |
#18
|
||||
|
||||
Yo por ejemplo el «estado FUERA» no está asociado a ningún perfil, en mi caso no es necesario en absoluto. FUERA simplemente es un estado de variable que indica que cualquier otro perfil se puede ejecutar.
El de «controlar estado casa» debería de quedarte activo igual que el de «casa» ya que «controlar estado casa» va asociado a una ubicación (o lo que sea) y a una variable (%Estado) que puede tener el valor FUERA o CASA y el perfil «casa» sólo tiene de condición el valor de la variable %Estado a CASA así que se cumplen ambas condiciones a la vez. Al no ser que te refieras a la notificación de autonotification que te dice el valor de la variable %Estado. Al no ser que en opciones de perfil desmarques la opción mostrar en barra de notificaciones. Sobre problemas con tareas puedes utilizar la variable %TRUN (tarea en ejecución) yo por ejemplo en algunos perfiles uso: Esperar hasta %TRUN !~ «nombre tarea» y espero a que finalice dicha tarea en ejecución para que siga la tarea actual. También puedes usar Tarea/detener para detener la tarea que está en ejecución y realizar la nueva. Última edición por darkopro Día 13/02/14 a las 19:15:25 |
Gracias de parte de: | ||
#19
|
Gracias por responder darkopro...a eso me refiero con mi falta de conocimientos...cuando dices el "estado fuera" no está asociado a ningún perfil y que "fuera" es un estado de variable que indica que cualquier otro perfil se puede ejecutar...no sé muy bien como plasmarlo....así que me dedico al método ensayo-error jejej...de momento lo he puesto de la siguiente manera...no sé si estará bien pero ahora sí que me hace bien la transición entre perfiles....
El perfil "controlar estado fuera" lo he puesto como valor de variable State coincide con * (ese asterisco es lo que no sé si está bien)...con tarea de entrada establecer variable Newstate a Fuera y la de salida establecer variable newstate a *. Después el perfil "estado fuera" ya es State coincide con "fuera" y sus tareas de entrada y salida. Teniéndolo así ya realiza bien los cambios y se me quedan activos el de "controlar estado casa", "estado casa" y "controlar estado fuera"; lo que no sé si está bien planteado y tengo que seguir haciendo pruebas. El perfil "controlar estado casa" lo he dejado con variable state coincide con casa + conectado a mi wifi, y he eliminado antena cercana ya que en la zona que vivo no me funciona muy allá...Cuando voy a llegar a casa vengo de "fuera", y en las tareas le indico encender BT y wifi 10 min para que conecten y si no lo hacen se apagan...no me parece un gasto excesivo de batería 10 min encendidos...así cuando llego a casa conecta y mi wifi y cambia los estados...lo único es que llegue a casa sin coche, y ya no tenga el wifi encendido pero p.ej. en otros perfiles de salir a correr etc...le puedo poner que cuando cierre la aplicación endomondo, etc...se active el wifi, entonces llego a casa y el estado fuera cambia a casa bien.... Bueno pues ahí sigo haciendo pruebas....me falta saber si la manera en que lo he puesto está bien planteado porque no lo tengo muy claro.... 1 saludo! |
|
#20
|
Como dice darkopro, al menos en mi caso también el estado "FUERA" es como un estado "limbo" que indica que no estoy en ningún otro estado, por tanto no tengo asociada a el ninguna tarea de control, es en la tarea de salida del perfil de control del resto que tengo pasar a estado "FUERA".
Por eso en el "control estado casa", "control estado trabajo", "control estado coche", etc... cuando dejo de estar conectado a la wifi de casa o salgo del radio de las antenas cercanas en el estado de salida pongo %NEWSTATE a "FUERA" (tras un par de minutos por si ha sido una desconexión puntual) Lo que si tengo es un perfil "estado fuera" que lanza el bluetooth un tiempo cuando paso a estado fuera por si entro en el coche, en mi caso cuando salgo de estado "FUERA" no hago nada, pero se puede hacer si en tu caso te interesa. |
Gracias de parte de: | ||
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
Herramientas | |
|
|
Hora actual: 13:55:02 (GMT +2)
HTCMania: líderes desde el 2007