Ver la Versión Completa : Tarea que te dice el tiempo y temperatura
Alfahuir
10/03/13, 15:16:54
Este es el primer perfil que comparto, espero que os sea de utilidad
En primer lugar dar las gracias a aemet, dado que ellos son los proveedores de la información que vamos a extraer y aprovechar
Os adjunto el archivo xml (creo que he hecho bien la exportación) para que podáis importarlo aunque tendréis que modificarlo dado que si no os informará del tiempo en Valencia, que es donde yo vivo
https://docs.google.com/file/d/0B3UDNyv9Vf6jQWJ5MlhodUxhVms/edit?usp=sharing
Esta tarea la tengo asignada a un evento para que cuando apago la alarma del despertador por las mañanas, automáticamente me diga el tiempo y temperatura que hará ese día pero modificándola podéis extraer mucha mas información, probabilidad de lluvia, cota de nieve, información sobre el viento, sensación térmica, humedad y no solo del día en actual sino también de varios días posteriores
Estoy dándole vueltas para que también me diga las tareas que tengo para ese día, pero no tengo mucho tiempo, no se si al final lo conseguiré
Al lío
1. Establecer variable , %FECHAREV a %DATE, con esto a la variable FECHAREV le asignamos el día de hoy
2. Separar variable , %FECHAREV separador -, con esto creamos tres variables FECHAREV1, FECHAREV2 Y FECHAREV3 las cuales tienen respectivamente el día mes y año actual
3. HTTP Get www.aemet.es/xml/municipios/localidad_46250.xml, Tipo Mime text/xml, aquí estamos obteniendo los datos para la ciudad de Valencia, si quereis los datos para otra ciudad tenéis que entrar en la página de aemet y buscar el municipio que queráis, os saldrá en la pantalla "descargar xml de la predicción detallada de ...." 253733 en ese enlace os saldrá 253734 y la dirección que aparece en la barra del navegador es la correspondiente a vuestra ciudad y que tenéis que poner en vez de .......localidad_46250.xml que os indico arriba. Todo lo que veis en pantalla es información que se puede tratar
4. Establecer variable %HTTPD %result, toda la información obtenida anteriormente se la asignamos a %result para tratarla
5. Separar variable %result <prediccion>, estamos separando %result en dos variables %result1 y %result2, %result1 tiene todo el texto antes de <prediccion> y %result2 el posterior
6. Separar variable %result2 <dia fecha="%FECHAREV3-%FECHAREV2-%FECHAREV1">, estoy separando la variable %result2 por el día que me interesa, aquí creamos dos variables mas %result21 y %result22 con el texto antes y después del separador que le hemos indicado
7. Separar variable %result22 descripción=", lo mismo de antes volvemos a crear dos variables %result221, %result222, %result223, ....
8. Separar variables %result222 ", idem, volvemos a crear dos variables %result 2221 y %result 2222
9. Separar variable %result223 ", idem
10. Decir "El tiempo por la mañana será %result2221 y por la tarde %result 2231, después de estar separando variables ya nos puede decir el tiempo de hoy
11. Separar variable %result227 <maxima>, obtenemos variables %result2271, %result2272, ....
12. Separar variable %result2272 </maxima>, idem
13. Separar variable %result 22722 </minima>, idem
14. Separar variable %result227221 <minima>, idem
15. Decir "La temperatura máxima será de %result22721 grados y la mínima de %result2272212"
Y ya está, realmente lo que tenéis que comprender es que todo el texto que obtenemos en el punto dos se lo asignamos a la variable %result
Cuando separamos una variable, se crean tantas variables como separadores tenga el texto, por ejemplo, tenemos una variable que se llama %texto en el que se repite diez veces la letra ñ, cuando separemos esa variable se crearán 11 variables nuevas %texto1, %texto2, %texto3, ...
Por eso sabiendo la información que obtenemos y separando variables a nuestro gusto podemos obtener información del viento, humedad, sensación térmica
Como consejo, y como es facil perderse con tanto separación de variables, os podeis crear una notificación para que os vaya informando de los valores de %result...
Espero que la explicación haya sido comprensible y con un poco de trabajo personalizarla a vuestro gusto si es que no queréis dejarla como está, a mi cada mañana cuando apago el despertador el movil me dice el tiempo y mi mujer se cachondea
willhelm84
18/03/13, 20:44:42
Unas sugerencias y añadidos para poder mejorar esta tarea.
Se le podria añadir que te dijese los datos de la localidad en la que estes en ese momento?? es decir, que te geolocalice. Y que además te diga el nombre de la ciudad, algo asi como:
"En la ciudad de Valencia está soleado por la mañana y nublado por la tarde."
No se si me he llegado a explicar bien :loco:
Caravantes
19/03/13, 00:49:06
Se le podria añadir que te dijese los datos de la localidad en la que estes en ese momento?? es decir, que te geolocalice. Y que además te diga el nombre de la ciudad, algo asi como: "En la ciudad de Valencia está soleado por la mañana y nublado por la tarde."
En Tasker se puede Geolocalizar, pero el resultado obtenido son unas coordenadas (latitud y longitud). Saber a qué provincia y/o municipio corresponden esas coordenadas ya es algo mucho más complejo, yo no sé hacerlo y no me parece fácil. Si alguien puede ayudar con este detalle que diga cómo se puede conseguir, me vendría bien para otro perfil distinto que estoy preparando y ya comentaré en su momento.
El otro problema es que Aemet solo te da la predicción para los municipios más importantes. Por ejemplo, para la provincia de Valencia solo contempla 20 municipios
http://www.aemet.es/es/eltiempo/prediccion/municipios?p=46
Pero en esa provincia hay más de 260 municipios. ¿Que ha de hacer la tarea cuando estemos en un municipio no referenciado por Aemet? Lo ideal sería que la tarea diese la información meteorológica del municipio más cercano que sí esté referenciado en Aemet, pero eso ya me parece muy desproporcionado (prácticamente imposible) para una tarea de Tasker.
Saludos.
willhelm84
19/03/13, 06:59:01
En Tasker se puede Geolocalizar, pero el resultado obtenido son unas coordenadas (latitud y longitud). Saber a qué provincia y/o municipio corresponden esas coordenadas ya es algo mucho más complejo, yo no sé hacerlo y no me parece fácil. Si alguien puede ayudar con este detalle que diga cómo se puede conseguir, me vendría bien para otro perfil distinto que estoy preparando y ya comentaré en su momento.
El otro problema es que Aemet solo te da la predicción para los municipios más importantes. Por ejemplo, para la provincia de Valencia solo contempla 20 municipios
http://www.aemet.es/es/eltiempo/prediccion/municipios?p=46
Pero en esa provincia hay más de 260 municipios. ¿Que ha de hacer la tarea cuando estemos en un municipio no referenciado por Aemet? Lo ideal sería que la tarea diese la información meteorológica del municipio más cercano que sí esté referenciado en Aemet, pero eso ya me parece muy desproporcionado (prácticamente imposible) para una tarea de Tasker.
Saludos.
Lo unico que se me ocurre es que si tienes 2 o 3 sitios habituales donde sueles estar, poder escribir una tarea de tiempo para esos 2 o 3 sitios.
Poniendo al principio la condicionante "Si" coincide con geolocalización hacer tal tarea.
Tambien se puede poner una tarea que si no coincide, que no haga nada y que no diga el tiempo.
Alfahuir
19/03/13, 08:57:14
Estuve pensando inicialmente cuando creé la tarea en esa posibilidad (geolocalización y que te diera el tiempo de tu posición) pero como dice Caravantes es un poco dificil
La opción que me pareció mas factible fue una correspondencia con códigos postales pero el archivo de aemet de donde sacamos la información no coincide, si obtenemos
http://www.aemet.es/xml/municipios/localidad_46009.xml, este código postal debería pertenecer a Valencia pero sin embargo es de Albalat dels Sorells, SI que coinciden los dos primeros números que te localiza por provincia pero dentro de la provincia los tres números siguientes desconozco que serie siguen
Si se me ocurriera algo os lo haría saber
Alfahuir
19/03/13, 09:01:27
Se podría crear una base de datos pero hay ¡¡8116 municipios!!
Menuda tarea
Caravantes
19/03/13, 09:39:42
SI que coinciden los dos primeros números que te localiza por provincia pero dentro de la provincia los tres números siguientes desconozco que serie siguen
Dentro de cada provincia, Aemet asigna un número a cada municipio, por orden alfabético. Así, 46001 en la Aemet corresponde al municipio de Ademuz.
http://www.aemet.es/xml/municipios/localidad_46001.xml
En cambio, para correos, 46001 es el código postal del barrio central de Valencia.
Aunque se pudiera conseguir una base de datos con todos los códigos de Aemet, sigo sin entender cómo podemos relacionar las coordenadas que nos da el GPS con esos códigos de municipio (o con los códigos postales).
Alfahuir
19/03/13, 10:51:32
Ok, según lo veo yo tenemos dos problemas:
1. traducción de latitud y longitud a códigos postales
2. equivalencia de dicho código postal con los códigos de aemet
Para la primera cuestión hay servicios (me imagino que activos y gratuitos, aunque no lo se cierto) que de internet y mediante un HTTP Get (como nuestra tarea) o un HTTP Post podríamos obtener dicha equivalencia, habría que jugar con el tipo de archivo obtenido, tratar dicha información, ver si la API es libre de ser utilizada o si es de pago,... en fin, complicado pero creo que no imposible, solo es cuestión de tiempo y ponerse a ello
Si pruebas el enlace de geonames y cambias la latitud y la longitud, verás que obtienes un archivo xml en el que hay un código postal, habría que hacer pruebas para comprobar la fiabilidad, pero aquí tenemos una posible solución al primero de los problemas
La segunda cuestión sería la creación de una tabla de datos para dicha equivalencia o algo parecido
Alfahuir
19/03/13, 23:17:45
Obtención del código postal a partir de nuestra dirección gps
No me ha dado tiempo de probarla mucho pero creo que funciona bien
1. Establecer variable %direccgps a %LOC
2. HTTP Get http://maps.google.com/maps/api/geocode/xml?sensor=true&latlon=direccgps, en tipo MIME ponemos text/xml
3. Establecer variable %cpostal a %HTTPD
4. Separar variable %cpostal separador <formatted_address>
5. Separar variable %cpostal2 separador ,
6. Sección de variable %cpostal23 desde 1 longitud 6
Y ya está, tenemos en %cpostal23 el código postal de nuestra ubicación
Necesito hacer pruebas, pero creo que funciona
Además en %cpostal21 tenemos la calle de nuestra ubicación y en %cpostal 22 el número de la calle y desglosando mas el archivo xml podemos obtener información de la comunidad autónoma, barrio, pais, ciudad
Solo me queda la duda de que pasaria si la ejecutáramos en medio del campo, si sería fiable dicho código postal
Alfahuir
19/03/13, 23:24:51
Me equivoque al transcribir el punto 2 lo correcto es:
2. HTTP Get maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%direccgps
Alfahuir
20/03/13, 18:30:22
Pues no, tal y como está tiene algún fallo, es lo que pasa por hacer las cosas rápidas
Cuando lo tenga pulido lo volveré a subir, en todo caso el problema está en cruzar la información del código postal con el código de aemet, es un trabajón relacionar la base de datos de aemet salvo que se hiciera de otra manera que ahora no se me ocurre
Pues que pena. A ver si lo consigues porque estaría de lujo. Yo es que en este tema de Tasker estoy pez.
Enviado desde mi GT-N7000 usando Tapatalk 2
Caravantes
22/03/13, 03:19:26
Pues no, tal y como está tiene algún fallo, es lo que pasa por hacer las cosas rápidas. Cuando lo tenga pulido lo volveré a subir, en todo caso el problema está en cruzar la información del código postal con el código de aemet, es un trabajón relacionar la base de datos de aemet salvo que se hiciera de otra manera que ahora no se me ocurre
Alfahuir, esa parte que dices que falla... creo que no nos la has mostrado. La parte que has mostrado, la información postal y geográfica a mí me funciona perfectamente. Por ejemplo, la siguiente tarea muestra la dirección del lugar: nombre de la calle, población, etc.
1 Obtener ubicación, GPS
2 HTTP Get maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%LOC
3 Establecer variable %info a %HTTPD
4 Separar variable %info , separador </formatted_address>
5 Separar variable %info1 , separador <formatted_address>
6 Notificación %info12
Vamos a comprobar algunos pasos de este proceso mediante un ejemplo.
1 Supongamos que estamos en el centro de Valencia, concretamente en la calle Poeta Querol, número 10. Fijaros que la siguiente URL hace referencia a esa calle y esa ciudad, y vemos el mapa de ese lugar
https://maps.google.es/maps?num=50&hl=es&safe=off&q=Calle+poeta+querol,+10,+valencia
2 Si estamos en ese lugar y el GPS funciona bien, en %LOC obtendremos las coordenadas siguientes u otras muy similares
%LOC=39.471475,-0.374344
El siguiente enlace lleva esas coordenadas y podemos comprobar que el mapa muestra el mismo lugar de antes
https://maps.google.com/maps?q=39.471475,-0.374344
3 Comprobemos ahora la URL consultada por la tarea, utilizando esas coordenadas, y veamos que información nos muestra el documento obtenido
maps.google.com/maps/api/geocode/xml?sensor=true&latlng=39.471475,-0.374344 (http://maps.google.com/maps/api/geocode/xml?sensor=true&latlng=39.471475,-0.374344)
En ese documento podemos leer lo siguiente (cerca del principio, probablemente se muestre en la quinta línea):
<formatted_address>Calle Poeta Querol, 10, 46002 Valencia, España</formatted_address>
Esa información ("Calle Poeta Querol, 10, 46002 Valencia, España") es la que nos mostraría la notificación de Tasker si hubieramos ejecutado la tarea estando en ese lugar. De forma parecida se podría obtener cualquier otro dato del documento, desde la abreviatura de la ciudad hasta el nombre de la comunidad autónoma o cualquier otra cosa. Solo hay que jugar sucesivamente con la acción Separar variable, como ya hemos aprendido.
> Solo me queda la duda de que pasaría si la ejecutáramos en medio del campo
Probemos. ¿Te parece bien en el centro de La Albufera? No hay nada en dos kilómetros a la redonda
https://maps.google.com/maps?q=39.337218,-0.355937
En el mapa que vemos ahí, la flecha verde señala el lugar correspondiente a las coordenadas de la URL. Además, Google nos dice que el punto "conocido" más cercano (a unos dos kilómetros) es la carretera CV-500, señalada con una marca de color rosa.
¿Qué pasa si nuestra tarea le pide a Google los datos correspondientes al centro de La Albubera?
maps.google.com/maps/api/geocode/xml?sensor=true&latlng=39.337218,-0.355937
(http://maps.google.com/maps/api/geocode/xml?sensor=true&latlng=39.337218,-0.355937) Ya puedes ver que Google no nos devuelve los datos de La Albufera sino de la carretera CV-500, 12, 46012 Valencia, España , incluyendo un código postal 46012.
Conclusión: Todo esto resulta vistoso y molón pero no hay que perder de vista estas imprecisiones y otros posibles errores. Por ejemplo, en la tarea conviene meter algunos controles adicionales, para verificar que el GPS ha conseguido obtener unas coordenadas. En ese caso %LOC dará una coincidencia positiva con *,*
También podemos comprobar que se ha conseguido una exitosa consulta a la base de datos. En ese caso %info dará coincidencias positivas con
*GeocodeResponse*
y también con
*</formatted_address>*
Si alguna de estas comprobaciones falla ya podemos desistir porque será imposible obtener el dato que buscábamos.
Ahora unas preguntas para Alfahuir o para cualquier otro. Además de la base de datos de Aemet y de esta base de datos de Google con información geográfica... ¿Conocéis otras bases de datos públicas que podamos consultar? ¿Sabéis si hay algún índice de ellas?
Saludos.
Alfahuir
22/03/13, 15:08:09
Caravantes por desgracia no tengo ninguna parte que falte, a lo que me refería es a lo siguiente:
Aunque aparentemente funciona bien he encontrado tres problemas
1. En vez de utilizar %LOC se debería usar %LOCN, como %LOC nos da la información de la última ubicación gps obtenida, si esta tiene algún tiempo o estamos a cubierto, nos dará unas coordenadas incorrectas, y como esta tarea está diseñada para obtener un código postal, me parece mas rápido y seguro obtener las coordenadas de %LOCN, en todo caso en función al uso que se le de se pude personalizar, yo utilizaría esta tarea para que me dijera el tiempo después de despertarme y la última ubicación gps puede ser erronea
2. el punto 6 de la tarea que puse era "Sección de variable %cpostal23 desde 1 longitud 6" y debería ser "Sección de variable %cpostal23 desde 2 longitud 6", simplemente para tener el código postal sin un espacio en blanco delante
3. Si pruebas estas coordenadas gps: 39.479077,-0.37519, verás que nos dá la dirección PERO el código postal lo pone (si separamos por comas) en segunda posición cuando la tarea está diseñada para que lo coja de la tercera posición. Me imagino que esto ocurrirá en muy contadas ocasiones, puede ser que solo ocurra en monumentos importantes pero hay que añadir pasos en nuestra tarea para que si no encuentra el código postal en la tercera posición se vaya a buscarla a la posición segunda
Desconozco las páginas de internet de las que podemos extraer información, simplemente cuando necesito algo lo busco, es un poco complicado porque hay poca información y casi toda en inglés
Alfahuir
30/03/13, 19:00:33
Pues creo que ya está terminado y funcionando (salvo algún error que pueda quedar)
La tarea te dice el tiempo y temperatura del municipio en el que estás o en el mas cercano dado que aemet solo tiene unos 8000 municipios.
Os adjunto la tarea para poder importarla dado que tiene 65 pasos y un archivo txt (para copiarlo al directorio raiz del télefono) donde están las correlaciones de los códigos postales con los códigos aemet
https://docs.google.com/file/d/0B3UDNyv9Vf6jODB0bDF2QVFJNVU/edit?usp=sharing
https://docs.google.com/file/d/0B3UDNyv9Vf6jWklzWkZVbW1vTFE/edit?usp=sharing
El archivo txt tenéis que copiarlo al móvil y saber la carpeta para poder acceder a el desde tasker
1: HTTP Get [ Servidor:Puerto:maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%LOCN Tipo Mime:text/xml]
2: Establecer variable [ Nombre:%datos A:%HTTPD ]
3: Separar variable [ Nombre:%datos Separador:, ]
4: Sección de Variable [ Nombre:%datos2 Desde:2 Longitud:5 Encajar:Encendido ]
5: Sección de Variable [ Nombre:%datos3 Desde:2 Longitud:5 Encajar:Apagado ]
6: Establecer variable [ Nombre:%codigop A:%datos2 Calcular:Encendido ] Si (if) [ %datos2 > 999 ]
7: Establecer variable [ Nombre:%codigop A:%datos3 Calcular:Encendido ] Si (if) [ %datos3 > 999 ]
8: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 02003 ]
9: Ir a acción [ Tipo:Número Acción Nímero:48 Etiqueta: ] Si (if) [ %codigop ~ 03014 ]
10: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 05210 ]
11: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 07010 ]
12: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 08019 ]
13: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 09219 ]
14: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 09292 ]
15: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 10110 ]
16: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 11012 ]
17: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 12122 ]
18: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 16043 ]
19: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 19143 ]
20: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 19196 ]
21: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 22213 ]
22: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 24132 ]
23: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 24145 ]
24: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 24151 ]
25: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 25193 ]
26: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 35016 ]
27: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 37117 ]
28: Ir a acción [ Tipo:Número Acción Número:44 Etiqueta: ] Si (if) [ %codigop ~ 37129 ]
29: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 37185 ]
30: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 42132 ]
31: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 44222 ]
32: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 45183 ]
33: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 46109 ]
34: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 46181 ]
35: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 47155 ]
36: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 49121 ]
37: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 51001 ]
38: Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigop ~ 52001 ]
39: Leer Archivo [ Archivo:cp-6g.txt A la variable:%lista ]
40: Separar variable [ Nombre:%lista Separador:%codigop ]
41: Establecer variable [ Nombre:%contador A:2 Calcular:Encendido ]
42: Sección de Variable [ Nombre:%lista(%contador) Desde:7 Longitud:5 Encajar:Apagado Almacenar Resultado en:%temp ]
43: Si (if) [ %temp ~ ----- ]
44: Sumar a variable [ Nombre:%contador Valor:1 ]
45: Ir a acción [ Tipo:Número Acción Número:42 E ]
46: Fin si (End if)
47: Si (if) [ %contador > 99999 ]
48: Establecer variable [ Nombre:%temp A:%codigop Calcular:Apagado Añadir:Apagado ]
49: Fin si (End if)
50: HTTP Get [ Servidor:Puerto:www.aemet.es/xml/municipios/localidad_%temp.xml Tipo Mime:text/xml ]
51: Establecer variable [ Nombre:%FECHAREV A:%DATE ]
52: Separar variable [ Nombre:%FECHAREV Separador:- ]
53: Establecer variable [ Nombre:%result A:%HTTPD Añadir:Encendido ]
54: Separar variable [ Nombre:%result Separador:<prediccion> Eliminar base:Encendido ]
55: Separar variable [ Nombre:%result2 Separador:<dia fecha="%FECHAREV3-%FECHAREV2-%FECHAREV1"> ]
56: Separar variable [ Nombre:%result22 Separador:descripcion=" ]
57: Separar variable [ Nombre:%result222 Separador:" ]
58: Separar variable [ Nombre:%result223 Separador:" ]
59: Separar variable [ Nombre:%result227 Separador:<maxima> ]
60: Separar variable [ Nombre:%result2272 Separador:</maxima> ]
61: Separar variable [ Nombre:%result22722 Separador:</minima> ]
62: Separar variable [ Nombre:%result227221 Separador:<minima> ]
63: Separar variable [ Nombre:%result1 Separador:<nombre> ]
64: Separar variable [ Nombre:%result12 Separador:</nombre> ]
65: Decir [ Texto:Tiempo para %result121. Por la mañana %result2221 y por la tarde %result2231. La temperatura máxima será de %result22721 grados y la mínima de %result2272212 Motor: Voz:com.google.android.tts:spa-esp Stream:3 Tono:6 Velocidad:5 ]
Pues ahí va mi tocho
En el paso 39, tendréis que modificarlo según la ruta del archivo txt
El archivo txt contiene en la primera columna los códigos postales y en la segunda su correlación con los códigos ine. Si quereis que para determinado código postal os de el tiempo de otro municipio cercano solo tenéis que poner el código ine después del código postal
Caravantes
30/03/13, 22:49:24
La tarea te dice el tiempo y temperatura del municipio en el que estás o en el mas cercano
Excelente, Alfahuir, muy buen trabajo.
¿Como te has currado el fichero de códigos?
Creo que sería bueno que nos explicases un poco la tarea, no hace falta que sea acción por acción pero sí comentando lo que se consigue con cada grupo de acciones.
¿Se admiten sugerencias? Tengo dos.
Creo que las acciones 8 a 39 podrían simplificarse de la forma siguiente:
A) Establecer variable %codigosespeciales a .02003.03014.05210.07010.08019.09219.09292.10110.1 1012.12122.16043.19143.19196.22213.24132.24145.241 51.25193.35016.37117.37129.37185.42132.44222.45183 .46109.46181.47155.49121.51001.52001.
B) Ir a acción [ Tipo:Número Acción Número:48 Etiqueta: ] Si (if) [ %codigosespeciales ~ *%codigop* ]
Es preferible no usar acciones del tipo de “Ir a acción número 48” porque es poco descriptivo y porque puede fallar si luego insertas o suprimes algunas de las acciones previas a la 48. Es mejor poner (en la acción 48) una etiqueta del tipo “YaTengoElMunicipio” o cualquier otra cosa similar, y luego usar saltos a esa etiqueta, se entiende mucho mejor y no falla aunque se cambie la numeración de las acciones.
Alfahuir
01/04/13, 09:22:50
Claro que se aceptan sugerencias, de hecho me parecen correctas las tuyas dado que simplifican la tarea.
Respecto al fichero de códigos que me preguntas, después de mucho buscar por internet, dentro de aemet, página de correos, ine, etc... creo que fue del ine (miré en tantos sitios que no me acuerdo muy bien) de donde saqué un archivo txt de casi 600 Mb con varios millones de lineas en el cual y escondido dentro de cada fila entre otra información estaban los códigos postales y códigos ine. Era un fichero con las calles de españa. Primero y como era tan grande y los programas de edición no lo cogían tuve que partirlo en 6 pedazos para empezar a trabajarlo con el excel e ir reduciéndolo a lo que se quedó, algo mas de 14000 lineas y 250 Kb, costó un poco pero hacerlo a mano hubiera sido morirse.
La explicación de la tarea es la siguiente:
Los pasos del 1 al 7 es la obtención del código postal de la ubicación donde te encuentras, aquí el problema es que dentro del fichero que obtenemos hay una linea que nos informa de la dirección la cual separamos por comas. El código postal casi siempre sale en la posición tercera pero a veces sale en la posición segunda. Además la posición segunda muchas veces da el número de la calle y por eso hay que marcar encajar en el punto 4 de la tarea, si no daba error al estarle pidiendo nosotros 5 caracteres y darnos solo 2 por ejemplo
Los puntos 8 a 49 de la tarea es la búsqueda de la equivalencia del código postal con el código de aemet en el fichero adjunto, aquí podemos tener dos problemas: el primero que coincidan los números del código postal y código ine y por eso hice los pasos del 8 al 38 y el segundo problema es que hay que hacer la búsqueda en la primera columna (nosotros buscamos la coincidencia de 5 números dentro del fichero pero a veces el primer resultado que encontraba eran los 5 números de la segunda columna) por eso tuve que hacer un bucle, tareas 41 a 46 hasta que la fila que encontrara fuera la correcta y entonces obtuviéramos el código ine, hay una variable %contador que va aumentando en una posición hasta que encontramos la fila correcta
Los pasos 50 al 65 son, una vez tenemos el código ine correspondiente a nuestra ubicación, la obtención del fichero del tiempo de aemet y extraer la información que nos pueda interesar, está mejor explicado en el primer post de este tema donde estaba la versión simplificada de esta tarea
Caravantes
02/04/13, 13:53:36
...Los puntos 8 a 49 de la tarea es la búsqueda de la equivalencia del código postal con el código de aemet en el fichero adjunto, aquí podemos tener dos problemas: el primero que coincidan los números del código postal y código ine y por eso hice los pasos del 8 al 38 y el segundo problema es que hay que hacer la búsqueda en la primera columna (nosotros buscamos la coincidencia de 5 números dentro del fichero pero a veces el primer resultado que encontraba eran los 5 números de la segunda columna) por eso tuve que hacer un bucle, tareas 41 a 46 hasta que la fila que encontrara fuera la correcta y entonces obtuviéramos el código ine, hay una variable %contador que va aumentando en una posición hasta que encontramos la fila correcta...
Creo que todo eso también puede mejorarse. En primer lugar me parece que no tiene sentido hacer un tratamiento especial para esos códigos coincidentes, que tienen el mismo número en el código postal y en la numeración INE-Aemet. Veo preferible introducir esos códigos en en el archivo de conversión de códigos, metiendo dos números iguales en la misma línea o registro. De esta forma ya nos podemos despreocupar y darles a esos códigos el mismo tratamiento que a los normales. Me he puesto a hacerlo pero he visto que esos códigos duplicados ya los tenías en el archivo de conversión.
En segundo lugar veo conveniente hacer algunas modificaciones a ese archivo de conversión de códigos, añadiendo una marca de comienzo de registro, otra marca de final de registro y rediciendo los seis guiones (de separación de campos) a un solo guión. Queda del siguiente modo.
$01520-01059!
$02001-02003!
$02002-02003!
$02003-02003!
$02004-02003!
De esta forma, cuando busquemos el código postal podemos anteponerle el carácter $ de comienzo de registro y posponerle el guión, para estar seguros de que lo va a encontrar en la primera columna y nunca en la segunda. Si esa operación la hacemos por medio de la acción separar variable (usando como separador $%codigop-) la acción siguiente puede obtener directamente el código INE-Aemet en las 5 primeras posiciones de la variable2, del siguiente modo
Sección de Variable [ Nombre:%lista2 Desde:1 Longitud:5... ]
Una ventaja lateral es que el fichero de conversión de códigos resulta algo más pequeño, por la omisión de cinco guiones. Quien quiera cogerlo puede descargarlo directamente de
https://dl.dropbox.com/u/12112413/cp-ine.txt
(Ojo: le he cambiado el nombre ligeramente para que no se confunda con el otro, hay que tenerlo en cuenta modificando la tarea para que use un fichero u otro).
Cuando vaya codificando y afinando la tarea, si se me ocurre algo más ya lo pondré en otro mensaje. Saludos.
janscas
21/04/13, 06:58:47
Buenas.
Hay un par de bugs en vuestro código.
La fecha devuelta por %DATE es del tipo mes-dia-año y aemet espera año-mes-dia.
Por lo tanto, la linea:
55: Separar variable [ Nombre:%result2 Separador:<dia fecha="%FECHAREV3-%FECHAREV2-%FECHAREV1"> ]
deberia ser <dia fecha="%FECHAREV3-%FECHAREV1-%FECHAREV2">
Es decir, que el día y el mes estaban intercambiados.
A parte. %DATE devuelve los dias tal cual y aemet espera que si el día tiene un solo dígito salga "04" en ves de "4".
Esto se soluciona con un VARIABLE SEARCH REPLACE. cambiando la variable %FECHAREV1 y 2 con el pattern-match "\b[0-9]\b" (quitando las comillas) a 0%FECHAREV1 y 0%FECHAREV2 respectivamente.
Espero haberme explicado.
No me ha quedado claro si la lista de códigos ine vs postales es para toda españa.
Alguna idea por si vamos al extrangero?
janscas
21/04/13, 07:03:07
Ahh y solo un detalle.
Es bueno hacer un VARIABLE CLEAR para todas las variables que hemos usado antes.
Para las variables a las que les hemos hecho SPLIT, basta con hacer un VARIABLE CLEAR de NOMBREVARIABLE* (notese asterisco) habilitando el pattern match.
Un saludo!
Alfahuir
21/04/13, 09:55:12
Pues a mi %DATE me devuelve la fecha en formato dia mes año y el mes o el día que tienen un dígito con un cero delante.
Para el día de hoy me devuelve 21-04-2013
La lista SI es para toda España
Y para el extranjero, habría que buscar un servicio internacional
Cuando estuve desarrollando esta tarea y buscaba un servicio meteorológico del cual extraer la información, estuve mirando la api de wunderground en http://www.wunderground.com/weather/api/ pero no llegue ni a darme de alta dado que aemet para España me resultó mas confiable.
Wundergroud es gratis pero hay que darse de alta y no me apetecía estar apuntado
En Estados Unidos encontré una página, no recuerdo cual, que pasando tus coordenadas gps te daba directamente el tiempo, era comodísimo dado que no había que hacer conversiones de fechas, ficheros de códigos postales, etc, pero solo funcionaba allí
Hay una api en http://api.tiempo.com/ que dice que da el tiempo para 26 localidades mundiales, también necesita registro y no se si pudiera servir para extraer información con tasker, me da la impresión que está mas enfocado a páginas web
La que mas posibilidades tiene es Yahoo que también ofrece un servicio meteorológico mundial, pero necesita una ID de la ciudad, un lugar para empezar a investigar puede ser http://vida.danguer.com/2008/09/27/ejemplo-de-api-de-yahoo-weather/
Puede que buscando encuentres algún servicio mundial que sea mas funcional que los que he comentado antes
Alfahuir
21/04/13, 09:57:03
Quise decir
Hay una api en http://api.tiempo.com/ que dice que da el tiempo para 26.000 localidades mundiales
Caravantes
21/04/13, 23:43:51
La fecha devuelta por %DATE es del tipo mes-dia-año y aemet espera año-mes-dia...
A parte. %DATE devuelve los dias tal cual y aemet espera que si el día tiene un solo dígito salga "04" en ves de "4".
Jancas, no sé cómo tendrás configurado tu android o tu tasker, pero a mí %DATE me devuelve una fecha del tipo dd-mm-yyyy (31-12-2013), y poniendo siempre dos dígitos en el día y en el mes. Por tanto me funciona bien una codificación similar a la de Alfahuir , solo he hecho cambios menores en otros aspectos. Como detalle, creo que he puesto todas las variables como locales (en minúsculas) con lo cual no necesito limpiar o vaciar las variables. Llevo usando esta tarea desde el día 03-04-2013, y va de lujo. Cada día a las cinco de la madrugada se activa el perfil que me prepara un informe perfecto para lo que yo considero necesario. Por ejemplo, la noche del 14 al 15 la pasé en Madrid, que no es donde resido, y el informe de ese día fue el siguiente:
Previsión en Madrid para hoy 15-04-2013
Por la mañana: Intervalos nubosos, viento 20 k/h.
Por la tarde: Intervalos nubosos, viento 20 k/h.
Sensación térmica de 12 a 24 grados.
Plaza Dos de Mayo, 4, 28004 Madrid, Spain
Coordenadas 40.4272585,-3.7044619
https://maps.google.com/maps?q=40.4272585,-3.7044619
Meteo de
http://www.aemet.es/xml/municipios/localidad_28079.xml
15-04-2013 , a las 05.00.
janscas
22/04/13, 20:02:09
Tengo el tasker en ingles, pero android en castellano.
¿Sera por eso?
La verdad es que va brutalmente bien, pero lo malo es que solo es para España.
Un abrazo!
threpwood
30/04/13, 19:51:24
pregunta tonta... como importo la tarea? dejo presionado el dedo sobre perfiles pero cuando elijo la ruta donde esta el tsk.xml no me sale nada. y si pruebo a cargarlo desde un navegador cualquiera asociandolo con tasker tampoco.. alguíen me peude iluminar?
threpwood
01/05/13, 13:41:17
vale, ya consegui importar la tarea , pero en el primer paso ya da error, cuando va a google maps , el xl que devuelve pone "ZERO RESULTS"
Caravantes
02/05/13, 02:19:49
Os adjunto la tarea para poder importarla dado que tiene 65 pasos y un archivo txt (para copiarlo al directorio raiz del télefono) donde están las correlaciones de los códigos postales con los códigos aemet
https://docs.google.com/file/d/0B3UD...it?usp=sharing
https://docs.google.com/file/d/0B3UD...it?usp=sharing
El archivo txt tenéis que copiarlo al móvil y saber la carpeta para poder acceder a el desde tasker
Alfahuir, me da la impresión de que que ha sido un error que publicases el perfil XML para que cualquiera lo pudiese importar y utilizar... incluso si no tiene suficientes conocimientos de Tasker. Quien no entienda cómo funciona un foro de colaboración en el aprendizaje podría pensar que tú eres el responsable de que ese perfil funcione correctamente, o incluso de que el fichero XML se instale adecuadamente en otros smartphones. Supongo que si otra persona se curra el código en su propio smartphone (yo lo he hecho) entiende mejor lo que hace y asume su propia responsabilidad sobre los fallos. Porsupuesto se puede preguntar sobre ellos, siempre de la forma adecuada.
Siendo que la temática de este hilo es una "Tarea que te dice el tiempo y temperatura" me parece inoportuno preguntar aquí cómo hay que importar la tarea XML. Sería una pregunta totalmente oportuna si estuviera en un hilo independiente. Que esa pregunta esté en este hilo es una de las cosas que me hacen pensar que se te responsabiliza a tí sobre ello, y creo que es algo inadecuado.
Lo dicho solo son mis opiniones personales, no espero que los demás estéis de acuerdo y menos aún que os sintáis obligados a hacerme caso.
threpwood
02/05/13, 16:59:36
No puedo evitar sentirme aludido pero vamos, ya conseguí importar la el xml. Como esto es cuestión de opiniones, opino que debo agredecer a Alfahuir el publicar el perfil xml y a ver si consigo hacer funcionarlo :).
Alfahuir
05/05/13, 09:04:39
threpwood, debería de funcionarte el HTTP GET de google maps.
Puedes hacer una prueba, dentro de esa acción, hay una linea que dice "Archivo de salida", le pones el nombre que quieras seguido de .txt y después lo buscas para ver exactamente si está o no obteniendo datos.
El HHTP Get lo único que hace es buscar en internet, en la página que le decimos una información, si no obtiene información es porque no tienes conexión de internet en ese momento
También puedes probar a subir el valor de "Cuenta atras" por si el tiempo que tiene por defecto para buscar no fuera suficiente debido a una mala cobertura de internet
threpwood
05/05/13, 15:39:05
El problema que tenia era que no tenía activada la ubicación por redes. He puesto que me la active cuando arranque la tarea y le de automáticamente al botón aceptar y espere 2 segundos para ubicarse y me funciona perfectamente. Muchas gracias por todo! Voy a seguir trasteando :-)
iVanpiro
19/06/13, 12:37:38
Antes de nada gracias por el curro que aportáis :)
Una consulta acerca de esta tarea. La importé a mi tasker, y la modifiqué para que funcionara con mi ciudad. La he probado y va perfecta.
El único problema que tengo es a la hora de elegir el contexto. Yo quiero que suene, despues de apagar la alarma que tengo puesta cada mañana, y veo que de contexto, sale "Alarma ejecutada", "Despertador".
¿Cuál debería elegir? ¿Y eligiendo la que sea, he de marcar la casilla "Parar evento"?
Muchas gracias.
Alfahuir
19/06/13, 13:05:39
Antes el perfil se ejecutaba correctamente en un contexto de "Alarma ejecutada" Y "Desde las xxx hasta xxx horas" pero al cambiar de movil "alarma ejecutada" dejó de funcionar, me imagino que será el launcher sense del nuevo movil
Cambié el perfil y ahora se ejecuta "Desde las 7:29 y 7:31 horas" Y "Pantalla desbloqueada" y me funciona
iVanpiro
19/06/13, 14:00:21
Antes el perfil se ejecutaba correctamente en un contexto de "Alarma ejecutada" Y "Desde las xxx hasta xxx horas" pero al cambiar de movil "alarma ejecutada" dejó de funcionar, me imagino que será el launcher sense del nuevo movil
Cambié el perfil y ahora se ejecuta "Desde las 7:29 y 7:31 horas" Y "Pantalla desbloqueada" y me funciona
Muchas gracias Alfahuir,
Luego probaré con ese contexto a ver si tengo más suerte.
Si alguien tiene este perfil en un Galaxy, que me cuente qué contexto puso pls.
saludos.
Hola.
Muchas gracias por tu trabajo.
Una pregunta ¿hay alguna forma de que la tarea pille correctamente las tildes del nombre de la ciudad?
Gracias
Alfahuir
11/08/13, 10:59:25
Si, en el primer httpget, si pones en archivo de salida por ejemplo ciudad.txt al ejecutar la tarea te creará un archivo txt donde podrás comprobar que está la ciudad con tildes, luego es tarea tuya separar y establecer variables para adaptarlo a tus necesidades
Sí, ya sé que está con tildes. Pero luego las quita, no sé por qué. Haz la prueba: instala la aplicación fakegps, vete a Gijón o León y haz un flash de %result121
Alfahuir
11/08/13, 12:51:10
Si hago la prueba en mi móvil si me salen las tildes (sin instalar ese programa), me imagino que será problema de idiomas instalados o predefinidos en el móvil. Haz la prueba desinstalando el programa y podrás comprobar si es problema de ese programa o no
No, si yo no tengo instalado el fakegps. Te lo decía para que simularas estar en alguna ciudad con tilde,
Es extraño, porque en el archivo codigop.txt con el código de la web sí sale correctamente Gijón, pero en la variable result121 sale como Gij�n, y se corta al leerlo.
El idioma está bien configurado en el móvil
Alfahuir
12/08/13, 09:49:08
Y el idioma de tasker? lo tienes en español y descargado?
Rbcheca
19/10/13, 17:13:00
Hola, estoy realmente frustrado, he intentado de todas las maneras posibles hacer funcionar esto, me he descargado la tarea, la he hecho desde cero, he probado a cambiar lo que a mi entender podría estar fallando, y lo más que he conseguido es que me diga hasta el punto 10 correctamente, pero la temperatura no ha habido manera, se me han acabado las ideas.
Alfahuir
19/10/13, 22:01:06
Ya no utilizaba la tarea pero ahora a mi tampoco me funciona
Después de varias comprobaciones, el punto problemático está en la lectura del archivo que relaciona los códigos postales con los códigos ine, he probado a reducir su tamaño y ahora si funciona por lo que me imagino que alguna actualización del tasker habrá impedido abrir o asignar archivos de texto grandes.
Voy a ver si lo reduzco algo, había lineas redundantes y si funciona lo subiré
En caso contrario habría que partir este archivo en varios y modificar la tarea para que fuera leyendo archivo por archivo
Rbcheca
20/10/13, 11:31:13
Eso sería estupendo, ya que el problema supera ampliamente mis conocimientos.
Gracias y un saludo.
Rbcheca
20/10/13, 12:51:03
Aunque bueno, yo me refería a la primera que pusiste, la que ya le das la localización, es mucho más sencilla y sin embargo me dice sin problema el "decir" del punto 10, pero el "decir" del punto 15, no lo dice, si borro los pasos 11,12,13 y 14 si funciona (obviamente no te da los datos claro, pero si "habla") así que algo de esos pasos del 11 al 14 me está parando la locución Nº 15, que es lo que no consigo resolver, al mirar el archivo tiempoval están todos los datos correctamente.
Seguiré mirando a ver si al final consigo ver que pasa.
Saludos.
Esa página te da el XML solo de lugares de España, no? Alguien conoce otra para sacar de otras partes del mundo
darkopro
22/10/13, 21:50:52
Yo tengo un problema, he restaurado la tarea después de bajarla del enlace. Me da un fallo en la orden 60
http://img.tapatalk.com/d/13/10/23/mu8ypa3u.jpg
Que puedo tener mal?
malkair
22/10/13, 22:35:55
A mí también me da un error ahí. Parece que han incluido algún dato más y la tarea casca al separar la variable. No miré dónde estaba exactamente el error, pero sin duda es por eso.
Lo he solucionado cambiando todas las variables %result227 y sucesivas (2271, 2272,...) por %result228 y sucesivas (228, 2281, 2282...). Es decir, cambiando el 7 por un 8. Solamente en esas variables, sin tocar ninguna otra.
darkopro
22/10/13, 22:52:47
A mí también me da un error ahí. Parece que han incluido algún dato más y la tarea casca al separar la variable. No miré dónde estaba exactamente el error, pero sin duda es por eso.
Lo he solucionado cambiando todas las variables %result227 y sucesivas (2271, 2272,...) por %result228 y sucesivas (228, 2281, 2282...). Es decir, cambiando el 7 por un 8. Solamente en esas variables, sin tocar ninguna otra.
Mil de gracias, ya me resuelve las temperaturas. Ahora el problema es que no me revuelve el tiempo de la mañana (%result2221) ni de la tarde (%result2231)
Ya está, no me lo resolvía porque era muy tarde, esta mañana si lo ha hecho
Rbcheca
23/10/13, 15:16:16
Pues yo no consigo hacerlo funcionar, con esto que habéis dicho me dice la localización correctamente, pero a la hora de decir el tiempo y la temperatura vocaliza "%result..." a ver si me podéis echar una mano...
Rbcheca
23/10/13, 15:28:30
Ahora sí me da la temperatura, esperaré para ver si me pasa lo mismo que a darkopro.
darkopro
23/10/13, 16:28:18
Bueno me he dado cuenta que por la tarde no funciona porque deben cambiar datos en la web, supongo que igual a las 12, no lo he comprobado. He pensado que si alguien con los conocimientos necesarios puede extraer la previsión del tiempo por la tarde se podrían cambiar los pasos a partir del 64 para que funcione cuando nos levantemos por la tarde, ¿podría ser que los últimos pasos quedarían algo similar a esto?
65 Establecer variable: %hora A: %TIME
66 Sección de variable: %hora Desde: 1 Longitud: 2 Almacenar resultado en: %hora1
67 Si (if): %hora1<12
68 Decir: Tiempo para %result121. Por la mañana %result2221 y por la tarde %result2231. La temperatura máxima será de %result22821 grados y la mínima de %result2282212
69 Else:
70 Decir: Tiempo para %result121 por la tarde es de %result????. La temperatura máxima será de %result22821 grados y la mínima de %result2282212
darkopro
24/10/13, 15:03:10
Bueno he comprobado que la previsión de la tarde cambia a las 2 de la tarde. Por lo que el paso 67 quedaría así:
Si (if): %hora1<14
Falta un alma caritativa que haga lo más difícil, sacar el dato de la previsión de la tarde
antoninicr7
14/11/13, 17:04:40
Porque al reproducir la tarea no se escucha la predicción,que está fallando?
Juanmiwow
14/11/13, 18:39:35
Porque al reproducir la tarea no se escucha la predicción,que está fallando?
Te puede estar fallando desde algo que has metido mal, hasta que tienes el volumen al mínimo...
Mejor copia el perfil que has creado tal y como lo has creado y así te podemos decir!
antoninicr7
14/11/13, 18:40:55
Tiempo (7)
A1: Establecer variable [ Nombre:%FECHAREV A:DATE Calcular:Apagado Añadir:Apagado ]
A2: Separar variable [ Nombre:%FECHAREV Separador:- Eliminar base:Apagado ]
A3: HTTP Get [ Servidor:Puerto:www.aemet.com/xml/municipios/localidad_06015.xml Ruta: Atributos: Cookies: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida: ]
A4: Establecer variable [ Nombre:%HTTP A:%result Calcular:Apagado Añadir:Apagado ]
A5: Separar variable [ Nombre:%result Separador:<prediccion> Eliminar base:Apagado ]
A6: Separar variable [ Nombre:%result2 Separador:<dia fecha="%FECHAREV3-%FECHAREV2-%FECHAREV1"> Eliminar base:Apagado ]
A7: Separar variable [ Nombre:%result22 Separador:descripcción Eliminar base:Apagado ]
A8: Separar variable [ Nombre:%result222 Separador: Eliminar base:Apagado ]
A9: Separar variable [ Nombre:%result223 Separador: Eliminar base:Apagado ]
A10: Decir [ Texto:El tiempo por la mañana será %result2221 y por la tarde %result2231 Motor: Voz:default:default Stream:3 Tono:6 Velocidad:5 Continuar tarea inmediatamente:Apagado ]
LimaMenta
15/11/13, 12:13:56
antoninicr7, tienes mal la URL de aemet. En lugar de aemet.com pon aemet.es y seguro que tu problema quedará resuelto.
antoninicr7
24/11/13, 22:09:54
antoninicr7, tienes mal la URL de aemet. En lugar de aemet.com pon aemet.es y seguro que tu problema quedará resuelto.
Lo probaré,no me he podido conectar antes,gracias.
sergiotas
09/12/13, 16:49:27
Saludos, sería posible volver a públicar el código corregido, es que soy nuevo, y con tanto cambio me vuelvo un poco loco, jaja. Gracias
sergiotas
09/12/13, 16:53:03
Jancas, no sé cómo tendrás configurado tu android o tu tasker, pero a mí %DATE me devuelve una fecha del tipo dd-mm-yyyy (31-12-2013), y poniendo siempre dos dígitos en el día y en el mes. Por tanto me funciona bien una codificación similar a la de Alfahuir , solo he hecho cambios menores en otros aspectos. Como detalle, creo que he puesto todas las variables como locales (en minúsculas) con lo cual no necesito limpiar o vaciar las variables. Llevo usando esta tarea desde el día 03-04-2013, y va de lujo. Cada día a las cinco de la madrugada se activa el perfil que me prepara un informe perfecto para lo que yo considero necesario. Por ejemplo, la noche del 14 al 15 la pasé en Madrid, que no es donde resido, y el informe de ese día fue el siguiente:
Previsión en Madrid para hoy 15-04-2013
Por la mañana: Intervalos nubosos, viento 20 k/h.
Por la tarde: Intervalos nubosos, viento 20 k/h.
Sensación térmica de 12 a 24 grados.
Plaza Dos de Mayo, 4, 28004 Madrid, Spain
Coordenadas 40.4272585,-3.7044619
https://maps.google.com/maps?q=40.4272585,-3.7044619
Meteo de
http://www.aemet.es/xml/municipios/localidad_28079.xml
15-04-2013 , a las 05.00.
Saludos Caravantes, soy nuevo en estas lides, y ando más pulpo que un pulpo en un garaje aunque ya me va sonando todo un poco. Quería preguntarte si has públicado en algún lugar el código de esta tarea que como veo es más completa que la del compañero y de la que puedo aprender sin errores. Gracias.
Mil de gracias, ya me resuelve las temperaturas. Ahora el problema es que no me revuelve el tiempo de la mañana (%result2221) ni de la tarde (%result2231)
Ya está, no me lo resolvía porque era muy tarde, esta mañana si lo ha hecho
Cambiad 222(1) y 223(1) a 223(1) y 224(1) respectivamente y funcionará
En las acciones 57, 58 y 66 (creo, pues he retocado un poco la tarea)
Para las temperaturas, lo que os ha dicho malkair
Caravantes
10/12/13, 01:25:36
Saludos Caravantes, soy nuevo en estas lides, y ando más pulpo que un pulpo en un garaje aunque ya me va sonando todo un poco. Quería preguntarte si has públicado en algún lugar el código de esta tarea que como veo es más completa que la del compañero y de la que puedo aprender sin errores. Gracias.
No la he publicado, pero acepto la petición. En unos días la publicaré aquí mismo; primero necesito pulirla un poco porque incluye algunas referencias personales y otras basurillas (acciones que en su momento sirvieron para controlar la tarea mientras la iba construyendo, y que ya no sirven para nada porque ya está claro que funciona bien). Así pues haré limpieza en la tarea y la publicaré pronto.
saturnino1
13/12/13, 12:46:03
Esperaré entonces, soy demasiado nuevo y solo me atrevo a importar perfiles, muchas gracias por compartir y por el curro que os pegais. Un saludo.
Caravantes
13/12/13, 19:16:28
Saludos Caravantes [...] Quería preguntarte si has públicado en algún lugar el código de esta tarea que como veo es más completa que la del compañero
Vamos con la publicación de esta tarea pero creo que debo hacer una introducción para explicar algunas cosas. Para empezar no es una tarea sino tres, una tarea principal y dos subtareas.
Una primera SUBtarea llamada UbicPosiciónObtener sirve para obtener la ubicación acual, del punto en el que estemos en ese momento. Para realizarla me he basado en trabajos previos de los compañeros Vitorino (http://www.htcmania.com/showpost.php?p=3053413) y Malkair (http://www.htcmania.com/showpost.php?p=10623478). Tiene de particular que trata de obtener la ubicación por GPS y también por RED, y luego elige el mejor dato de esos dos. Tengo varias tareas principales que utilizan esta subtarea para obtener la ubicación, y de esta manera me evito repetir la codificación en diferentes tareas, al mismo tiempo que falicita el mantenimiento porque hago las mejoras en un solo sitio.
Una segunda SUBtarea llamada UbicNombreSitio utiliza una base de datos de Google para obtener el nombre de un lugar, en función de sus coordenadas de ubicación (que pueden haberse obtenido -por ejemplo- utilizando la subtarea anterior). La información indica el nombre de la calle, municipio, etc, e incluye el código postal que es un dato crucial como veremos luego. Esta tarea ya la publiqué hace un par de meses en http://www.htcmania.com/showthread.php?t=703855 , pero creo que la versión actual está algo mejorada.
También tengo varias tareas principales que utilizan esta subtarea para obtener el nombre del lugar, con las mismas ventajas que ya he explicado. Podéis usar estas dos subtareas incluso aunque no uséis la tarea de previsión meteorológica que explico a continuación.
La tercera tarea se llama UbicPrevisionMeteo y la tengo asociada a un perfil que se activa todos los días a las 5 de la mañana para que me prepare la previsión meteorológica de ese día. Debo empezar aclarando que esta tarea solo está preparada para funcionar en España puesto que consulta una base de datos española y además usa los códigos postales españoles.
Esta tarea utiliza las subtareas anteriores para obtener la ubicación y el nombre del lugar en el que me encuentro, incluyendo municipio y código postal; a partir de ese código postal, se usa un fichero de conversión para obtener el código INE correspondiente, que es como un código postal pero usado por el INE (Insitituto Nacional de Estadística, español); luego utiliza ese código INE para consultar la base de datos que contiene la información meteorológica, es una base de datos de AEMET (Agencia Estatal de Meteorología, española); extrae los datos concretos que me han parecido más interesantes y compone con todo ello un informe que más abajo veréis destacado en rojo. Finalmente, ese informe es transferido a otra subtarea que lo envía por correo (a mi cuenta de Evernote), pero vosotros podéis rematar utilizando el informe de otra manera según os interese.
Esta tarea está basada en trabajos previos que hay en este mismo hilo, especialmente los del compa Alfahuir.
Para funcionar, la tarea necesita el archivo que permite convertir los códigos postales en códigos INE. Eso también fue un trabajo de Alfahuir (http://www.htcmania.com/showthread.php?p=8133110), aunque yo he modificado el fichero para simplificarlo y para evitar códigos repetidos. Contiene 14690 códigos españoles, o sea que este detalle limita el uso de la tarea a España, y aún así no estoy seguro de que incluya todos los códigos, o sea que tal vez no funcione para alguna ubicación particular. Este archivo de códigos debe estar en la carpeta o directorio de Tasker y debe llamarse cp-ine.txt. Veréis que en la tarea está referenciado (en la accion 19) como Tasker/cp-ine.txt. Siguiendo los sabios consejos del compañero Maid450 (http://www.htcmania.com/showthread.php?p=11475462), lo he puesto en Pastebin para que lo podáis descargar de http://pastebin.com/EBqqTwgD
Ultima aclaración previa: en algunas acciones he usado la casilla de Etiqueta para incluir comentarios sobre esa acción (y sobre las siguientes). En otras ocasiones he añadido una acción Destino-de-Goto para insertar comentarios más generales. Ya vamos con las tres tareas, copio las descripciones exportadas:
UbicPosiciónObtener (122)
<Esta tarea obtiene la ubicación y recibe como parametro el tiempo (en segundos) que se empleara en ello. Para hacer pruebas, se puede utilizar la tarea directamente sin parámetro y en tal caso se utilizará un tiempo prefijado.>
A1: Si (if) [ %par1 ~ %* ]
A2: Establecer variable [ Nombre:%tiempoubicacion A:60 Calcular:Encendido Añadir:Apagado ]
<Esta variable se utiliza para mostrar el resultado cuando la tarea se usa directamente y no como una subtarea>
A3: Establecer variable [ Nombre:%test A:1 Calcular:Apagado Añadir:Apagado ]
A4: Fin si (End if)
A5: Establecer variable [ Nombre:%tiempoubicacion A:%par1 Calcular:Encendido Añadir:Apagado ] Si (if) [ %par1 > 1 ]
A6: Notificación [ Título:Tiempoubicacion %tiempoubicacion Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
<Iniciamos el proceso para obtener la ubicación y la precisión de gps>
A7: Establecer variable [ Nombre:%gpsinicial A:%GPS Calcular:Apagado Añadir:Apagado ]
A8: GPS [ Establecer:Encendido ] Si (if) [ %GPS ~ off ]
<Comprobamos si el gps está encendido>
A9: Si (if) [ %GPS ~ on ]
<Si se va a usar el GPS hay que dividir el tiempo por 2 y usar cada mitad en un sistema de ubicación: GPS /Red>
A10: Establecer variable [ Nombre:%tiempoubicacion A:%tiempoubicacion /2 Calcular:Encendido Añadir:Apagado ]
A11: Obtener ubicación [ Origen:GPS Cuenta atrás (segundos):%tiempoubicacion Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado ]
A12: Establecer variable [ Nombre:%posiciongps A:%LOC Calcular:Apagado Añadir:Apagado ]
<Comprobamos si hemos obtenido una posición válida: dos coordenadas separadas por una coma>
A13: Si (if) [ %posiciongps ~ *,* ]
A14: Establecer variable [ Nombre:%precisiongps A:%LOCACC Calcular:Apagado Añadir:Apagado ]
A15: Else
A16: Establecer variable [ Nombre:%posiciongps A:0 Calcular:Apagado Añadir:Apagado ]
A17: Fin si (End if)
A18: GPS [ Establecer:Apagado ] Si (if) [ %gpsinicial ~ off ]
<GPS no se ha encendido>
A19: Else
A20: Establecer variable [ Nombre:%posiciongps A:0 Calcular:Apagado Añadir:Apagado ]
A21: Fin si (End if)
<Si la posición obtenida no ha sido validada bajamos la precisión al mínimo>
A22: Establecer variable [ Nombre:%precisiongps A:99999 Calcular:Encendido Añadir:Apagado ] Si (if) [ %posiciongps ~ 0 ]
A23: Notificación [ Título:posiciongps %posiciongps Texto:precisiongps %precisiongps Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
<Iniciamos el proceso para obtener la ubicación y la precisión por red>
A24: Obtener ubicación [ Origen:Red datos Cuenta atrás (segundos):%tiempoubicacion Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado ]
A25: Establecer variable [ Nombre:%posicionred A:%LOCN Calcular:Apagado Añadir:Apagado ]
<Comprobamos si hemos obtenido una posición válida: dos coordenadas separadas por una coma>
A26: Si (if) [ %posicionred ~ *,* ]
A27: Establecer variable [ Nombre:%precisionred A:%LOCNACC Calcular:Apagado Añadir:Apagado ]
A28: Else
A29: Establecer variable [ Nombre:%posicionred A:0 Calcular:Apagado Añadir:Apagado ]
A30: Establecer variable [ Nombre:%precisionred A:99999 Calcular:Encendido Añadir:Apagado ]
A31: Fin si (End if)
A32: Notificación [ Título:posicionred %posicionred Texto:precisionred %precisionred Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
<Comprobando las variables de precisión sabremos cuál método de ubicación ha sido más eficaz y guardaremos la posicion obtenida con ese método en la variable %posición>
A33: Si (if) [ %precisiongps < %precisionred ]
A34: Establecer variable [ Nombre:%posicion A:%posiciongps Calcular:Apagado Añadir:Apagado ]
A35: Else
A36: Establecer variable [ Nombre:%posicion A:%posicionred Calcular:Apagado Añadir:Apagado ]
A37: Fin si (End if)
<Si hemos obtenido una posición válida devolvemos ese valor a la tarea principal>
A38: Si (if) [ %posicion !~ 0 ]
A39: Devolver [ Valor:%posicion Parar:Apagado ]
A40: Notificación [ Título:Ubicacion %posicion Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A41: Else
A42: Notificación [ Título:Fallo Total. Texto:No se ha podido obtener la posición por ninguno de los dos métodos Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A43: Flash [ Texto:Ubicacion %posicion Largo:Encendido ] Si (if) [ %test ~ 1 ]
A44: Fin si (End if)
UbicNombreSitio (29)
<Esta tarea obtiene el nombre de un lugar a partir de las coordenadas geográficas que son recibidas como parámetro. Para hacer pruebas, se puede utilizar la tarea directamente sin parámetro y en tal caso se utilizarán unas coordenadas de Madrid>
A1: Si (if) [ %par1 !~ *,* ]
A2: Establecer variable [ Nombre:%test A:1 Calcular:Apagado Añadir:Apagado ]
A3: Establecer variable [ Nombre:%par1 A:40.45,-3.70 Calcular:Apagado Añadir:Apagado ]
A4: Fin si (End if)
<Consultamos la base de datos de google>
A5: HTTP Get [ Servidor:Puerto:maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%par1 Ruta: Atributos: Cookies: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida: Continuar Tarea Tras Error:Encendido ]
A6: Establecer variable [ Nombre:%nombresitio A:%HTTPD Calcular:Apagado Añadir:Apagado ]
<Comprobamos el dato obtenido>
A7: Si (if) [ %nombresitio ~ */formatted_address* ]
<Ajustamos el dato obtenido>
A8: Separar variable [ Nombre:%nombresitio Separador:</formatted_address> Eliminar base:Apagado ]
A9: Separar variable [ Nombre:%nombresitio1 Separador:<formatted_address> Eliminar base:Apagado ]
A10: Establecer variable [ Nombre:%nombresitio A:%nombresitio12 Calcular:Apagado Añadir:Apagado ]
A11: Else
<Dato inválido>
A12: Limpiar variable [ Nombre:%nombresitio Coincidencia de Patrón:Apagado ]
A13: Fin si (End if)
<Devolvemos el resultado a la tarea principal>
A14: Devolver [ Valor:%nombresitio Parar:Apagado ]
<Se muestra el resultado en un flash pero sólo si estamos haciendo pruebas>
A15: Flash [ Texto:%nombresitio Largo:Encendido ] Si (if) [ %test ~ 1 ]
UbicPrevisionMeteo (49)
<Esta tarea obtiene la previsión meteorológica para el lugar en el que estamos (solo España) en el día de la fecha. Para funcionar necesita 2 sub tareas adicionales y un fichero de conversión de códigos. Cuando se termine de depurar y corregir la tarea, la variable %test se puede poner a cero para que deje de mostrar notificaciones con los datos que va obteniendo la tarea.>
A1: Establecer variable [ Nombre:%test A:1 Calcular:Apagado Añadir:Apagado ]
<En primer lugar obtenemos la ubicación y la guardamos en la variable %sitio>
A2: Establecer variable [ Nombre:%sitio A:0 Calcular:Apagado Añadir:Apagado ]
A3: Realizar tarea [ Nombre:UbicPosicionObtener Parar:Apagado Prioridad:10 Parámetro 1 (%par1):120 Parámetro 2 (%par2): Devolver Valor de Variable:%sitio ]
A4: Notificación [ Título:Ubicacion Sitio %sitio Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A5: Establecer variable [ Nombre:%sitio A:40.45,-3.70 Calcular:Apagado Añadir:Apagado ] Si (if) [ %sitio !~ *,* ]
<Obtener info del municipio>
A6: Destino (de goto)
A7: Realizar tarea [ Nombre:UbicNombreSitio Parar:Apagado Prioridad:10 Parámetro 1 (%par1):%sitio Parámetro 2 (%par2): Devolver Valor de Variable:%nombresitio ]
A8: Notificación [ Título:Nombresitio %nombresitio Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A9: Establecer variable [ Nombre:%nombresitio A:Puerta del Sol, 1, 28013 Madrid, España Calcular:Apagado Añadir:Apagado ] Si (if) [ %nombresitio ~ %* ]
<Obtener código postal>
A10: Destino (de goto)
A11: Establecer variable [ Nombre:%codpsitio A:%nombresitio Calcular:Apagado Añadir:Apagado ]
A12: Separar variable [ Nombre:%codpsitio Separador:, Eliminar base:Apagado ]
A13: Sección de Variable [ Nombre:%codpsitio2 Desde:2 Longitud:5 Encajar:Encendido Almacenar Resultado en: ]
A14: Sección de Variable [ Nombre:%codpsitio3 Desde:2 Longitud:5 Encajar:Apagado Almacenar Resultado en: ]
A15: Establecer variable [ Nombre:%codpsitio A:%codpsitio2 Calcular:Apagado Añadir:Apagado ] Si (if) [ %codpsitio2 > 999 ]
A16: Establecer variable [ Nombre:%codpsitio A:%codpsitio3 Calcular:Apagado Añadir:Apagado ] Si (if) [ %codpsitio3 > 999 ]
A17: Notificación [ Título:Código postal %codpsitio Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A18: Si (if) [ %codpsitio < 1000 ]
A19: Notificación [ Título:Código postal %codpsitio Texto:Código inadmisible. Proceso abortado Icono:null Número:0 Permanente:Apagado Prioridad:3 ]
A20: Detener [ Con error:Apagado Tarea: ]
A21: Fin si (End if)
<Obtener código ine-aeat correspondiente al código postal que ya tenemos, utilizando un fichero de conversión de ambos códigos>
A22: Destino (de goto)
A23: Prueba [ Tipo:File Type Datos:Tasker/cp-ine.txt Almacenar Resultado en:%filetype ]
A24: Leer Archivo [ Archivo:Tasker/cp-ine.txt A la variable:%cine ]
A25: Separar variable [ Nombre:%cine Separador:$%codpsitio- Eliminar base:Apagado ]
A26: Establecer variable [ Nombre:%cine A:%cine2 Calcular:Apagado Añadir:Apagado ]
<Guardamos el código INE en la variable %cine>
A27: Sección de Variable [ Nombre:%cine Desde:1 Longitud:5 Encajar:Apagado Almacenar Resultado en: ]
A28: Notificación [ Título:Código INE %cine Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A29: Si (if) [ %cine < 1000 ]
A30: Notificación [ Título:Código INE %cine Texto:Código inadmisible. Proceso abortado Icono:null Número:0 Permanente:Apagado Prioridad:3 ]
A31: Detener [ Con error:Apagado Tarea: ]
A32: Fin si (End if)
<Dividimos la variable fecha en tres partes para obtener día mes y año>
A33: Establecer variable [ Nombre:%fechoy A:%DATE Calcular:Apagado Añadir:Apagado ]
A34: Separar variable [ Nombre:%fechoy Separador:- Eliminar base:Apagado ]
<Obtener datos meteo>
A35: Destino (de goto)
<Consultamos la base de datos de AEMET con el código %cine>
A36: HTTP Get [ Servidor:Puerto:www.aemet.es/xml/municipios/localidad_%cine.xml Ruta: Atributos: Cookies: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida: ]
A37: Establecer variable [ Nombre:%result A:%HTTPD Calcular:Apagado Añadir:Apagado ]
<A partir de aquí vamos dividiendo el resultado obtenido para ir extrayendo la información que queremos>
A38: Separar variable [ Nombre:%result Separador:<prediccion> Eliminar base:Apagado ]
A39: Separar variable [ Nombre:%result1 Separador:</nombre> Eliminar base:Apagado ]
A40: Separar variable [ Nombre:%result11 Separador:<nombre> Eliminar base:Apagado ]
A41: Establecer variable [ Nombre:%municipio A:%result112 Calcular:Apagado Añadir:Apagado ]
A42: Separar variable [ Nombre:%result2 Separador:<dia fecha="%fechoy3-%fechoy2-%fechoy1"> Eliminar base:Apagado ]
<Ya hemos obtenido en la variable %resul22 los datos que nos interesan pero todavía están mezclados con otras informaciones y habrá que seguir extractando cada cosa concreta que queramos>
A43: Destino (de goto)
<Obtener cielos>
A44: Destino (de goto)
A45: Separar variable [ Nombre:%result22 Separador:descripcion=" Eliminar base:Apagado ]
A46: Separar variable [ Nombre:%result222 Separador:" Eliminar base:Apagado ]
<Descripción del cielo por la mañana>
A47: Establecer variable [ Nombre:%descm A:%result2221 Calcular:Apagado Añadir:Apagado ]
A48: Establecer variable [ Nombre:%descm A:-SIN DATOS- Calcular:Apagado Añadir:Apagado ] Si (if) [ %descm ~ %* ]
A49: Notificación [ Título: Desc M %descm Texto:%descm Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A50: Separar variable [ Nombre:%result223 Separador:" Eliminar base:Apagado ]
<Descripción del cielo por la tarde>
A51: Establecer variable [ Nombre:%desct A:%result2231 Calcular:Apagado Añadir:Apagado ]
A52: Establecer variable [ Nombre:%desct A:-SIN DATOS- Calcular:Apagado Añadir:Apagado ] Si (if) [ %desct ~ %* ]
A53: Notificación [ Título: Desc T %desct Texto:%desct Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
<Obtener vientos>
A54: Destino (de goto)
A55: Separar variable [ Nombre:%result22 Separador:<velocidad> Eliminar base:Apagado ]
A56: Separar variable [ Nombre:%result222 Separador:</velocidad> Eliminar base:Apagado ]
<Velocidad del viento por la mañana>
A57: Establecer variable [ Nombre:%velom A:%result2221 Calcular:Apagado Añadir:Apagado ]
A58: Establecer variable [ Nombre:%velom A:-SIN DATOS- Calcular:Apagado Añadir:Apagado ] Si (if) [ %velom ~ %* ]
A59: Notificación [ Título:Velo M %velom Texto:%velom Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A60: Separar variable [ Nombre:%result223 Separador:</velocidad> Eliminar base:Apagado ]
<Velocidad del viento por la tarde>
A61: Establecer variable [ Nombre:%velot A:%result2231 Calcular:Apagado Añadir:Apagado ]
A62: Establecer variable [ Nombre:%velot A:-SIN DATOS- Calcular:Apagado Añadir:Apagado ] Si (if) [ %velot ~ %* ]
A63: Notificación [ Título:Velo T %velot Texto:%velot Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
<Obtener sensación térmica>
A64: Destino (de goto)
A65: Separar variable [ Nombre:%result22 Separador:<sens_termica> Eliminar base:Apagado ]
A66: Establecer variable [ Nombre:%tempm A:%result222 Calcular:Apagado Añadir:Apagado ]
A67: Separar variable [ Nombre:%tempm Separador:<maxima> Eliminar base:Apagado ]
A68: Separar variable [ Nombre:%tempm2 Separador:</maxima> Eliminar base:Encendido ]
<Sensación térmica máxima>
A69: Establecer variable [ Nombre:%tempm A:%tempm21 Calcular:Apagado Añadir:Apagado ]
A70: Establecer variable [ Nombre:%tempm A:-SIN DATOS- Calcular:Apagado Añadir:Apagado ] Si (if) [ %tempm ~ %* ]
A71: Notificación [ Título:Maxima %tempm Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
A72: Establecer variable [ Nombre:%tempn A:%result222 Calcular:Apagado Añadir:Apagado ]
A73: Separar variable [ Nombre:%tempn Separador:<minima> Eliminar base:Apagado ]
A74: Separar variable [ Nombre:%tempn2 Separador:</minima> Eliminar base:Apagado ]
<Sensación térmica mínima>
A75: Establecer variable [ Nombre:%tempn A:%tempn21 Calcular:Apagado Añadir:Apagado ]
A76: Establecer variable [ Nombre:%tempn A:-SIN DATOS- Calcular:Apagado Añadir:Apagado ] Si (if) [ %tempn ~ %* ]
A77: Notificación [ Título:Minima %tempn Texto: Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
<Componer el informe con todos los resultados obtenidos>
A78: Destino (de goto)
A79: Establecer variable [ Nombre:%result A:Previsión en %municipio para hoy %DAYW, %DATE
Por la mañana: %descm, viento %velom k/h.
Por la tarde: %desct, viento %velot k/h.
Sensación térmica de %tempn a %tempm grados.
%nombresitio
Coordenadas %sitio
https://maps.google.com/maps?q=%sitio
Meteo de
http://www.aemet.es/xml/municipios/localidad_%cine.xml Calcular:Apagado Añadir:Apagado ]
A80: Establecer variable [ Nombre:%AaUbicPrevisionResult A:%result Calcular:Apagado Añadir:Apagado ]
A81: Notificación [ Título:Resultado %result Texto:%result Icono:null Número:0 Permanente:Apagado Prioridad:3 ] Si (if) [ %test ~ 1 ]
----------------------------
Esas eran las tareas.
He destacado en rojo el texto del informe final, que incluye varias líneas con interlineas vacías y también dos URLs que el servidor del foro no muestra en rojo como le he pedido. A continuación os pongo un ejemplo del informe que prepara esta tarea:
Previsión en Madrid para hoy 15-04-2013
Por la mañana: Intervalos nubosos, viento 20 k/h.
Por la tarde: Intervalos nubosos, viento 20 k/h.
Sensación térmica de 12 a 24 grados.
Plaza Dos de Mayo, 4, 28004 Madrid, Spain
Coordenadas 40.4272585,-3.7044619
https://maps.google.com/maps?q=40.4272585,-3.7044619
Meteo de
http://www.aemet.es/xml/municipios/localidad_28079.xml
Sin embargo, tal y como la he copiado aquí, la tarea está inacabada. Yo tengo una acción más que envía el informe meteorológico a mi cuenta de Evernote, y cada uno de vosotros tendréis que añadir una o varias acciones para usar ese informe como os convenga, ya sea escribiéndolo en un fichero, o haciendo que el motor de voz lo recite en voz alta, etc, eso ya es cosa de cada uno. Provisionalmente en una de las acciones finales hago que informe meteorológico sea copiado a una variable Global %AaUbicPrevisionResult (acción ) para que se pueda ver ese resultado en la pestaña de variables; pero dicha acción y su variable pueden ser eliminadas cuando decidas utilizar el resultado de otra forma más concreta que te interese.
Creo que la clave de este asunto es la consulta de la base de datos y la extracción de resultados seleccionando los datos interesantes de entre el maremagnum que nos devuelve el servidor. Quien necesite ayuda con eso puede leerse el capítulo correspondiente de nuestra guía de referencia: Lección 4. El procesamiento de datos en variables. Obtención de datos externos y su tratamiento para extraer la información que necesitamos.
http://www.htcmania.com/showthread.php?p=9099161
Para cualquier duda, preguntáis por aquí mismo.
Rbcheca
13/12/13, 20:35:12
Currazo, gracias colega!
el archivo para importar no lo has subido no?, lo digo por que si tengo que poner yo todo eso a mano no me sale ni de coña XDDD
ruco1980
14/12/13, 01:02:42
Impresionante trabajo...me rindo a tus pies....Voy a hacer el intento de transcribirla para ver si me funciona...
En la acción 9 de la tarea principal de UbicPrevisionMeteo el código postal predeterminado para Madrid Puerta del Sol es 280013....esto es así o es un error de transcripción? no deberían ser 5cifras (28013)...perdón por mi ignorancia si está correcto...
1 saludo!
Caravantes
14/12/13, 01:11:48
Voy a hacer el intento de transcribirla para ver si me funciona...
Me acabas de convencer, mañana publicaré los tres ficheros XML para que podáis importarlos y no tengáis que currar cienes de horas en ello.
Sí, tienes razón, los 6 dígitos del código madrileño son un error de transcripción. También lo corregiré. Gracias por el aviso.
saturnino1
14/12/13, 10:07:59
Gracias, gracias, gracias. Yo creo que no iba a conseguir transcribirlo, vamos, no es que lo crea, es que estoy seguro de que no lo iba a saber hacer.
Un saludo y gracias.
ruco1980
14/12/13, 13:16:40
Pues yo cabezón de mi lo he transcrito jejej porque es la única manera de ir aprendiendo el uso que hacéis de las variables y al copiarlo y transcribirlo me doy cuenta de muchas cosas...pero que luego se le ocurran a uno es otra historia....
Lo que pasa que no consigo que funciones (o quizás sí funciona pero no consigo la presentación de resultados).
En mi caso utilizo un perfil de contexto de alarma ejecutada, para que al sonar la alarma y darle al botón se inicie la tarea, pero no me funciona...
He creado una sub tarea como tú Caravantes, para que me envíe el informe a mi correo de evernote, pero creo que esa tarea está mal hecha...la he creado como acción red, componer email, utilizando mi dirección de correo, pero creo que no lo hago bien....tampoco sé cómo realizar la presentación del informe de resultados, p.ej. a través de la síntesis de voz, es decir, cuando acabe la tarea que te diga por voz el informe de resultados...
Otra duda: En la primera subtarea para obtener la posición por gps se establece el encendido de gps (en mi caso a través del plugin secure settings porque si no no me funciona). Al ejecutar la tarea principal se realiza la subtarea, pero luego no he visto una orden para apagar el gps, con lo cual el gps del teléfono se queda encendido con el consiguiente gasto de batería no? se podría poner al final de la tarea principal después del informe de resultados la acción de apagado de gps al finalizar todo el proceso para que no se quede encendido no?
1 saludo y gracias por todo vuestro trabajo!
EDITO: Voy a trastear con el plugin email pro a ver si consigo que funcione jejej
Caravantes
14/12/13, 16:31:02
Pues yo cabezón de mi lo he transcrito jejej porque es la única manera de ir aprendiendo el uso que hacéis de las variables y al copiarlo y transcribirlo me doy cuenta de muchas cosas...pero que luego se le ocurran a uno es otra historia....
Estoy muy de acuerdo. Puedes aprender leyendo la descripción de un perfil pero aprendes más al copiarlo manualmente a tu smartphone porque te vas fijando más en cada detalle. Es el mejor modo de aprender la técnica, el uso de cada acción o contexto. Luego viene la parte creativa, que es otro asunto como bien has dicho, pero esa parte creativa nunca podrá prosperar si no tienes la base técnica necesaria.
Yo no he creado todo esto de la nada. Como he explicado, la mitad del trabajo creativo la hicieron otros compañeros a los que he copiado sus ideas (y a los que he citado como reconocimiento explícito). Mi mérito es haber ensamblado todo eso, que devuelvo al foro con la esperanza de que sirva para que otro compañero coja mis ideas y las mejore.
Yo parto de la base de que para nosotros -al menos para la mayoría- Tasker es un hobby. Requiere un cierto esfuerzo y obtienes ciertos automatismos que te facilitan las cosas o aportan algo gratificante. Puede haber personas que tengan más interés y hagan un esfuerzo mayor, otras harán un esfuerzo menor porque creen que no le compensa esforzarse más, y eso es totalmente respetable, cada uno elige el nivel de energía que quier dedicar a esto o a cualquier otra cosa.
En mi caso utilizo un perfil de contexto de alarma ejecutada, para que al sonar la alarma y darle al botón se inicie la tarea, pero no me funciona...
He creado una sub tarea como tú Caravantes, para que me envíe el informe a mi correo de evernote, pero creo que esa tarea está mal hecha...la he creado como acción red, componer email, utilizando mi dirección de correo, pero creo que no lo hago bien....tampoco sé cómo realizar la presentación del informe de resultados, p.ej. a través de la síntesis de voz, es decir, cuando acabe la tarea que te diga por voz el informe de resultados...
Creo que estás siendo demasiado ambicioso al probar dos tareas nuevas conjuntamente. Debes probar cada tarea por separado, hasta comprobar que funcionan bien. Luego ya las unes. Para probar la previsión meteorológica es suficiente que al final copies el informe a una variable global, por ejemplo
A66: Establecer variable %AAresultadoMeteo A %result
Tras ejecutar la tarea, la variable %AAresultadoMeteo seguirá conteniendo el informe meteorológico; en Tasker haces clic en la pestaña VARIABLES y una de las primeras será ésta que empieza por AA; de esa forma puedes ver el informe y comprobar si está bien o si tienes que corregir algo en la tarea. Otra posibilidad es copiar el informe que está en %result al portapapeles (acción del grupo Misc), para que luego puedas pegar ese informe en cualquier sitio donde puedas verlo para comprobar si está bien o no.
Con la otra tarea que envía el mensaje te diría lo mismo: prueba si funciona por sí misma. Mi subtarea UbicNombreSitio recibe como parámetro las coordenadas de una ubicación, pero puedo probarla como una tarea independiente y en tal caso la propia tarea establece cuál es la ubicación de prueba (una coordenada de Madrid) y además pone una marca (%test = 1) para que la tarea -antes de acabar- me muestre el resultado final del proceso; con este sistema puedo probar de forma independiente si la subtarea funciona. Haz lo mismo con tu subtarea de correo electrónico. Si todavía tienes dificultades con esa tarea de correo electónico, pues abres un hilo nuevo para pedir ayuda con eso. Luego, cuando ya tengas las dos tareas bien probadas, llegará el momento de que intentes hacerlas funcionar juntas.
Respecto al GPS, tienes razón, gracias por el aviso. Esto es algo que antes tenía organizado de otra forma y solo lo he corregido a medias, por eso se me ha quedado un poco cojo. No me he dado cuenta del problema porque ahora llevo el GPS siempre encendido (no es cierto que por llevarlo encendido gaste batería, solo gasta batería cuando se usa como puedes comprobar mirando la barra de estado). Creo que la forma más correcta de resolver ese asunto es terminar dejando el GPS apagado o encendido, pero igual que estaba cuando comenzó la tarea:
1- Establecer variable %gpsinicial a %GPS (Guardar en una variable el estado inicial del GPS)
2- Encender GPS si %GPS ~ off
3- Si %GPS ~ on
4- - Obtener la posición o hacer lo que haya que hacer con el GPS
5- - Apagar el GPS si %gpsinicial ~ off (apagar el GPS si al principio estaba apagado)
6- Endif
Voy a corregir la tarea para implementar este sistema. Corregiré el post anterior y esta mejora también estará en el archivo que os voy a pasar.
ruco1980
14/12/13, 19:42:36
Estoy muy de acuerdo. Puedes aprender leyendo la descripción de un perfil pero aprendes más al copiarlo manualmente a tu smartphone porque te vas fijando más en cada detalle. Es el mejor modo de aprender la técnica, el uso de cada acción o contexto. Luego viene la parte creativa, que es otro asunto como bien has dicho, pero esa parte creativa nunca podrá prosperar si no tienes la base técnica necesaria.
Yo no he creado todo esto de la nada. Como he explicado, la mitad del trabajo creativo la hicieron otros compañeros a los que he copiado sus ideas (y a los que he citado como reconocimiento explícito). Mi mérito es haber ensamblado todo eso, que devuelvo al foro con la esperanza de que sirva para que otro compañero coja mis ideas y las mejore.
Yo parto de la base de que para nosotros -al menos para la mayoría- Tasker es un hobby. Requiere un cierto esfuerzo y obtienes ciertos automatismos que te facilitan las cosas o aportan algo gratificante. Puede haber personas que tengan más interés y hagan un esfuerzo mayor, otras harán un esfuerzo menor porque creen que no le compensa esforzarse más, y eso es totalmente respetable, cada uno elige el nivel de energía que quier dedicar a esto o a cualquier otra cosa.
Creo que estás siendo demasiado ambicioso al probar dos tareas nuevas conjuntamente. Debes probar cada tarea por separado, hasta comprobar que funcionan bien. Luego ya las unes. Para probar la previsión meteorológica es suficiente que al final copies el informe a una variable global, por ejemplo
A66: Establecer variable %AAresultadoMeteo A %result
Tras ejecutar la tarea, la variable %AAresultadoMeteo seguirá conteniendo el informe meteorológico; en Tasker haces clic en la pestaña VARIABLES y una de las primeras será ésta que empieza por AA; de esa forma puedes ver el informe y comprobar si está bien o si tienes que corregir algo en la tarea. Otra posibilidad es copiar el informe que está en %result al portapapeles (acción del grupo Misc), para que luego puedas pegar ese informe en cualquier sitio donde puedas verlo para comprobar si está bien o no.
Con la otra tarea que envía el mensaje te diría lo mismo: prueba si funciona por sí misma. Mi subtarea UbicNombreSitio recibe como parámetro las coordenadas de una ubicación, pero puedo probarla como una tarea independiente y en tal caso la propia tarea establece cuál es la ubicación de prueba (una coordenada de Madrid) y además pone una marca (%test = 1) para que la tarea -antes de acabar- me muestre el resultado final del proceso; con este sistema puedo probar de forma independiente si la subtarea funciona. Haz lo mismo con tu subtarea de correo electrónico. Si todavía tienes dificultades con esa tarea de correo electónico, pues abres un hilo nuevo para pedir ayuda con eso. Luego, cuando ya tengas las dos tareas bien probadas, llegará el momento de que intentes hacerlas funcionar juntas.
Respecto al GPS, tienes razón, gracias por el aviso. Esto es algo que antes tenía organizado de otra forma y solo lo he corregido a medias, por eso se me ha quedado un poco cojo. No me he dado cuenta del problema porque ahora llevo el GPS siempre encendido (no es cierto que por llevarlo encendido gaste batería, solo gasta batería cuando se usa como puedes comprobar mirando la barra de estado). Creo que la forma más correcta de resolver ese asunto es la siguiente:
1- Establecer variable %gpsinicial a GPS (Guardar en una variable el estado inicial del GPS)
2- Encender GPS
3- Si GPS ~ on
4- - Obtener la posición o hacer lo que haya que hacer con el GPS
5- - Apagar el GPS si %gpsinicial ~ off (apagar el GPS si al principio estaba apagado)
6- Endif
Voy a corregir la tarea para implementar este sistema. Corregiré el post anterior y esta mejora también estará en el archivo que os voy a pasar.
Si jejej...la verdad que a veces peco de impaciente...pero así me obligo a probar cosas...he instalado email me pro y me funciona perfectamente, creo una tarea de prueba correo con acción plugin email pro, pongo mi correo de gmail, un asunto y un mensaje y al ejecutar la tarea me funciona perfectamente...este plugin creo que es muy interesante, merece la pena el pago por él...
Cuando recibes un correo en tu cuenta de evernote que lo rcibes como una nota? Porque no sé si será por la forma en que me registré en evernote,porque mi correo de evernote es mi cuenta de gmail, y a pesar de haber buscado por los ajustes de evernote no he visto una dirección "especifica" para usuario evernote...
1 saludo!
Caravantes
14/12/13, 23:49:46
Cuando recibes un correo en tu cuenta de evernote que lo rcibes como una nota? Porque no sé si será por la forma en que me registré en evernote,porque mi correo de evernote es mi cuenta de gmail, y a pesar de haber buscado por los ajustes de evernote no he visto una dirección "especifica" para usuario evernote...
Una cosa es la cuenta de correo personal que usas para registrarte en Evernote, y otra es la cuenta de correo de tu Evernote, que termina en "evernote.com" y es a la que hay que dirigir los mensajes que se convertirán en notas. Si tienes Evernote instalado, mira en Herramientas, Información-De-La-Cuenta, ahí verás la cuenta de correo de tu evernote. Si no lo tienes instalado, ve a la web de evernote.com, accede con tu contraseña, haz clic en tu identificativo (arriba a la derecha), elige Ajustes-De-La-Cuenta, y ahí tienes ambas direcciones.
Caravantes
15/12/13, 17:36:16
Acabo de subir a Pastebin los tres archivos con la tarea de previsión meteorológica y las dos subtareas auxiliares cuyas descripciones publiqué anteayer (13-12-2013).
Explico los detalles del procedimiento para que podáis importar estas tareas. Son tres ficheros, y es importante que todos tengan el nombre y la extensión correcta. Por defecto, el servidor los entrega con todo el nombre en minúsculas y con la (triple) extensión .tsk.xml.txt , pero deben quedar como indico a continuación, con algunas mayúsculas en el nombre y con la (doble) extensión .tsk.xml que Tasker necesita para reconocer eso como el XML de una tarea. Os recomiendo que -antes de cada descarga- copiéis de aquí el nombre y la extensión para indicar que lo descargue directamente con ese nombre-extensión (o bien podéis renombrar luego cada fichero). Si preferís que las tareas tengan otro nombre distinto es mejor que lo renombréis luego, ya dentro de Tasker, más abajo lo explico.
Los archivos deben acabar quedando dentro de la carpeta Tasker/tasks y con los nombres-extensiones indicados. Cuando ya los tengáis ahí correctamente nombrados y ubicados, entonces... Abrís Tasker, y tenéis dos opciones: o bien creáis un proyecto nuevo para estas tareas o bien seleccionáis el proyecto en el que queráis integrar estas tareas. Una vez elegido el proyecto, activáis la pestaña de Tareas y a continuación mantenéis una pulsación prolongada sobre esa pestaña de Tareas. Aparecerá la opción de importar y al pulsarla podréis seleccionar los archivos que están en la carpeta Tasker/tasks . Cuando ya hayáis importado todas las tareas es cuando podéis renombrarlas a vuestro gusto y Tasker corregirá adecuadamente las acciones "ejecutar tarea" que pueda haber en otras tareas y que hagan referencia a esa tarea que estáis renombrando.
Respecto a las tareas que publiqué originalmente, he realizado tres modificaciones que ya he corregido en las descripciones publicadas de las tareas y también en los archivos que ahora comparto. Dos de esas correcciones son fallos detectados por Ruco1980 y comentados el el hilo de diálogo. A mayores, en la tarea de previsión meteorológica he retirado lo que yo tenía como última acción y que servía para enviar el informe a mi cuenta de Evernote. Por tanto, ahora se podría decir que esa tarea está inacabada, y cada uno de vosotros tendréis que añadir una o varias acciones para usar ese informe como os convenga, ya sea escribiéndolo en un fichero, o copiándolo a una variable Global, o haciendo que el motor de voz lo recite en voz alta, etc, eso ya es cosa de cada uno.
Ahí van los nombres de los archivos y sus correspondientes enlaces para descarga.
UbicPosicionObtener.tsk.xml http://pastebin.com/jBEAM6sU
UbicNombreSitio.tsk.xml http://pastebin.com/52UH5PpP
UbicPrevisionMeteo.tsk.xml http://pastebin.com/5VpusXdB
Os recuerdo que además de estas tareas, para la previsión meteorológica necesitáis descargar el fichero de conversión de códigos postales, que está en y que debe quedar ubicado en la carpeta de Tasker y que debe llamarse cp-ine.txt , creo que en este caso no hay que corregir el nombre del archivo, solo tenéis que preocuparos de colocarlo en la carpeta Tasker.
cp-ine.txt http://pastebin.com/EBqqTwgD
Creo que no me olvido nada importante. Espero que os sirva y que lo disfrutéis.
Que gran tarea te felicito es una lastima no poder usarlas por no estar en España :(. Habrá un hilo de alguna tarea similar pero que use alguna pagina con más países?
ruco1980
15/12/13, 22:00:24
Gran trabajo Caravantes!!! A mi no me funciona la tarea.....me da un error que he conseguido capturar en la siguiente imagen....como era de esperar no entiendo qué significa jejej
Caravantes
16/12/13, 01:00:29
no me funciona la tarea.....me da un error que he conseguido capturar en la siguiente imagen.
Te está fallando la acción 27, que consulta el servidor de Aemet para obtener la información meteorológica. Falla por culpa de la variable %cine , que debería contener el código-INE del lugar (cinco dígitos), y no tiene nada. No sé bien por qué esa variable está vacía.
En la tarea, la primera acción contiene una variable que puedes poner a 1 para activar el modo test, y de esa forma podrás ver algunas notificaciones que te irán informando sobre asuntos clave en el proceso. Está explicado en la etiqueta de la propia acción 1.
Por ejemplo, con el modo test activado, la acción 23 lanza una notificación mostrando el contenido de esa variable %cine que debe contener ese código-INE de cinco dígitos. Seguramente esa notifiación te muestre la palabra %cine porque la variable está vacía. Probablemente sea porque no ha funcionado el fichero de conversión de códigos que se debería haber usado en la acción 19... Por tanto te sugiero comprobar que tienes el fichero de códigos en su sitio y con el nombre correcto, tal y como ya he explicado. En la propia acción 19 también se indica la carpeta y el nombre del archivo.
Comprueba también la notificacion previa (acción 17) que te debe de mostrar el código postal.
Caravantes
16/12/13, 01:04:46
es una lastima no poder usarlas por no estar en España . Habrá un hilo de alguna tarea similar pero que use alguna pagina con más países?
Prueba a buscar si alguien ya tiene hecho algo como eso. También puedes buscar en Google bases de datos meteorológicas de tu país o de tipo internacional.
ruco1980
16/12/13, 09:47:00
Te está fallando la acción 27, que consulta el servidor de Aemet para obtener la información meteorológica. Falla por culpa de la variable %cine , que debería contener el código-INE del lugar (cinco dígitos), y no tiene nada. No sé bien por qué esa variable está vacía.
En la tarea, la primera acción contiene una variable que puedes poner a 1 para activar el modo test, y de esa forma podrás ver algunas notificaciones que te irán informando sobre asuntos clave en el proceso. Está explicado en la etiqueta de la propia acción 1.
Por ejemplo, con el modo test activado, la acción 23 lanza una notificación mostrando el contenido de esa variable %cine que debe contener ese código-INE de cinco dígitos. Seguramente esa notifiación te muestre la palabra %cine porque la variable está vacía. Probablemente sea porque no ha funcionado el fichero de conversión de códigos que se debería haber usado en la acción 19... Por tanto te sugiero comprobar que tienes el fichero de códigos en su sitio y con el nombre correcto, tal y como ya he explicado. En la propia acción 19 también se indica la carpeta y el nombre del archivo.
Comprueba también la notificacion previa (acción 17) que te debe de mostrar el código postal.
Gracias Caravantes por tu respuesta...
Efectivamente tengo algún problema con el archivo cp-ine.txt...ya lo he descargado un par de veces y lo he comprobado....
La subtarea de ubicposición, independiente funciona correctamente y me devuelve las dos coordenadas de posición por red....al igual que la otra subtarea que me devuelve el flash con la dirección de Madrid al realizar la prueba...
Al ejecutar la tarea principal con la variable test a 1 para realizar la prueba me devuelve correctamente las notificaciones de coordenadas de ubicación por red, el nombre del sitio correctamente donde estoy, y también la acción 17 se ejecuta correctamente y me devuelve la notificación de mi CP de manera correcta, aunque ocurre algo que no sé si puede llegar a ser relevante....y es que el CP que me devuelve la notificación de la acción 17 no es de cinco dígitos sino de cuatro, es decir, 3550 en lugar de devolverme el valor 03550 que es mi CP, aunque ya no sé si por comenzar por 0 obvia ese valor, si bien en la notificación inmediatamente anterior de %nombresitio sí que devuelve el valor Sant Joan d'Alacant, 03550,Alicante,Spain...
Por lo que el problema parece ser que viene en la acción 19 al leer el archivo y me devuelve la notificación%cine, es decir vacía...
No entiendo por qué, ya que el archivo está correctamente ubicado en la carpeta tasker..en el directorio tasker/cp-ine.txt
1 saludo y gracias por tus explicaciones tan claras y entendibles...
Caravantes
17/12/13, 00:22:15
el CP que me devuelve la notificación de la acción 17 no es de cinco dígitos sino de cuatro, es decir, 3550 en lugar de devolverme el valor 03550 que es mi CP, aunque ya no sé si por comenzar por 0 obvia ese valor, si bien en la notificación inmediatamente anterior de %nombresitio sí que devuelve el valor Sant Joan d'Alacant, 03550,Alicante,Spain...
Culpa mía. No tuve en cuenta que algunos códigos postales podían comenzar por cero. Te explicaré los detalles como anécdota para que entiendas el tema. La primera subtarea obtiene las coordenadas de ubicación. La segunda subtarea utiliza esas coordenadas para consultar un servidor de google del que obtiene el nombre del lugar, que en este caso es algo como "Sant Joan d'Alacant, 03550, Alicante, Spain". A partir de ahí, la tarea de previsión meteo tiene que extraer el código postal, y lo hace utilizando las comas (,) para dividir eso en framentos que se guaran en subvariables. O sea que obtenemos varias sub-variables con los valores
Sant Joan d'Alacant
03550
Alicante
Spain
En este caso el código postal está en la segunda sub-variable, pero hay otros casos en que la calle y el número ocupan dos posiciones, por lo cual el código postal queda en el tercer lugar. Para no complicarme la vida decidí coger el valor de la subvariable (segunda o tercera) cuyo valor mátemático fuese superior a 999, lo cual es una selección lógica (acciones A15 y A16) y hasta ahí todo va bien, pero... Puesto que tenía puesto ese chip matemático hice que la variable del código-postal tomase el valor matemáticamente (Calcular:Encendido) y aquí está el error porque el cero a la izquierda queda matemáticamente ninguneado. He desmarcado esa casilla de CALCULAR y espero que eso corrija el problema.
He vuelto a publicar el archivo corregido en Pastebin, pero está con otro enlace. Ya he actualizado el nuevo enlace en el mensaje anterior, puedes ir allí para repetir la descarga con el nuevo enlace. Ya me contarás.
ruco1980
17/12/13, 10:02:47
Culpa mía. No tuve en cuenta que algunos códigos postales podían comenzar por cero. Te explicaré los detalles como anécdota para que entiendas el tema. La primera subtarea obtiene las coordenadas de ubicación. La segunda subtarea utiliza esas coordenadas para consultar un servidor de google del que obtiene el nombre del lugar, que en este caso es algo como "Sant Joan d'Alacant, 03550, Alicante, Spain". A partir de ahí, la tarea de previsión meteo tiene que extraer el código postal, y lo hace utilizando las comas (,) para dividir eso en framentos que se guaran en subvariables. O sea que obtenemos varias sub-variables con los valores
Sant Joan d'Alacant
03550
Alicante
Spain
En este caso el código postal está en la segunda sub-variable, pero hay otros casos en que la calle y el número ocupan dos posiciones, por lo cual el código postal queda en el tercer lugar. Para no complicarme la vida decidí coger el valor de la subvariable (segunda o tercera) cuyo valor mátemático fuese superior a 999, lo cual es una selección lógica (acciones A15 y A16) y hasta ahí todo va bien, pero... Puesto que tenía puesto ese chip matemático hice que la variable del código-postal tomase el valor matemáticamente (Calcular:Encendido) y aquí está el error porque el cero a la izquierda queda matemáticamente ninguneado. He desmarcado esa casilla de CALCULAR y espero que eso corrija el problema.
He vuelto a publicar el archivo corregido en Pastebin, pero está con otro enlace. Ya he actualizado el nuevo enlace en el mensaje anterior, puedes ir allí para repetir la descarga con el nuevo enlace. Ya me contarás.
Si hombre!! Para que encima fuera culpa tuya con el curro que te pegas jejej
Solucionado cambiando en las acciones 15 y 16 la casilla calcular a apagado... aunque finalmente he añadido la nueva tarea ya que la encuentro "estéticamente" más pulida, ya no sé si serán cosas mías...
He observado los cambios a la hora de obtención del CP (>999 y <10000) y luego veo la prueba que realizas de la lectura del archivo cp-ine.txt antes de la acción de leer para comprobar que está todo correcto, así como la acción detener si no obtenemos un valor de %cine (entiendo que esto será por si estamos en una zona de campo y no obtenemos un valor de CP...)
Luego observo que se establecen las variables de descripción del tiempo de mañana y tarde A -SIN DATOS-....esta acción no la comprendo muy bien, pero parece que es para cuando cambiamos la variable test a 0?
En definitiva un grandísimo trabajo de planteamiento...me quedo alucinado....
En la subtarea de obtener la ubicación el ciclo para encender el gps y luego apagarlo está perfectamente planteado, pero a mi no me funciona, lo enciende y luego no lo apaga...yo creo que es por la versión de android de mi móvil chinoro...nada que no se solucione que una última acción en la tarea principal de secure settings para estblecer el gps a apagado en el caso de que queramos desconectarlo y no llevarlo encendido después de haber obtenido el informe...
Ahora me estoy peleando con email me pro jejej...consigo que me envie el mail a la cuenta de evernote...con el título, me lo encasilla en la libreta y lo etiqueta con el @ y #; e incluso al introducir en el mensaje la variable %DATE me pone la fecha en el correo, pero en cambio el informe no lo transcribe y no sé por qué...seguiré peleando...
Muchas gracias por tu trabajo y por atender todas nuestras dudas...
EDITO: Solucionado lo del email...tenía que introducir en el mensaje de email me pro la variable %AaUbicPrevisionResult para que transcribiera el informe....todo colocado en el mensaje del plugin de la subtarea de email...en la acción de realizar tarea en la tarea principal no he colocado nada en el apartado de parámetro y me funciona todo correctamente directamente con el plugin de email pro en la subtarea.
Caravantes
17/12/13, 15:39:03
finalmente he añadido la nueva tarea ya que la encuentro "estéticamente" más pulida
He añadido varias mejoras que ya has visto, es gratificante que las hayas estudiado. Te aclaro alguna cosa más. Puesto que la consulta a la base de datos meteorológica necesita el CódigoINE, si ese código imprescindible no se ha establecido (como te ocurrió anteriormente), es preferible detener la tarea y sacar una notificación de error. El mismo procedimiento he aplicado para cuando no se hubiera podido obtener el Código Postal, que es igual de imprescindible. Ya he previsto que el servidor de Google no devuelva información de ubicación (nombre del lugar, código postal y municipio), y en tal caso la tarea utiliza una ubicación de Madrid (cada uno debería poner ahí su domicilio en lugar de esa dirección madrileña); pero podría darse el caso de que Google sí devuelva un nombre de lugar en el cual NO se incluya un código postal válido, y entonces hay que detener la tarea. También he añadido una acción Prueba para comprobar que el fichero de conversión de códigos esté en su sitio, y en caso de que eso falle la tarea también se detiene... todo eso se me ha ocurrido a raíz de tu código postal cuyo primer dígito es un cero, y por eso me pareció conveniente añadir comprobaciones de ese tipo.
Ayer estaba haciendo pruebas y me sorprendió ver algo que nunca antes me había encontrado, y es que el servidor tenía muchos de los datos en blanco: viento por la mañana, aspecto del cielo por la mañana, etc; ... seguramente sea porque estaba haciendo la consuta a última hora del día, con lo cual la previsión para ese día es un poco absurda, puesto que el día ya estaba terminando. Es por eso que he añadido el valor "-SIN DATOS-" para ese tipo de ocasiones en que el servidor no muestra alguno de los datos buscados.
La variable %AaUbicPrevisionResult la he añadido solamente para que el informe meteorológico pueda ser consultado manualmente (en la pestaña de variables). Si ya has comprobado que la tarea funciona bien y lo que quieres es enviar el informe por EmailMePro, puedes usar la variable %result que contiene la misma información, y puedes suprimir la acción 80 que crea esa variable %AaUbicPrevisionResult sin ninguna otra utilidad. Las variables Globales hay que usarlas de forma muy selectiva, y cuando no son necesarias es mejor eliminarlas.
Respecto a lo de encender y apagar el GPS, eso funciona o no funciona... dependiendo del aparato concreto y también de la versión de Android. Que cada uno lo ajuste según sus circunstancias y posibilidades: siendo root y/o teniendo SecureSettings hay más opciones para buscar la configuración adecuada de esa acción.
sergiotas
18/12/13, 00:51:18
Bffff, no tengo tiempo para analizar tanta línea, solo escribo ahora esto aprisa y corriendo para felicitar sinceramente a Caravantes por esta creación. Buenas noches.... no se de donde sacais tiempo, ja
sergiotas
19/12/13, 09:30:33
Bueno tengo que decir en esta ocasión que la tarea aportada por Caravantes funciona con impecable exactitud, y que me inspira;sobrepasa mis expectativas del ingenio utilizado para que funcione. Tanto es así que estoy preparando una pequeña utilidad para compartir, je je... Un 11, gracias.
UbicPosicionObtener.tsk.xml http://pastebin.com/jBEAM6sU UbicNombreSitio.tsk.xml http://pastebin.com/52UH5PpP
Como estas Caravantes yo usaba estas dos tareas tuyas de un post viejo, me fije su estrucura y veo que estan un poco cambiadas, conviene usar estas para solo guardar la posicion y volver? o continuo con las anteriores?. Yo usaba la de "Posicion Obtener" para que en la llamada me diga donde estoy en tu anterior tarea la variable %Sitio era la que contenia la informacion pero en esta nueva no entiendo bien cual es, pense que era %posicion, pero no me devuelve nada.
Caravantes
20/12/13, 01:44:17
yo usaba estas dos tareas tuyas de un post viejo, me fije su estrucura y veo que estan un poco cambiadas, conviene usar estas para solo guardar la posicion y volver? o continuo con las anteriores?.
Hola Juss. En el hilo que citas, titulado "Memorizar una ubicación para luego volver a ella. 2 tareas" he añadido otro mensaje con las tareas actualizadas según las tengo ahora, y comentando las mejoras de las nuevas tareas. Lo lees y luego decides si quieres seguir con las tareas viejas o cambiar por las nuevas.
http://www.htcmania.com/showpost.php?p=11696058
rabeliyo
20/12/13, 10:37:35
Igual me matais pero es que a mi se me escapan cosas de la tarea (se me queda grande para mis conocimientos jajaja)
En la tarea UbicPosiciónObtener la ubicacion queda guardada en %posicion hasta ahi bien pero luego en la tarea UbicNombreSitio segun veo esas coordenadas quedan almacenadas en %par1 pero no encuentro el paso en el que se almacenan, he probado a cambiar %par1 por %POSICION (cambiandolo para que sea una variable que se puedas usar en varias tareas) pero me sigue sin funcionar por lo que me salen las coordenadas de madrid
A ver si me podeis ayudar porque me parece una tarea impresionante
Caravantes
20/12/13, 18:59:49
En la tarea UbicPosiciónObtener la ubicacion queda guardada en %posicion hasta ahi bien pero luego en la tarea UbicNombreSitio segun veo esas coordenadas quedan almacenadas en %par1 pero no encuentro el paso en el que se almacenan,
La respuesta a esa pregunta ha resultado ser bastante amplia y he decidido hacer con ella un hilo nuevo, creo que el asunto lo merece.
Subtareas y tareas principales. Comunicación entre ellas.
http://www.htcmania.com/showthread.php?t=744076
Para nada te vamos a matar, es normal que se te escapen cosas, y haces bien intentando experimentos pero también vale que preguntes, ningún problema.
rabeliyo
21/12/13, 22:16:10
Buesnas, pues os cuento a mi solo me funciona por wifi, por red de datos no
He puesto notificaciones flash para ver donde estaba el problema y me falla en el paso Establecer variable %nombresitio A:%HTTPD en el flash de %nombresitio me aparece un error en mayusculas entre las letras se ve OVER QUERY LIMIT error you have exceed your daily request cuota for this API
Y me resulta muy raro, tengo un s4 con stock rom modificada y la ultima version de tasker
Caravantes
22/12/13, 13:21:54
a mi solo me funciona por wifi, por red de datos no
He puesto notificaciones flash para ver donde estaba el problema y me falla en el paso Establecer variable %nombresitio A:%HTTPD en el flash de %nombresitio me aparece un error en mayusculas entre las letras se ve OVER QUERY LIMIT error you have exceed your daily request cuota for this API
¿No has entendido ese mensaje de error? El servidor maps.google.com te está diciendo que en el mismo día le has hecho demasiadas peticiones y por eso no te las sigue atendiendo. No se si podrá tener algo de cierto o si será un error del servidor, o tal vez sea porque tu operador telefónico tramite las peticiones de todos los usuarios como si todas fueran del mismo usuario. Tampoco tengo ni idea sobre el límite de peticiones diarias que admite el servidor. Creo que a mí nunca me ha pasado algo así, y mi Tasker hace entre cinco y diez peticiones diarias de ese tipo, la mayoría de las veces por red telefónica.
En todo caso, si lo que quieres es la previsión meteorológica para el lugar en el que vives, puedes resolverlo de la forma siguiente. En la acción 9 pones tu dirección, incluyendo el código postal, al estilo siguiente y desactivas la condición que hay dentro de esa acción. Quedará algo así
A9: Establecer variable [ Nombre:%nombresitio A:Puerta del Sol, 1, 28013 Madrid, España Calcular:Apagado Añadir:Apagado ]
La tarea utilizará las comas como separadores para "trocear" esa dirección y encontrar el código postal, que debe estar justo tras la primera o la segunda coma, con un espacio entre la coma y el primer dígito del código postal; o sea que serían válidas las opciones siguientes:
Puerta del Sol, 28013 Madrid, España
Puerta del Sol, 1, 28013 Madrid, España
Tras eso ya puedes borrar las 8 acciones previas, que son las encargadas de obtener la ubicación y el nombre del lugar en el que estás.
rabeliyo
22/12/13, 15:20:24
Pues al leer el error si que entendi lo que pona pero me parecia imposible que con 3 peticiones ya no me admita mas cuando yo con el wifi le puedo dar las que quiera no se algo raro pasara porque aunque pasen 2 dias sin hacer peticiones me sigue saltando el error asi que lo pongo con wifi,no me queda otra.
Otra cosilla es que no siempre me saca los datos, solo a veces, es decir igual lo pruebo ahora y me los saca pero dentro de un rato me pone sin datos menos las temperaturas.
Seguire investigando a ver y utilizare lo que me comentas del paso 9
Caravantes
22/12/13, 19:48:44
no siempre me saca los datos, solo a veces,
Haz lo siguiente. Abre el fichero que convierte los códigos postales a códigos INE: cp-ine.txt (o bien abre la página http://pastebin.com/EBqqTwgD que la misma información).
Busca tu código postal en la primera columna; toma nota del código INE (5 dígitos) que estará justo a la derecha, porque ese es el código INE de tu localidad. Supongamos que vives en la Puerta del Sol de Madrid; entonces tu código postal es el 28013 y verás que el código INE asociado es el 28079. Entonces abres la página de aemet para que te muestre la información de tu localidad.
http://www.aemet.es/xml/municipios/localidad_28079.xml
poniendo tu código INE en lugar del 28079 de Madrid.
Lee la página y comprueba qué datos muestra la página esa para el día de hoy. Probablemente la página tenga los datos en blanco, con dos comillas juntas sin nada en medio. Por ejemplo, en este momento (a las 19:30) estoy viendo lo siguiente
<estado_cielo periodo="00-12" descripcion=""/>
<estado_cielo periodo="12-24" descripcion="Poco nuboso">12</estado_cielo>
O sea que en este momento el servidor no ofrece la descripción del cielo para el periodo de la mañana (00-12), y en cambio sí la ofrece para el periodo de la tarde (12-24). He comprobado que hay más posibilidades de que no haya datos si haces la consulta después de mediodía. A primeras horas del día (de madrugada) siempre suele haber datos. Si sigues mirando el archivo hacia abajo, llegarás a la previsión para el día siguiente (y también algunas fechas posteriores), y comprobarás que ahí sí suelen estar todos los datos.
Yo lo tengo programado para que haga la consulta de madrugada y obtenga los datos del día, pero a otras personas tal vez les interese hacer la consulta por la tarde y obtener los datos del día siguiente.
rabeliyo
24/12/13, 09:33:36
Perfecto caravantes muchas gracias, lo he puesto para que me realice la tarea de madrugada y ahora si me lo obtiene bien, solo me queda averiguar lo del error de que no me abra la pagina por red pero tampoco es algo que le de mucha importacia ya que lo hago por wifi de madrugada, me da que es algo de la compañia porque cambie a una rom de android puro y seguimos igual.
ruco1980
05/01/14, 05:56:17
Hola a todos!!
Os sigue funcionando la tarea? A mi lleva unos días que no me funciona...me calcula las coordenadas de la posición, después el nombre del sitio con su CP y lo transforma al código ine y ahí se detiene..por lo que deduzco que la consulta a la página de aemet falla, pero he comprobado la dirección web de la página web de aemet en una localidad y no ha cambiado, sigue siendo la misma dirección que hay en la acción HTTP Get...no ha cambiado en la página de aemet.
Caravantes
05/01/14, 20:45:58
Os sigue funcionando la tarea?
Acabo de comprobar los últimos 7 días y cada día ha funcionado bien.
Inserta en tu tarea algunas acciones NOTIFICACIÓN que vayan mostrando las variables clave, luego pones en marcha la tarea y así descubrirás si la tarea se detiene o si tienes vacía alguna variable que debiera tener algo.
ruco1980
06/01/14, 03:32:45
Acabo de comprobar los últimos 7 días y cada día ha funcionado bien.
Inserta en tu tarea algunas acciones NOTIFICACIÓN que vayan mostrando las variables clave, luego pones en marcha la tarea y así descubrirás si la tarea se detiene o si tienes vacía alguna variable que debiera tener algo.
Hola. Gracias por responder...pues he insertado notificaciones y por lo que me parece entender, efectivamente me falla la consulta a aemet, sale todo "codificado"...
El caso es que he vuelto a descargar tu tarea ya que en la mía había introducido algunas acciones, y al ejecutarla sin modificar nada tampoco me funciona, por lo que ya no entiendo qué puede ser si comentas que a tí te ha estado funcionando los últimos días...
La única explicación que encuentro es que he cambiado de móvil y desde entonces no me funciona, pero he estado configurando Tasker y los otros perfiles y tareas me funcionan sin problemas...lo único que cambia en este teléfono es que el sistema reconoce dos "sdcard" la interna y la externa...pero ya está comprobado que el archivo cp-ine.txt lo lee correctamente y realiza la equivalencia del CP bien...y creo que no hay más acciones en la tarea que influyan en ese aspecto...:oh::oh:
Caravantes
06/01/14, 12:55:01
efectivamente me falla la consulta a aemet, sale todo "codificado"...
No entiendo qué quieres decir con "codificado". Pega aquí eso (o un trozo de eso) para que podamos verlo.
Trata de acceder a la página siguiente
http://www.aemet.es/xml/municipios/localidad_28079.xml
poniendo tu código INE (el de tu localidad) en lugar del 28079 de Madrid. Te debería de salir algo así como lo siguiente (copio el primer trozo)
<root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="28079" version="1.0" xsi:noNamespaceSchemaLocation="http://www.aemet.es/xsd/localidades.xsd">
<origen>
<productor>
Agencia Estatal de Meteorología - AEMET. Gobierno de España
</productor>
<web>http://www.aemet.es</web>
<enlace>
http://www.aemet.es/es/eltiempo/prediccion/municipios/madrid-id28079
</enlace>
<language>es</language>
<copyright>
© AEMET. Autorizado el uso de la información y su reproducción citando a AEMET como autora de la misma.
</copyright>
<nota_legal>http://www.aemet.es/es/nota_legal</nota_legal>
</origen>
<elaborado>2014-01-06T12:03:01</elaborado>
<nombre>Madrid</nombre>
<provincia>Madrid</provincia>
<prediccion>
<dia fecha="2014-01-06">
...
¿Eso es a lo que tú llamas "codificado"?
ruco1980
06/01/14, 18:57:01
Exacto... Si Accedo a esa dirección con el código INE de mi localidad Acedo a la información del Xml...pero entonces la tarea se detiene... Quizás el problema viene a la hora de separar la variables, a lo mejor la información está distribuida ahora de forma diferente... Es a que me cuesta interpretarla... Pero si a ti te funciona en principio debe estar todo bien... Así que no sé qué puede estar fallando...
Por cierto Caravantes... Y aunque no tenga que ver con este hilo estoy comprobando las tareas de ubicación y me están funcionando bien en exteriores... Parece que tengo más problemas en el interior de casa por la mala cobertura de mi casa... Y al parecer detecta mayor precisión en GPS que e red y me obtiene el valor almacenado en la variable aunque no sea el correcto (o eso creo yo)... Quería contestarte porque Trabajo fijo de noche y no había podido contestarte en el hilo desde hace muchos días pero quería que supieras que agradezco el esfuerzo que haces por ayudarnos a todos...
Feliz año a todos y saludos!
Caravantes
06/01/14, 20:11:56
...pero entonces la tarea se detiene...
Utiliza notificaciones para averiguar cuál es la última acción que sí se ejecuta y cuál es la primera que no se ejecuta. En una de esas dos tiene que estar el problema, supongo. La única otra posibilidad que veo es muy improbable y consiste en que otra tarea incluya una acción DETENER TAREA METEO.
Gracias por el feed-back. Es una satisfacción que mis tareas sean útiles a algunos compañeros del foro.
ruco1980
07/01/14, 04:36:03
[QUOTE=Caravantes;11947852]Utiliza notificaciones para averiguar cuál es la última acción que sí se ejecuta y cuál es la primera que no se ejecuta.
Hola Caravantes...parece que he conseguido localizar dónde se detiene la tarea (o al menos eso creo)...y es después de la acción 42..ya que antes me van saliendo las notificaciones sin problemas y después de esa acción sale la notificación (muy larga, de predicciones de tramos horarios) y se detiene y no continúa (y si inserto alguna notificación posteroior ya no me sale.
La acción es la siguiente:
A42: Separar variable [ Nombre:%result2 Separador:<dia fecha="%fechoy3-%fechoy2-%fechoy1"> Eliminar base:Apagado ]
He insertado una notificación flash después de esa acción y he podido conseguir la siguiente captura de pantalla:
No tengo ni idea de qué significa jejej y tampoco sé si he insertado bien las notificaciones para descubrir el error...alguna idea?
Caravantes
07/01/14, 22:27:22
He insertado una notificación flash después de esa acción y he podido conseguir la siguiente captura de pantalla:
Supongo que esa captura de pantalla está mostrando el contenido de la variable %result22 (se te ha olvidado comentar ese detalle), y parece estar más o menos bien; eso es la parte importante de la información obtenida en la consulta a la base de datos. En realidad esa variable no debería incluir lo que aparece en la primera línea (<dia fecha="2014-01-06">), pero que incluya eso resulta irrelevante para el funcionamiento de la tarea.
Soy incapaz de entender por qué se detiene ahí la tarea, no veo ningún motivo que pueda justificarlo.
Así pues, en este momento te sugiero borrar la tarea, y volver a importarla usando el enlace que puse los días pasados. Esto no funcionará si el problema está en otro sitio (en Android, en un mal funcionamiento de la app Tasker, etc), pero creo que es lo más recomendable para empezar.
La otra alternativa es que pongas aquí la descripción exportada de la tarea y tratemos de analizarla para buscar posibles errores o fallos.
ruco1980
08/01/14, 08:59:39
Gracias por responder....
Exacto, eso es lo que hice....volver a descargar tu tarea y ejecutarla sin hacer ninguna modificación y se detiene en el mismo lugar....lo que antes funcionaba ahora no lo hace...lo que me lleva a pensar que el problema está en el cambio de teléfono, que se trata de un Xiaomi Red Rice, que lleva como sistema operativo MIUI, basado en android 4.2.2 pero con algunos matices...
El caso es que las demás tareas y perfiles me funcionan bien...pero casi seguro que el problema está en android...seguiré investigando a ver si consigo solucionarlo y en cuanto sepa algo os lo diré...
1 saludo!
ruco1980
11/01/14, 17:15:27
Bueno, pues definitivamente me doy por vencido...parece que de momento no voy a poder disfrutar de esta tarea...la consulta a la base de datos de aemet es correcta, y el problema viene al llegar a la variable %result22, donde debe empezar a extraer los datos por separado con la acción separar variable...ahí se detiene y no entiendo por qué...
Lo curioso es que probando la tarea originaria del post del compañero alfafuir de tan sólo 15 acciones, dejando fijo el código de la localidad tampoco funciona, ya que se detiene al extraer los datos...debe ser algo relacionado con la ROM de android MIUI pero no sé qué es...
Leyendo la guía de usuario del procesamiento de datos de variables he intentado hacer pruebas con la acción de sección de variable y buscar y reemplazar variable (descripcion=".*") pero tampoco obtengo resultados, quizás porque también esté yo haciendo algo mal....Así que salvo que alguien más experimentado pueda descubrir en qué puede influir el sistema de android en esta parte me rindo jajaj
1 saludo!
ruco1980
15/01/14, 16:37:40
Hola Caravantes....
Ya he conseguido que me funcione la tarea....más por cabezón que por entender jejej
Había estado probando varias cosas, cambiando los número de las variables que se separan para obtener los datos y en unos de esos cambios'de números la tarea avanzó unos pasos más y me percaté de una cosa que en su momento me llamó la atención y me extrañó pero por no comprender bien el proceso y el xml no me dí cuenta....
El caso es que leyendo tus explicaciones de las etiquetas y de las acciones destino de goto hubo una explicación que me resultó rara pero en su momento no caí...y es en la acción 43, destino de goto, caundo explicas..."...ya hemos obtenido la variable %result22, pero ahora hay que seguir extractando los datos que nos interesan..."
Y yo me preguntaba...será un error al escribir la explicación? porque lo que hemos obtenido en la acción inmediatamente anterior es la variable %result2...y no la 22....
El caso es que he introducido una acción en ese mismo lugar, antes de la número 43...
Establecer variable %result22 A %result2
Y ahora la tarea sí que continúa perfectamente y produce la separación de los datos en distintas variables....
El caso es que en la transcripción de la tarea falta esa acción y en el xml que se descarga a través del servidor pastebin también...así que ya no sé si me funciona por "churra" o por algún misterio de la informática que a mí se me escapa...
Espero haberme explicado bien.
1 saludo a todos!
Caravantes
16/01/14, 01:11:24
Y yo me preguntaba...será un error al escribir la explicación? porque lo que hemos obtenido en la acción inmediatamente anterior es la variable %result2...y no la 22....
No veo ningún error en la explicación. Hemos obtenido la variable %result22. Te explico cómo.
A37: Establecer variable [ Nombre:%result A:%HTTPD Calcular:Apagado Añadir:Apagado ]
<A partir de aquí vamos dividiendo el resultado obtenido para ir extrayendo la información que queremos>
A38: Separar variable [ Nombre:%result Separador:<prediccion> Eliminar base:Apagado ]
A39: Separar variable [ Nombre:%result1 Separador:</nombre> Eliminar base:Apagado ]
A40: Separar variable [ Nombre:%result11 Separador:<nombre> Eliminar base:Apagado ]
A41: Establecer variable [ Nombre:%municipio A:%result112 Calcular:Apagado Añadir:Apagado ]
A42: Separar variable [ Nombre:%result2 Separador:<dia fecha="%fechoy3-%fechoy2-%fechoy1"> Eliminar base:Apagado ]
<Ya hemos obtenido en la variable %resul22 los datos que nos interesan pero todavía están mezclados con otras informaciones y habrá que seguir extractando cada cosa concreta que queramos>
A43: Destino (de goto)
La acción 37 pone en %result el RESULTado obtenido en la consulta al servidor.
La acción 38 divide la variable %result en varias, utilizando como separador el fragmento "<prediccion>". Así obtendremos en la subvariable %result1 la introducción o datos previos que van antes de (la primera aparición de la palabra) <prediccion> y en la subvariable %result2 obtenemos lo que va después de esa palabra. Lo que va después es la predicción propiamente, y eso es lo que nos interesa. Por eso, luego me concentro en la variable %result2 que contiene la predicción.
Pero la predicción afecta a varios días, y yo quiero concentrarme en el día de la fecha.
Para hacerlo, en la acción 42 cojo la variable %result2 y la vuelvo a dividir, usando como separador <dia fecha="%fechoy3-%fechoy2-%fechoy1"> , que viene a ser algo como <dia fecha="2014-01-16"> pero usando variables para que sirva en cualquier fecha. Esa operación genera dos nuevas subvariables hijas de %result2, que son %result21 y %result22. La primera (%result21) contiene la parte de predicción que precede a esa referencia de fecha, y la segunda (%result22) contiene la parte de predicción que sigue a esa referencia de fecha. Esa segunda variable %result22 es la que contiene las predicciones para ese día concreto, y eso es lo que nos interesa.
Por ese motivo, a continuación añado el comentario: "Ya hemos obtenido en la variable %resul22 los datos que nos interesan pero todavía están mezclados con otras informaciones y habrá que seguir extractando cada cosa concreta que queramos".
Mira debajo los resultados obtenidos del servidor. He resaltado en negrita los fragmentos utilizados como separadores. Verás que el separador <prediccion> y el separador <dia fecha="... están prácticamente contíguos (hay un cambio de línea entre ellos). Por tanto podría haber comenzado por el <dia fecha="... y me hubiera ahorrado un paso. Pero quise hacerlo así para asegurarme de que esa fecha estuviese DESPUÉS de la palabra <prediccion>, como he explicado.
<root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="28079" version="1.0" xsi:noNamespaceSchemaLocation="http://www.aemet.es/xsd/localidades.xsd">
<origen>
<productor>
Agencia Estatal de Meteorología - AEMET. Gobierno de España
</productor>
<web>http://www.aemet.es</web>
<enlace>
http://www.aemet.es/es/eltiempo/prediccion/municipios/madrid-id28079
</enlace>
<language>es</language>
<copyright>
© AEMET. Autorizado el uso de la información y su reproducción citando a AEMET como autora de la misma.
</copyright>
<nota_legal>http://www.aemet.es/es/nota_legal</nota_legal>
</origen>
<elaborado>2014-01-15T20:38:02</elaborado>
<nombre>Madrid</nombre>
<provincia>Madrid</provincia>
<prediccion>
<dia fecha="2014-01-16">
<prob_precipitacion periodo="00-24">95</prob_precipitacion>
<prob_precipitacion periodo="00-12">90</prob_precipitacion>
<prob_precipitacion periodo="12-24">75</prob_precipitacion>
<cota_nieve_prov periodo="00-24">900</cota_nieve_prov>
<cota_nieve_prov periodo="00-12">800</cota_nieve_prov>
<cota_nieve_prov periodo="12-24">1000</cota_nieve_prov>
<estado_cielo periodo="00-24" descripcion="Nuboso con lluvia escasa">44</estado_cielo>
<estado_cielo periodo="00-12" descripcion="Nuboso con lluvia escasa">44</estado_cielo>
<estado_cielo periodo="12-24" descripcion="Muy nuboso con lluvia escasa">45</estado_cielo>
<viento periodo="00-24">
<direccion>S</direccion>
<velocidad>15</velocidad>
</viento>
<viento periodo="00-12">
<direccion>SO</direccion>
<velocidad>15</velocidad>
</viento>
<viento periodo="12-24">
<direccion>S</direccion>
<velocidad>15</velocidad>
</viento>
<racha_max periodo="00-24"/>
<racha_max periodo="00-12"/>
<racha_max periodo="12-24"/>
<temperatura>
<maxima>8</maxima>
<minima>3</minima>
</temperatura>
<sens_termica>
<maxima>6</maxima>
<minima>-1</minima>
</sens_termica>
<humedad_relativa>
<maxima>90</maxima>
<minima>55</minima>
</humedad_relativa>
<uv_max>1</uv_max>
</dia>
<dia fecha="2014-01-18">
<prob_precipitacion periodo="00-24">95</prob_precipitacion>
<prob_precipitacion periodo="00-12">70</prob_precipitacion>
<prob_precipitacion periodo="12-24">90</prob_precipitacion>
…etc…
Me alegro de que te funcione, aunque no entiendo cómo. Sobre todo porque a mí me sigue funcionando tal como lo he tenido siempre (y a ti también te funcionó durante un tiempo). Misterios misteriosos.
ruco1980
16/01/14, 01:40:46
No veo ningún error en la explicación. Hemos obtenido la variable %result22. Te explico cómo.
A37: Establecer variable [ Nombre:%result A:%HTTPD Calcular:Apagado Añadir:Apagado ]
<A partir de aquí vamos dividiendo el resultado obtenido para ir extrayendo la información que queremos>
A38: Separar variable [ Nombre:%result Separador:<prediccion> Eliminar base:Apagado ]
A39: Separar variable [ Nombre:%result1 Separador:</nombre> Eliminar base:Apagado ]
A40: Separar variable [ Nombre:%result11 Separador:<nombre> Eliminar base:Apagado ]
A41: Establecer variable [ Nombre:%municipio A:%result112 Calcular:Apagado Añadir:Apagado ]
A42: Separar variable [ Nombre:%result2 Separador:<dia fecha="%fechoy3-%fechoy2-%fechoy1"> Eliminar base:Apagado ]
<Ya hemos obtenido en la variable %resul22 los datos que nos interesan pero todavía están mezclados con otras informaciones y habrá que seguir extractando cada cosa concreta que queramos>
A43: Destino (de goto)
La acción 37 pone en %result el RESULTado obtenido en la consulta al servidor.
La acción 38 divide la variable %result en varias, utilizando como separador el fragmento "<prediccion>". Así obtendremos en la subvariable %result1 la introducción o datos previos que van antes de (la primera aparición de la palabra) <prediccion> y en la subvariable %result2 obtenemos lo que va después de esa palabra. Lo que va después es la predicción propiamente, y eso es lo que nos interesa. Por eso, luego me concentro en la variable %result2 que contiene la predicción.
Pero la predicción afecta a varios días, y yo quiero concentrarme en el día de la fecha.
Para hacerlo, en la acción 42 cojo la variable %result2 y la vuelvo a dividir, usando como separador <dia fecha="%fechoy3-%fechoy2-%fechoy1"> , que viene a ser algo como <dia fecha="2014-01-16"> pero usando variables para que sirva en cualquier fecha. Esa operación genera dos nuevas subvariables hijas de %result2, que son %result21 y %result22. La primera (%result21) contiene la parte de predicción que precede a esa referencia de fecha, y la segunda (%result22) contiene la parte de predicción que sigue a esa referencia de fecha. Esa segunda variable %result22 es la que contiene las predicciones para ese día concreto, y eso es lo que nos interesa.
Por ese motivo, a continuación añado el comentario: "Ya hemos obtenido en la variable %resul22 los datos que nos interesan pero todavía están mezclados con otras informaciones y habrá que seguir extractando cada cosa concreta que queramos".
Mira debajo los resultados obtenidos del servidor. He resaltado en negrita los fragmentos utilizados como separadores. Verás que el separador <prediccion> y el separador <dia fecha="... están prácticamente contíguos (hay un cambio de línea entre ellos). Por tanto podría haber comenzado por el <dia fecha="... y me hubiera ahorrado un paso. Pero quise hacerlo así para asegurarme de que esa fecha estuviese DESPUÉS de la palabra <prediccion>, como he explicado.
<root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="28079" version="1.0" xsi:noNamespaceSchemaLocation="http://www.aemet.es/xsd/localidades.xsd">
<origen>
<productor>
Agencia Estatal de Meteorología - AEMET. Gobierno de España
</productor>
<web>http://www.aemet.es</web>
<enlace>
http://www.aemet.es/es/eltiempo/prediccion/municipios/madrid-id28079
</enlace>
<language>es</language>
<copyright>
© AEMET. Autorizado el uso de la información y su reproducción citando a AEMET como autora de la misma.
</copyright>
<nota_legal>http://www.aemet.es/es/nota_legal</nota_legal>
</origen>
<elaborado>2014-01-15T20:38:02</elaborado>
<nombre>Madrid</nombre>
<provincia>Madrid</provincia>
<prediccion>
<dia fecha="2014-01-16">
<prob_precipitacion periodo="00-24">95</prob_precipitacion>
<prob_precipitacion periodo="00-12">90</prob_precipitacion>
<prob_precipitacion periodo="12-24">75</prob_precipitacion>
<cota_nieve_prov periodo="00-24">900</cota_nieve_prov>
<cota_nieve_prov periodo="00-12">800</cota_nieve_prov>
<cota_nieve_prov periodo="12-24">1000</cota_nieve_prov>
<estado_cielo periodo="00-24" descripcion="Nuboso con lluvia escasa">44</estado_cielo>
<estado_cielo periodo="00-12" descripcion="Nuboso con lluvia escasa">44</estado_cielo>
<estado_cielo periodo="12-24" descripcion="Muy nuboso con lluvia escasa">45</estado_cielo>
<viento periodo="00-24">
<direccion>S</direccion>
<velocidad>15</velocidad>
</viento>
<viento periodo="00-12">
<direccion>SO</direccion>
<velocidad>15</velocidad>
</viento>
<viento periodo="12-24">
<direccion>S</direccion>
<velocidad>15</velocidad>
</viento>
<racha_max periodo="00-24"/>
<racha_max periodo="00-12"/>
<racha_max periodo="12-24"/>
<temperatura>
<maxima>8</maxima>
<minima>3</minima>
</temperatura>
<sens_termica>
<maxima>6</maxima>
<minima>-1</minima>
</sens_termica>
<humedad_relativa>
<maxima>90</maxima>
<minima>55</minima>
</humedad_relativa>
<uv_max>1</uv_max>
</dia>
<dia fecha="2014-01-18">
<prob_precipitacion periodo="00-24">95</prob_precipitacion>
<prob_precipitacion periodo="00-12">70</prob_precipitacion>
<prob_precipitacion periodo="12-24">90</prob_precipitacion>
…etc…
Me alegro de que te funcione, aunque no entiendo cómo. Sobre todo porque a mí me sigue funcionando tal como lo he tenido siempre (y a ti también te funcionó durante un tiempo). Misterios misteriosos.
Muchas gracias por tu respuesta....ahora lo entiendo todo mejor...
Acabo de ejecutar tu tarea pulsando en el icono del símbolo de play...y la tarea se detiene...como dices misterio misterioso...en el anteior teléfono que tenía funcionaba sin problemas....
Seguidamente he "clonado" tu tarea añadiéndole al nombre copia, le añado la acción de establecer variable %result22 A %result2, salgo de tasker para que guarde los cambios y ejecuto la tarea y en este caso si que continúa hasta el final, pero creo que al meter esa acción en medio se trastoca un poco la tarea, porque al observar la notificación y la variable global en la pestaña de variables, casi toda la información se obtiene SIN DATOS, tan solo las temperaturas...pero sin embargo entro en aemet en el xml de código ine que ha calculado, y en el día 16 (por las horas que son), los datos sí que están...
Sigo investigando...que esto ya se ha convertido en reto-hobby jejej
Gracias.
EDITO: Hoy al realizar la consulta a la base de datos sobre la una y media de la tarde ha obtenido todos los datos, el estado del cielo y la velocidad del viento también sin problemas...por lo que supongo que lo de las horas de la noche sería por el horario, a pesar de observar los datos en el xml de aemet.....seguiré observando la tarea durante unos días a ver qué tal sigue funcionando.
1 saludo!.
Caravantes
16/01/14, 16:31:44
Acabo de ejecutar tu tarea pulsando en el icono del símbolo de play...y la tarea se detiene...como dices misterio misterioso...en el anteior teléfono que tenía funcionaba sin problemas....
Bueno, ya encontré la explicación a todo el asunto.
En la mayoría de smartphones, la configuración de la fecha es dd-mm-aaaa. Si copiamos %DATE a la variable %fechoy (FEChaHOY), al dividir por los guiones obtenemos %fechoy1 con el día, %fechoy2 con el mes y %fechoy3 con el año.
A33: Establecer variable [ Nombre:%fechoy A:%DATE Calcular:Apagado Añadir:Apagado ]
A34: Separar variable [ Nombre:%fechoy Separador:- Eliminar base:Apagado ]
Pero resulta que el servidor nos muestra la fecha invertida, como aaaa-mm-dd: <dia fecha="2014-01-16">
Así pues, para que la tarea pueda localizar eso entre la información devuelta por el servidor hay que utilizar %fechoy3-%fechoy2-%fechoy1
A42: Separar variable [ Nombre:%result2 Separador:<dia fecha="%fechoy3-%fechoy2-%fechoy1"> Eliminar base:Apagado ]
Esa acción te falla porque tienes el smartphone configurado de otra forma.
Haz una tarea simple que solo ejecute una notificación para mostrar la fecha (%DATE). Verás que no tienes dd-mm-aaaa sino otra presentación. Corrije la configuración de Android y/o la configuración de Tasker hasta que obtengas la fecha en formato dd-mm-aaaa. Y entonces volverá a funcionar correctamente.
He puesto dd-mm-aaaa porque el año debe tener cuatro dígitos siempre, y el día o el mes deben tener dos dígitos siempre, incluso cuando son valores inferiores a 10 (01-02-2014 es correcto, 1-2-2014 no es correcto desde este punto de vista).
En este mismo hilo ya hubo otros compañeros que tuvieron problemas parecidos, aunque era con otra tarea:
http://www.htcmania.com/showthread.php?p=8413519
http://www.htcmania.com/showthread.php?p=8414401
Entonces... ¿por qué funcionaba tu arreglo chapucero?
Ayer explique que en los datos devueltos por el servidor hay unos datos introductorios o generales, seguidos de la palabra <predicción> (%result1 y %result2), y luego iba la predicción de cada fecha, con una cabecera del tipo <dia fecha="2014-01-16">. La variable %result22 contiene los datos a partir de esa cabecera, que son los datos del día que nos interesa, y entre esos datos busca referencias como las siguientes
<estado_cielo periodo="00-12"
<estado_cielo periodo="12-24"
<viento periodo="00-12">
<viento periodo="12-24">
<sens_termica>
Bueno, pues resulta que la fecha que buscamos es la primera de las que muestra el servidor. Y esas referencias aparecen por primera vez dentro de la fecha, pero igualmente aparecen por primera vez dentro de todas las previsiones (de cualquier fecha, porque normalmente buscamos la primera fecha que muestra el servidor), y por ese motivo da igual buscar esas referencias en %result22 o en %result2. Todavía más, esas referencias igualmente aparecen por primera vez dentro de todos los datos devueltos por el servidor, por lo cual también funciona si buscamos esas referencias en la variable %result.
Esto seguramente no se cumple si consultas el servidor pocos minutos después de medianoche, porque probablemente el servidor todavía no haya actualizado la información mostrada. En ese momento, la "previsión" que aparece en primer lugar es la del día que ya acabó, y esa información no nos sirve; la previsión del día que comienza aparecerá en segundo lugar y en esa situación sí resulta imprescindible la acción 42 que descarta todo lo que hubiera en fechas previas a la fecha que buscamos.
al observar la notificación y la variable global en la pestaña de variables, casi toda la información se obtiene SIN DATOS, tan solo las temperaturas...pero sin embargo entro en aemet en el xml de código ine que ha calculado, y en el día 16 (por las horas que son), los datos sí que están...
Creo que eso confirma lo que he escrito en el último párrafo, y otra cosa que ya dije anteriormente: Al comenzar el día todas sus previsiones están rellenas, pero a medida que la jornada avanza, muchos de los datos van desapareciendo y quedan en blanco. Justo después de medianoche tenemos en primer lugar los datos del día que ya ha terminado, con bastantes informaciones en blanco, y por eso la tarea te devolvía "Sin datos", puesto que le habías anulado la selección por fecha (para que la tarea no se bloquease) y sin la referencia de la fecha devolvía lo primero que encontraba.
No estoy seguro de que esta explicación se entienda bien a la primera. A quien no le haya quedado claro, que vuelva a leer mi mensaje anterior y luego vuelva a leer este mensaje, supongo que eso será suficiente.
Ruco, ya nos dirás si consigues ajustar la configuración al estándar hispano (dd-mm-aa). En otro caso me dices cómo te sale %DATE y te diré cómo tienes que corregir la tarea para que funcione bien.
ruco1980
16/01/14, 19:40:40
Hola Caravantes....creo que lo he entendido perfectamente, como siempre te has explicado a la perfección...
A ver si lo he entendido...cuando separamos la variable %result2 A díafechaetc.... estamos obteniendo la variable result21 (todo lo que hay antes) y result22 (todo lo que hay después)..
Al añadir yo después la acción volvía a establecer la variable y esa acción se ¿eliminaba? y entonces la tarea "leía" desde lo primero que se encontraba (aunque no fuera después de la fecha que habíamos establecido) y no desde nos interesa....
Pues la solución ha sido tan sencilla como ir a los ajustes de android, fecha/hora...y en el apartado formato fecha hora tenía seleccionado una opción que aparece literalmente como "Regional(16/1/2014)", y entonces me falta el dígito del mes...he cambiado el formato a (16/01/2014) y todo funciona perfectamente.
Muchas gracias por haberte tomado el esfuerzo en revisarlo...esta tarea es mi preferida jajaj y por eso estaba picado jajaj
1 saludo y gracias de nuevo.
danidetenerife
28/01/14, 23:59:52
Hola @Caravanes acabo de probar las tareas que subiste a Pastebin y no me devuelve los siguientes datos
%descm,
%velom
%desct
%velot
¿Por que puede ser?, entro el xml de mi localidad -> http://www.aemet.es/xml/municipios/localidad_38038.xml y veo que si hay datos disponibles que puede extraer pero no lo hace. Llevo un rato revisando el código con los manuales que habeis puesto pero no lo entiendo muy bien. ¿Puedes echarme una mano?, te lo agradecería. Un saludo :)
Caravantes
29/01/14, 23:41:40
acabo de probar las tareas que subiste a Pastebin y no me devuelve los siguientes datos
Qué significa "no me devuelve los siguientes datos". A ¿No pone nada en ese lugar? B ¿Pone el nombre de la variable? C ¿Pone -SIN DATOS-?
Prueba la tarea a distintas horas, preferiblemente en las primeras horas de la mañana.
Si todavía no te funciona...
Añade una instrucción final del tipo siguiente:
Establecer variable %AAResult a %result.
Tras ejecutar la tarea, mira la lista de variables. Ahí debe estar la variable %AAResult que contiene la información capturada del servidor. En esa información, busca los cuatro siguientes fragmentos o textos:
<estado_cielo periodo="00-12" descripcion="
<estado_cielo periodo="12-24" descripcion="
<viento periodo="00-12">...<direccion>x</direccion><velocidad>
<viento periodo="12-24">...<direccion>x</direccion><velocidad>
Justo a continuación de esos cuatro fragmentos debe estar la información que irá a las respectivas variables que no te funcionan:
%descm (DESCripción Mañana)
%desct (DESCripción Tarde)
%velom (VELOcidad Mañana)
%velot (VELOcidad Tarde)
Me extraña que no hayas mencionado las variables %tempm (TEMPeratura Máxima) y %tempn (TEMPeraruta mínima). ¿Esas sí funcionan bien?
entro el xml de mi localidad -> http://www.aemet.es/xml/municipios/localidad_38038.xml y veo que si hay datos disponibles que puede extraer pero no lo hace.
Accede a esa página web y copia aquí su contenido, para que lo veamos, pero copia solo las primeras partes, la introducción y la predicción de ese día, hasta donde comience con otra fecha (que probablemente será la fecha del día siguiente), la fecha del día siguiente aparecerá de una forma parecida a lo siguiente
<dia fecha="2014-01-30">
Lo que hay después de esa fecha (del dia siguiente), ya no interesa, no lo copies.
Además, con pocos minutos de diferencia respecto a lo anterior, ejecutas la tarea. Luego copia aquí el contenido de esa variable %AAResult que te he indicado antes, para que lo veamos, pero copia solo las primeras partes, la introducción y la predicción de ese día, hasta donde comience con otra fecha (que probablemente será la fecha del día siguiente), la fecha del día siguiente aparecerá de una forma parecida a lo siguiente
<dia fecha="2014-01-30">
Lo que hay después de esa fecha (del dia siguiente), ya no interesa, no lo copies.
danidetenerife
29/01/14, 23:59:20
Todo arreglado, creo que debo mirar por la mañana. Muchas gracias por contestar.
darkopro
30/01/14, 09:15:30
El problema es que a partir de las 2 de la tarde está tarea no funciona porque cambian los datos en el web
En primer lugar felicitarte por esta impresionante Tarea. :thumbup:
En segundo lugar decir que soy un completo novato en el uso de Tasker, aunque he conseguido importar tu xml, y cambiar la ruta del txt.
Pero ejecuto la tarea y no dice nada de nada. He probado a crear una tarea "Say" sencilla y mi móvil habla, así que no es problema del audio.
En la pestaña "Variables" solo me aparecen las 4 variables %FECHAV* con los valores de la fecha de hoy.
EDITO: No había leído que luego has colgado 3 tareas diferentes. Voy a probarlas.
EDITO2: Parece que funcionan, voy a tratar de que me funcione el comando "Say".
Seguid asi, sois cojon***!!!!
Caravantes
16/04/14, 13:45:30
En primer lugar felicitarte por esta impresionante Tarea.
Petición para Body y para muchos otros compañeros que cometen el mismo error: Cuando hagáis respuestas o menciones concretas (como en este caso) es muy conveniente poner un fragmento del mensaje al que hacéis referencia (como acabo de hacer yo) para que todos tengamos claro de qué se hablas y/o a quién se habla. Este hilo titulado "Tarea que te dice el tiempo y temperatura" fue iniciado por Alfahuir que llegó a publicar una tarea de ese tipo; luego, en el mismo hilo yo publiqué otras tareas con el mismo objetivo. En este contexto, la felicitación resulta confusa porque no queda claro hacia quién va dirigida. Hubiera sido muy fácil insertar al comienzo del post un fragmento del tipo siguiente:
Pues creo que ya está terminado y funcionando (salvo algún error que pueda quedar)
Tras una cita de este tipo queda muy claro a quién se dirige la respuesta (como hice yo al comienzo de este post). La forma de insertar una cita de este tipo es muy sencilla, al menos si se escribe desde un navegador de escritorio: basta con usar el ratón para seleccionar la frase o fragmento que queremos incluir; al terminar de hacer la selección, junto a ella aparecen una pequeña ventana flotante con la opción "QUOTEA ESTE TEXTO"; hacer clic en ese rótulo es suficiente para que el fragmento seleccionado pase automáticamente a la zona de respuesta, en el cuadro que hay abajo de la página. Luego podemos escribir libremente lo que queramos en ese cuadro, normalmente por debajo de ese fragmento citado.
Body: si tienes dificultades con esas tareas, ya te hago dos sugerencias sistemáticas:
A) Inserta notificaciones para ir viendo cómo progresa la tarea. De esta forma sabrás si se atasca antes o después de las notificaciones, y de esa forma llegas a descubrir cuál es la acción o acciones que no funcioan. Las notificaciones pueden mostrar el estado de alguna variable clave, para tener más pistas.
B) Crea una tarea nueva en la que vas añadiendo (manualmente) cada una de las acciones de la tarea que quieres copiar. Vete ejecutando la tarea cuando hayas añadido cuatro o cinco acciones. Utiliza una notificación final para mostrar el resultado (parcial) de la tarea. Si todo va bien, añade más acciones y repite así hasta que tengas la tarea completa.
Ambos métodos no son excluyentes.
Caravantes, lo siento, tienes razón, entiendo que es muy conveniente citar un fragmento. En problema es que lo hago desde Tapatalk y no manejo bien sus opciones (solo veo la posibilidad de citar tu post completo y eso haría que el hilo de llenase).
Sobre Tasker he ido como tú dices poco a poco y ya consigo que funcionen las tareas. Gracias por los consejos y perdón por mi torpeza.
SGSGOMSAU
27/01/15, 20:38:57
Estoy experimentando estos dias con un APP que accidentamente encontré y que seguro va a revolucionar la tarea que Alfahuir compartió con todos nosotros: Se trata de Weather ACE, en principio no aporta nada nuevo que no aporten otros programas de previsión meteorologica, pero tiene ( y aquí está la diferencia) un Tasker Plugin.
Hay la posibilidad de definir diversas localizaciones, o bien que lo haga en AUTO, utilizando GPS.
Podemos solicitarle las condiciones actuales,la previsión por horas, la previsión diaria, la del dia siguiente, y así hasta cuatro dias vista.
Y lo que mas apasiona es el listado de VARIABLES a utilizar: desde la DESCRIPCIÓN (%weatherace_weather_desc), el id del ICONO que lo representa (%weatherace_weather_id), temperaturas mínimas y màximas, Dewpoint (punto de rocio), presión, humedad, velocidad media, dirección del viento y rachas (%weatherace_windspeed_gusts), horas de salida y puesta de sol, PROBABILIDAD DE PRECIPITACIÓN (%weatherace_pop), precipitación acumulada, porcentaje de cobertura del cielo por nubes (%weatherace_clouds), temperatura de SENSACIÓN (%weatherace_feelslike) e incluso visibilidad.
Todo es parametrizable, desde las FUENTES DE INFORMACIÓN, pasando por los iconos a utilizar, hasta las unidades.
Todo un lujo de detalles para los apasionados de la meteorologia!
Caravantes
28/01/15, 14:24:52
Weather ACE Tasker Plugin
Excelente información, habrá que poner esa referencia en el recopilatorio de recursos para taskeros.
https://play.google.com/store/apps/details?id=mycodefab.aleph.weather_plugin.locale&hl=es
Gracias SGS.
Caravantes
28/01/15, 14:36:19
Cogiendo algunas de las cosas que yo había publicado en este hilo, el compañero Emudem ha construido un buen tinglado para el smartwatch LG G Watch R. Se trata de un apk que devuelve al plugin wear tasker el tiempo y la ubicación. Tiene muy buen aspecto.
659351
Lo ha publicado en el foro específico del smartwatch:
http://www.htcmania.com/showthread.php?p=17169272#post17169272
Aemet tiene alguna variable que te diga la temperatura en tiempo real?? Es que sino la tarea no funciona con datos correctos puesto que solo usa temperatura máxima y mínima pero no la real.
Por cierto como añado el plugin ACE Weather a tasker?, por más que miro no encuentro la manera.
SGSGOMSAU
28/01/15, 23:37:12
Tienes que tener Weather ACE instalado y ademas el Weather ACE Tasker Plugin. Una vez instalados debe aparecer junto el resto de plugins
SGSGOMSAU
28/01/15, 23:44:07
Respecto a datos reales, Aemet solo ofrece previsiones. Si quieres datos reales prueba meteoclimatic. Ahí vertemos datos actualizados cada 15 minutos mas de 1700 estaciones. Cada estación tiene una "pastilla" con los datos básicos, pero hay hasta graficas disponibles...
SGSGOMSAU
28/01/15, 23:56:55
De hecho, hice con tasker una tarea que captara cualquier medida en el pluviómetro y enviara un mensaje a mi mujer indicando lluvia...con el texto "Recoge la colada...se va a mojar". Supe que funcionaba cuando recibí un mensaje de mi mujer diciéndome "La colada YA se ha mojado...puedes programar tu teléfono para que recoja DIRECTAMENTE la colada?"...me sentí inútil e incomprendido...
PabloG.
17/11/15, 22:14:58
Tienes que tener Weather ACE instalado y ademas el Weather ACE Tasker Plugin. Una vez instalados debe aparecer junto el resto de plugins
Buenas compañero, me gusta mucho la idea. Ya tengo instaladas la app y el plugin de tasker.. Como hago para que (mediante voz) me diga el tiempo que hace?
rabeliyo
19/11/15, 15:34:25
Instale hace tiempo el weather ace y su plugin, pero no consegui que me alertase si fuera a llover ya que me obligaba a meter una localizacion a mano, no me autoubicaba.
¿Sabeis si lo han actualizado?
Un saludo
Enviado desde mi SM-G925F mediante Tapatalk
osweberuco
21/11/15, 00:09:04
Yo acabo de hacer un perfil para que me cante el tiempo en cuanto apago la alarma, y funciona perfectamente la ubicación automática en el pluigin
dj_janker
22/11/15, 09:40:03
Yo acabo de hacer un perfil para que me cante el tiempo en cuanto apago la alarma, y funciona perfectamente la ubicación automática en el pluigin
podrías pegar el perfil, para darnos ideas?
rabeliyo
22/11/15, 10:42:21
Yo acabo de hacer un perfil para que me cante el tiempo en cuanto apago la alarma, y funciona perfectamente la ubicación automática en el pluigin
Pero, has tenido que meter a mano una ubicacion para que funcione, lo que no estoy tan seguro, porque me paso la otra vez, es que si cambias de ubicacion, aunque tengas puesto en tasker AUTO, sigue marcando el tiempo de el lugar metido a mano.
Estaria bien, por ejemplo para crear alarmas de lluvia u otras cosas pero tendria que funcionar lo de la autolocalizacion.
Enviado desde mi SM-G925F mediante Tapatalk
osweberuco
22/11/15, 13:32:40
Eso es, con el auto, sin meterlo a mano, funciona perfectamente.
Ximo_GPEG
28/08/16, 14:44:59
Casi un año después del último mensaje pregunto por si acaso...
He probado con la última descarga y con la lista en txt y no funciona, la verdad es que prefiero que sea el propio tasker quien lo gestione bajo una web que tener un segundo programa instalado.
¿Hay alguna novedad o esto está en desuso?
Caravantes
28/08/16, 23:31:52
He probado con la última descarga y con la lista en txt y no funciona
A) ¿A cuál descarga te refieres? He repasado los últimos mensajes y creo que no he visto ningún enlace para descargar. Sería una buena ayuda que dijeras a cuál mensaje o descarga te estás refiriendo. ¿Cuántas tareas has descargado? ¿Cuáles son sus nombres?
... y no funciona
Eso no parece una descripción razonable de un problema con Tasker. ¿Funciona algo de la tarea? ¿Nada? ¿Has hecho alguna comprobación para ver si la tarea finaliza o se queda parada en algún punto? ¿Te da como resultado una predicción inválida? ¿Ninguna predicción? ¿Predicción de una localidad errónea? ¿Algún mensaje o informe de error durante la ejecución? Describe el problema para que entendamos un poco lo que ocurre.
Ximo, esfuérzate un poquito más. Parece que no quieres perder unos minutos en investigar y/o describir el problema que tienes, y esperas que nosotros sí dediquemos tiempo en hacer todas las averiguaciones, incluyendo algunas en las que tú podías aportar buenas pistas.
Ximo_GPEG
29/08/16, 13:45:55
¿A cuál descarga te refieres?
A las tuyas propias
Eso no parece una descripción razonable de un problema con Tasker.
Lo siento, pensé que, al igual que otras tareas era descargar y listo, he pegado un vistazo en general y no me veo capacitado para hacerlo funcionar.
Ximo, esfuérzate un poquito más. Parece que no quieres perder unos minutos en investigar y/o describir el problema que tienes, y esperas que nosotros sí dediquemos tiempo en hacer todas las averiguaciones, incluyendo algunas en las que tú podías aportar buenas pistas.
Desde luego no era mi intención esto, si no saber como he dicho antes si esto funcionaba o se había abandonado el proyecto y habían cambiado alguna posición desde la web de AEMET y ya no funcionaba.
Tengo tasker desde hace tiempo pero lo he usado principalmente para tareas muy sencillas.
Esta tarea se me escapa de las manos y soy incapaz de comprenderla y hacerla funcionar
Igualmente gracias por responder
ruco1980
30/08/16, 10:10:55
A mi hace tiempo que no me funciona la tarea.....pero no he tenido tiempo de ponerme con ella, ya que sigo sin dominar las opciones de "separar variables" y demás...es algo que me cuesta mucho comprender...
La tarea se detiene cuando está separando la variable %result22....y el problema debe de venir porque en el xml de la página web de aemet hayan cambiado algo en la estructura del xml.
Esto me ocurre hace un par de meses como mínimo, pero no te había comentado nada Caravantes porque quiero sacar tiempo de debajo de las piedras y ver si lo soluciono.....
¿Sigues haciendo uso de la tarea? Porque si a ti no te salta el error y te sigue funcionando entonces el problema quizás no esté en el xml de aemet....
Un saludo y a disfrutar de las vacaciones (el que las tenga X-D)
Caravantes
30/08/16, 20:05:23
¿Sigues haciendo uso de la tarea?
Sí, la sigo utilizando, y funciona, pero... Creo que he cambiado/añadido algunos detalles después de lo que publiqué aquí. Es algo que hago habitualmente, ir modificando las tareas cuando se me ocurre alguna mejora.
A mí también me ha pasado que durante una temporadita no funcionó, y tras varias pruebas llegué a la conclusión de que el servidor de Aemet no respondía bien, al menos en ciertas horas. Para solucionarlo, modifiqué la tarea para que en esos casos dejara pasar media hora entre sucesivos reintentos, y ahora va bien... aunque con retraso. Tengo programado que la tarea se inicie a las 07:45 y estoy comprobando que la mayoría de los días tiene éxito a las 09:15, de lo cual se deduce que previamente hubo tres consultas fallidas al servidor de Aemet. En casos menos frecuentes el éxito se alcanza a las 09:45, tras cuatro fallos.
Acabo de volver a subir la tarea, ahora al repositorio del foro, en
https://drive.google.com/open?id=0BwNeu9HsnBNgdHNpVml1YzZFYnc
Empezad leyendo el fichero LEEME.TXT que contiene las explicaciones y la información básica para descargar y utilizar este complejo tinglado, que solo me parece adecuado para usuarios avanzados de Tasker.
cace0353
28/11/16, 11:00:08
Hola a todos,
Desde hace tiempo vengo usando esta tarea que en su dia saqué de este hilo modificándola para obtener los datos metereológicos que me interesaban y traduciéndola al catalán, sólo para mi población (INE 08006)
Ultimamente me he dedicado a otras cosas en las que uso habitualmente Sqlite3 con consultas sencillas.
También me he encontrado que al actualizar a android 6.0.1 (aún estaba en KitKat...) ha sido necesario modificar el formato de la fecha del programa ya que el año se muestra ahora con dos cifras en la variable %DATE.
Aprovechando que ya voy un poco más "suelto" con Sqlite3 me he decidido crear una base de datos (CODIS_METEO) con una sola tabla (CODIS) que contiene las equivalencias entre los códigos postales (+ de 14.000) que nos devuelve la consulta HTTPget a la web de Maps y los correspondientes códigos INE que necesitamos para obtener el tiempo en la web de la AEMET.
El resultado son las sigüientes acciones que transcribo (sólo las del principio de la tarea) y que són las que permiten obtener la previsión, estés donde estés de España, con mucha rapidez.
Meteo (136)
A1: Obtener ubicación [ Origen:Red datos Cuenta atrás (segundos):40 Continuar tarea inmediatamente:Encendido Mantener Seguimiento:Apagado ]
A2: Establecer variable [ Nombre:%avui A:%DATE Calcular:Apagado Añadir:Apagado ]
A3: Establecer variable [ Nombre:%hora A:%TIME Calcular:Apagado Añadir:Apagado ]
A4: Separar variable [ Nombre:%hora Separador:. Eliminar base:Apagado ]
A5: Establecer variable [ Nombre:%hora A:%hora1:%hora2 Calcular:Apagado Añadir:Apagado ] //Formatear la hora en HH:MM
A6: Establecer variable [ Nombre:%times0 A:%TIMES Calcular:Encendido Añadir:Apagado ]
A7: Separar variable [ Nombre:%avui Separador:- Eliminar base:Apagado ] //Separar dia-mes-año para reordenarlo en el formato que necesitamos
A8: Establecer variable [ Nombre:%avui A:20%avui3-%avui2-%avui1 Calcular:Apagado Añadir:Apagado ] //Poner en primer lugar el año precedido por 20 ya que Marshmallow devuelve sólo las dos últimas cifras de año.
<Buscar la dirección en a Google…>
A9: Anchor
A10: Establecer variable [ Nombre:%space A: Calcular:Apagado Añadir:Apagado ] //Esta se puede suprimir pero yo la tengo porque la uso más adelante
A11: HTTP Get [ Servidor:Puerto:maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%LOCN Ruta: Atributos: Cookies: User Agent: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida: Confiar en cualquier Certificado:Apagado ]
A12: Establecer variable [ Nombre:%info A:%HTTPD Calcular:Apagado Añadir:Apagado ]
A13: Separar variable [ Nombre:%info Separador:<type>postal_code</type> Eliminar base:Apagado ]
A14: Separar variable [ Nombre:%info1 Separador:<type>political</type> Eliminar base:Apagado ]
A15: Separar variable [ Nombre:%info15 Separador:</long_name> Eliminar base:Apagado ]
A16: Separar variable [ Nombre:%info151 Separador:<long_name> Eliminar base:Apagado ]
A17: Establecer variable [ Nombre:%codi_postal A:%info1512 Calcular:Encendido Añadir:Apagado ] //tratamos el código postal como un número y buscamos el código INE entrando en la tabla de datos con Sqlite....
A18: Ejecutar consola [ Comando:sqlite3 /sdcard/Tasker/CODIS_METEO.db "SELECT CODI FROM CODIS WHERE POSTAL LIKE '%codi_postal' LIMIT 1;" Cuenta atrás (segundos):5 Usar Root:Apagado Almacenar Salida En:%codi_ine Almacenar Errores En:%Error Almacenar Resultado en: Continuar Tarea Tras Error:Encendido ]
A19: Establecer variable [ Nombre:%codi_ine A:0%codi_ine Calcular:Apagado Añadir:Apagado ] Si (if) [ %codi_ine < 10000 ] //Añadimos un cero delante si él código INE tiene menos de 6 cifras...
<Obtener datos meteo>
A20: Anchor
A21: HTTP Get [ Servidor:Puerto:www.aemet.es/xml/municipios/localidad_%codi_ine.xml 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 ]
A22: Establecer variable [ Nombre:%result A:%HTTPD Calcular:Apagado Añadir:Apagado ]
A23: Separar variable [ Nombre:%result Separador:<prediccion> Eliminar base:Apagado ]
A24: Separar variable [ Nombre:%result1 Separador:</nombre> Eliminar base:Apagado ]
A25: Separar variable [ Nombre:%result11 Separador:<nombre> Eliminar base:Apagado ]
A26: ...etc...etc... Obtenemos los datos meteo tal como se posteó anteriormente o modificandolo y formateando el resultado al gusto de cada uno....
Puede eliminarse la acción A6 que usaba al principio para comprobar la velocidad de ejecución.
Este es el link a la base de datos con las equivalencias Código Postal > Código INEque debereis descargar y copiar en la carpeta "Tasker"
https://dl.dropboxusercontent.com/u/13481585/CODIS_METEO.db
NOTAS:
Es necesario tener instalado Sqlite3 y ser root... :cucu:
Para guardar CODIS_METEO.db clicar con el boton derecho en el enlace y elegir la opción "Nombra y guarda el contenido del enlace". Pasarlo a la carpeta TASKER del móvil.
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.