PDA

Ver la Versión Completa : [ IDEA ] Notificaciones automáticas en ruta


forismei
03/02/15, 11:49:50
¡Buenos días!

Os cuento en una aplicación de Tasker que se me ha ocurrido, a ver si la veis factible y la mejor forma de plantearla.

Suelo tener que hacer rutas en coche nocturnas. Casi siempre es la misma, pero a veces tengo que variar por motivos que no vienen al caso. La cuestión es que tengo a la novia preocupada y pendiente de si voy bien, de que no me duerma, de por dónde ando y demás...

Aunque he probado aplicaciones tipo Glympse, que va muy bien y hace lo que necesito (que ella sepa por dónde voy para que no se preocupe, y que sepa más o menos cuanto queda para llegar), a veces se me olvida enviarlo. El caso es que estaba pensando en una automatización que haga alguna de las cosas siguientes:

a) Que detecte cuando estoy conduciendo.
b.1) Que cada cierto tiempo, me ubique y envíe una notificación (había pensando mediante Pushbullet) a mi novia con un link de Google Maps con mi ubicación.
b.2) Que al pasar por determinados sitios (independientemente del tiempo), envíe una notificación que diga "Voy por tal sitio".

¿Qué os parece más 'sencillo' de hacer y que funcione mejor?

La b.2 tiene el problema de que, al ir conduciendo, tal vez no detecte bien la ubicación (al ir deprisa, puede no darle tiempo), y que para ubicarme correctamente voy a tener que usar el GPS y me va a crujir la batería.

La b.1 tiene la ventaja de que el uso del GPS para ubicarme va a ser únicamente temporal y que no depende de la ruta que elija...

Otra opción menos "elegante" para mi gusto es automatizar el envío del Glympse cuando detecte que estoy conduciendo, claro... pero eso activa el GPS permanentemente y lo que pretendo es hacer más o menos lo mismo pero con menos gasto de batería...

¡Muchas gracias por vuestras opiniones!

z3us
03/02/15, 18:55:03
Si no usas el gps del móvil mientras conduces, es mejor la primera opción, te va a ahorrar batería, pues la segunda tiene que estar continuamente monitorizando tu posición. En cambio, si usas waze, Google navigator, sygic, o alguno similar, realmente te das igual, pues el gps ya está activo de todas formas.
Para detectar si estás conduciendo te recomiendo usar el plugin autolocation, de pago. Para enviar la posición te puede valer pushbullet, o whatstasker, si quieres enviarla por WhatsApp y tienes el móvil rooteado.

SGSGOMSAU
03/02/15, 22:23:08
Te comento lo que tengo realizado, al igual que tu, hago rutas muy largas de noche, con la consiguiente angustia de la parienta. Cada 15 minutos envio con whatstasker un mensaje a mi mujer indicándole las coordenadas, el pueblo donde me encuentro, la velocidad a la que voy y el tiempo que tardaré en llegar a casa. No conseguí que se enviara un link con el mapa en google maps, puesto que lo trata todo como texto. Si te interesa, te paso las pautas para que lo personalices...

forismei
04/02/15, 07:24:56
Te comento lo que tengo realizado, al igual que tu, hago rutas muy largas de noche, con la consiguiente angustia de la parienta. Cada 15 minutos envio con whatstasker un mensaje a mi mujer indicándole las coordenadas, el pueblo donde me encuentro, la velocidad a la que voy y el tiempo que tardaré en llegar a casa. No conseguí que se enviara un link con el mapa en google maps, puesto que lo trata todo como texto. Si te interesa, te paso las pautas para que lo personalices...

¡Claro que me interesa!

Muchísimas gracias ;-)

SGSGOMSAU
09/02/15, 19:52:41
Bien, empiezo por el PERFIL

Defino un EVENTO de HORA, desde las 0:00 a las 23:59, repitiendose cada 10 minutos (como podras comprobar es SIEMPRE, con ello me aseguro que cada diez minutos se dispare)

+

Valor de variable %Monitorage~1 (Si la variable es 1 se iniciará, préviamente definida por una tarea disparada por un BOTON en una ESCENA)

Y a continuación la TAREA

Enviar Monitorage (108)
A1: Establecer variable [ Nombre:%Lloc A:0 Calcular:Apagado Añadir:Apagado ]
A2: Realizar tarea [ Nombre:Buscar Posicion Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: Detener:Apagado ]
A3: Esperar [ MS:0 Segundos:50 Minutos:0 Horas:0 Días:0 ]
A4: Realizar tarea [ Nombre:Buscar Tempus Prioridad:%priority Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: Detener:Apagado ]
A5: Establecer variable [ Nombre:%Locvel A:%LOCSPD*3.6 Calcular:Encendido Añadir:Apagado ]
A6: WhatsTasker Send Message [ Configuración:ID: [email protected]
Mensaje: Son las %HoraGPS
Estoy en %Nomlloc, en %Distext
Coordenadas: %Lloc
Velocidad: %Locvel Km/h
Llegaré en %Durtext Paquete:net.zhdev.whatstasker Nombre:WhatsTasker Send Message Cuenta atrás (segundos):3 ]

He intentado traducir al castellano todas las instrucciones, disculpa si algo se queda en catalán...No he traducido las variables, primero porqué la idea original es de un buen compañero que en un principio lo compartió y originalmente ya las puso así.


Para no ensuciar en exceso te comentó cada paso aquí a continuación:
A1, Establezco la variable %Lloc a cero, esencial para la tarea que viene a continuación.
A2, Tarea BUSCAR POSISIÓN, la esencial y que te tranquibo después.
A3, Aunque tal vez sea precindible (lo dejo en consideración al comité se sabios) aquí establecí una ESPERA de 50 segundos para que la tarea anterior concluya adecuadamente.
A4, Tarea bautizada como BUSCAR TEMPUS, que lo que intenta averiguar es, desde el punto en que estamos, CUANTO VAMOS a tardar y a que DISTANCIA estamos de casa. Tambien la describo después de forma ordenada.
A5, Defino la variable %Locvel a partir de la variable interna %LOCSPD, que como viene expresada en m/sg, la convertimos en km/h [m/sg=(3600 sg/1hora)*(1km/1000m)]=3,6
A6, Envio mediante WhastTasker al número deseado "34XXXXXXXXX" el mensaje resultante

SGSGOMSAU
09/02/15, 20:15:29
Esta es la TAREA A2 que se realiza en el segundo punto.
Hay rutinas de esta tarea que son prescindibles, puesto que esta tarea tambien la uso para otros menesteres. Como se trata de ser el máximo de claro, te coloco los pasos que creo prescindibles en cursiva, salvo mejor opinión de nuestros compañeros


Buscar Posicion (34)
A1: Si (if) [ %Lloc !~ 0 ]
[I]A2: Establecer variable [ Nombre:%Indexpunts A:1 Calcular:Apagado Añadir:Apagado ]
A3: Realizar tarea [ Nombre:Recuperar Punt Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: Detener:Apagado ]
A4: Fin si (End if)
A5: Si (if) [ %Lloc ~ 0 ]
A6: Tiempo de espera de pantalla [ Segs:30 Mins:1 Horas:0 ]
A7: Establecer variable [ Nombre:%TitolSCR A:BUSCANDO POSICIÓN Calcular:Apagado Añadir:Apagado ]
A8: Establecer variable [ Nombre:%Textequadre A:Estoy buscando la posición actual por GPS y las redes de telefonia.

Tardaré uns 45 seg.

Ten paciencia… .. Calcular:Apagado Añadir:Apagado ]
A9: Limpiar variable [ Nombre:%HoraGPS Coincidencia de Patrón:Apagado ]
A10: Limpiar variable [ Nombre:%Origen Coincidencia de Patrón:Apagado ]
A11: Limpiar variable [ Nombre:%DiaGPS Coincidencia de Patrón:Apagado ]
A12: Limpiar variable [ Nombre:%Precisio Coincidencia de Patrón:Apagado ]
A13: Limpiar variable [ Nombre:%Lloc Coincidencia de Patrón:Apagado ]
A14: Limpiar variable [ Nombre:%Nomlloc Coincidencia de Patrón:Apagado ]
A15: Red móvil [ Establecer:Encendido ]
A16: WiFi [ Establecer:Encendido ] Si (if) [ %Wifiactiu ~ 0 ]
A17: Obtener ubicación [ Origen:Cualquiera Cuenta atrás (segundos):30 Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado ]
A18: Establecer variable [ Nombre:%Lloc A:%LOCN Calcular:Apagado Añadir:Apagado ]
A19: Establecer variable [ Nombre:%Origen A:Antenes Telefonia Calcular:Apagado Añadir:Apagado ]
A20: Establecer variable [ Nombre:%Precisio A:%LOCNACC Calcular:Apagado Añadir:Apagado ]
A21: Si (if) [ %LOCACC < %LOCNACC ]
A22: Establecer variable [ Nombre:%Lloc A:%LOC Calcular:Apagado Añadir:Apagado ] Si (if) [ %LOCTMS > %TIMES-45 ]
A23: Establecer variable [ Nombre:%Precisio A:%LOCACC Calcular:Apagado Añadir:Apagado ] Si (if) [ %LOCTMS > %TIMES-45 ]
A24: Establecer variable [ Nombre:%Origen A:GPS Calcular:Apagado Añadir:Apagado ] Si (if) [ %LOCTMS > %TIMES-45 ]
A25: Fin si (End if)
A26: Establecer variable [ Nombre:%Nomlloc A:%nomlloc12 Calcular:Apagado Añadir:Apagado ]
A27: Realizar tarea [ Nombre:Nomlloc Prioridad:10 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable:%Nomlloc Detener:Apagado ]
A28: Establecer variable [ Nombre:%Nomlloc A:%Lloc Calcular:Apagado Añadir:Apagado ] Si (if) [ %Nomlloc ~ %nomlloc12 ]
A29: Establecer variable [ Nombre:%HoraGPS A:%TIME Calcular:Apagado Añadir:Apagado ]
A30: Establecer variable [ Nombre:%DiaGPS A:%DATE Calcular:Apagado Añadir:Apagado ]
A31: Establecer variable [ Nombre:%TitolSCR A POSICIÓ ACTUAL Calcular:Apagado Añadir:Apagado ]
A32: Establecer variable [ Nombre:%Textequadre A:%Nomlloc

Font: %Origen
Precisió: %Precisio m.
Hora: %HoraGPS
Data: %DiaGPS [Guardar ?] Calcular:Apagado Añadir:Apagado ]
A33: Bip [ Frecuencia:3095 Duración:200 Amplitud:50 Stream:3 ]
A34: Fin si (End if)

