Tasker Para hablar de todo lo relacionado con la aplicación tasker

Respuesta
 
Herramientas
  #1  
Viejo 10/03/13, 15:16:54
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
Tarea que te dice el tiempo y temperatura

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/0B3UD...it?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 ...." Captura de pantalla 2013-03-10 a las 10.38.37.png en ese enlace os saldrá Captura de pantalla 2013-03-10 a las 10.39.03.png 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
Responder Con Cita
Los siguientes 12 usuarios han agradecido a Alfahuir su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 18/03/13, 20:44:42
Array

[xs_avatar]
willhelm84 willhelm84 no está en línea
Usuario muy activo
 
Fecha de registro: ago 2011
Mensajes: 523
Modelo de smartphone: OnePlus 6T
Tu operador: Orange
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
Responder Con Cita
  #3  
Viejo 19/03/13, 00:49:06
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por willhelm84 Ver Mensaje
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/pred...unicipios?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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #4  
Viejo 19/03/13, 06:59:01
Array

[xs_avatar]
willhelm84 willhelm84 no está en línea
Usuario muy activo
 
Fecha de registro: ago 2011
Mensajes: 523
Modelo de smartphone: OnePlus 6T
Tu operador: Orange
 Cita: Originalmente Escrito por Caravantes Ver Mensaje
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/pred...unicipios?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.
Responder Con Cita
  #5  
Viejo 19/03/13, 08:57:14
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
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
Responder Con Cita
  #6  
Viejo 19/03/13, 09:01:27
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
Se podría crear una base de datos pero hay ¡¡8116 municipios!!
Menuda tarea
Imágenes Adjuntas
Tipo de Archivo: png Captura de pantalla 2013-03-19 a las 08.59.14.png (11.0 KB, 1167 visitas)
Responder Con Cita
  #7  
Viejo 19/03/13, 09:39:42
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por Alfahuir Ver Mensaje
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).
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker

Última edición por Caravantes Día 19/03/13 a las 09:45:13.
Responder Con Cita
  #8  
Viejo 19/03/13, 10:51:32
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
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
Imágenes Adjuntas
Tipo de Archivo: png Captura de pantalla 2013-03-19 a las 10.29.48.png (50.9 KB, 1161 visitas)
Tipo de Archivo: png Captura de pantalla 2013-03-19 a las 10.30.18.png (64.8 KB, 1159 visitas)
Responder Con Cita
Gracias de parte de:
  #9  
Viejo 19/03/13, 23:17:45
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
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/geoc...tlon=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
Responder Con Cita
Gracias de parte de:
  #10  
Viejo 19/03/13, 23:24:51
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
Me equivoque al transcribir el punto 2 lo correcto es:
2. HTTP Get maps.google.com/maps/api/geocode/xml?sensor=true&latlng=%direccgps
Responder Con Cita
  #11  
Viejo 20/03/13, 18:30:22
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
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
Responder Con Cita
Gracias de parte de:
  #12  
Viejo 20/03/13, 21:52:49
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Re: Tarea que te dice el tiempo y temperatura

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
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Responder Con Cita
  #13  
Viejo 22/03/13, 03:19:26
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por Alfahuir Ver Mensaje
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&h...,+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

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
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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
Gracias de parte de:
  #14  
Viejo 22/03/13, 15:08:09
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
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
Responder Con Cita
Gracias de parte de:
  #15  
Viejo 30/03/13, 19:00:33
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
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/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

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
Responder Con Cita
Los siguientes 6 usuarios han agradecido a Alfahuir su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #16  
Viejo 30/03/13, 22:49:24
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por Alfahuir Ver Mensaje
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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #17  
Viejo 01/04/13, 09:22:50
Array

[xs_avatar]
Alfahuir Alfahuir no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Valencia
Mensajes: 58
Modelo de smartphone: HTC one
Tu operador: Orange
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
Responder Con Cita
  #18  
Viejo 02/04/13, 13:53:36
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por Alfahuir Ver Mensaje
...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.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
  #19  
Viejo 21/04/13, 06:58:47
Array

[xs_avatar]
janscas janscas no está en línea
Usuario novato en la web
 
Fecha de registro: abr 2013
Mensajes: 3
Modelo de smartphone: nexus 4
Tu operador: Movistar
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?
Responder Con Cita


  #20  
Viejo 21/04/13, 07:03:07
Array

[xs_avatar]
janscas janscas no está en línea
Usuario novato en la web
 
Fecha de registro: abr 2013
Mensajes: 3
Modelo de smartphone: nexus 4
Tu operador: Movistar
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!
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Otro software para Android > Tasker



Hora actual: 20:57:26 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /