|
||
|
![]() |
![]() |
Avisos |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Consultar si hay un evento en el calendario en X tiempo.
¡SOLUCIONADO!
Buenas a todos amigos! Vengo con una nueva consulta. Os explico mi caso. Llevo una racha con bastantes cosas encima y últimamente tiendo a distraerme bastante. Soy estudiante de una carrera de ciencias y tengo prácticas de laboratorio donde tengo que llevar cierto material, y más de una vez se me ha olvidado llevarlo y me he visto en algún que otro problema. Quería saber si conocéis alguna forma de que tasker compruebe el calendario para ver si tengo algo y me ponga una notificación. Si pones para que te avise al iniciar el evento no hay ningún problema, pero yo quiero que me avise con antelación. Por ejemplo: Contexto: todos los días a las 11 (que estoy en casa) Tarea: comprobar si hay en el calendario un evento X para ese día (esta es mi duda) y si lo tengo, poner una notificación. Aquí podemos jugar con alguna variable y demás O Contexto: evento en X horas (mi duda) Tarea: notificación. Aquí viene directo. No sé si es posible consultando a través de un enlace a mi calendario o cómo, pero contexto no veo ninguno. Cambiaría el calendario para meter una notificación, pero ya lo tengo metido y es un rollo cambiarlo de nuevo, además me da menos juego a la hora de poner acciones (por ejemplo, que si no hago caso a la notificación a los diez minutos me suene Justin Bieber, que seguro que me levanto a apagarlo), y si lo cambio no usamos tasker ni le damos al coco que es lo bonito de esto. Bien, ¿alguna idea? Gracias a todos! -------------- SOLUCIÓN EN EL MENSAJE 11 DE ESTE TEMA POR MAID
__________________
![]() Última edición por Juanmiwow Día 25/03/14 a las 10:12:26. |
|
#2
|
||||
|
||||
Has mirado a ver el contexto: Estado/Aplicacion/Entrada en calendario? No se si valdrá.
Si no yo tiraría por: 1 -Usar intents o 2 - ver si se puede acceder a la base de sql3 de la app de calendario que uses y coger la fecha y hora del evento. Si es que la app usa una base de sql3 claro.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
Gracias de parte de: | ||
#3
|
||||
|
||||
Has mirado a ver el contexto: Estado/Aplicacion/Entrada en calendario? No se si valdrá.
Si no yo tiraría por: 1 -Usar intents o 2 - ver si se puede acceder a la base de sql3 de la app de calendario que uses y coger la fecha y hora del evento. Si es que la app usa una base de sql3 claro. ![]() Sobre intents o lo de la base de datos... Me pillas con el culo al aire. La verdad que no tengo ni idea, intentaré mirar a ver si se puede algo. Ahora en general: He visto que en Tarea hay una opción en Misc/Prueba y hay varias opciones de calendario, pero la verdad que no entiendo exáctamente qué es lo que puedo hacer con eso. Aquí lo explican un poco pero tengo que ir digiriendo un poco el asunto a ver si saco algo en claro: http://grokbase.com/t/gg/tasker/133b...-specific-time No obstante, sigo necesitando vuestra ayuda, a ver si se os ocurre algo más sencillo, conocéis un plugin o lo que sea. Un saludo y gracias Mlesir
__________________
![]() |
#4
|
||||
|
||||
En el recopilatorio Maid tiene un artículo sobre la acción Prueba. Quizás en la sección otras cosas es donde esta.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
Gracias de parte de: | ||
#5
|
||||
|
||||
Se me ocurre que podrías consultar tu calendario de una forma distinta.... Comparte tu calendario contigo mismo... Me explico.
Exporta el calendario a csv o a icalendar y luego examina el resultado como si del contenido de una web se tratase... Quizas ahi tengas acceso a un listado con los eventos programados conforme necesitas... Algo de información en https://support.google.com/calendar/answer/37648?hl=es |
Gracias de parte de: | ||
#6
|
||||
|
||||
http://www.htcmania.com/showthread.php?t=627786 Creo que hay algún error en ese ejemplo escrito por el maestro Andreas, así que en ese mismo hilo he añadido un segundo post con aclaraciones y correcciones que considero necesarias para acceder al calendario.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
#7
|
||||
|
||||
Se me ocurre que podrías consultar tu calendario de una forma distinta.... Comparte tu calendario contigo mismo... Me explico.
Exporta el calendario a csv o a icalendar y luego examina el resultado como si del contenido de una web se tratase... Quizas ahi tengas acceso a un listado con los eventos programados conforme necesitas... Algo de información en https://support.google.com/calendar/answer/37648?hl=es ![]() La idea es muy buena... pero no hace falta exportar nada. Es posible acceder a la información del calendario mediante una acción HTTP-Get que consulta el servidor de Google. Lo que obtienes es un XML/RSS que pasa a una variable, y luego la tarea puede analizar el contenido de la variable para comprobar los próximos eventos (hora, nombre del evento, etc), y finalmente tomar la decisión que corresponda. En nuestro tutorial de cabecera (Lección 4: El procesamiento de datos en variables), está explicado un "EJEMPLO 3" con el método de acceso al calendario y algunos detalles sobre la forma de manejar la información obtenida.
http://www.htcmania.com/showthread.php?t=627786 Creo que hay algún error en ese ejemplo escrito por el maestro Andreas, así que en ese mismo hilo he añadido un segundo post con aclaraciones y correcciones que considero necesarias para acceder al calendario. ![]() Por lo que veo, es droga dura el tutorial, y es para desgranar poco a poco, pero seguro que con vuestra ayuda, con el tutorial de Andreas traducido por vosotros, y con el ejemplo 3 que me indicas, podré hacerlo. Os voy comentando! Gracias de nuevo! Me lo apunto por si fracaso en el otro intento. Muchas gracias!
__________________
![]() |
#8
|
||||
|
||||
Tampoco hace falta complicarse con el tasker. Cuando creas un evento en el calendario (desde el ordenador o en el móvil) puedes programar que te salte una notificación x minutos u horas antes. Luego si quieres, puedes interceptar la notificación con tasker.
Edito: no había leído lo que pusiste al final del primer post
__________________
Última edición por z3us Día 25/03/14 a las 00:41:52. |
Gracias de parte de: | ||
#9
|
||||
|
||||
![]() ![]() ![]() Si me pongo a cambiarlo a mano, o me vuelvo loco a la mitad, o me ponen gafas, o me dan la nacionalidad china ![]() Para la próxima quizás lo haga a lo fácil, pero para ahora prefiero complicarme en esto y ampliar conocimientos, a hacer tareas repetitivas que no me aporten demasiado. Gracias por pasarte por el tema!
__________________
![]() |
#10
|
||||
|
||||
Creo que es conocido por todos, pero por si es el caso... , para eventos muy repetitivos el calendario de Google permite crear series de eventos. De esta forma sólo tendrías que modificar una entrada y las demás se autocorregirian...
|
Gracias de parte de: | ||
#11
|
||||
|
||||
Tienes varias opciones, aunque ninguna es totalmente sencilla.
La forma con Tasker puro es usar la acción "prueba" como comentaba mlesir. con ella puedes comprobar los eventos que hay en un instante concreto, tendrías que ejecutar una tarea de forma periodica que a su vez en un bucle vaya comprobando a lo largo del día los eventos. La que para mi pienso que es la mejor forma: si usas el calendario de google los eventos se guardan en una base de datos, y con la consulta correcta puedes sacar los datos que necesitas. Por ejemplo, esta consulta la saqué hace un tiempo del foro oficial a la espera de usarla algún día: Código:
sqlite3 -list /data/data/com.android.providers.calendar/databases/calendar.db "SELECT Instances.begin, Events.title FROM Instances JOIN Events ON Instances.event_id = Events._id WHERE begin > %TIMEMS ORDER BY Instances.begin ASC LIMIT 5;" | awk -F "|" '{printf strftime("%a %H:%M",$1/1000)}{print " -",$2}' Código:
Tue 13:00 - Call Someone Tue 19:00 - Spare key Wed 08:00 - Someone on holiday Thu 17:00 - Rubbish Fri 08:30 - Parking permit Por supuesto esta consulta se puede adaptar para buscar lo que te interese y devolver el resultado de otra forma |
Los siguientes 3 usuarios han agradecido a maid450 su comentario: | ||
#12
|
||||
|
||||
Tienes varias opciones, aunque ninguna es totalmente sencilla.
La forma con Tasker puro es usar la acción "prueba" como comentaba mlesir. con ella puedes comprobar los eventos que hay en un instante concreto, tendrías que ejecutar una tarea de forma periodica que a su vez en un bucle vaya comprobando a lo largo del día los eventos. La que para mi pienso que es la mejor forma: si usas el calendario de google los eventos se guardan en una base de datos, y con la consulta correcta puedes sacar los datos que necesitas. Por ejemplo, esta consulta la saqué hace un tiempo del foro oficial a la espera de usarla algún día: Código:
sqlite3 -list /data/data/com.android.providers.calendar/databases/calendar.db "SELECT Instances.begin, Events.title FROM Instances JOIN Events ON Instances.event_id = Events._id WHERE begin > %TIMEMS ORDER BY Instances.begin ASC LIMIT 5;" | awk -F "|" '{printf strftime("%a %H:%M",$1/1000)}{print " -",$2}' Código:
Tue 13:00 - Call Someone Tue 19:00 - Spare key Wed 08:00 - Someone on holiday Thu 17:00 - Rubbish Fri 08:30 - Parking permit Por supuesto esta consulta se puede adaptar para buscar lo que te interese y devolver el resultado de otra forma ![]() ![]() Lo que he hecho es copiar el código que me has puesto, almacenarlo como salida en una variable que le he puesto %Evprox (Evento Próximo) y la he puesto a mostrar en un flash, y efectivamente me aparecen mis tareas tal y como me has dicho. Después he metido un IF para que compruebe si tengo tarea, y que compruebe si %Evprox coincide con "*Prácticas*" ( con los * para que coja las distintas prácticas que tengo) y listo! Como contexto pondré que lo haga para las 12 todos los días, que estoy en casa, o para primera hora de la mañana y que me ponga una notificación persistente que se borre en 1h. Me alegra haber preguntado, no sólo por haber resuelto mi duda, sino porque creo que esto puede abrir posibilidades interesantes. Muchísimas gracias maid!!!! Marco el tema como solucionado, muchas gracias a todos. La verdad que es un gusto de foro para cualquier aficionado de Tasker. ![]()
__________________
![]() |
#13
|
||||
|
||||
Además de programarlo para que sea a las 12, puedes hacer que además compruebe que estas geoposicionado en casa... Y asi si un dia cambias la rurina no interfiere...
|
#14
|
||||
|
||||
Buenas, estoy intentando hacer algo parecido al compañero, pero al ejecutar el comando me da error, lo he almacenado en una variable y dice " sh:<stdin>[4]: no closing quote" y el resultado me da 1.
Si alguien pudiese ayudarme. Gracias de antemano. Diculpad, ya esta solucionado, erro de despiste. Última edición por alnaufra Día 14/09/14 a las 21:55:20. |
#15
|
||||
|
||||
Hola: estaba intentando realizar la tarea, sin conocer mucho del tema, copio el comando puesto por maid450 y no me salía nada, cuando me doy cuenta que en la tarea de ejecutar consola hay un item que dice "store errors in", coloque una variable %AAA y luego utilice una notificación que me dijera el valor de la variable %AAA y decía no se encuentra sqlite3,entonces me doy cuenta que no tengo sqlite3 instalado y buscando y buscando por todos lados no pude instalar sqlite3 para mi versión de android 2.3.6, hasta que llegué por intermedio del "Recopilatorio e información básica para usuarios de la aplicación Tasker" a un post de mlesir que leyéndolo todo y al llegar al final están los enlaces y la forma de instalarlo.
http://www.htcmania.com/showthread.php?t=775082 Quiero ponerlo, porque como siempre, uno va a aprendiendo un poco de todos, va leyendo los distintos hilos y siempre va llegando a lugares que no había leido y termina aprendiendo cosas que van mejorando los perfiles (que al principio eran copiados sin entender mucho) y que de a poco van vinculándose y complejizandose con ideas propias. Tal vez a alguién le pasa lo mismo que yo y está por abandonar la tarea y aquí encuentra la solución |
Los siguientes 5 usuarios han agradecido a leromaro su comentario: | ||
![]() |
![]() |
||||||
|