Ver la Versión Completa : Perfil de ahorro de bateria con tasker y otro con bluetooth para coche
Doker H1
10/05/13, 17:09:31
Alguien sabria explicar paso a paso como hacer un perfil en tasker (muy paso a paso ya que llevo poco tiempo con el y es bastante dificultoso) de como ahorrar bateria, ya que he visto por internet, pero la gente los explica de una manera que nose guiarme ni donde tengo que darle ni nada .Este seria el primero.
Y el segundo de los dos,es un perfil que cuando me monte en el coche se active el bluetooth de una manera automatica para que se empareje con el manos libres, ya que siempre se me olvida y cojo las llamadas con el movil y teniendo un manos libres puedo ahorrarme la multa y es peligroso, asi que si alguien sabe y quiere explicarlo para que todo aprendamos, ya sabe... jejeje
Muchas gracias!
Un saludo!
Te recomendaría que mirases el recopilatorio, ahí tienes perfiles ya hechos con lo cual sólo tienes que transcribirlos. Si no hay ninguno que te valga en el mismo recopilatorio tienes enlaces a otros sitios donde si que hay perfiles completos y bien montados. Además de los dos que comentas hay montones. Incluso los tienes en xml, con lo cual te los descargas y listo, ya los tienes. Es que entiende que explicar un perfil como los que quieres es un trabajo del kopon y es que eso ya está hecho. Ya te digo que los tienes a montones dado que los perfiles que pides son los más típicos y los primeros que se suelen intentar con tasker.
También te aconsejo leerte las guías del recopilatorio "tasker para principiantes" e ir construyendo perfiles poco a poco. En dos semanas estas subido en la ola!
Caravantes
11/05/13, 03:41:47
Compañero hectorhctr1, creo que tienes demasiadas espectativas con Tasker: quieres resolver un par de problemas pero no te has parado a pensar si es razonable lo que quieres.
Respecto al ahorro de batería, tienes que hacerte un planteamiento más concreto. ¿En qué quieres ahorrar batería o cómo quieres hacerlo? Por ejemplo, puedes hacerte un perfil que solo te deje encender la pantalla dos minutos al día, y te mantiene la pantalla apagada el resto del tiempo. Con eso ahorras mucha batería, pero supongo que lo que quieres es algo muy distinto. ¿Quieres que Tasker desactive la transmisión de datos o la Wifi para ahorrar? ¿Que baje el brillo de la pantalla? Tasker no hace milagros, si vas a seguir usando el aparato de la misma forma no vas a ahorrar nada de batería. ¿Qué quieres cambiar o a qué estás dispuesto a renunciar?
Respecto al tema del bluetooth... Tasker puede activar el bluetooth automáticamente, siempre que tenga alguna manera de enterarse de cómo/cuando debe hacer eso. Si el bluetooth está apagado... no es fácil que Tasker pueda detectar que estás entrando en el coche y por tanto no sabrá cuándo encenderlo ¿Acaso entras en el coche todos los días a la misma hora? ¿siempre en el mismo sitio? ¿O esperas que Tasker lo adivine?
Si quieres usar Tasker, creo que vas a tener que esforzarte un poco más, y deberías leerte unas cuantas páginas para que puedas ir entendiendo cómo funciona y cuáles son las posibilidades. Te sugiero que empieces por la lección 1 y otros tutoriales
http://www.htcmania.com/showthread.php?t=549745
http://www.htcmania.com/showthread.php?p=7356172#post7356172
Doker H1
12/05/13, 14:21:36
Compañero hectorhctr1, creo que tienes demasiadas espectativas con Tasker: quieres resolver un par de problemas pero no te has parado a pensar si es razonable lo que quieres.
Respecto al ahorro de batería, tienes que hacerte un planteamiento más concreto. ¿En qué quieres ahorrar batería o cómo quieres hacerlo? Por ejemplo, puedes hacerte un perfil que solo te deje encender la pantalla dos minutos al día, y te mantiene la pantalla apagada el resto del tiempo. Con eso ahorras mucha batería, pero supongo que lo que quieres es algo muy distinto. ¿Quieres que Tasker desactive la transmisión de datos o la Wifi para ahorrar? ¿Que baje el brillo de la pantalla? Tasker no hace milagros, si vas a seguir usando el aparato de la misma forma no vas a ahorrar nada de batería. ¿Qué quieres cambiar o a qué estás dispuesto a renunciar?
Respecto al tema del bluetooth... Tasker puede activar el bluetooth automáticamente, siempre que tenga alguna manera de enterarse de cómo/cuando debe hacer eso. Si el bluetooth está apagado... no es fácil que Tasker pueda detectar que estás entrando en el coche y por tanto no sabrá cuándo encenderlo ¿Acaso entras en el coche todos los días a la misma hora? ¿siempre en el mismo sitio? ¿O esperas que Tasker lo adivine?
Si quieres usar Tasker, creo que vas a tener que esforzarte un poco más, y deberías leerte unas cuantas páginas para que puedas ir entendiendo cómo funciona y cuáles son las posibilidades. Te sugiero que empieces por la lección 1 y otros tutoriales
http://www.htcmania.com/showthread.php?t=549745
http://www.htcmania.com/showthread.php?p=7356172#post7356172
Me he leido ya varios tutoriales , incluso en ingles, pero bueno tienes razon en que no he explicado las condiciones de los perfiles que yo quiero, lo voy a intentar explicar de una manera muy facil.
-Guarde la ubicacion cuando me bajo del coche, (osea cuando el bluetooth, se desconecta del manos libres del coche)
-Se desconecte el bluetooth.
-Cuando salga de casa y al activar los datos maviles, que se abra el google maps, y que me muestre donde esta el coche, y cuando este cerca de esa posicion que active el bluetooth.
Nose si le estare pidiendo demasiado a esta aplicacion o si se podra hacer eso pero creo haber leido un perfil con esas caracteristicas.
Ya me direis si es posible o no..Gracias!!
Hector lo que tu pides se puede hacer. Es más que asequible para Tasker.
Mira,en el recopilatorio tienes un perfil explicado por Caravantes para guardar la posición del coche cuando lo dejamos.
Son acciones bastante básicas las que necesitas. Te digo digo, la única que podría atragangarsete : para que te abra google maps/abrir mapa (esta en categoría miscelánea) /metes coordenadas que previamente has guardado con obtener ubicacion( que puedes hacerlo por red o por Gps o por las dos).
El resto esta según mi opinión más que explicado.
Tu vete construyendo los perfiles. Primero muy básicos ya tendrás tiempo de mejorarlos. Si te atascas en algo,nos escribes el perfil y te echaremos una mano con eso.
Caravantes
13/05/13, 05:08:09
-Guarde la ubicacion cuando me bajo del coche, (osea cuando el bluetooth, se desconecta del manos libres del coche) -Se desconecte el bluetooth. -Cuando salga de casa y al activar los datos maviles, que se abra el google maps, y que me muestre donde esta el coche, y cuando este cerca de esa posicion que active el bluetooth.
Hector, las dos primeras partes son algo ya conocido y no tienen problema. La tercera parte es un planteamiento muy ingenioso y novedoso, te felicito por la brillante idea.
Creo que puede hacerse aunque exige una tarea complicada porque no es nada sencillo calcular la distancia entre dos ubicaciones. Voy a intentarlo, al menos en la teoría. El asunto es tan complejo que creo que debemos empezar con un apartado de variables, explicando lo que representa cada una.
%Posi1 es la posición1 obtenida del GPS al salir del coche: latitud y longitud (en grados).
%posi2 es la posición2 GPS mientras vamos andando hacia el coche.
%lat1 y %lat2 son las latitudes de %Posi1 y posi2, norte-sur.
%lon1 y %lon2 son las longitudes, este-oeste.
%distalat es la distancia norte-sur entre %lat1 y %lat2.
%distalon es la distancia este-oeste entre %lon1 y %lon2.
%dista es la distancia absoluta entre las posiciones 1 y 2, en metros.
%crono guarda el momento en que se inicia la segunda tarea para buscar el coche (en segundos)
Otra cosa que hay que tener en cuenta es que la ubicación viene en grados (latitud y longitud) y cada grado equivale a 111 kilómetros con 189 metros. Personalmente prefiero convertir primero a metros y hacer todos los cálculos en metros; eso se me hace más comprensible que hacer los cálculos en grados. Empecemos ya.
Primer perfil, que podría llamarse "Coche".
Contexto: conectado al bluetooth del coche.
Tarea de entrada: yo no pondría nada porque ya estamos conectados al bluetooth, pero aquí se pueden añadir cosas del tipo Activar-el-navegador-GPS, abrir-Google-Maps, volumen-al-máximo, etc.
Tarea de salida
- Bluetooth, establecer apagado.
- GPS, establecer encendido.
- Establecer variable %Posi1 a 0 (cero).
- Obtener ubicación, fuente GPS, cuenta atrás de 60 segundos.
- Establecer variable %Posi1 a %LOC (%LOC es la variable de ubicación obtenida por GPS).
- GPS, establecer apagado
- Si %Posi1 = 0
- . Decir "No se ha podido guardar la posición del coche, que fastidio". Si se puede, ponerle la voz de Sheldon Cooper, ayuda bastante.
- Else
- . Decir "Posición guardada"
- Finsi (Endif)
Eso guardará la posición en la que hemos dejado el coche. Luego, cuando queramos volver al coche hay que activar otra tarea. Podemos crear un segundo perfil que se active automáticamente cuando salgamos de casa/oficina y perdamos la cobertura de nuestra red wifi, o bien podemos activar la tarea pulsando un Widget. Recomiendo implementar ambos sistemas, no son excluyentes.
La tarea tendría las siguientes acciones:
- Si %Posi1 = 0
- . Decir "No se ha guardado ninguna posición, ayer yo estaba borracho y no sé donde dejé el coche"
- . Detener Tarea.
- Finsi (Endif)
- Establecer variable %crono a %TIMES (momento en que comenzamos a buscar el coche, en segundos)
- GPS, establecer encendido
- Abrir mapa, modo Navegar a, Latitud-Longitud %Posi1
Hasta aquí no tiene problema, era la parte que ya estaba conocida de sobra. Ahora vamos a calcular los datos de la ubicación del coche (%Posi1) en metros, tanto en latitud como en longitud.
- Divide %posi1 por la coma (para separar latitud y longitud en dos sub-variables)
- Establece %lat1 a %posi11 (obtenemos la latitud)
- Establece %lat1 a %lat1 * 111189 (conversión a metros)
- Establece %lat1 a floor(%lat1) (redondeo para quitar decimales)
Con eso ya tenemos en %lat1 la latitud en metros. A continuación repetimos los mismos cálculos y ajustes para la longitud)
- Establece %lon1 a %posi12
- Establece %lon1 a %lon1 * 111189
- Establece %lon1 a floor(%lon1)
Lo pesado viene ahora: cada poco rato hay que obtener la posición y calcular la distancia, y -mientras esa distancia sea grande- repetir el proceso una y otra vez.
- Etiqueta POSICIONAR (aquí empieza el bucle y esta etiqueta es el destino de los saltos, más abajo queda claro, supongo)
- Establecer variable %Posi2 a 0 (cero).
- Obtener ubicación, fuente GPS, cuenta atrás de 60 segundos.
- Establecer variable %Posi2 a %LOC
- Ir a (etiqueta) NOESTOYCERCA Si %Posi2 = 0
Ahora haremos cálculos equivalentes para obtener latitud y longitud en metros, de nuestra ubicación (mientras caminamos hacia el coche).
- Divide %posi2 por la coma
- Establece %lat2 a %posi21
- Establece %lat2 a %lat2 * 111189
- Establece %lat2 a floor(%lat2)
- Establece %lon2 a %posi22
- Establece %lon2 a %lon2 * 111189
- Establece %lon2 a floor(%lon2)
Ahora calculamos las distancias parciales.
- Establece %distalat a abs(%lat1-%lat2) (distancia norte-sur, en metros)
- Establece %distalon a abs(%lon1-%lon2) (distancia este-oeste, en metros)
Y finalmente usamos el teorema de pitárogras para calcular la distancia real total entre los dos puntos. Raiz cuadrada de sumar (un cateto al cuadrado) y (el otro cateto al cuadrado).
- Establece %dista a sqrt((%distalat * %distalat)+( %distalon * %distalon))
El resto está chupao...
Voy a considerar 100 metros como distancia mínima, aunque esto puede cambiarse.
- Si %dista > 100
Todavía estamos lejos, pero hay que reconsiderar si debemos continuar la búsqueda. Si llevamos más de 30 minutos con la tarea es preferible abortarla. Puede ser que mientras íbamos al coche nos hemos encontrado con un amigo que nos va a invitar a diez cubatas, mejor no seguir buscando el coche. Seguir con la tarea supondría un gasto inútil de batería, sobre todo por el uso repetitivo del GPS.
- Etiqueta NOESTOYCERCA
- . Si %TIMES - %crono > 30 * 60 (datos en segundos).
- . . Decir "Abortando la búsqueda del coche por agotamiento del time"
- . . Ir a (etiqueta) APAGARYTERMINAR
- . Fin si (Endif)
Si llegamos aquí es que estamos lejos del coche pero a tiempo de seguir buscándolo.
- . Esperar 1 minuto
- . Ir a (etiqueta) POSICIONAR
- Finsi (Endif)
Aquí llegamos cuando ya estamos cerca del coche.
- Encender bluetooth
- Etiqueta APAGARYTERMINAR
- GPS, establecer apagado
Fin, acabose, the end.
La espera de un minuto también puede cambiarse o incluso eliminarse. Si se reduce, eso supondrá más ubicaciones GPS y por tanto mayor consumo de batería. La distancia (100 metros o lo que sea) debería ser proporcional al espacio que podemos caminar a pie en ese tiempo de espera. También hay que probar a ver cómo influye el tiempo del GPS (que yo he propuesto en otros 60 segundos) pero creo que a veces el GPS puede acabar antes de que ese tiempo termine. Habría que probarlo.
Sobre los cálculos y la variable %TIMES, hay más información en el siguiente hilo: Matemáticas en Tasker, http://www.htcmania.com/showthread.php?t=571609
Tened en cuenta que solo es un proyecto, no lo he probado. Tal vez contenga errores. En todo caso, creo que es una base para probar y/o proponer alternativas o otras mejoras adicionales.
Queridos dummies, eso es todo por hoy. :cucu:
Doker H1
13/05/13, 07:04:22
Muchas gracias caravantes, vaya curro te has pegado luego cuando me ponga en el pc lo voy a probar y os cuento a ver que tal va.
Un saludo! El
maid450
13/05/13, 09:10:46
+1, vaya currazo te has pegado Caravantes, tiene muy buena pinta esa tarea :aplausos:
Por otra parte hectorhctr1 muy interesante tu idea de encender el bluetooth cuando estás cerca del coche.
Voy a comentar como hago yo la gestión del bluetooth, no es exactamente la misma aproximación, pero a mi la verdad es que me funciona muy bien y consume menos batería al no usar el GPS.
El principal problema para gestionar el bluetooth es como comentaba Caravantes en su primera respuesta es como puede saber tasker que vas a coger el coche para encenderlo, en mi caso:
Cuando salgo de mi casa es bastante probable que coja el coche, pero no siempre.
Cuando salgo del trabajo cojo el coche siempre.
Cuando salgo del chalet de mis padres cojo el coche siempre.
El tema es que a la hora de la verdad, incluso en las situaciones en que siempre cojo el coche pueden darse circunstancias excepcionales en que no lo coja (sin ir más lejos cuando tengo que dejar el coche en el taller...) con lo que la aproximación general que se me ocurrió fue: cuando salga de uno de estos sitios enciendo el bluetooth, y si tras un rato no se ha conectado, lo apago.
Con el uso practico lo he ido refinando corrigiendo los problemas que me iban saliendo y tratando de optimizar el uso de batería y al final se me ha quedado así:
- Tengo un perfil cuyo contexto es "bluetooth conectado" que establece una variable %BTCON a 1 cuando se conecta y la tarea de salida (cuando se desconecta) es un poco más compleja:
1. Establece %BTCON a 0
2. Establece una variable local %cont a 0
3. Esperar 2 minutos; Etiqueta: "Comienzo"
4. Parar si %BTCON = 1 (si se ha vuelto a conectar durante estos 2 minutos)
5. Sumar 1 a %cont
6. Ir a etiqueta "Comienzo" si %cont < 5
7. Apagar bluetooth si %BTCON = 0
Esto lo que hace es que cuando el bluetooth se desconecta, se mantenga encendido durante 10 minutos y cada 2 compruebe si se ha reconectado, si se reconecta se mantiene encendido, si pasado ese tiempo no se ha reconectado se apaga el bluetooth. Esto lo hice así porque vi que cada vez que paraba a repostar o a hacer un recado rapido el bluetooth se me apagaba y ya no se reconectaba.
- Tengo una tarea "IntentoConBT" (intenta conectar bluetooth) que ejecuto como una subtarea (con la acción "Tarea -> ejecutar tarea") en las tareas de salida de los perfiles "casa", "trabajo" y "chalet" y que hace lo siguiente:
1. Parar si %BTCON = 1 (Si ya está conectado no tiene sentido intentar conectar)
2. establecer variable local %cont a 0
3. esperar 30 segundos (cuando salgo de cualquier sitio tardo un rato en llegar al coche)
4. Parar si %cont = 2; etiqueta "Comienzo"
5. Parar si %BTCON = 1
6. Parar si %PACTIVE = *,casa,*/*,trabajo,*/*,chalet,* (si he vuelto a alguno de estos sitios o por algún motivo estos perfiles se han desactivado puntualmente y se han vuelto a activar)
7. Esperar 5 minutos si %cont > 0 (para que no lo haga la primera vez pero si cada vez que vuelva a pasar por aquí)
8. Encender bluetooth
9. Añadir 1 a %cont
10. Esperar 5 minutos
11. Apagar bluetooth si %BTCON = 0
12. Ir a etiqueta "Comienzo" si %BTCON = 0
Esto lo que hace es que durante 15 minutos va alternando el bluetooth: 5 minutos encendido, 5 minutos apagado, y 5 encendido.
Si en alguno de los momentos en que ha estado encendido se ha conectado, la tarea para y se queda encendido
Si en ese rato he vuelto a casa o al trabajo o simplemente el perfil se había apagado brevemente por error (pasa a veces con los perfiles basados en proximidad a antenas de telefonia) la tarea para y se queda apagado.
Si pasan 15 minutos y no se ha llegado a conectar ni he vuelto a casa/trabajo etc... es que esa vez por lo que sea no he cogido el coche y se queda apagado.
Son perfiles algo complejos pero siguiendolos atentamente creo que se entienden y para mi caso al menos me funcionan de maravilla, el peor de los casos es que coja el coche justo cuando se acaba de apagar el bluetooth y espera 5 minutos apagado con lo que el bluetooth se conectaría cuando llevase ya 5 minutos en el coche, pero vamos, en mi caso al menos no es grave.
Además se pueden modificar valores para que los bucles se ejecuten más veces o que de más tiempo de margen etc...
Caravantes
14/05/13, 01:20:34
+1, vaya currazo te has pegado Caravantes, tiene muy buena pinta esa tarea
Bueno, me ha parecido un reto muy interesante. La verdad es que parte de ese trabajo ya lo tenía hecho porque hace meses comencé una app que sigo teniendo a medio hacer pero en la que ya tenía bastante avanzadas algunas cosas comunes como el cálculo de la distancia entre dos ubicaciones obtenidas del GPS o el cálculo de conversión de grados a metros (no encontré esa conversión en Internet así que también me lo he currado por trigonometría, partiendo del radio terrestre, no es difícil). Me he divertido bastante haciendo todo esto.
El caso es que luego he estado repasando esa tarea que publiqué, y me he dado cuenta de que tenía algunos pequeños errores o posibles mejoras. Ya he corregido esos detalles editando mi post original, pero voy a explicar cuáles han sido los cambios.
En primer lugar, no era correcto comenzar aplicando el valor absoluto a la latitud de la posición1, como había hecho (línea en negrita).
- Divide %posi1 por la coma (para separar latitud y longitud en dos sub-variables)
- Establece %lat1 a %posi11 (obtenemos la latitud)
- Establece %lat1 a abs(%lat1) (valor absoluto, despreciar el posible signo negativo de la latitud)
- Establece %lat1 a %lat1 * 111189 (conversión a metros)
Esa acción destacada en negrita ha sido suprimida, y también he suprimido las acciones posteriores equivalentes (valor absoluto, abs) que se aplicaban a las otras variables similares: lon1, lat2 y lon2 (longitudes y latitudes de las posiciones 1 y 2). El motivo es el siguiente: supongamos que has dejado el coche 400 metros al este del meridiano de Greenwich y cuando vas caminando hacia el coche tú estás 400 metros al oeste del mismo meridiano. Es necesario conservar los signos para que la distancia obtenida sea de 800 metros. Sin los signos, la tarea no podría encontrar diferencia entre ambas posiciones y pensaría que ya has llegado al coche. Mismo problema para el ecuador (aunque es muy improbable que cualquiera de nosotros aparque el coche cerca del ecuador... el meridiano de Greenwich sí pasa por España). Resumiendo, sumprimir esas líneas ha simplificado la tarea y mejorado su precisión.
Inicialmente utilicé las siguientes acciones como "control de tiempo", para interrumpir una búsqueda que se prolongaba demasiado rato:
- . Si %TIMES - %crono > 30 * 60 (datos en segundos).
- . . Decir "Abortando la búsqueda del coche por agotamiento del time"
- . . Detener tarea
- . Fin si (Endif)
El error era que abortar de esa forma dejaba el GPS encendido. Hoy he cambiado la acción "Detener tarea" por una acción "Ir a (etiqueta) APAGARYTERMINAR" que lleva a esa (nueva) etiqueta insertada como penúltima acción, justo antes de "GPS, establecer apagado".
También había otro problemilla en una parte anterior de la tarea, que copio tal como estaba:
- Etiqueta POSICIONAR (aquí empieza el bucle y esta etiqueta es el destino de los saltos, más abajo queda claro, supongo)
- Establecer variable %Posi2 a 0 (cero).
- Obtener ubicación, fuente GPS, cuenta atrás de 60 segundos.
- Establecer variable %Posi2 a %LOC
- Ir a (etiqueta) POSICIONAR Si %Posi2 = 0
El problema estaba en que si (por cualquier razón) no podía obtenerse una ubicación GPS, seguiría intentándolo de forma continua y permanente, lo cual es un despropósito. Por ejemplo, si estamos en un garaje subterráneo o en algún otro sitio sin cobertura, el intento permanente del GPS agotará la batería. Y además, este bucle podría repetirse indefinidamente porque no tenía ningún "control de tiempo", control que sí existía mas abajo para el bucle principal.
La solución ha sido fácil. Puesto que el bucle principal ya tenía un control de tiempo, antes de ese control de tiempo he añadido una etiqueta NOESTOYCERCA, y redirigir hacia esa etiqueta en caso de que la ubicación GPS fallase (Ir a etiqueta NOESTOYCERCA Si %Posi2 = 0). No solo obtenemos un "control de tiempo" sino que además, el proceso también pasa por una (posterior) pausa de 1 minuto antes de volver a intentar una ubicación GPS, lo cual contendrá el consumo de batería.
Repito, estas modificaciones y mejoras ya han sido incorporadas a mi texto original.
Todo lo cual está muy bien, pero... Maid450, si quieres que te diga la verdad... para el día a día me parece más realista y más práctica tu estrategia de bluetooth-coche, sobre todo por el menor consumo de batería. En realidad creo que lo idóneo sería hacer una combinación de ambos sistemas:
1 Al bajar del coche y perder el enlace bluetooth, activar el GPS durante un minuto para guardar la ubicación.
2 Al salir de casa, usar un perfil tipo Maid450 que tratará de contactar con el bluetooth del coche sin usar el GPS.
3 Tener la tarea que yo he descrito de aproximación por GPS, con la posibilidad de activarla manualmente (mediante un widget o similar) solo para los casos en que no recordamos dónde hemos dejado el coche u otros casos muy puntuales.
Cada uno podrá adaptar estos sistemas a sus circunstancias concretas, dependiendo de las distancias, las baterías, las coberturas, etc.
KchoPrro
14/05/13, 08:27:55
Impresionante shavales, nivelazo que tenemos por aquí con algunos mostros, además con sentido del humor que es muy de agradecer (lo de "No se ha guardado ninguna posición, ayer yo estaba borracho y no sé donde dejé el coche" me ha llegado al alma :risitas::risitas:, lo que hubiera dado por tener esta tecnología en mis tiempos mozosssss! X-D)
No he entendido ni papa, pero reconozco un gran trabajo cuando lo veo, enhorabuena!!
KchoPrro
maximo86
28/11/14, 00:19:59
Hector, las dos primeras partes son algo ya conocido y no tienen problema. La tercera parte es un planteamiento muy ingenioso y novedoso, te felicito por la brillante idea.
Creo que puede hacerse aunque exige una tarea complicada porque no es nada sencillo calcular la distancia entre dos ubicaciones. Voy a intentarlo, al menos en la teoría. El asunto es tan complejo que creo que debemos empezar con un apartado de variables, explicando lo que representa cada una.
%Posi1 es la posición1 obtenida del GPS al salir del coche: latitud y longitud (en grados).
%posi2 es la posición2 GPS mientras vamos andando hacia el coche.
%lat1 y %lat2 son las latitudes de %Posi1 y posi2, norte-sur.
%lon1 y %lon2 son las longitudes, este-oeste.
%distalat es la distancia norte-sur entre %lat1 y %lat2.
%distalon es la distancia este-oeste entre %lon1 y %lon2.
%dista es la distancia absoluta entre las posiciones 1 y 2, en metros.
%crono guarda el momento en que se inicia la segunda tarea para buscar el coche (en segundos)
Otra cosa que hay que tener en cuenta es que la ubicación viene en grados (latitud y longitud) y cada grado equivale a 111 kilómetros con 189 metros. Personalmente prefiero convertir primero a metros y hacer todos los cálculos en metros; eso se me hace más comprensible que hacer los cálculos en grados. Empecemos ya.
Primer perfil, que podría llamarse "Coche".
Contexto: conectado al bluetooth del coche.
Tarea de entrada: yo no pondría nada porque ya estamos conectados al bluetooth, pero aquí se pueden añadir cosas del tipo Activar-el-navegador-GPS, abrir-Google-Maps, volumen-al-máximo, etc.
Tarea de salida
- Bluetooth, establecer apagado.
- GPS, establecer encendido.
- Establecer variable %Posi1 a 0 (cero).
- Obtener ubicación, fuente GPS, cuenta atrás de 60 segundos.
- Establecer variable %Posi1 a %LOC (%LOC es la variable de ubicación obtenida por GPS).
- GPS, establecer apagado
- Si %Posi1 = 0
- . Decir "No se ha podido guardar la posición del coche, que fastidio". Si se puede, ponerle la voz de Sheldon Cooper, ayuda bastante.
- Else
- . Decir "Posición guardada"
- Finsi (Endif)
Eso guardará la posición en la que hemos dejado el coche. Luego, cuando queramos volver al coche hay que activar otra tarea. Podemos crear un segundo perfil que se active automáticamente cuando salgamos de casa/oficina y perdamos la cobertura de nuestra red wifi, o bien podemos activar la tarea pulsando un Widget. Recomiendo implementar ambos sistemas, no son excluyentes.
La tarea tendría las siguientes acciones:
- Si %Posi1 = 0
- . Decir "No se ha guardado ninguna posición, ayer yo estaba borracho y no sé donde dejé el coche"
- . Detener Tarea.
- Finsi (Endif)
- Establecer variable %crono a %TIMES (momento en que comenzamos a buscar el coche, en segundos)
- GPS, establecer encendido
- Abrir mapa, modo Navegar a, Latitud-Longitud %Posi1
Hasta aquí no tiene problema, era la parte que ya estaba conocida de sobra. Ahora vamos a calcular los datos de la ubicación del coche (%Posi1) en metros, tanto en latitud como en longitud.
- Divide %posi1 por la coma (para separar latitud y longitud en dos sub-variables)
- Establece %lat1 a %posi11 (obtenemos la latitud)
- Establece %lat1 a %lat1 * 111189 (conversión a metros)
- Establece %lat1 a floor(%lat1) (redondeo para quitar decimales)
Con eso ya tenemos en %lat1 la latitud en metros. A continuación repetimos los mismos cálculos y ajustes para la longitud)
- Establece %lon1 a %posi12
- Establece %lon1 a %lon1 * 111189
- Establece %lon1 a floor(%lon1)
Lo pesado viene ahora: cada poco rato hay que obtener la posición y calcular la distancia, y -mientras esa distancia sea grande- repetir el proceso una y otra vez.
- Etiqueta POSICIONAR (aquí empieza el bucle y esta etiqueta es el destino de los saltos, más abajo queda claro, supongo)
- Establecer variable %Posi2 a 0 (cero).
- Obtener ubicación, fuente GPS, cuenta atrás de 60 segundos.
- Establecer variable %Posi2 a %LOC
- Ir a (etiqueta) NOESTOYCERCA Si %Posi2 = 0
Ahora haremos cálculos equivalentes para obtener latitud y longitud en metros, de nuestra ubicación (mientras caminamos hacia el coche).
- Divide %posi2 por la coma
- Establece %lat2 a %posi21
- Establece %lat2 a %lat2 * 111189
- Establece %lat2 a floor(%lat2)
- Establece %lon2 a %posi22
- Establece %lon2 a %lon2 * 111189
- Establece %lon2 a floor(%lon2)
Ahora calculamos las distancias parciales.
- Establece %distalat a abs(%lat1-%lat2) (distancia norte-sur, en metros)
- Establece %distalon a abs(%lon1-%lon2) (distancia este-oeste, en metros)
Y finalmente usamos el teorema de pitárogras para calcular la distancia real total entre los dos puntos. Raiz cuadrada de sumar (un cateto al cuadrado) y (el otro cateto al cuadrado).
- Establece %dista a sqrt((%distalat * %distalat)+( %distalon * %distalon))
El resto está chupao...
Voy a considerar 100 metros como distancia mínima, aunque esto puede cambiarse.
- Si %dista > 100
Todavía estamos lejos, pero hay que reconsiderar si debemos continuar la búsqueda. Si llevamos más de 30 minutos con la tarea es preferible abortarla. Puede ser que mientras íbamos al coche nos hemos encontrado con un amigo que nos va a invitar a diez cubatas, mejor no seguir buscando el coche. Seguir con la tarea supondría un gasto inútil de batería, sobre todo por el uso repetitivo del GPS.
- Etiqueta NOESTOYCERCA
- . Si %TIMES - %crono > 30 * 60 (datos en segundos).
- . . Decir "Abortando la búsqueda del coche por agotamiento del time"
- . . Ir a (etiqueta) APAGARYTERMINAR
- . Fin si (Endif)
Si llegamos aquí es que estamos lejos del coche pero a tiempo de seguir buscándolo.
- . Esperar 1 minuto
- . Ir a (etiqueta) POSICIONAR
- Finsi (Endif)
Aquí llegamos cuando ya estamos cerca del coche.
- Encender bluetooth
- Etiqueta APAGARYTERMINAR
- GPS, establecer apagado
Fin, acabose, the end.
La espera de un minuto también puede cambiarse o incluso eliminarse. Si se reduce, eso supondrá más ubicaciones GPS y por tanto mayor consumo de batería. La distancia (100 metros o lo que sea) debería ser proporcional al espacio que podemos caminar a pie en ese tiempo de espera. También hay que probar a ver cómo influye el tiempo del GPS (que yo he propuesto en otros 60 segundos) pero creo que a veces el GPS puede acabar antes de que ese tiempo termine. Habría que probarlo.
Sobre los cálculos y la variable %TIMES, hay más información en el siguiente hilo: Matemáticas en Tasker, http://www.htcmania.com/showthread.php?t=571609
Tened en cuenta que solo es un proyecto, no lo he probado. Tal vez contenga errores. En todo caso, creo que es una base para probar y/o proponer alternativas o otras mejoras adicionales.
Queridos dummies, eso es todo por hoy. :cucu:
Ya se que hace tiempo de este post pero es que es lo que ando buscando, que cuando monte en el coche se active el bluetooth y cuando me baje se apague, y al volver al coche otra vez se active... . mi mayor problema es que llevo toda la tarde intentando hacer algo con tasker pero no soy capaz, no hay un paso a paso para conseguir lo del bluetooth?
Doker H1
21/04/15, 00:22:29
Hola chicos, aprovechando que tenia ya abierto un post relacionado con el bluetooth del coche, os voy a mostrar el perfil que tengo, el cual me está dando algunos problemas.
Mi intención era crear un perfil que, cuando me montara en el coche al conectarse al bluetooth del mismo, hiciese ciertas cosas (de momento la tarea de entrada marcha bien), añadí una tarea de salida, que tras desconectarse del bluetooth del coche, guardara la ubicacion gps y al cabo de 10 minutos si no se volvia a conectar al buetooth del coche enviara esa ubicación que guardó, a ciertas cuentas de email (esa era mi intención) y me funciona a medias ya que la ubicación se guarda y se envía transcurridos los 10 minutos, el problema es que sigue enviandose hasta cuando me vuelvo a conectar al bluetooth del coche. Me gustaría que me ayudaseis a solucionar este problema.
Hacer un pequeño apunte y es que, por ejemplo cuando dejo el coche aparcado a 100m o 200m de casa muchas veces nada mas meter las cordenadas en google maps me dice que ya he llegado a mi destino, no hay alguna forma de que guarde la ubicación de una manera mas exacta para que no cometa estos fallos?
Nada mas, perdonad porque se que son cuestiones bastante simples, pero llevo un tiempo sin utilizar tasker y no hay manera.
Perfil:
Perfil: Aparcamiento Guardado (4)
Estado: Bluetooth conectado [ Nombre[emoji14]arrot MK6000v1.03a Dirección:* ]
Entrada: Bluetooth On (5)
A1: Establecer variable [ Nombre:%BTCON A:1 Calcular:Apagado Añadir:Apagado ]
A2: Realizar tarea [ Nombre:Act Playlist Spotify Prioridad:%priority Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: Detener:Apagado ]
Salida: Parking Buena (2)
A1: Establecer variable [ Nombre:%BTCON A:0 Calcular:Apagado Añadir:Apagado ]
A2: Si (if) [ %BTCON !~ 1 ]
A3: Obtener ubicación [ Origen:GPS Cuenta atrás (segundos):100 Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado ]
A4: Esperar [ MS:0 Segundos:0 Minutos:10 Horas:0 Días:0 ]
A5: Email Me Pro [ Configuración:To:
[email protected], Subject: Aparcamiento guardado por... Paquete:com.caramellabs.emailmepro Nombre:Email Me Pro Cuenta atrás (segundos):0 ]
A6: Decir [ Texto:Aparcamiento guardado y enviado Motor: Voz:com.google.android.tts:spa-esp Stream:3 Tono:5 Velocidad:5 Respetar Foco Audio:Encendido Red:Apagado Continuar tarea inmediatamente:Apagado ]
A7: Fin si (End if)
darkopro
21/04/15, 07:40:57
En la tarea no tienes ningún encendido de la antena GPS (estas seguro de que cuando buscas la localización por GPS lo tienes encendido?)
¿Cuál es la variable que envías por e-mail? No la veo.
Luego por otro lado veo que en una línea estableces BTCON a 0 y el la otra tienes la condición de si BTCON no es igual a 1. Si la acabas de establecer a 0 nunca va a ser igual a 1 en la siguiente línea.
Por otro lado, el título del post «perfil ahorro de batería» no se yo hasta que punto puede ser cierto esto. Si bien he visto por Internet muchos de estos perfiles no creo que Tasker sea un programa indicado para ahorrar batería porque consume bastantes recursos. Creo que que hay programas mucho mejores para esta clase de propósitos, Gleenify por poner un ejemplo.
Doker H1
21/04/15, 08:42:46
En la tarea no tienes ningún encendido de la antena GPS (estas seguro de que cuando buscas la localización por GPS lo tienes encendido?)
¿Cuál es la variable que envías por e-mail? No la veo.
Luego por otro lado veo que en una línea estableces BTCON a 0 y el la otra tienes la condición de si BTCON no es igual a 1. Si la acabas de establecer a 0 nunca va a ser igual a 1 en la siguiente línea.
Llevo el gps siempre encendido por lo tanto, en mi caso no es necesario que me active el gps.
La variable que me manda por mail es %LOC (no se si sera la correcta, o puede haber una mas acertada para este uso).
Lo de la variable de establecer BTCON A 0, lo había pensado, simplemente borro esa acción y ya esta verdad?.
No se si este tema esta bien situado en el foro pero como es un perfil para el coche, y es un post que abrí hace tiempo, lo he aprovechado.
Un saludo.
darkopro
21/04/15, 09:04:50
La variable es %LOC la de ubicación GPS, era sólo para asegurarme. Yo tengo perfiles similares aunque uso «silent mail» para enviar los e-mails. Lo que hago es establecer una cuenta para estar seguro de que me ha localizado el GPS.
Justo en la acción de antes de obtener ubicación GPS 100 segundos. Establezco una variable por ejemplo: %TiempoInicio a %TIMES
Y justo después de obtener ubicación GPS otra variable:
%TiempoFinal a %TIMES
Luego a %TiempoFinal le restas %TiempoInicial y lo guardo en %TiempoFinal (por ejemplo). Ahora tienes el tiempo que ha tardado en obtener la ubicación GPS. Entonces si has puesto una cuenta atrás de 100 segundos para obtener la ubicación, si ha tardado menos tiempo es que la ha obtenido y sino es que no ha podido. Así que para enviar el e-mail pongo la condición de que %TiempoFinal sea menor que 99. Sino es menor, tasker puede enviarte un aviso como que no ha podido localizarte por GPS, por ejemplo.
Si ves que no te localiza normalmente, puedes aumentar el tiempo que necesita de cuenta atrás para que el GPS te localice.
Si te localiza dentro del tiempo pero tienes problemas con la exactitud, prueba a desconectar el wifi mientras te localiza.
Doker H1
21/04/15, 10:30:14
Si te localiza dentro del tiempo pero tienes problemas con la exactitud, prueba a desconectar el wifi mientras te localiza.
El wifi lo tengo siempre que uso este perfil desactivado, pero vamos esto de la exactitud es una cosa secundaria, lo que yo quiero es que no se ejecute esta tarea (mandar mail) si me vuelvo a conectar al BT del coche.
Yo busco algo mas sencillo, ya que el tema de restar variables y eso, es una cosa que aún se me queda grande, mi principal objetivo es solucionar los problemas que me da.
Gracias por tu interés, un saludo!
Un saludoo!
darkopro
21/04/15, 11:19:57
Gracias amigo por tu interés, pero yo busco algo mas sencillo, ya que el tema de restar variables y eso, es una cosa que aún se me queda grande, mi principal objetivo es solucionar los problemas que me da el perfil que comente 3 o 4 post mas para arriba.
Un saludoo!
Restar variable es algo tan sencillo como poner:
1 Establecer variable
%Total a: %VariableA-%VariableB
Calcular: encendido
Desde mi humilde opinión, primero tienes que saber si te está ubicando bien con el GPS para saber porque no funciona la tarea. Si te cierras en banda a buscar los problemas, es difícil encontrarles solución. Creo que es mejor preguntar ¿Cómo? ¿Porque? y ¿Para que? Cuando no se tiene claro, para intentar avanzar en los problemas ;)
darkopro
21/04/15, 11:25:50
Más que nada te lo digo porque has preguntado si hay alguna manera de guardar la ubicación más exacta. A mil mi gps me ubica con una precisión no superior a 20 metros. Cuando supera ese número, normalmente es porque me está ubicando por geofence.
Doker H1
21/04/15, 11:36:22
Vale, gracias amigo, lo pongo en practica y te cuento.
Muchas gracias!
Doker H1
22/04/15, 11:34:14
La tarea de salida quedaría así o he puesto algo mal (que será lo mas seguro) ?
Parking Buena (2)
A1: Si (if) [ %BTCON !~ 1 ]
A2: Establecer variable [ Nombre:%TiempoInicio A:%TIMES Calcular:Apagado Añadir:Apagado ]
A3: Obtener ubicación [ Origen:GPS Cuenta atrás (segundos):100 Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado ]
A4: Establecer variable [ Nombre:%TiempoFinal A:%TIMES Calcular:Apagado Añadir:Apagado ]
<%TiempoFinal>
A5: Establecer variable [ Nombre:%Total A:%TiempoFinal-%TiempoInical Calcular:Encendido Añadir:Apagado ]
A6: Fin si (End if)
A7: Si (if) [ %TiempoFinal < 99 ]
A8: Email Me Pro [ Configuración:To:
[email protected], Subject: Ubicacio... Paquete:com.caramellabs.emailmepro Nombre:Email Me Pro Cuenta atrás (segundos):0 ]
A9: Fin si (End if)
A10: Si (if) [ %TiempoFinal > 99 ]
A11: Pop-Up [ Título: Texto:No se ha podido guardar ubicacion. Imagen de fondo: Disposición[emoji14]opup Cuenta atrás (segundos):5 Mostrar sobre bloqueo pantalla:Encendido ]
A12: Fin si (End if)
darkopro
22/04/15, 19:52:32
No, supongo que la variable BTCON la tienes que establecer a 0, porque significa que ya no estás conectado al Bluetooth del coche y lo que tienes que quitar es el si (if) de después, dado que BTCON siempre va a ser diferente a 1 en el siguiente paso porque lo ha establecido a 0.
De todas formas, he visto la tarea de entrada y de salida pero no se que te las lanza. El perfil depende de si estás conectado o no al Bluetooth del coche?
Por último si ves que te envía la localización y lo sigue haciendo de forma inexacta tienes dos posibles opciones de solucionarlo:
1) Ir a ajustes/servicios de ubicación y desmarcar la casilla usar redes
2) Si tienes el wifi siempre encendido, añadir como primera acción de la tarea apagar wifi y después de la acción de que te ubique tasker si quieres lo vuelves a conectar.
Doker H1
22/04/15, 23:06:21
No puedes subir tu perfil si lo tienes y así miro lo que me falta y pueda corregir? Es que soy muy torpe para esto y no se bien a que te refieres en el post de arriba.
Un saludo y perdona por el coñazo amigo!
darkopro
23/04/15, 06:26:26
Mi perfil coche no creo que te valiera. Es bastante complejo, consta de varios modos de viajes y está enfocado a otro perfil, automata de estados que tu no tienes. Además tiene varias escenas e interactúa con 4 aplicaciones que si no tienes las 4, no te iba a funcionar.
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.