|
||
#61
|
||||
|
||||
Oh! Muchas gracias @WillyWeb! Muy clarificador! Eres la caña!
Ahora veo que estaba codificado mal. "Temp" es una carpeta y "Weather" es otra. De verdad. Gracias!
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#62
|
||||
|
||||
Muchísimas gracias, Willy. No tenía ni idea de lo que era el formato JSON, pero creo que ya entiendo los aspectos más importantes. Tampoco tenía nociones sobre el funcionamiento de una API, y también me estoy enterando bastante. Gracias.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
Gracias de parte de: | ||
#63
|
||||
|
||||
var json = global('HTTPD');
obj = JSON.parse(json); var lugar = obj.city.name; var ahora = obj.list.temp.day; var minnoche = obj.list.temp.min; var maxdia = obj.list.temp.max; var noche = obj.list.temp.night; var tarde = obj.list.temp.eve; var mañana = obj.list.temp.morn; var presion = obj.list.temp.pressure; var humedad = obj.list.temp.humidity; var tempus = obj.list.temp.weather; var velocidad = obj.list.temp.speed; var direccion = obj.list.temp.deg; var nubes = obj.list.temp.clouds; Definitivamente, soy idiota. El fallo seguro que es una tontería! Sé que son los corchetes!
__________________
Si la educación te parece cara, prueba con la ignorancia.
Última edición por Mitrhandir Día 26/02/17 a las 07:38:55. |
#64
|
||||
|
||||
![]() Si sigues usando el API "Call 16 day / daily forecast data", esto debería funcionar... Código:
json = global('HTTPD'); obj = JSON.parse(json); var lugar = obj.city.name; var ahora = obj.list[0].temp.day; var minnoche = obj.list[0].temp.min; var maxdia = obj.list[0].temp.max; var noche = obj.list[0].temp.night; var tarde = obj.list[0].temp.eve; var mañana = obj.list[0].temp.morn; var presion = obj.list[0].pressure; var humedad = obj.list[0].humidity; var tempus = obj.list[0].weather[0].description; var velocidad = obj.list[0].speed; var direccion = obj.list[0].deg; var nubes = obj.list[0].clouds; json0.png
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) Última edición por WillyWeb Día 26/02/17 a las 11:14:11. |
Gracias de parte de: | ||
#65
|
||||
|
||||
Hola, estoy haciendo pruebas y creo que acabo de descubrir el "misterio de Moncófar":
Estoy en Barcelona, barrio de Gràcia y en "city" me devuelve "el Clot" que es un barrio relativamente lejano. Conclusión que deduzco: en city está la ubicación de la estación metereológica que proporciona los datos... Otra observación: los grados los devuelve con dos decimales (es una previsión basada en datos estadísticos). Casi que convendria simplificar los valores redondeando. Para ello basta con pedir en todas las extracciones de datos con decimales que no interesan que redondee los valores así: var maxdia = Math.round(obj.list[0].main.temp_max); Finalmente: ahora, con sol y sin una nube, me da una humedad relativa del 100% (no creo que estemos por encima del 65% realmente). Es un error de la estación ó no se trata de un valor porcentual como lo usamos habitualmente (en otra escala)? Saludos!
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Los siguientes 2 usuarios han agradecido a cace0353 su comentario: | ||
#66
|
||||
|
||||
Deberías comparar las coordenadas que envías en la URL con las del resultado. Si estás usando la ubicación por RED es posible que estés enviando la posición de una antena de telefonía que no coincida exactamente con el sitio en el que está el dispositivo. También podrías ubicarte por GPS y comparar resultados. ![]() ![]() Según la documentación ... Humidity, %
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
Los siguientes 3 usuarios han agradecido a WillyWeb su comentario: | ||
#67
|
||||
|
||||
%WillyWeb dijo "No veo nada en la documentación sobre que sean datos estadísticos. En todas partes pone que son datos obtenidos de estaciones.
![]() Son previsiones para horas futuras… no puede haber datos de estación! Por antenas, en otra aplicación que tengo, también con %LOCN me está situando correctamente con nombre de calle y n° correcto… Piensa que %LOCN no devuelve la posición de ninguna antena sino la tuya estimada, por triangulacion de las antenas que te tienen "pillado". La precisión normal, en zonas urbanas és del orden de 20 a 40 m. Lo de la humedad, pues, debe ser un error de la estación: estamos con sol y sin nubes. No puede haber una humedad del 100%!!! Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 26/02/17 a las 18:38:07. |
#68
|
||||
|
||||
02 (62)
A1: Obtener ubicación [ Origen:Red datos Cuenta atrás (segundos):10 Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado Continuar Tarea Tras Error:Encendido ] A2: Establecer variable [ Nombre:%pos A:%LOCN Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A3: Separar variable [ Nombre:%pos Separador:, Eliminar base:Apagado ] A4: HTTP Get [ Servidor:Puerto:http://api.openweathermap.org/data/2...=metric&appid= Ruta: Atributos: Cookies: User Agent: Cuenta atrás:10 Tipo Mime: Archivo de salida: Confiar en cualquier Certificado:Apagado Continuar Tarea Tras Error:Encendido ] A5: JavaScriptlet [ Código:json = global('HTTPD'); obj = JSON.parse(json); var lugar = obj.city.name; var ahora = Math.round(obj.list[0].temp.day); var minnoche = Math.round(obj.list[0].temp.min); var maxdia = Math.round(obj.list[0].temp.max); var noche = Math.round(obj.list[0].temp.night); var tarde = Math.round(obj.list[0].temp.eve); var mañana = Math.round(obj.list[0].temp.morn); var presion = Math.round(obj.list[0].pressure); var humedad = obj.list[0].humidity; var tiempo = obj.list[0].weather[0].description; var velocidad = Math.round(obj.list[0].speed); var direccion = obj.list[0].deg; var nubes = obj.list[0].clouds; Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ] Aquí dejo mi tarea. Ahora me gustaría saber qué es cada cosa. Porque estoy hecho un lío. Porque la predicción no la veo. Sí pongo %Mindia o %Maxdia, perfecto, pero si pongo %mindia o %maxdia no hay tu tía. Porque las demás variables son locales. Pero estoy contento!
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
#69
|
||||
|
||||
Prueba a guardar los datos en una variable local p.e. %prevision dándole sentido para ser leído:
Establecer Variable %prevision A:"Previsión metereológica para %lugar. Temperatura actual de %hora grados. Máxima de %maxdia grados. Humedad del %humedad. etc etc" Y, a continuación, metes una acción Decir y, en texto, escribes %prevision y disfruta! Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 26/02/17 a las 18:51:34. |
#70
|
||||
|
||||
Para que sepas lo que es cada cosa, y por qué se hace cada cosa... tienes que hacer lo siguiente, como ya te dije: A) Haz un esquema previo de la tarea, o un diagrama de flujo, o un diagrama o un borrador (llámalo como quieras). B) Haz una lista detallada de las variables que vas a usar, con sus nombres y pensando bien la información que contendrá cada variable. Hasta que no tengas esos dos pasos, no deberías comenzar a codificar las acciones de la tarea definitiva. Puedes hacer pequeñas tareas de prueba para ir viendo cómo resolver uno u otro paso, pero eso serían solo partes del aprendizaje, no la tarea final. Hay quien tiene suficiente organización mental como para hacer los pasos A y B (esquema y variables) en su propia cabeza, sin necesidad de ponerlos por escrito. Esas personas pueden comenzar a codificar acciones desde el primer momento. Pero esas personas nunca dirán que "me gustaría saber qué es cada cosa, estoy hecho un lío". Tú no tienes esa facilidad para organizarte mentalmente, y es por eso que necesitas concretar el plan paso a paso y poniéndolo todo por escrito. Pero tienes serias dificultades para hacerlo de forma disciplinada, te vence el impulso y las ganas de llegar a la meta. Vale, también es posible ir improvisando y haciendo las cosas al tun tun (ensayo y error), pero eso no es lo que pedías en el primer post de este hilo. Céntrate porfa. Y ten paciencia. Verás que el resultado es mejor. Creo.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
Gracias de parte de: | ||
#71
|
||||
|
||||
![]() No me refería al tema de codificar. Jolín, me siento mal por no haber dado más detalles. Me refería a qué es cada cosa. Me explico: var lugar = obj.city.name; Yo sé que esto de refiere al lugar donde estoy. Ahora bien, esta línea es muy ambigua var ahora = Math.round(obj.list[0].temp.day); A qué se refiere? A la temperatura actual? La temperatura media del día? var minnoche = Math.round(obj.list[0].temp.min); Esta la tengo clara. var maxdia = Math.round(obj.list[0].temp.max); Esta también. var noche = Math.round(obj.list[0].temp.night); Esta habla de noche. Pero de qué noche? La actual? La de ayer? De la que viene? Lo mismo para las de abajo. var tarde = Math.round(obj.list[0].temp.eve); var mañana = Math.round(obj.list[0].temp.morn); var presion = Math.round(obj.list[0].pressure); Esta la sé. var humedad = obj.list[0].humidity; Esta también la sé. var tiempo = obj.list[0].weather[0].description; Esta es la predicción? El estado del cielo? var velocidad = Math.round(obj.list[0].speed); velocidad del viento var direccion = obj.list[0].deg; dirección de las nubes. var nubes = obj.list[0].clouds; cantidad de nubes. Pregunto esto porque antes de ponerme a hacer más tarea, quiero tener bien claro lo que es cada cosa. He aprendido mucho gracias a vuestra ayuda! Eso es impagable! Ahora falta aún mucho por hacer! Un saludo y te pido disculpas @Caravantes por no haberme explicado lo bastante bien. Un saludo!
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
Gracias de parte de: | ||
#72
|
||||
|
||||
En %direccion tienes la dirección del viento (0° = Norte) !
Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
|
#73
|
||||
|
||||
El problema de openweather y de otras es de donde saca la info de la estación más cercana, un ejemplo:
Para Moncofar ¿Lo saca de Castellon de la Plana? https://openweathermap.org/weatherma...0.2348&zoom=10 https://openweathermap.org/city/2513700 La api da 100% humedad mientras en la consulta da el dato correcto. Un saludo. Última edición por Xcso Día 26/02/17 a las 21:30:00. Razón: Añadir + info |
#74
|
||||
|
||||
Por el API que estás usando la predicción es todo. Para las condiciones actuales tendrías que haber usado otro API. Sobre tus preguntas, las respuestas deberían estar aquí... http://www.openweathermap.org/forecast16#JSON Y si el inglés no es tu fuerte... https://translate.google.es/#auto/es
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
#75
|
||||
|
||||
Buenos días!
@Xcso, parece ser que sí. Imagino que irá parejo al nivel poblacional. A más población=más estaciones. @Caravantes y @WillyWeb. No os imagináis la admiración que os tengo. Y tenéis (casi) toda la razón. No sé si será por tener la autoestima informática baja, pero siento que soy un analfabeto. Y para superar ese analfabetismo, tengo que aplicarme más para tratar de, no llegar a vuestro nivel (muy difícil), pero sí tratar de aprender para no entorpecer vuestra magnífica labor. Como he comentado en alguna ocasión, tengo una sordera importante, pero mira, los "profesionales médicos" dijeron que nunca hablaría, ni escribiría ni leería. Y aquí me tenéis. Dando por saco (por no decir otra cosa). Entonces, esto forja el carácter, quieras o no. Para mí, la palabra "imposible" no existe. Para mí, que me digan "no podrás", es gasolina para mí. Y para que veáis lo cabezón que soy, aquí dejo tarea que he hace un rato desde 0. He cometido fallos (sí, soy muy de error y ensayo), pero los he subsanado haciendo el árbol y escuadriñando el código. Veréis que no es el mismo de ayer. Un saludo! 0Openweather (12) A1: Obtener ubicación [ Origen:Red datos Cuenta atrás (segundos):10 Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado Continuar Tarea Tras Error:Encendido ] A2: Establecer variable [ Nombre:%pos A:%LOCN Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A3: Separar variable [ Nombre:%pos Separador:, Eliminar base:Apagado ] A4: HTTP Get [ Servidor:Puerto:http://api.openweathermap.org/data/2...947cf05acce72f Ruta: Atributos: Cookies: User Agent: Cuenta atrás:10 Tipo Mime: Archivo de salida: Confiar en cualquier Certificado:Apagado Continuar Tarea Tras Error:Encendido ] A5: JavaScriptlet [ Código:json = global('HTTPD'); obj = JSON.parse(json); var lugar = obj.city.name; var ahora = Math.round(obj.list[0].main.temp); var minnoche = Math.round(obj.list[0].main.temp.min); var maxdia = Math.round(obj.list[0].main.temp.max); var presion = Math.round(obj.list[0].main.pressure); var nivel = Math.round(obj.list[0].main.sea_level); var humedad = obj.list[0].main.humidity; var tiempokf = obj.list[0].main.temp_kf; var descripcion = obj.list[0].weather[0].description; var nubes = obj.list[0].clouds; var viento = obj.list[0].wind; var velviento = obj.list[0].wind.speed; var dirviento = obj.list[0].wind.deg; var lluvia = obj.list[0].rain; Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ] A6: [x] Pop-Up [ Título: Texto:Estoy en %lugar Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A7: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A8: [x] Pop-Up [ Título: Texto:La temperatura es %ahora Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A9: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A10: [x] Pop-Up [ Título: Texto:La temperatura mínima es %MinDia Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A11: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A12: [x] Pop-Up [ Título: Texto:La temperatura máxima es %Ma ![]() A13: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A14: [x] Pop-Up [ Título: Texto:La presión atmosférica es de %presion Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A15: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A16: [x] Pop-Up [ Título: Texto:Estás a %nivel metros sobre el nivel del mar. Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A17: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A18: [x] Pop-Up [ Título: Texto:La humedad es de %humedad Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A19: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A20: [x] Pop-Up [ Título: Texto:%tiempokf Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A21: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A22: [x] Pop-Up [ Título: Texto:El %Descripcion Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A23: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A24: [x] Pop-Up [ Título: Texto:%nubes Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A25: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A26: Pop-Up [ Título: Texto:%viento Imagen de fondo: Disposición:Popup Cuenta atrás (segundos):3 Mostrar sobre bloqueo pantalla:Encendido ] A27: [x] Esperar [ MS:573 Segundos:0 Minutos:0 Horas:0 Días:0 ] A28: [x] Pop-Up [ Título: Texto:La velocida....
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
#76
|
||||
|
||||
![]() Y ahora te hablo con todo el cariño, no seas impaciente y haz un intento por organizar tus ideas antes de tirarte a la piscina. Es importante tener claro lo que se quiere hacer. Recuerda los consejos que te ha dado Caravantes, ya te he dicho que son oro puro. ![]() ![]()
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
#77
|
||||
|
||||
En mi opinión, sería mejor que organizaras toda la información de salida en variables de una matriz, al estilo de lo siguiente:
Código:
Establecer variable %salida1 a La temperatura mínima es %MinDia Establecer variable %salida2 a La temperatura máxima es %MaxDia Establecer variable %salida3 a La presión atmosférica es de %presion Establecer variable %salida4 a Estás a %nivel metros sobre el nivel del mar etc. Creo que hubiera sido preferible planificar previamente estos detalles, mediante un esquema de la tarea, como te sugerí mas de una vez. Veamos otros problemillas: [Nota: cuando el servidor del foro ve una letra x seguida de una letra D lo interpreta como una risa, y muestra el smiley Código:
- Estás utilizando algunas variables locales (%presion) y otras globales (%MaxDia). Creo preferible usar solamente las locales, no tienes necesidad de complicarte con las globales. - Esa variable %MaxDia la escribes así (con algunas mayúsculas) en A12, pero la escribes con minúsculas (maxdia) en el JavaScriplet de A5. No va a funcionar, Tasker considera que son dos variables distintas. Tienes que escribir siempre igual cada variable. - En A10 haces un Pop-Up mostrando el contenido de la variable %MinDia, pero esa variable no la has cargado previamente, no le has asignado ningún valor, no aparece en otras acciones de la tarea. Mitrhandir, entiendo perfectamente que puedas tener tus motivos o tu carácter, y que eso te lleve a hacer las cosas a tu manera, olvidando reiteradamente mis sugerencias (mis mensajes #3 #19 #70, por ejemplo), incluso a pesar de que Willy también avalaba mis propuestas (sus mensajes #16 #20 #76). Respeto tu manera de hacer. Entiende tú también que yo no tenga muchas ganas de seguir haciéndote sugerencias y aportaciones, tras haber visto que muchas veces han caído en saco roto. No estoy enfadado ni disgustado, en ninguna medida. Simplemente constato que tenemos dos maneras muy distintas de enfocar el asunto y me parece muy difícil coordinar ambas visiones. [Si quieres leer un mensaje mío estando disgustado, mira aquí: http://www.htcmania.com/showpost.php...25&postcount=8 ]Mitrhandir, te pido que sigas participando en el foro igual que hasta ahora, o como mejor te parezca. Me incomodaría que no lo hicieras, porque creo que tu presencia enriquece el foro y creo que tu comportamiento no es ningún problema para el colectivo; solo es un desencuentro personal entre tú y yo. Creo que la mejor forma de resolverlo es que yo deje de responder (quizá no totalmente) en las consultas que tú hagas. Buena suerte.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
#78
|
||||
|
||||
Esta es tu nueva propuesta...
Código:
0Openweather (12) A1: Obtener ubicación [ Origen:Red datos Cuenta atrás (segundos):10 Continuar tarea inmediatamente:Apagado Mantener Seguimiento:Apagado Continuar Tarea Tras Error:Encendido ] A2: Establecer variable [ Nombre:%pos A:%LOCN Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] A3: Separar variable [ Nombre:%pos Separador:, Eliminar base:Apagado ] A4: HTTP Get [ Servidor:Puerto:http://api.openweathermap.org/data/2...947cf05acce72f Ruta: Atributos: Cookies: User Agent: Cuenta atrás:10 Tipo Mime: Archivo de salida: Confiar en cualquier Certificado:Apagado Continuar Tarea Tras Error:Encendido ] A5: JavaScriptlet [ Código:json = global('HTTPD'); obj = JSON.parse(json); var lugar = obj.city.name; var ahora = Math.round(obj.list[0].main.temp); var minnoche = Math.round(obj.list[0].main.temp.min); var maxdia = Math.round(obj.list[0].main.temp.max); var presion = Math.round(obj.list[0].main.pressure); var nivel = Math.round(obj.list[0].main.sea_level); var humedad = obj.list[0].main.humidity; var tiempokf = obj.list[0].main.temp_kf; var descripcion = obj.list[0].weather[0].description; var nubes = obj.list[0].clouds; var viento = obj.list[0].wind; var velviento = obj.list[0].wind.speed; var dirviento = obj.list[0].wind.deg; ![]() http://www.openweathermap.org/forecast5 http://www.openweathermap.org/weather-data http://www.openweathermap.org/weather-conditions Lo que has hecho no está mal del todo, pero creo que se puede organizar un poco mejor para que sea más fácil de mantener/entender. ![]() Obtener la ubicación Código:
A1: Obtener ubicación [ Origen:Red datos Continuar tarea inmediatamente:Encendido ] A2: Establecer variable [ Nombre:%locn A:%LOCN ] A3: Separar variable [ Nombre:%locn Separador:, ] Consultar el API Código:
A4: HTTP Get [ Servidor: Puerto:api.openweathermap.org Ruta: data/2.5/forecast Atributos: lat=%locn1 lon=%locn2 cnt=1 lang=es units=metric appid=93dc7ed2abd2de8255098818c88cbd6b ] Procesar el JSON Código:
A5: JavaScriptlet [ Código:<JS> Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ] Y en <JS> metes esto... //DATOS DEL API json=global('HTTPD'); json=json.replace(/3h/g,'hhh'); obj=JSON.parse(json); var city=obj.city.name; var lat=obj.city.coord.lat; var lon=obj.city.coord.lon; var country=obj.city.country; var population=obj.city.population; lm=obj.list[0].main; var temp=lm.temp; var temp_min=lm.temp_min; var temp_max=lm.temp_max; var pressure=lm.pressure; var humidity=lm.humidity; lw=obj.list[0].weather[0]; var weather=lw.main; var description=lw.description; var icon=lw.icon; l0=obj.list[0]; var dt_seg=l0.dt; var dt_txt=l0.dt_txt; var wind_speed=l0.wind.speed; var wind_deg=l0.wind.deg; var clouds=l0.clouds.all; try {var rain=l0.rain.hhh;} catch(err) {var rain='0';} try {var snow=l0.snow.hhh;} catch(err) {var snow='0';} //DATOS PROCESADOS var tact=Math.round(temp); var tmin=Math.round(temp_min); var tmax=Math.round(temp_max); var press=Math.round(pressure); var humed=Math.round(humidity); var icono='http://openweathermap.org/img/w/'+icon+'.png'; var wind_kxh=Math.round(wind_speed/1000*3600); dirs='norte,nornordeste,nordeste,estenordeste,este,estesudeste,sudeste,sudsudeste,sur,sudsudoeste,sudoeste,oesudoeste,oeste,oesnoroeste,noroeste,nornoroeste,norte'.split(','); dir=Math.round(wind_deg/22.5); var wind_dir=dirs[dir]; Sobre esto unas aclaraciones... He usado nombres de variables semejantes a las propiedades del JSON para mantener la coherencia. Lo de "minnoche" y "maxdia" da a entender un uso de esos valores que no aparece en la documentación. También has mezclado variables locales con globales, y en algunos casos las usas sin darles valor previamente (por eso te fallan cosas). He observado que "JSON.parse()" no acepta nombres de propiedades que comienzan con un número. Para solucionarlo he añadido esa instrucción "replace" que cambia los "3h" por "hhh" (esos "3h" aparecen como parte del dato de lluvia o nieve). Los datos de lluvia y nieve (rain y snow) no aparecen siempre. He añadido un pequeño control de errores para evitar que el código se pare en esos casos. Componer la frase final El contenido final de esa frase es cosa tuya. Aquí está mi propuesta... Se prevé %description en %city. La temperatura es de %tact grados aunque puede variar de %tmin a %tmax. La humedad es del %humidity por ciento. Sopla viendo del %wind_dir a %wind_kxh kilómetros hora.# Posibles mejoras #
... Contando con que añadas una acción más para "decir" la frase final la tarea no necesita más de 6 acciones. Parafraseando al genial René Lavand ... " " ... creo que, no se puede hacerlo más fácil. ![]()
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) Última edición por WillyWeb Día 04/03/17 a las 09:39:46. Razón: Añadidos en rojo y aclaraciones varias |
Gracias de parte de: | ||
#79
|
||||
|
||||
@Caravantes! Ni se te ocurra dejar de decirme las cosas! Pero qué desencuentro hombre? Por mi parte yo estoy encantado contigo! Reconozco muy a mi pesar que tengo esa manía/defecto de ir a mi p... bola
![]() Me fastidiaría y mucho que dejaras de "darme" collejas. Soy un ansias y estoy dispuesto a cambiar. Sobre lo que comentas de las variables, las quiero hacer locales, pero en concreto %Max dia y %Min dia sólo salen correctamente en el pop-up así (mayúsculas). Tendré que borrar en el apartado "variables" esas variables. Hacemos trato? ![]()
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
|
#80
|
||||
|
||||
Un saludo. |
![]() |
![]() |
||||||
|