Acceder

Ver la Versión Completa : [ SOLUCIONADO ] Alarma/Despertador Dinámico - Variables


victorjagu
31/08/14, 14:22:01
Muy buenas taskeros!!! :cucu:

Después de haberlo intentado de mil maneras posibles y de haber estudiado y requeterrepasado los tutoriales de tasker (tanto de htcmania como de la oficial, así como "googleado"), vengo por 2ª vez a este foro a ver si podéis ayudarme... ya desesperado por no haberlo logrado por mi mismo :estrellas: (y no me consideraba del todo "novato"...)

A ver si soy capaz de explicarme, la cosa es la siguiente.
Dado mi curro uso mogollón la alarma/despertador, pero es una lata tener que estar configurándola a cada rato (establecer la hora y fecha a la que quiero que suene vamos).
Así que me dije, porque no crear una alarma dinámica con tasker??? :idea:
Dicho y hecho, me puse a ello. Creo la escena con su Snooze y demás chorraditas (música, luces, etc).
Pensé, vamos a hacerlo de tal manera que la tarea esté el mínimo tiempo posible activada por aquello de ahorrar batería... pues bien... establecer la maldita hora es lo que me trae de cabeza!!!

Mi idea fue la siguiente (jolín, sí q me extendí en la introducción, perdonad :oh:)

Primero creé una tarea llamada "Alarma Curro Set" que con el contexto de "entrada en calendario" busca en el calendario si ese día hay algún "curro* (el asterisco xq puede ser las 8, las 9, las 10.30, en fin...)" y a su vez le dije que lo hiciera a la 1 a.m. para que no se esté ejecutando la tarea todo el día (en realidad para las pruebas usé el "acaba de encenderse la pantalla" pero bueno, es lo mismo).

A este perfil, le añadí una tarea para que cuando haya una entrada de "curro" en el calendario me ponga la hora que yo escribí en el calendario en una variable llamada %HoraCurro (sí me rompí la cabeza pensando jeje) que usa la "sección de variable" para extraer de %CALTITLE solo la hora (lo comprobré con un flash y esto funciona).

Pues bien, ahora me dije creo otro perfil que lance una tarea con las opciones de la alarma (vamos, la escena, música, vibración...) pero mira mi sorpresa cuando al ponerle el contexto de inicio a este perfil no me funciona. Lo que hice fue ponerle la variable %HoraCurro a la hora del perfil, para que suponía yo saltará a esa hora (se iniciara la alarma). Y no he conseguido que funcione (da igual q ponga la hora con 1 o 2 puntos: 10.40 q 10:45). Pensé que podía ser porque tasker digamos no se había fijado en que la variable había cambiado, así q añadí el desencadenador "establecer variable" a este perfil, dejando la opción en blanco sólo para que sepa que el valor ha cambiado; y tampoco funcionó.

Resumiendo, que no consigo hacer que funcione el desencadenador de hora de un perfil de tasker con una variable en lugar de con una hora concreta.

Se os ocurre qué estoy haciendo mal o cómo puedo resolver este problemón???

Gracias de antemano,
Víctor

maid450
02/09/14, 09:15:54
No entiendo muy bien cual debe ser el problema, yo uso variables para la hora de inicio/fin de un contexto y me funciona perfectamente.
Lo uso para poder definir la hora de inicio/fin del "modo noche" en que apago los datos automáticamente, y así puedo cambiar las horas entre la semana laboral y el fin de semana.

Resumiendo, yo lo tengo así:
- Una variable %SLEEPSTART que vale 00:00
- Una variable %SLEEPEND que vale 06:15
- Un contexto de tiempo con hora inicio %SLEEPSTART y hora de fin %SLEEPEND

Esto me funciona perfectamente, y cuando desde otros perfiles modifico estas variables a los valores que uso para el fin de semana y los vuelvo a poner para entre semana el contexto se lanza y termina a las horas marcadas por las variables.

victorjagu
02/09/14, 19:42:04
Gracias por contestar.
Así como dices es intenté hacerlo pero no consigo que salta a la hora establecida que recoge la variable cuyo valor se da en otro perfil.
No entiendo nada.
En fin, seguiré indagando o a ver si alguien se le puede ocurrir qué hago mal...

AbejoSid
04/09/14, 15:35:10
Hola victorjagu, pero la alarma la armas integra con Tasker? probaste usar alguna alarma tipo AlarmPad o Gentle Alarm? ambas tienen integración con tasker, yo en este momento estoy usando AlarmPad y arme un perfil para que empiece a encender la pantalla en forma gradual mientras la alarma suena, cuando llega al 100% del brillo espero unos segundos mas y luego enciendo el flash de la camara (todo esto salvo que apague la alarma)
Por lo que decis de los feriados, no lo tengo armado con la alarma pero si con el bloqueador de llamadas (para los clientes laborales) pero también se podría combinar con la alarma, si es feriado que desactive la alarma y active una que por ejemplo se llame Feriado

