PDA

Ver la Versión Completa : [ IDEA ] Bajar cortina notificaciones al encender pantalla


Mitrhandir
21/01/16, 13:54:34
Llevo mucho tiempo queriendo crear un perfil para que si tenemos alguna notificación pendiente sin leer en la barra de estado que al eencender la pantalla o desbloquear el teléfono, baje la cortina de notificaciones unos segundos para poder seleccionarlas. Si no hay notificaciones, no baja. Creo que es una buena idea que nos facilita las cosas.

Yo lo he intentado por activa y pasiva, pero sólo consigo esto:


Perfil: Desbloqueo (41)
Evento: Pantalla desbloqueada
Entrada: Desbloqueo (43)
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:900 Segundos:1 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]

Falta poner la condición de la notificación, pero no he sido capaz de ninguna manera.

Aquí os dejo el reto!
Un saludo! :cucu:

Caravantes
21/01/16, 17:06:13
Aquí os dejo el reto!

Muy buen reto, gracias.
Creo que tengo una pista: Nuestra guía de referencia "Guía del principiante a Tasker", en su primer capítulo "Conceptos básicos sobre Tasker" dice literalmente:

Algunas características de Tasker, específicamente la capacidad de leer las notificaciones de otras aplicaciones, requieren que Tasker tenga acceso a nivel de sistema; hay que otorgar ese acceso de forma manual en los ajustes del sistema principal del dispositivo, sección accesibilidad. Tengo esto habilitado para dejar que Tasker vea las notificaciones de Gmail y ejecute una tarea en función de ellas.
http://www.htcmania.com/showthread.php?t=549745

Saludos.

Mitrhandir
21/01/16, 17:48:28
Caravantes, permíteme descubrirme ante tí. Eres uno de mis sabios taskeririanos favorito.

Después del peloteo, vamos a la materia.

A pesar de llevar entre 2/3 años con Tasker a cuestas, aún soy muy muy neófito en la materia. Las variables se me atragantan. Tengo buenas ideas, pero por culpa de las variables, no las puedo llevar a buen puerto.

El tema de la accesibilidad está activo. Sospecho que tú ya sabes cómo hacer el perfil. Me equivoco? :D

El tema está en hallar la variable!

WillyWeb
21/01/16, 18:14:54
Si lees detenidamente la descripción de la idea ya casi lo tienes ;-)

1º Necesitas un perfil con evento de notificación (sin especificar ninguna app, o la que te interese) para detectar si ha llegado una notificación.

2º Necesitas un perfil con evento de pantalla desbloqueada o pantalla encendida (o ambos si quieres) que detecte si se cumple el primer requisito para desplegar las notificaciones.

3º Necesitas un perfil con evento de clic en notificación (sin especificar ninguna app) para detectar si has pulsado sobre una notificación.

Esos son los mimbres, ahora el ajuste fino...

En 1 tendrías que controlar si la pantalla ya está desbloqueada para no contabilizar las notificaciones que lleguen mientras tanto. Guarda en una variable global si llega una notificación (sumando o con si/no).

En 2, además de detectar el estado de la pantalla, tendrías que comprobar si la variable global de antes dice que "tienes algo pendiente de ver". Si se cumplen ambas condiciones despliegas la barra de notificaciones, esperas el tiempo que quieras y la cierras.

En 3 pones esa variable global a cero para indicar que ya has visto lo que tenías pendiente y cancelas la ejecución de 2 (aunque esto no es realmente necesario).

Vamos, empezar a probar y vais contando lo que os sale :silbando:

Por cierto, todo esto es con Tasker puro y duro, sin añadidos.

Mitrhandir
21/01/16, 18:33:14
WillyWeb, me he perdido a partir del tercer punto. :risitas:

Me estás diciendo de crear perfiles y concatenarlos? Esto ya es nivel Máster!

Yo tenía pensado en crear una variable y asignarle un valor. Estoy hecho un lío!

apreton
21/01/16, 18:43:51
Hola.

Mira a ver si esto te sirve.

Mediante el perfil Llega_Notif, se "activa" la variable %Notif_pte cuando el sistema detecta cualquier notificación

Perfil: Llega_Notif
Evento: Notificación (categoría IU - Aplicación origen todas)
Entrada:
A1: Establecer variable %Notif_pte A on

Con este otro perfil se controla que la pantalla esté desbloqueada y, a la vez, que la variable %Notif_pte esté "activada"

Perfil: Despliega_Notif
Evento: Pantalla desbloqueada
Estado: Valor de variable %Notif_pte igual a on
Entrada:
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:900 Segundos:1 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]
A4: Limpiar variable %Notif_pte

En el perfil Llega_Notif, al dejar la Aplicación origen sin definir se está aplicando a cualquier notificación, pero se podría afinar para que sólo reaccione a las notificaciones de determinadas aplicaciones.

Por último, las tareas de entrada de ambos perfiles sólo se usan en éstos por lo que no me he parado a asignarles nombre.

Un saludo a todos,

WillyWeb
21/01/16, 18:47:57
No están concatenados. Tienes tres eventos que detectar y para eso necesitas tres perfiles diferentes. Uno que detecte las notificaciones, otro que detecte si es necesario desplegar las notificaciones y otro que detecte si haces clic en una notificación. Esos son los tres perfiles que se deducen de la descripción de tu idea. :oh:

Haz la prueba. Crea esos tres perfiles tal y como te propongo en los puntos 1/2/3 y como tarea le pones un pitido o un "decir" para que veas cómo se comporta lo básico del sistema.

WillyWeb
21/01/16, 18:49:59
Mira a ver si esto te sirve...

Claro que sirve. :ok:

Esa es la idea básica.

Mitrhandir
21/01/16, 19:00:45
Estoy asombrado! Me quito el sombrero! Voy probando y os cuento! Voy a runrunear un rato!

apreton
21/01/16, 19:10:55
Hola.

No había tenido en cuenta las notificaciones que puedan llegar con la pantalla desbloqueada, así que aquí va la primera revisión.

Un nuevo perfil para activar la variable %Pantalla A on