Las lineas procedentes para la tarea de MONITORAJE empiezan con el LIMPIADO DE VARIABLES en los pasos A9
En la tarea A15 procede al encendido de REDES MOVILES y WIFI (A16) , procede a obtener ubicación (A17) por diferentes medios (antenas, WIFI, GPS) y escoge aquella que da una mejor precisión.

La tarea A27 definida en esta subtarea A2 es la que sigue:

Buscar Posicion (34)
A1: Si (if) [ %Lloc !~ 0 ]
[I]A2: Establecer variable [ Nombre:%Indexpunts A:1 Calcular:Apagado Añadir:Apagado ]
A3: Realizar tarea [ Nombre:Recuperar Punt Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: Detener:Apagado ]
A4: Fin si (End if)
A5: Si (if) [ %Lloc ~ 0 ]
A6: Tiempo de espera de pantalla [ Segs:30 Mins:1 Horas:0 ]
A7: Establecer variable [ Nombre:%TitolSCR A:BUSCANDO POSICIÓN Calcular:Apagado Añadir:Apagado ]
A8: Establecer variable [ Nombre:%Textequadre A:Estoy buscando la posición actual por GPS y las redes de telefonia.

Tardaré uns 45 seg.

Ten paciencia… .. Calcular:Apagado Añadir:Apagado ]
A9: Limpiar variable [ Nombre:%HoraGPS Coincidencia de Patrón:Apagado ]
A10: Limpiar variable [ Nombre:%Origen Coincidencia de Patrón:Apagado ]
A11: Limpiar variable [ Nombre:%DiaGPS Coincidencia de Patrón:Apagado ]
A12: Limpiar variable [ Nombre:%Precisio Coincidencia de Patrón:Apagado ]
A13: Limpiar variable [ Nombre:%Lloc Coincidencia de Patrón:Apagado ]
A14: Limpiar variable [ Nombre:%Nomlloc Coincidencia de Patrón:Apagado ]
A15: Red móvil [ Establecer:Encendido ]
A16: WiFi [ Establecer:Encendido ] Si (if) [ %Wifiactiu ~ 0 ]
A17: Obtener ubicación [ Origen:Cualquiera Cuenta atrás (segundos):30 Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado ]
A18: Establecer variable [ Nombre:%Lloc A:%LOCN Calcular:Apagado Añadir:Apagado ]
A19: Establecer variable [ Nombre:%Origen A:Antenes Telefonia Calcular:Apagado Añadir:Apagado ]
A20: Establecer variable [ Nombre:%Precisio A:%LOCNACC Calcular:Apagado Añadir:Apagado ]
A21: Si (if) [ %LOCACC < %LOCNACC ]
A22: Establecer variable [ Nombre:%Lloc A:%LOC Calcular:Apagado Añadir:Apagado ] Si (if) [ %LOCTMS > %TIMES-45 ]
A23: Establecer variable [ Nombre:%Precisio A:%LOCACC Calcular:Apagado Añadir:Apagado ] Si (if) [ %LOCTMS > %TIMES-45 ]
A24: Establecer variable [ Nombre:%Origen A:GPS Calcular:Apagado Añadir:Apagado ] Si (if) [ %LOCTMS > %TIMES-45 ]
A25: Fin si (End if)
A26: Establecer variable [ Nombre:%Nomlloc A:%nomlloc12 Calcular:Apagado Añadir:Apagado ]
A27: Realizar tarea [ Nombre:Nomlloc Prioridad:10 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable:%Nomlloc Detener:Apagado ]
A28: Establecer variable [ Nombre:%Nomlloc A:%Lloc Calcular:Apagado Añadir:Apagado ] Si (if) [ %Nomlloc ~ %nomlloc12 ]
A29: Establecer variable [ Nombre:%HoraGPS A:%TIME Calcular:Apagado Añadir:Apagado ]
A30: Establecer variable [ Nombre:%DiaGPS A:%DATE Calcular:Apagado Añadir:Apagado ]
A31: Establecer variable [ Nombre:%TitolSCR A POSICIÓ ACTUAL Calcular:Apagado Añadir:Apagado ]
A32: Establecer variable [ Nombre:%Textequadre A:%Nomlloc

Font: %Origen
Precisió: %Precisio m.
Hora: %HoraGPS
Data: %DiaGPS [Guardar ?] Calcular:Apagado Añadir:Apagado ]
A33: Bip [ Frecuencia:3095 Duración:200 Amplitud:50 Stream:3 ]
A34: Fin si (End if)