victorjagu
04/09/14, 18:20:18
Hola AbejoSid, gracias por contestar.
Efectivamente pretendo crearla íntegramente con Tasker y así aprovecho la variable para varios perfiles y me hago la alarma como a mí me guste jeje
Te detallo los dos perfiles a continuación por si consigues averiguar (o cualquier otro miembro del foro) por qué no logro hacer que funcione:

1er perfil = Alarma Curro Set (para darle un valor a la variable).
*Contexto de "entrada en calendario" para toda entrada que empiece ese día en "Curro*".
*Le uno tarea de "Sección de Variable" nombre %CALTITLE y desde 6 con longitud 6 (para que me obvie los 6 primeros caracteres, es decir, Curro y el espacio) y de longitud 6 para que me extraiga por ejemplo las 10:40. Le añado la opción "encajar" por si la longitud se quedara corta que no me tire error. Todo esto lo almaceno en la variable %HoraCurro que ya funcionando me devuelve el valor marcado en el calendario, es decir 10:40.

2º perfil = Alarma Curro (para hacer que salte el la escena en modo diálogo para que actúe como snooze y demás pesca).
*Pongo un contexto hora y marco "desde %HoraCurro" "hasta %HoraCurro" (solo pretendo ver que funciona) y le pongo la tarea de mostrar escena.

Pues bien, con esto, la variable se define correctamente pero no salta a la hora especificada (10:40) la escena. Alguien logra entender por qué y me ayuda en mi infinita ignorancia???

Gracias

Caravantes
04/09/14, 18:29:58
Te detallo los dos perfiles a continuación por si consigues averiguar (o cualquier otro miembro del foro) por qué no logro hacer que funcione:

En la portada del foro hay tres posts destacados. Uno de ellos se titula "Importante: LEE ESTO: Recomendaciones para participar en el subforo de Tasker". Te conviene leerlo completo, y muy concretamente el apartado 10 que indica cómo publicar en el foro un perfil o tarea que no funciona bien. De esa forma podremos ver todos los detalles que puedan estar influyendo en el perfil o tarea.

victorjagu
04/09/14, 18:45:48
Perdonad, es verdad.

Ahí va:

Perfil: Alarma Curro Set (66)
Estado: Entrada en calendario [ Título:Curro* Ubicación:* Descripción:* Disponible:Cualquiera Calendario:Google:Víctor ]
Entrada: Despertador Curro Var (67)
A1: Sección de Variable [ Nombre:%CALTITLE Desde:6 Longitud:6 Encajar:Encendido Almacenar Resultado en:%HoraCurro ]
A2: Flash [ Texto:%HoraCurro Largo:Apagado ]

Perfil: Alarma Curro (68)
Hora: Desde %HoraCurro Hasta %HoraCurro
Entrada: Despertador Curro (63)
A1: Mostrar Escena [ Nombre:Despertador Mostrar como:Diálogo con fondo oscurecido Posición Horizontal:100 Posición Vertical:100 Animación:Sistema Mostrar Botón Salida:Encendido Continuar tarea inmediatamente:Apagado ]

Caravantes
04/09/14, 19:24:10
Desde %HoraCurro Hasta %HoraCurro

¿Cuanto tiempo crees que va a estar activo ese perfil?
Cero horas + cero minutos + cero segundos.

victorjagu
04/09/14, 19:42:37
Claro, si es que yo solo quiero que salte una vez.
Pues igual que bloqueo las aplicaciones a las 18h iniciado smart app protector con tasker. Inicio de la hora a las 18h y fin a las 18h...
En este caso, por qué no funciona???

EDITO: Tampoco me funciona si pongo un rango mayor de tiempo...

Caravantes
05/09/14, 11:27:48
Claro, si es que yo solo quiero que salte una vez.

La tarea (de entrada) se ejecuta (una sola vez) en el momento en que se activa el perfil. Luego, aunque el perfil siga activado, la tarea no se repite.
Quizá el problema es que tu perfil no llega a activarse nunca porque tienes la misma hora de comienzo y de finalización. Ahora bien, si pones un rango mayor de tiempo y tampoco funciona, entonces el problema es otro.

Te sugiero hacer la prueba siguiente:

Perfil: Prueba de contexto horario
Hora: Desde 08:00 Hasta 23:59 (en lugar de 08:00 pones la hora que tú quieras)
Entrada: Probando contexto horario
A1: Notificación sonora. Texto: Contexto horario activado.

Eso debería funcionar, compruébalo.
Luego vas sustituyendo las cosas de este perfil por las que tú quieres, haciendo cambios uno a uno y comprobando si sigue funcionando tras cada cambio.
A) Cambias la acción A1 por la que tú quieres, la que muestra la escena.
B) Cambias la hora de inicio poniendo la variable.
C) Cambias la hora de finalización poniendo una variable, aunque en realidad esto no lo necesitas (tu perfil debería funcionar bien con la finalización a las 23:59, por lo que te he dicho al principio de este mensaje).

victorjagu
05/09/14, 15:48:20
Hola Caravantes.

Ya he probado a ampliar la hora de fin del perfil y no funciona.
También he probé la sugerencia de escribir el contexto hora sin variable y funciona divino.
Ergo... el problema debe de venir del perfil que coge la variable (ya publicado anteriormente), pero no encuentro el fallo...

Caravantes
05/09/14, 16:05:31
el problema debe de venir del perfil que coge la variable (ya publicado anteriormente), pero no encuentro el fallo

Mira en la solapa de Variables. Mira la variable %HoraCurro. ¿Qué contiene exactamente? ¿Ves algo raro? ¿Signos de puntuación indebidos o algo?
Añade en la primera tarea una acción adicional del tipo siguiente:
A3: Establecer Variable %HoraCurroDos, +++%HoraCurro---
De esta forma, en la variable %HoraCurroDos tendrás tres signos de sumar, seguidos de lo mismo que hay en la variable %HoraCurro, seguido de tres signos de restar. Mira en la solapa de Variables. Mira la variable %HoraCurroDOS. Esto te permitirá detectar si al comienzo o al final de la variable %HoraCurro hubiera algún espacio, porque ese espacio quedaría visible tras los signos de sumar y/o antes de los signos de restar.
Si todo parece estar bien... no entiendo por qué no te funciona el segundo perfil.

Solo se me ocurre que sea un fallo de tu Tasker. En tal caso no se me ocurre otra cosa que desinstalar Tasker y luego volver a instalarlo: no tendrás que pagar de nuevo por el Tasker, pero quizá pierdas los perfiles y tareas que tengas actualmente, así que te sugiero una copia de seguridad de los perfiles y tareas antes de desinstalar-reinstalar.

victorjagu
06/09/14, 15:08:51
Establecer Variable %HoraCurroDos, +++%HoraCurro---

Muuuchas gracias Caravantes por la idea!!! No había caído. Efectivamente el problema es que había un espacio delante de la hora, por eso no funcionaba (y eso que lo miré en la solapa de Variables y no vi nada, pero con tu truco sí.

Ya puedo seguir definiendo la tarea del despertador.

Gracias a todos por contestar y por la inestimable ayuda otra vez. Sois los mejores!!!!

alnaufra
16/09/14, 16:51:01
Buenas, si tengo entendido bien el contexto "entrada en calendario" solo se dispara cuando se inicia el evento no?

Lo digo porque yo estaba intentando hacer un despertador dinámico como lo llamas y descarte esa opción por eso.
Al final tuve que hacerlo poniendo como centexto una hora(le puse las 00:10) y ejecutar un comando que me da los 5 proximos eventos de un calendario especifico con el formato hora:min dia separo variables y si dia=%DAYM separo hora y min y pongo la alarma a hora-1 min.
Por si a alguien le interesa este es el comando(hay que ser root y marcar la opción ejecutar como root):
sqlite3 -list /data/data/com.android.providers.calendar/databases/calendar.db "SELECT Instances.begin, calendar_id, Events.title FROM Instances JOIN Events ON Instances.event_id = Events._id WHERE Calendar_id=4 AND begin > %TIMEMS ORDER BY Instances.begin ASC LIMIT 5;" | awk -F "|" '{printf strftime("%H:%M %d",$1/1000)}{print " "}'

Donde se pueden modificar parametros para dar la información como cada uno la quiera, por ejemplo si quieres todos los eventos borras el Calendar_id=4, o cambias el 4 por el calendario que quieras.
si quieres el titulo del evento añades ,$3 detras del print" " ......

victorjagu
16/09/14, 19:13:01
Efectevimente el contexto entrada en calendario salta al iniciarse el evento y eso es lo bueno... puesto que me aproveché de ello marcando la entrada como del día completo y poniendo el título de Curro 9 por ejemplo.
Verás, yo lo que tengo pensado es un perfil que almacene en una variable la hora en que empiezo el curro ese día (previamente apuntado en el calendario) y otro perfil que salte a la hora definida por esa variable.
De momento lo voy consiguiendo, si llego a acabarlo lo posteo por aquí por si a alguien le interesa...

alnaufra
16/09/14, 21:02:59
Ya, el problema que tenia yo es que el calendario que queria era el horario de mis clases importado desde la pagina de mi universidad, asi el calendario ya estaba definido y con la horas puestas, y haciendolo como he descrito arriba me funciona bien, cada dia a las 00:10 se dispara el perfil y me pone la alarma 1h antes del primer evento de este calendario.