Perfil:
Evento: Pantalla desbloqueada
Entrada:
A1: Establecer variable %Pantalla A on
Salida:
A1: Limpiar variable %Pantalla

El perfil Llega_Notif, se activará entonces con la llegada de cualquier notificación, pero siempre que la pantalla no esté desbloqueada

Perfil: Llega_Notif
Evento: Notificación (categoría IU - Aplicación origen todas)
Estado: Valor de variable %Pantalla distinto de on
Entrada:
A1: Establecer variable %Notif_pte A on

El perfil Despliega_Notif no sufre variación sobre la primera versión

Perfil: Despliega_Notif
Evento: Pantalla desbloqueada
Estado: Valor de variable %Notif_pte igual a on
Entrada:
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:900 Segundos:1 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]
A4: Limpiar variable %Notif_pte

Mitrhandir
21/01/16, 19:15:29
Perfil: Notify 1 (2)
Evento: Notificación [ Aplicación origen:* Título:* ]
Entrada: Notify 1 (71)
A1: Establecer variable [ Nombre:%Notif_pte A:on Calcular:Apagado Añadir:Apagado ]

Perfil: Notify 2 (72)
Evento: Pantalla desbloqueada
Estado: Valor de variable [ %Notif_pte ~ on ]
Entrada: Notify 2 (52)
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:0 Segundos:2 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]
A4: Limpiar variable [ Nombre:%Notif_pte Coincidencia de Patrón:Apagado ]

Aquí lo tengo. En el segundo perfil, al establecer estado/valor de variable, he puesto %Notif_pte igual on. Así está bien no?

Muchas gracias. Casi lloro por la emoción de por fin conseguir esto.


Edito: El perfil llega not, al ser evento, no me deja crear entrada y salida. O tienen que ser las 2 salidas?

WillyWeb
21/01/16, 19:25:22
Si eso hace lo que pretendías ya lo tienes :ok:

Mitrhandir
21/01/16, 19:37:48
Lo he estado probando y funciona! Se me ha puesto una sonrisa de oreja a oreja!

Gracias maestros! :aplausos::gracias:

WillyWeb
21/01/16, 19:44:53
No había tenido en cuenta las notificaciones que puedan llegar con la pantalla desbloqueada, así que aquí va la primera revisión.

Un nuevo perfil para activar la variable %Pantalla A on

Perfil:
Evento: Pantalla desbloqueada
Entrada:
A1: Establecer variable %Pantalla A on
Salida:
A1: Limpiar variable %Pantalla


Los perfiles en los que se usa un evento no tienen tarea de salida :rolleyes:

Yo probaría controlando el estado de la pantalla (encendida/apagada). No es exactamente lo mismo, pero es una buena aproximación.

Mitrhandir
21/01/16, 19:57:24
Perfil: Notify 1 (2)
Evento: Notificación [ Aplicación origen:* Título:* ]
Estado: Valor de variable [ %Pantalla nig on ]
Entrada: Notify 1 (71)
A1: Establecer variable [ Nombre:%Notif_pte A:on Calcular:Apagado Añadir:Apagado ]

Perfil: Notify 2 (72)
Evento: Pantalla desbloqueada
Estado: Valor de variable [ %Notif_pte ig on ]
Entrada: Notify 2 (52)
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:0 Segundos:5 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]
A4: Limpiar variable [ Nombre:%Notif_pte Coincidencia de Patrón:Apagado ]

Perfil: NotifyScreen (75)
Estado: Estado Pantalla [ Está:Si ]
Entrada: NotifyScreenOn (76)
A1: Establecer variable [ Nombre:%Pantalla A:on Calcular:Apagado Añadir:Apagado ]

Salida: NotifyScreenOff (77)
A1: Limpiar variable [ Nombre:%Pantalla Coincidencia de Patrón:Apagado

Así es como lo tengo ahora mismo. Funciona, pero la barra de notificaciones se queda bajada como 1 segundo y yo le he puesto 5. Algo no hecho bien. Creo que es en una variable del segundo perfil.

Estoy loco de contento!

clonico2
21/01/16, 20:19:56
Los perfiles en los que se usa un evento no tienen tarea de salida :rolleyes:

Yo probaría controlando el estado de la pantalla (encendida/apagada). No es exactamente lo mismo, pero es una buena aproximación.
Efectivamente, me acabo de dar cuenta. Se puede añdir un nuevo perfil que limpie la variable cuando detecte la pantalla apagada. [emoji106] [emoji106]

WillyWeb
21/01/16, 21:03:12
Se puede añadir un nuevo perfil que limpie la variable cuando detecte la pantalla apagada.

Efectivamente, es otra opción que debería funcionar. :ok:

WillyWeb
21/01/16, 21:07:47
... Funciona, pero la barra de notificaciones se queda bajada como 1 segundo y yo le he puesto 5. Algo no hecho bien. Creo que es en una variable del segundo perfil.

No parece cosa de ninguna variable. Ten en cuenta que la cortinilla de las notificaciones se puede subir ella sola por otros motivos. :rolleyes:

Si pones un beep junto después de la espera podrás comprobar si se hace correctamente o si la cortinilla sube antes de agotar el tiempo que has puesto. ;-)

Mitrhandir
21/01/16, 21:51:43
De todas formas, repasaré los perfiles porque igual con la emoción, he puesto algo mal. :risitas:

Funcionar, funciona y en agradecimiento, quiero donar mis perfiles, para beneficio del que quiera. Son sencillos pero efectivos.


Edito:


Perfil: Llega Notif (2)
Evento: Notificación [ Aplicación origen:* Título:* ]
Estado: Valor de variable [ %Pantalla nig on ]
Entrada: Notify 1 (71)
A1: Establecer variable [ Nombre:%Notif_pte A:on Calcular:Apagado Añadir:Apagado ]

Perfil: Despliega Barra (72)
Evento: Pantalla desbloqueada
Estado: Valor de variable [ %Notif_pte ig on ]
Entrada: Notify 2 (52)
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:0 Segundos:5 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]
A4: Limpiar variable [ Nombre:%Notif_pte Coincidencia de Patrón:Apagado ]

Perfil: NotifyScreen (75)
Estado: Estado Pantalla [ Está:Si ]
Entrada: NotifyScreenOn (76)
A1: Establecer variable [ Nombre:%Pantalla A:on Calcular:Apagado Añadir:Apagado ]

Salida: NotifyScreenOff (77)
A1: Limpiar variable [ Nombre:%Pantalla Coincidencia de Patrón:Apagado ]

Ahora no me funcionan. No sé qué ocurre!

josemaGL
22/01/16, 00:47:51
De todas formas, repasaré los perfiles porque igual con la emoción, he puesto algo mal. :risitas:

Funcionar, funciona y en agradecimiento, quiero donar mis perfiles, para beneficio del que quiera. Son sencillos pero efectivos.


Edito:


Perfil: Llega Notif (2)
Evento: Notificación [ Aplicación origen:* Título:* ]
Estado: Valor de variable [ %Pantalla nig on ]
Entrada: Notify 1 (71)
A1: Establecer variable [ Nombre:%Notif_pte A:on Calcular:Apagado Añadir:Apagado ]

Perfil: Despliega Barra (72)
Evento: Pantalla desbloqueada
Estado: Valor de variable [ %Notif_pte ig on ]
Entrada: Notify 2 (52)
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:0 Segundos:5 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]
A4: Limpiar variable [ Nombre:%Notif_pte Coincidencia de Patrón:Apagado ]

Perfil: NotifyScreen (75)
Estado: Estado Pantalla [ Está:Si ]
Entrada: NotifyScreenOn (76)
A1: Establecer variable [ Nombre:%Pantalla A:on Calcular:Apagado Añadir:Apagado ]

Salida: NotifyScreenOff (77)
A1: Limpiar variable [ Nombre:%Pantalla Coincidencia de Patrón:Apagado ]

Ahora no me funcionan. No sé qué ocurre!

Revisa los valores de las variables, por si han fallado (que con la pantalla encendida %Pantalla esté a on, que %Notif_pte cambie su valor si tienes notificación..)
Revisa también los nombres de las variables y sus valores, que siempre estén escritas igual (hay veces que nos comemos una letra o ponemos una minúscula en vez de mayúscula..)
Una cosa que yo cambiaría (sólo por manías mías) es la condición ig o nig, por las de coincide(~) o no coincide (!~).

Edito :ahora que recuerdo, creo que me pasó alguna vez con el tema de pantalla si o pantalla no. Me fallaba alguna variable teniendo una tarea de entrada y salida con un perfil parecido al que has puesto. Lo solucioné haciendo un perfil pantalla si, con su tarea sólo de entrada, y otro perfil pantalla no, también sólo con tarea de entrada. Para probar que funcione ese perfil, puedes ponerle una alerta de vibración al final de cada tarea, para ver si se realiza correctamente.

Mitrhandir
22/01/16, 10:50:37
Bueno, ya me funciona! Perfecto además! Yo lo que necesito es que me expliquen el tema de las variables como si yo tuviera 2 añitos. Una vez lo entienda, seré imparable!

Os dejo un regalo. 3 perfiles para que cuando te llamen y vayas en el coche, se encienda el Bluetooth, se enlace con el parrot y que cuando se acabe la llamada, se apague el Bluetooth.

Seguro que vosotros los cogéis y les dais la vuelta, pero la idea es la misma.


Perfil: Call In The Car (14)
Evento: Teléfono sonando [ Llamante:C:ANY ]
Entrada: Bluetooth In The Car (15)
A1: Bluetooth [ Establecer:Encendido ]

Perfil: Speak In The Car (16)
Evento: Teléfono descolgado
Entrada: Bluetooth In The Car (15)
A1: Bluetooth [ Establecer:Encendido ]

Perfil: End Call In To Car (17)
Evento: Teléfono inactivo
Entrada: Bluetooth Off (18)
A1: Bluetooth [ Establecer:Apagado ]

Saludos!

mlesir
22/01/16, 11:28:53
Yo creo que el mejor tutorial q puedes leer es el que hay en el recopilatorio, en los temas fijos. Son de Andreas Ordegard un sueco, pero los tradujimos en su día. Hay uno especifico sobre variables.

Enviado desde mi T1-701u mediante Tapatalk

WillyWeb
22/01/16, 12:47:42
Bueno, ya me funciona! Perfecto además! ...

Estupendo, pero cuenta dónde estaba el problema :cry:

Mitrhandir
22/01/16, 13:00:18
Una chorrada. Se me olvidó anular el perfil que ya tenía hecho previamente por mí,entonces se solapaban! :risitas:

WillyWeb
22/01/16, 13:15:48
Una chorrada. Se me olvidó anular el perfil que ya tenía hecho previamente por mí, entonces se solapaban!

:oh: :aplausos: :ok:

Bueno, al final has conseguido tu objetivo y has podido ver que no es tan complicado. :D

Mitrhandir
22/01/16, 13:27:02
Es complicado para mí porque no entiendo el concepto. Lo aprendo, pero no lo comprendo. El lenguaje de programación no es lo mío. He leído incontables tutoriales sobre las variables y no consigo traducirlas en mi cerebro. Entonces, o soy muy listo o muy lerdo.

Pero no desisto. Voy a seguir peleando. :ok:

WillyWeb
22/01/16, 13:50:35
Es complicado para mí porque no entiendo el concepto. Lo aprendo, pero no lo comprendo. El lenguaje de programación no es lo mío...

Este es el tutorial sobre las variables de Tasker que te ha recomendado mlesir...

http://www.htcmania.com/showthread.php?p=7990372

Creo que la primera parte de ayudará a pillar ese concepto que se te resiste.

Mitrhandir
22/01/16, 16:43:08
Ya he leído el tutorial (por decimosexta vez) y para aprender, hay que practicar.


Perfil: Proximity (4)
Priority: 50
Estado: Sensor de proximidad
Estado: No Llamada [ Tipo:Cualquiera Número:* ]
Aplicación: Inicio Huawei o Apex Launcher, Aplicación/Servicios
Entrada: Proximity On (5)
A1: Reproducir Tono Llamada [ Tipo:Notificación Sonido:LockMp3 Stream:5 ]
A2: Bloqueo sistema


Este es un perfil muy sencillo que tengo para apagar la pantalla cuando cierro la funda survivor de mi Huawei G7.

Entonces, voy a establecer una variable para sustituir al estado/sensor de proximidad.

Estado: establecer variable
Si %sensor_prox coincide on
Estado: No llamada
Aplicación: Huawei Inicio o Apex Launcher


A1: Reproducir Tono Llamada [ Tipo:Notificación Sonido:LockMp3 Stream:5 ]
A2: Bloqueo sistema

La idea está bien planteada? Cómo asigno valor a una variable inventada (ej: %albalatvs)

Un saludo y gracias por todo!

WillyWeb
22/01/16, 18:09:14
Espera. Antes de modificar las cosas que ya te funcionan sin necesidad de usar variables creo que sería bueno aclarar esos conceptos que se te atascan.

En términos de programación una variable es una memoria con nombre. Esa memoria puede contener cualquier cosa (números, fechas, textos) y su valor puede ser fijado por el sistema (como las variables predefinidas de Tasker) o se lo puedes dar tú porque te interesa guardar un dato para usarlo más tarde.

Por ejemplo...

Supongamos que quieres hacerte un avisador de nivel de batería. Tasker tiene una variable predefinida llamada %BATT en la que guarda el porcentaje de carga. Podrías crear una tarea con una acción "Decir" y en el campo "Texto" de esa acción escribir algo como esto:

La batería está al %BATT por ciento

Cada vez que ejecutes esa tarea tu móvil te dirá el nivel de batería.

Otro ejemplo...

Tasker tiene una variable predefinida llamada %LOCSPD en la que guarda la velocidad que indica el GPS mientras está activado. Si en una de tus tareas necesitas saber a qué velocidad te mueves simplemente tienes que activar el GPS y consultar el valor de esa variable.

El GPS entrega ese valor en m/s y tú lo quieres en k/h, así que vamos a realizar un cálculo sencillo para convertirlo:

%vel_km = %LOCSPD * 3600 / 1000

Ahora tienes una nueva variable (%vel_km) que contiene el equivalente de %LOCSPD en m/s pero en k/h.

¿Cómo se asigna valor a una variable?...

El valor de las variables predefinidas es cosa de Tasker. El valor de las variables de usuario (las que tú creas) se suele asignar con la acción "Establecer variable". Si el valor tiene que ser el resultado de un cálculo (como en la conversión a k/m de antes) tienes que marcar la casilla "Calcular", de otro modo el valor es el contenido literal que pongas en el campo "A" de esa acción.

Ya sólo queda aclarar el tema de local/global...

En Tasker, si el nombre de una variable contiene una letra mayúscula se considera global. Si todas las letras de su nombre están en minúsculas será local. Una variable global mantiene su valor de forma permanente (hasta al salir de Tasker) y es utilizable desde cualquier tarea/perfil/escena de Tasker. Una variable local sólo existe dentro de la tarea en la que se crea y desaparece al terminar la tarea.


Todo esto es lo más básico en lo tocante a las variables. ¿Lo has pillado todo?. :oh:

Mitrhandir
22/01/16, 20:17:08
Esta explicación me ha arrojado mucha luz! Me lo has traducido a mi idioma! Lo voy a releer unas cuantas veces.

Muchísimas gracias WillyWeb! :dios:

Caravantes
23/01/16, 02:25:20
Hola. Me he demorado mucho en regresar por aquí, pero creo que todavía llego a tiempo de aportar algo. A lo último que ha publicado albalatvs le propongo las siguientes modificaciones:

Me parece innecesario utilizar un tercer perfil con contexto de Estado Pantalla y usarlo para establecer una variable que enlace con el primer perfil, cuando podemos poner ese mismo contexto directamente en el primer perfil. Concretando: En el primer perfil ("Llega Notif") cambiaría el segundo contexto de variable por un contexto de tipo "pantalla apagada", o sea: Estado Pantalla [ Está:No ]. Con este planteamiento creo que podemos eliminar el tercer perfil y de propina nos ahorramos una variable global (%Pantalla).

Por otro lado, quizá fuera buena idea que la variable %Notif_pte no tuviera valores NULL/"On" sino valores numéricos. La acción del primer perfil sería
Establecer variable %Notif_pte A 1
o mejor aún
Sumar a variable %Notif_pte, 1.
De este modo, la variable también podría servír para llevar la cuenta de cuántas notificaciones pendientes tenemos en cada momento. Eso quizá podría ser útil desde otros puntos de vista, y no complica nada este tinglado. Quizá en un futuro merezca la pena hacer un perfil de aviso si llega a ocurrir que tenemos muchísimas notificaciones pendientes.
Si se hace este cambio en la tarea del primer perfil, habrá que modificar consecuentemente el contexto de variable del segundo perfil (Despliega Barra), que podría ser algo como
Estado: Valor de variable [ %Notif_pte > 0 ]

Como ya se ha comentado, un pequeño defecto de este planteamiento es que no controla las notificaciones que pudieran producirse con la pantalla encendida y bloqueada. Creo que no hay contexto de estado de "pantalla desbloqueada" (o bloqueada) y tampoco hay evento de "pantalla bloqueada. Por todo ello no veo forma fácil de corregir el problema, en todo caso complicaría el tinglado y parece preferible asumir ese pequeño defecto porque hay pocas probabilidades de que se produzcan notificaciones con la pantalla encendida y sin desbloquear.

Saludos.

WillyWeb
23/01/16, 10:11:57
Me parecen estupendas todas las modificaciones que propones. En mi primera aproximación yo también propuse cosas parecidas.

Y todavía llegaría un poco más lejos...

Eliminaría la pausa, el colapsado y el borrado de %Notif_pte del segundo perfil. El hecho de desbloquear la pantalla no implica darte por enterado de las notificaciones (puede que enciendas el móvil para otra cosa). Y colapsar la cortina a los X segundos te puede sorprender en el momento más inoportuno.

El borrado de %Notif_pte lo condicionaría a la pulsación sobre una notificación, una acción que sí implica darte por enterado. Eso obligaría a crear ese tercer perfil que proponía al principio.

Mitrhandir
23/01/16, 13:35:37
Uff, Caravantes y WillyWeb, lo que proponéis es ya rizar el rizo. Yo como lo tengo va bien. Si acaso, voy a ver la manera de hacer el colapsado persistente durante x segundos hasta que no pulse y/o mire la notificación.

Creo esta es una muy buena idea, porque habéis creado un atajo interesante. Ya no es el tener que deslizar el dedo hacia abajo para ver si hay alguna notificación. Desbloqueas y si hay algo, pum, ahí lo tienes. Si te interesa, pulsas. De lo contrario, sube la cortina y haces lo que tenías pensado hacer. Pero a las 3 horas, cuando vuelves a desbloquear el teléfono, que ni te acordabas de esa notificación, pum, ahí la tienes. Es un poco como "eh!, no te olvides de mí!"

La idea es generar un pop up, recordándote que tienes un WhatsApp, un correo, o lo que sea. Vamos, a lo Siri!

Voy probando a ver, seguro que la lío, pero ya he hecho backup, por si acaso.:risitas:

WillyWeb
23/01/16, 14:12:42
Uff, Caravantes y WillyWeb, lo que proponéis es ya rizar el rizo...

Para nada. La primera propuesta de Caravantes deja todo funcionando como está pero te ahorra un perfil y una variable global, y eso siempre es bueno.

Si acaso, voy a ver la manera de hacer el colapsado persistente durante x segundos hasta que no pulse y/o mire la notificación.

Eso es lo que yo proponía al principio. Crea un nuevo perfil de evento clic en notificación y como tarea le pones la acción de limpiar la variable %Notif_pte. Elimina esa misma acción de la tarea que despliega las notificaciones (justo después de la pausa) y ya tienes un aviso persistente hasta que pulses en una notificación.

La idea es generar un pop up, recordándote que tienes un WhatsApp, un correo, o lo que sea.

Pues eso tampoco es tan complicado, y tienes varias formas de hacerlo. En la tarea que controla si llega una notificación puedes analizar el contenido de la variable de Tasker %NTITLE para determinar de qué tipo es (correo, whatspp, facebook, etc). En vez de usar %Notif_pte para contabilizar todas las notificaciones usas una variable diferente para cada tipo y tema resuelto.

Todo esto lo puedes complicar/simplificar todo lo que quieras con muy pocas modificaciones. Es cosa de ponerse. ;-)

Mitrhandir
23/01/16, 16:29:18
Ya he hecho los ajustes que comentáis, lo que pasa es que es sábado por la tarde y notificaciones no hay muchas! :risitas:

Pero os voy contando! Gracias!

Caravantes
23/01/16, 20:54:05
lo que pasa es que es sábado por la tarde y notificaciones no hay muchas!

Si quieres, puedes crear una tarea de Tasker que genere una notificación; incluso puedes hacerlo tras una demora de 10 segundos, para que te de tiempo a activar la tarea (manualmente) y apagar la pantalla antes de que aparezca la notificación.

La idea es generar un pop up, recordándote que tienes un WhatsApp, un correo, o lo que sea. Vamos, a lo Siri!

Puedes hacerlo con Tasker, seguro que aprendes y es divertido. Pero también tienes otra opción más fácil, que es utilizar una app específica para eso. Yo uso PROF REMINDER, que es una app muy configurable: le digo que me avise cada x minutos si hay notificaciones de tal app y tal otra app (eso es un perfil en Prof Reminder, puedes crear varios perfiles de ese tipo). Además, Tasker puede "activar" y "desactivar" esta app PROF REMINDER (o sus perfiles individuales) como se explica en http://www.htcmania.com/showthread.php?t=926504

Mitrhandir
23/01/16, 21:45:27
Hola, he estado probando con los últimos cambios y sinceramente, ya no toco nada más. Lo de persistente era porque muchas veces ignoro WhatsApps del típico/a plasta y luego se me olvida hacerle un poco de caso.

Ahora mismo estoy en el "purgatorio" de si rooteo mi G7 con Lollipop o no. Ventajas sé que muchas, pero me lo estoy pensando.

Quiero daros las gracias por vuestra atención. Me siento honrado de que me hayáis explicado las cosas. Las variables cada vez son menos complicadas, pero me costará.

Un saludo!

Mitrhandir
25/01/16, 09:49:55
"¿Cómo se asigna valor a una variable?...

El valor de las variables predefinidas es cosa de Tasker. El valor de las variables de usuario (las que tú creas) se suele asignar con la acción "Establecer variable". Si el valor tiene que ser el resultado de un cálculo (como en la conversión a k/m de antes) tienes que marcar la casilla "Calcular", de otro modo el valor es el contenido literal que pongas en el campo "A" de esa acción."


Buenos días! He estado en plan open mind para comprender. Y voy entendiendo. Pero por si acaso.

Cuando creamos una variable, ¿qué valores le podemos dar? 1, 0, on, off, *CONNECT*?

Y cuando la creamos, es siempre necesario crear previamente un perfil para asignar el valor que deseemos no? Como en el da barra de notificaciones.
Perdonadme, a lo mejor os parecen preguntas muy obvias, pero soy de los que piensan que si preguntas, eres tonto 5 minutos, pero si no preguntas, lo eres toda la vida.

Gracias por adelantado!

WillyWeb
25/01/16, 10:32:41
Cuando creamos una variable, ¿qué valores le podemos dar? 1, 0, on, off, *CONNECT*?

Exacto. Básicamente puede contener lo que quieras.

Y cuando la creamos, es siempre necesario crear previamente un perfil para asignar el valor que deseemos no? Como en el da barra de notificaciones.

El valor se asigna con una acción dentro de una tarea. Si la variable que creas es global la puedes usar donde quieras, como en un perfil.

... soy de los que piensan que si preguntas, eres tonto 5 minutos, pero si no preguntas, lo eres toda la vida.

Esa es la actitud :ok:

Mitrhandir
25/01/16, 16:15:20
Hola chicos! Os comento, pues habrá que afinar, pues resulta que si no le doy a la notificación y entro directamente en la aplicación, al no limpiar la variable %Notif_pte, cuando ya has leído el WhatsApp o lo que sea, al desbloquear otra vez, baja la cortina, aunque no hayan notificaciones.

Voy a intentar solucionarlo yo, para que veáis mi progreso.
Mi idea es crear otro perfil para que si abrimos whatsapp, limpie la variable, aunque lo suyo sería una variable que englobe todas las aplicaciones.

Entonces, en la A1 de limpiar variable si clic en notificación, le doy valor a la variable %App A on.
Luego creo perfil de nombre OpenApp con estado variable %App coincide on con tarea A1 de salida limpiar variable %Notif_pte.

Así conseguimos que cuando abramos cualquier aplicación,limpie la variable %Notif_pte.

Ya me decís, si he hecho bien los deberes! Jeje!

ruco1980
25/01/16, 16:47:25
Hola... Si pones el perfil (tercero) de evento clic en notificación y lo dejas genérico, haciendo clic en la notificación de cualquier app te limpiará la variable %Notif_pte....a mi me lo hace bien... Si quieres que lo limpie sólo al abrir whatsapp... Haz el perfil sólo para esa app... No te hace falta crear uno nuevo.... A ver si me aclaró para poner los míos desde el móvil... Y así de paso igual se pueden mejorar con alguna idea de los compis más avanzados...
Saludos.

ruco1980
25/01/16, 16:52:07
A ver si sale bien....

Perfil: Llega_Notif_pte (157)
Evento: Notificación [ Aplicación origen:* Título:* ]
Estado: Estado Pantalla [ Está:No ]
Entrada: Anon (158)
A1: Sumar a variable [ Nombre:%Notif_pte Valor:1 Módulo (wrap around):0 ]

Perfil: Despliega_Notif (161)
Evento: Pantalla desbloqueada
Estado: Valor de variable [ %Notif_pte > 0 ]
Entrada: Anon (162)
A1: Barra de estado [ Establecer:Expandido ]

Perfil: Notif_leídas (163)
Evento: Clic en Notificación [ Aplicación origen:* Título:* ]
Entrada: Anon (164)
A1: Limpiar variable [ Nombre:%Notif_pte Coincidencia de Patrón:Apagado ]

Perfil: Aviso_Muchas_Notif_ptes (166)
Estado: Valor de variable [ %Notif_pte > 10 ]
Evento: Pantalla desbloqueada
Entrada: Anon (167)
A1: Bip [ Frecuencia:8000 Duración:4001 Amplitud:50 Stream:3 ]
A2: Pop-Up [ Título:NOTIF_PTES Texto:Capitán mira las Notis que te pierdes alguna importante! Disposición:Popup Task Buttons Cuenta atrás (segundos):5 Mostrar sobre bloqueo pantalla:Encendido ]

Yo los tengo así y me están funcionando bien... Cuando la cortina baja si pulso alguna notificación la variable se limpia y vuelve a su valor 0.... Salvo que haya algún funcionamiento erróneo que no haya apreciado yo...

Saludos.

Mitrhandir
25/01/16, 17:10:01
Hola Ruco, prueba a no darle a la notificación, abrir WhatsApp (o lo que sea) ,leer la notificación y salir. Apagas y vuelves a desbloquear. Verás que al no haber clicado en la notificación de la barra de estado, la cortina baja otra vez sin haber notificación de ningún tipo.

Un saludo!

josemaGL
25/01/16, 17:12:36
Si tienes tasker como notificación permanente (la que al bajar la cortina te muestra los perfiles de tasker activos) creo que te va a limpiar también esa variable si pulsas ahí para abrir la app, e incluso no se si te sumará 1 a la variable cuando la tengas a cero y bloquees la pantalla. Si lo tienes así (como notificación permanente) pruébalo, haber si te sucede.

WillyWeb
25/01/16, 19:39:25
Si tienes tasker como notificación permanente (la que al bajar la cortina te muestra los perfiles de tasker activos) creo que te va a limpiar también esa variable si pulsas ahí para abrir la app...

Sí señor, tal y como está un clic en cualquier notificación limpia la variable y nos fastidia nuestra notificación persistente. Y lo que dice albalatvs sobre las app también es cierto.

La solución está en detectar qué aplicación está abierta y, si es una de las que nos interesa, entonces limpiamos la variable que registra las notificaciones. De esa forma solucionamos el problema que comenta josemaGL (cualquier clic en una notificación limpia nuestra variable) y medio se soluciona el que comenta albalatvs (abrir una app con notificación no cancela nuestra notificación persistente). :-)

Ya estamos un poco más cerca :silbando:

Mitrhandir
25/01/16, 19:54:42
Bufff, pues estoy probando varias cosas, pero no me sale de ninguna manera. Lo único:

Perfil App Notify
Aplicación: seleccionar cualquiera que nos interese (WhatsApp, telegram, Gmail, Twitter...)
Evento: notificación

Entrada A1
Limpiar variable %Notif_pte

De esta forma, nos ahorramos el anterior perfil de notificaciones leídas (clic en notificación)

Voy a probar a ver! :dios:

WillyWeb
25/01/16, 20:01:02
Perfil App Notify
Aplicación: seleccionar cualquiera que nos interese (WhatsApp, telegram, Gmail, Twitter...)

Entrada A1
Limpiar variable %Notif_pte

De esta forma, nos ahorramos el anterior perfil de notificaciones leídas (clic en notificación)

Con eso debería valer :rolleyes:

Aunque esta solución es incorrecta (no es un evento, es un estado) puede valer perfectamente en el 99.9% de los casos.

Ya sólo queda una cosa que solucionar :silbando:

Mitrhandir
25/01/16, 20:08:52
Bueno, pues me funciona! Qué falta por solucionar? La crisis económica? :risitas:

WillyWeb
25/01/16, 20:13:26
Qué falta por solucionar? La crisis económica?

:risitas: ... Si eso se puediesa solucionar con Tasker ya estaba hecho :ok:

Supongamos que tienes controladas las aplicaciones que has puesto ... WhatsApp, Telegram, Gmail, Twitter.

Te llega una notificación de WhatsApp pero pasas de ella y abres Telegram. ¿Has pensado qué pasa? :silbando:

Mitrhandir
25/01/16, 20:26:47
Uy! :rolleyes: Pues habrá que idear otro perfil para que si en 5 minutos no hemos leído el texto en cuestión, provoque una notificación sonora para que nos lo recuerde y que baje la barra estando incluso el tlf bloqueado. Sería una cosa así:



Perfil: NoTeOlvides! (93)
Aplicación: WhatsApp
Entrada: NoTeOlvides! (94)
A1: Esperar [ MS:0 Segundos:0 Minutos:5 Horas:0 Días:0 ]
A2: Reproducir Tono Llamada [ Tipo:Notificación Sonido:Whistle Stream:5 ] Si (if) [ %Notif_pte ~ on ]
A3: Barra de estado [ Establecer:Expandido ]

Cómo lo ves? Funcionará? :loco:

WillyWeb
25/01/16, 20:59:45
Perfil: NoTeOlvides! (93)
Aplicación: WhatsApp
Entrada: NoTeOlvides! (94)
...
A2: Reproducir Tono Llamada [ Tipo:Notificación Sonido:Whistle Stream:5 ] Si (if) [ %Notif_pte ~ on ]
...

Si la notificación pendiente es de WhatsApp podría valer, pero ¿y si no lo es? :silbando:

WillyWeb
25/01/16, 21:01:17
Y ahora que lo pienso mejor ... no vale :(

josemaGL
25/01/16, 21:15:08
Lo mismo hay alguna forma más sencilla (o compleja, según se vea), pero creo que vas a tener que hacer unos perfiles con sus variables, para cada aplicación que quieras controlar...

Caravantes
25/01/16, 21:43:13
pues resulta que si no le doy a la notificación y entro directamente en la aplicación, al no limpiar la variable %Notif_pte, cuando ya has leído el WhatsApp o lo que sea, al desbloquear otra vez, baja la cortina, aunque no hayan notificaciones.

El problema es nítido, pero creo que... Tendrías que intentar controlar demasiados aspectos:

A) Cada vez que se produzca una notificación de alguna app, que Tasker lleve la cuenta de cuántas notificaciones hay (pendientes), supongo que con una variable numérica de tipo contador. Además habrá que controlar también cuál es la app asociada a cada notificación pendiente (como mínimo, otra variable que acumule los nombres de las apps).

B) Cuando se abre la lista de notificaciones y tocas en alguna, que Tasker "descuente" esa notificación del contador, y además retire el nombre de la app en la lista de apps pendientes.

C) Cuando no tocas en la notificación pero acabas abriendo la app asocidada, Tasker también debe "descontar" esa notificación y quitar el nombre de la app en la lista de apps pendientes.

Tras todo eso, si todavía quedan notificaciones pendientes (no descontadas)... la vez siguiente que se haga el desbloqueo habrá que volver a mostrar la cortinilla de notificaciones. Pero si no quedan notificaciones pendientes no habrá que abrir la cortinilla.

Pues creo que es un planteamiento demasiado complicado, porque incluso con este diseño resulta que surgen flecos como el siguiente: puede haber varias notificaciones de una misma app; si tocas en una de ellas deberíamos dar por canceladas/descontadas las otras notificaciones de la misma app. Del mismo modo, si entras directamente en la app deben "descontarse" todas las notificaciones de esa app, una o varias. Esto complica aún más el tingaldo que hay que construir.

Por todo esto, opino que este planteamiento es demasiado complicado. Veo más realista el planteamiento inicial:

Al desbloquear, si hay (una o varias) notificacciones pendientes, Tasker abre la cortinilla y limpia la variable %Notif_pte porque todas esas notificaciones que ya han estado a la vista del usuario y podemos considerarlas como "pasadas", o "vistas" o "no pendientes". Si el usuario decide dejar ahí alguna notificación sin abrirla (sin hacerle caso), ya es su responsabilidad, y la consecuencia será que en el siguiente reinicio no hay que abrir la cortinilla (salvo que haya otras notificaciones "nuevas") porque esa notificación ya era algo sabido.

Esa es mi opinión, creo que es lo más práctico.

Mitrhandir
25/01/16, 22:34:42
La teoría de Ockam dice, a grandes rasgos, que la explicación más sencilla suele ser la más cierta. Esto, aplicado a Tasker, también puede ser válido. El perfil más sencillo, puede ser también el más efectivo (si le metes variables, más aún).

Con esto, quiero decir que por mi parte, se queda así:

Perfil: Notificación (2)
Evento: Notificación [ Aplicación origen:* Título:* ]
Estado: Valor de variable [ %Pantalla !~ on ]
Entrada: Notify 1 (71)
A1: Establecer variable [ Nombre:%Notif_pte A:on Calcular:Apagado Añadir:Apagado ]

Perfil: Barra De Estado (72)
Evento: Pantalla desbloqueada
Estado: Valor de variable [ %Notif_pte ~ on ]
Entrada: Notify 2 (52)
A1: Barra de estado [ Establecer:Expandido ]
A2: Esperar [ MS:0 Segundos:5 Minutos:0 Horas:0 Días:0 ]
A3: Barra de estado [ Establecer:Colapsado ]

Perfil: NotifyScreen (75)
Aplicación: Admin. del tel., Clash of Clans, Descargas...
Entrada: NotifyScreenOn (76)
A1: Limpiar variable [ Nombre:%Notif_pte Coincidencia de Patrón:Apagado ]

Más que nada, porque la perfección no existe, ni tan siquiera en/con Tasker, pero sí nos podemos aproximar a ella.

Pero lo del contador que propone Caravantes, no es mala idea. Mi problema/virtud es que soy muy testarudo y hasta que no consigo mi objetivo, no paro. Asi que me calentaré la cabeza un poco!

Saludos! :cucu:

Mitrhandir
26/01/16, 13:46:47
Hola! Estoy con las variables, probando y practicando, pero tengo muchas dudas. Podría ser que alguien me mandara un privado por Telegram (el que más tiempo libre tenga) y así poder aprender más y mejor de vosotros. Soy albalatvs. Es que tampoco quiero ser cansino por aquí! Jeje!

Saludos!

Mitrhandir
26/01/16, 15:30:44
Perfil: Screen On (53)
Priority: 50
Estado: Estado Pantalla [ Está:Si ]
Entrada: Screen On (42)
A1: Detener Ubicación [ Origen:Cualquiera ]
A2: Auto-Sincr. [ Establecer:Apagado ]
A3: Rotación de pantalla [ Establecer:Apagado ]
A4: Brillo de pantalla [ Nivel:0 Deshabilitar 'Safeguard':Encendido Ignorar nivel actual:Encendido Efecto inmediato:Apagado ] Si (if) [ %LIGHT > 0 ]
A5: Brillo de pantalla [ Nivel:75 Deshabilitar 'Safeguard':Encendido Ignorar nivel actual:Encendido Efecto inmediato:Apagado ] Si (if) [ %LIGHT > 21 ]
A6: Brillo de pantalla [ Nivel:255 Deshabilitar 'Safeguard':Encendido Ignorar nivel actual:Encendido Efecto inmediato:Apagado ] Si (if) [ %LIGHT > 95 ]

Ya estoy aburrido y desquiciado, porque no me funciona de ninguna manera!

josemaGL
26/01/16, 15:55:33
He probado una alerta flash con la variable %LIGHT y no me devuelve valor. De todos modos, que valor de brillo de pantalla crees que te dará, si la variable light tiene como valor 22? O si tiene de valor 96? Creo que deberías poner algo como:
>0 y <22;
>21 y <96;
>95

Mitrhandir
26/01/16, 16:11:35
He probado una alerta flash con la variable %LIGHT y no me devuelve valor. De todos modos, que valor de brillo de pantalla crees que te dará, si la variable light tiene como valor 22? O si tiene de valor 96? Creo que deberías poner algo como:
>0 y <22;
>21 y <96;
>95


Perfil: Screen On (53)
Priority: 50
Estado: Estado Pantalla [ Está:Si ]
Entrada: Screen On (42)
A1: Detener Ubicación [ Origen:Cualquiera ]
A2: Auto-Sincr. [ Establecer:Apagado ]
A3: Rotación de pantalla [ Establecer:Apagado ]
A4: Brillo de pantalla [ Nivel:0 Deshabilitar 'Safeguard':Encendido Ignorar nivel actual:Encendido Efecto inmediato:Apagado ] Si (if) [ %LIGHT > 0 & %LIGHT < 20 ]
A5: Brillo de pantalla [ Nivel:75 Deshabilitar 'Safeguard':Encendido Ignorar nivel actual:Encendido Efecto inmediato:Apagado ] Si (if) [ %LIGHT > 21 & %LIGHT < 95 ]
A6: Brillo de pantalla [ Nivel:255 Deshabilitar 'Safeguard':Encendido Ignorar nivel actual:Encendido Efecto inmediato:Apagado ] Si (if) [ %LIGHT > 96 ]


Lo tengo ahora así, pero tapo el sensor de luz con el dedo y ni se mueve. Estoy extrañado, porque antes lo tenía en 3 perfiles y he querido aglutinarlo en el perfil Screen On para no tener tanto perfil suelto por ahí.

De todas formas, creo que la idea es buena no?
Saludos! X-D

WillyWeb
26/01/16, 16:40:14
... Por todo esto, opino que este planteamiento es demasiado complicado. Veo más realista el planteamiento inicial ... creo que es lo más práctico.

Coincido con buena parte de tu enfoque, sobre todo con esto :risitas:

Y ahora en serio. El sistema inicial, pero controlando la aplicación abierta en vez del clic en la notificación, me parece el más efectivo considerando la relación complejidad/prestaciones.

Si los implicados dan el tema por cerrado hasta aquí hemos llegado. :ok:

Caravantes
26/01/16, 16:41:47
Estoy con las variables, probando y practicando,

En nuestra guía de referencia hay un capítulo 2 dedicado específicamente a las variables. Te lo recomiendo.
http://www.htcmania.com/showthread.php?t=614108

Por otro lado, si quieres consultar o plantear asuntos nuevos (el sensor de luz, u otros) convendría que hicieras un hilo-tema nuevo y específico. No tiene mucha lógica incluir eso del sensor en un hilo titulado "Bajar cortina notificaciones". Conviene hacer lo posible por tener un poco de orden, para que luego haya posibilidades de éxito cuando alguien quiera buscar algo relacionado con la cortinilla de notificaciones o con el sensor de luz o en otro asunto. Eso y otras cosas están explicadas en las...

Recomendaciones para participar en el subforo de Tasker.
http://www.htcmania.com/showthread.php?t=622394

Mitrhandir
26/01/16, 17:04:48
Ok Caravantes, abro hilo nuevo porque estoy muy interesado en aprender y sobre todo, comprender. Lo siento si he cometido el error de mezclar temas. Si lo crees conveniente, borra mis últimos mensajes referidos al tema del sensor de luz, para así empezar de 0 con el nuevo hilo. Disculpas. Os espero en el nuevo hilo!

WillyWeb
26/01/16, 17:10:03
Lo tengo ahora así, pero tapo el sensor de luz con el dedo y ni se mueve...

Creo que estás intentando que un estado se comporte como un evento. :loco:

De todas formas, creo que la idea es buena no?

Sí. Aunque si tienes sensor de luz seguramente tu móvil ya hace el ajuste de brillo automático. :oh:

Sigue el consejo de Caravantes y abre una tema. Allí seguimos comentando el asunto.