Las lineas procedentes para la tarea de MONITORAJE empiezan con el LIMPIADO DE VARIABLES en los pasos A9
En la tarea A15 procede al encendido de REDES MOVILES y WIFI (A16) , procede a obtener ubicación (A17) por diferentes medios (antenas, WIFI, GPS) y escoge aquella que da una mejor precisión.

La tarea A27 es la siguiente:

Nomlloc (36)
A1: Enviar Intent [ Acción:gravitybox.intent.action.CHANGE_NETWORK_TYP E Categ.:None Tipo Mime: Datos: Extra:networkType:2 Extra: Paquete: Clase: Objetivo:Broadcast Receiver ] (cambio a G2, mas estable)
A2: Limpiar variable [ Nombre:%Nomlloc Coincidencia de Patrón:Apagado ]
A3: HTTP Get [ Servidor Puerto:maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%Lloc Ruta: Atributos: Cookies: User Agent: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida: Confiar en cualquier Certificado:Apagado Continuar Tarea Tras Error:Encendido ] (a partir de las coordenadas encontradas obtengo una cadena de texto con la dirección completa)
A4: Establecer variable [ Nombre:%nomlloc A:%HTTPD Calcular:Apagado Añadir:Apagado ]
A5: Si (if) [ %nomlloc ~ */formatted_address* ] (chequeo que la dirección encontrada tenga el formato deseado)
A6: Separar variable [ Nombre:%nomlloc Separador:, Spain</formatted_address> Eliminar base:Apagado ] (empiezo a separar la variable para quedarme con aquello que deseo)
A7: Separar variable [ Nombre:%nomlloc1 Separador:<formatted_address> Eliminar base:Apagado ]
A8: Establecer variable [ Nombre:%nomlloc A:%nomlloc12 Calcular:Apagado Añadir:Apagado ]
A9: Else
A10: Limpiar variable [ Nombre:%nomlloc Coincidencia de Patrón:Apagado ]
A11: Fin si (End if)
A12: Enviar Intent [ Acción:gravitybox.intent.action.CHANGE_NETWORK_TYP E Categ.:None Tipo Mime: Datos: Extra:networkType:1 Extra: Paquete: Clase: Objetivo:Broadcast Receiver ] (vuelvo a cambiar a 2G/3G)
A13: Establecer variable [ Nombre:%Nomlloc A:%nomlloc Calcular:Apagado Añadir:Apagado ] (Traslado el resultado de la variable a una variable que pueda usar en diversas tareas)

***SEGUIRE***

SGSGOMSAU
09/02/15, 20:29:21
****mensaje de respuesta en elaboración****

cace0353
10/02/15, 18:38:45
Te sigo...

Una sugerencia: como me corrigió una vez Caravantes (como ya sabrás uno de los maestros), deberias envolver el código en etiquetas "[quote]" para evitar que se substituya la P mayúscula y otros caracteres por emoticonos.

forismei
10/02/15, 19:42:13
¡Muchas gracias, mañana mismo me pongo con ello!

SGSGOMSAU
18/02/15, 21:03:44
...

forismei
19/02/15, 14:01:10
...

Gracias por la currada que te estás pegando. Yo estoy teniendo problemas desde que actualicé a Lollipop; en cuanto lo tenga solventado empiezo a pasarme todo esto a Tasker y a probarlo.

:aplausos: