PDA

Ver la Versión Completa : [ CONSULTA ] Manejar intervalos de horas con variables


Mitrhandir
30/12/16, 18:00:26
Buenas, Taskeros! Felices fiestas y feliz año!

A ver, ya he conseguido quitarme de encima el wakelock NextAlarmTracker (lo quité eliminando los contextos de horas), pero estoy tratando de en la tarea hacer un si if TIME mayor que 08.30 y si if TIME menor que 21.30, establece ciertos ajustes de volumen.

Pero no me sale!

Luego paso la tarea, pero creo que ya sabéis por dónde van los tiros! Un saludo a todos!

cace0353
30/12/16, 18:11:11
Créate un perfil de Hora, eliges el intervalo "desde - hasta" que te convenga y pones como tarea (sin nombre) los valores de los parámetros de volumen que necesites…

Como ves tienes que tener un servicio activo que te vaya vigilando la hora… yo, no veo otra manera de controlarlo.


Enviat des del meu Nexus 5 usant Tapatalk

cace0353
30/12/16, 19:35:17
He pensado una posible solución sin tener el servicio activado:

Podrias poner como contexto: pantalla activada, y entonces que la tarea asociada comparara con un "if" si %TIME esrá entre los valores de las variables %Hora_Inicio y %Hora_Final que tú habrías fijado previamente…

Los valores son numéricamente comparables porque Tasker devuelve la hora en formato horas.minutos.

Enviat des del meu Nexus 5 usant Tapatalk

WillyWeb
30/12/16, 20:44:46
¿Quieres hacer un contexto de hora sin usar un contexto de hora? :oh:

Supongo que ya has intentado usar un contexto de cambio de valor de variable usando %TIME. No vale, así que no te canses.

¿Qué problema tienes con los contextos de hora? :loco:

Si lo que quieres es comparar horas puedes usar el truco que te ha comentado cace0353. Si haces las comparaciones con los operadores =, > y < Tasker tratará los valores como números. La hora será la parte entera y los minutos la parte decimal. No es matemáticamente correcto pero es una aproximación que debería funcionar en casi todos los casos.

:nav3: Felices Fiestas

Mitrhandir
30/12/16, 22:15:39
Cómo moláis compis!


Perfil: Casa (41)
Priority: 0
Estado: Antena cercana [ Antena / Última señal:GSM:1204.972 / 3
GSM:24201.58597 / 0
GSM:24201.58608 / 0
GSM:1204.973 / 0
GSM:24201.58598 / 0
GSM:1204.142 / 0
GSM:0.65535 / 0
GSM:1204.976 / 0
GSM:1204.975 / 0
PSC:231 / 0
PSC:255 / 0
PSC:223 / 0
GSM:24201.30467295 / 0
GSM:24201.30467296 / 0
GSM:24201.30467298 / 0
GSM:12002.32220005 / 0
GSM:12002.32220006 / 0
GSM:1204.92 / 0
GSM:1204.93 / 0
GSM:24201.58599 / 0
GSM:1260.13905897 / 0
PSC:246 / 0
PSC:238 / 0
PSC:429 / 0
PSC:480 / 0
GSM:1260.13945894 / 0
GSM:24201.30467299 / 0
GSM:1204.1333 / 3
GSM:1204.1331 / 3 Ignorar Antenas:* ]
Entrada: Antena Casa (43)
A1: Establecer variable [ Nombre:%Casa A:on Calcular:Apagado Añadir:Apagado ]
A2: Si (if) [ %TIME > 08.30 & %TIME < 21.30 ]
A3: Volumen en la llamada [ Nivel:5 Mostrar:Apagado Sonido:Apagado ]
A4: Volumen de notificación [ Nivel:0 Mostrar:Apagado Sonido:Apagado ]
A5: Volumen del timbre [ Nivel:0 Mostrar:Apagado Sonido:Apagado ]
A6: Volumen de alarma [ Nivel:7 Mostrar:Apagado Sonido:Apagado ]
A7: Volumen del sistema [ Nivel:0 Mostrar:Apagado Sonido:Apagado ]
A8: Volumen multimedia [ Nivel:0 Mostrar:Apagado Sonido:Apagado ]
A9: Else Si (if) [ %TIME > 21.31 & %TIME < 08.29 ]
A10: Volumen en la llamada [ Nivel:0 Mostrar:Apagado Sonido:Apagado ]
A11: Volumen de notificación [ Nivel:7 Mostrar:Apagado Sonido:Apagado ]
A12: Volumen del timbre [ Nivel:2 Mostrar:Apagado Sonido:Apagado ]
A13: Volumen de alarma [ Nivel:7 Mostrar:Apagado Sonido:Apagado ]
A14: Volumen del sistema [ Nivel:7 Mostrar:Apagado Sonido:Apagado ]
A15: Volumen multimedia [ Nivel:15 Mostrar:Apagado Sonido:Apagado ]
A16: Fin si (End if)
A17: Estado del perfil [ Nombre:Luminosity Establecer:Encendido ]

A ver, la idea era esta. Yo mismo pensé
que era demasiado bonito para ser verdad. Claro, si pongo un contexto de horas, siempre tendré un wakelock (cuánta razón tenías, danko9696!). Aunque no es algo que me obsesione, es un poco para aprender (estas vacaciones he aprendido también a piratear wii's).

%TIME es una variable global, por lo tanto, no sé qué es lo que falla. El compañero cace0353 ha aportado una buena pista. Si no me he equivocado, es lo que está planteado en el perfil de arriba. Pero me sale todo en rojo!

Un saludo!

cace0353
30/12/16, 22:27:27
A primera vista:

1.- Deberias usar Else, y nada más, para poner lo que quieres que se haga si no se cumple la condición del primer If.
2.- Además, la segunda condición que impones es imposible: nunca %TIME será simultaneamente > 21.31 y < 8.29!!!

Feliz 😄 año nuevo a todos!

Enviat des del meu Nexus 5 usant Tapatalk

Mitrhandir
31/12/16, 17:38:35
A ver cace0353, me puedes explicar esto? Me has dejado muy loco! Porqué nunca podría ser %TIME > 21.31 y %TIME < 8.29?? No lo entiendo.

Feliz año a todos!

cace0353
31/12/16, 17:55:06
Piénsalo un segundo: la comparación és numérica.
Con qué valor de %TIME se cumple "simultáneamente" que %TIME és mayor que 21.31 y menor de 8.29 ????

No necesitas ninguna condición después del "Else"… simplemente se ejecuta lo que va después del Else si no se cumple la primera condición, es decir

If %TIME >8.30 & %TIME < 21.31

Más claro con otro ejemplo: cómo se escribiría la condición si el intervalo fuera entre las 8.30 y las 2 de la madrugada????

If %TIME >8.30 OR %TIME < 2.0

Enviat des del meu Nexus 5 usant Tapatalk

cace0353
31/12/16, 18:17:02
Tengo algún problema con la edición del post…
Voy a coger el PC…

Enviat des del meu Nexus 5 usant Tapatalk

Caravantes
01/01/17, 13:38:00
Porqué nunca podría ser %TIME > 21.31 y %TIME < 8.29?? No lo entiendo.

Olvidémonos por un momento de los minutos y concentrémonos en las horas. 21 y 8.
Dime un número que sea mayor que 21 y al mismo tiempo sea menor que 8.
Es imposible cumplir ambas condiciones.
El problema es que la comparación es matemática, y no entiende de horarios ni de ciclos diarios.
Si añades los minutos, el problema sigue existiendo igual.

Mitrhandir
02/01/17, 21:44:33
Jolín, pues justamente es el que más me interesa, porque es cuando el tlf se pone en silencio! Estoy a ver cómo lo puedo enfocar. Se admiten sugerencias eh? :risitas:

Un saludo! Y ánimo, sólo queda el roscón!

cace0353
02/01/17, 23:11:00
Jolín, pues justamente es el que más me interesa, porque es cuando el tlf se pone en silencio! Estoy a ver cómo lo puedo enfocar. Se admiten sugerencias eh? :risitas:

Un saludo! Y ánimo, sólo queda el roscón!
Creia que ya estaba claro…

Tienes dos periodos distintos:

A cuando estás fuera de casa (de las 8.30 a las 21.30)
B cuando estás en casa (de las 21.30 a las 8.30 del día siguiente)

Las acciones posibles las debes agrupar de manera que unas se ejecuten si estás en el caso "fuera de casa" y las otras se ejecuten el resto de horas del día, cuando estás "en casa"…

Por esto debes plantear las condiciones así:

If %TIME > 8.30 & %TIME < 21.30

Aquí pones las acciones para fijar los volúmenes de teléfono, alarmas, multimedia, etc. en nivel alto cuando estás fuera…

Else
(és decir, si ya no estás en el horario en que se cumple la condición expresada en el If, o sea, cuando estás en casa)

Aquí pones las acciones para fijar los volúmenes de teléfono, alarmas, multimedia, etc. en nivel bajo…

End If

Y ya está, a menos que no te haya entendido nada desde el principio!

Enviat des del meu SM-T550 usant Tapatalk