|
||
#81
|
||||
|
||||
__________________
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) |
Gracias de parte de: | ||
|
#82
|
||||
|
||||
Buenos días!
@WillyWeb, acabo de transcribir tu tarea y he detectado un pequeño error. Está en A5 casi al final. Por lo demás, me dejas alucinado. Ahora entiendo porqué @Caravantes insiste tanto en el planteamiento, la disciplina y la pulcritud. Te comento la tarea: -El pop-up de %presure me arroja "nan" ¿Qué significa? -%rain y %snow me salen tal cual, pero creo que si no hay lluvia ni nieve, el valor debería de ser 0, como por ejemplo en el caso de %clouds. -Lo de las coordenadas en la url ya está corregido. -Respecto a lo de %wind_speed, no lo veo mal, pero estoy viendo que los valores no se ajustan a la realidad. Me explico: Me dice %wind_speed que la velocidad del viento es 9. Salgo a la calle y no sopla ni una brizna de aire. O la tarea de ayer, que me decía que la altitud era de 1029 metros cuando prácticamente estoy a nivel del mar. Curiosamente, tengo instalada la app Weather Timeline, que puede usar varias bases de datos (Weather Undergroung, Openweather, etc...) y estoy usando la de Openweather. Los resultados son distintos. (en un principio quería hacer esta tarea intents mediante). -Lo de %wind_deg no lo veo complicado. %wind_deg se podría separar en %win_deg1, %wind_deg2, %wind_deg3 y %wind_deg4 y asociar valores (0 es norte, 250 es este, 500 es sur y 750 es oeste), e incluso separar en 8 para norte, noroeste, este, sureste, sur, suroeste, oeste y noreste. -Estoy mosca con lo de %rain y %snow, pero sí sería interesante que saliera una notificación en caso de que %rain o %snow tuvieran el valor de 60/70% o en el caso de %clouds que saliera si el valor fuera 100%. -Para la notificación no tengo ni idea de cómo hacer. (Nunca lo he hecho) Un saludo! ![]()
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
#83
|
||||
|
||||
![]() Not-A-Number (No es Un Número). Eso me pasa por programar en el móvil ![]() ![]() -Respecto a lo de %wind_speed, no lo veo mal, pero estoy viendo que los valores no se ajustan a la realidad. Me explico: Me dice %wind_speed que la velocidad del viento es 9. Salgo a la calle y no sopla ni una brizna de aire. O la tarea de ayer, que me decía que la altitud era de 1029 metros cuando prácticamente estoy a nivel del mar.
![]() %wind_kxh=%wind_speed/1000x3600 Sobre la precisión del valor note puedo decir nada. Y ese "1029" no es la altitud, es la presión atmosférica a nivel del mar, en milibares con "units=metric". Curiosamente, tengo instalada la app Weather Timeline, que puede usar varias bases de datos (Weather Undergroung, Openweather, etc...) y estoy usando la de Openweather. Los resultados son distintos. (en un principio quería hacer esta tarea intents mediante).
![]() -Lo de %wind_deg no lo veo complicado. %wind_deg se podría separar en %win_deg1, %wind_deg2, %wind_deg3 y %wind_deg4 y asociar valores (0 es norte, 250 es este, 500 es sur y 750 es oeste), e incluso separar en 8 para norte, noroeste, este, sureste, sur, suroeste, oeste y noreste.
![]() IF %wind_deg>337 AND %wind_deg<23 %wind_dir="norte" IF %wind_deg>22 AND %wind_deg<68 %wind_dir="nordeste" IF %wind_deg>67 AND %wind_deg<113 %wind_dir="este" ... ... He repartido los 360º entre las ocho direcciones y salen a 45º. Poniendo en los IF la mitad (23º redondeando) a cada lado de la posición central de la "dirección" correspondiente te aseguras que todos los valores de grados tienen su traducción a palabras. ![]() Pues no te metas con eso. Es sólo una sugerencia.
__________________
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 28/02/17 a las 09:29:51. Razón: Corrección de errores |
#84
|
||||
|
||||
Es cosa de organizar las ideas. Y ese error ... podría ser. Dime dónde.
-Está al final. Una doble paréntesis. Eso me pasa por programar en el móvil ... Yo ya he visto el error. ¿No lo ves tú? -Voy a mirar. Luego edito. Parece que rain y snow son opcionales. El API funciona así y si quieres otro resultado lo tendrás que solucionar tú a base de código. -Claro hombre, como soy experto en Javascript, lo hago con los ojos cerrados! ![]() La velocidad del viento se proporciona en metros/segundo. Para pasarla a K/h... %wind_kxh=%wind_speed/1000x3600 - Establecer variable %win_speed A %wind_kxh=%wind_speed/1000x3600 Calcular encendido. Y ese "1029" no es la altitud, es la presión atmosférica a nivel del mar, en milibares con "units=metric". - ![]() ¿Y qué espera sacar mediante intents? ¿Esa aplicación devuelve valores que puedas utilizar cono hace el API? -Pues la verdad es que el tema de intents me seduce. Espero sacar mucha información aprovechable. Ésa es el quid de la cuestión! Cómo puedo saber si una aplicación puede interactuar intents mediante. He leído sobre el tema. Pero vamos a dejarlo aparte y después de las Fallas, abriré tema nuevo. Así os doy vacaciones. ![]() ¿Para qué quieres crear todas esas variables? Tienes %wind_deg con un número y necesitas una nueva variable (%wind_dir) con su traducción a palabras. Si tienes ocho "direcciones" (n/s/e/o/ne/se/so/no) necesitas ocho IF... IF %wind_deg>337 AND %wind_deg<23 %wind_dir="norte" IF %wind_deg>22 AND %wind_deg<68 %wind_dir="nordeste" IF %wind_deg>67 AND %wind_deg<113 %wind_dir="este" ... ... He repartido los 360º entre las ocho direcciones y salen a 45º. Poniendo en los IF la mitad (23º redondeando) a cada lado de la posición central de la "dirección" correspondiente te aseguras que todos los valores de grados tienen su traducción a palabras. -Ok. No había caído en esa forma de hacerlo No es mala idea ... adelante con ello. -Sí, primero tengo que hacer lo de arriba. ![]() Pues no te metas con eso. Es sólo una sugerencia. -No tenía pensado hacerlo. Pero un día habrá que hacerlo. Un saludo! ![]() ![]()
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
#85
|
||||
|
||||
Era eso, no busques más.
![]() Dame un rato que casi lo tengo resuelto. http://www.htcmania.com/showthread.php?p=9209962
__________________
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) |
#86
|
||||
|
||||
Para obtener las direcciones de los vientos en formato legible lo tienes mejor (y mas completo con 16 orientaciones) de la siguiente manera:
EDITADO Ver 5 post más adelante la solución correcta...
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 28/02/17 a las 13:19:34. Razón: Corregir "round" por "ceil" |
Los siguientes 2 usuarios han agradecido a cace0353 su comentario: | ||
#87
|
||||
|
||||
![]() El reparto de nombres se inicia en cero grados de forma que "norte" correspondería a los valores 0 a 22.5 cuando lo correcto es que fuese de 348.75 a 11.25 y así sucesivamente. Ahora que pienso en ello de nuevo he visto que no es complicado "parchear" la dirección para corregir esa pequeña desviación y poder hacer uso del sistema que propones. ![]()
__________________
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) |
#88
|
||||
|
||||
![]()
__________________
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 28/02/17 a las 11:58:21. |
#89
|
||||
|
||||
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 28/02/17 a las 12:32:37. |
#90
|
||||
|
||||
Entre el 0 y el 16 tienes 17 valores. Lo correcto sería entre 0 y 15.
![]()
__________________
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) |
#91
|
||||
|
||||
Si tu valor obtenido de dirección del viento es %direccion: Establecer variable %direccion A: round(%direccion/22.5)+1 Calcular:Activado (en %dirección te quedará un valor entre 1 y 17) Para un angulo pequeño p.e. 2º %direccion toma el valor 1 del array, es decir "Norte" Para un ángulo próximo a 360% p.e. 355º %direccion valdrá 16+1 = 17, "Norte" también. Para un ángulo intermedio p.e. 137º %direccion valdrá 6+1 = 7, o sea "Sur Este" Establecer Variable %vientos A: Norte;Nor Noreste;NorEste;Este Noreste;Este;Este SurEste;Sur Este;Sur SurEste;Sur;Sur SurOeste;SurOeste;Oeste SurOeste;Oeste;Oeste NorOeste;NorOeste;Nor Noroeste;Norte Separar variable %vientos Separador ; Establecer variable %direccion A: %vientos(%direccion) (En %direccion te quedará entonces el valor correspondiente del array %vientos) En una sola acción JavaScriplet: var vientos ="Norte;Nor Noreste;NorEste;Este Noreste;Este;Este SurEste;Sur Este;Sur SurEste;Sur;Sur SurOeste;SurOeste;Oeste SurOeste;Oeste;Oeste NorOeste;NorOeste;Nor Noroeste;Norte"; direccion = Math.round(direccion/22.5); vientos = (vientos.split(";")); direccion = vientos[direccion];
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 28/02/17 a las 13:36:45. |
#92
|
||||
|
||||
Eso no soluciona el problema que te comentaba al principio.
![]() Los 22.5º están centrados en cada dirección, es decir 11.25º a cada lado. Según eso la dirección "este", por poner un ejemplo, debería ser asignada a cualquier valor de grados entre 78.75 y 101.25 ... vemos que pasa con ese algoritmo que propones. para 80º ... round(80/22.5)+1=4 ... este noreste ... error para 90º ... round(90/22.5)+1=5 ... este ... correcto para 101º ... round(100/22.5)+1=5 ... este ... correcto para 102º ... round(100/22.5)+1=5 ... este ... error Ya te lo había dicho. Ese sistema tiene un "pequeño" defecto. ![]() Lo he escrito un poco rápido, pero creo que esta propuesta en JavaScript funciona correctamente en todos los casos... Código:
dirs='nornordeste,nordeste,estenordeste,este,estesudeste,sudeste,sudsudeste,sur,sudsudoeste,sudoeste,oesudoeste,oeste,oesnoroeste,noroeste,nornoroeste,norte'.split(','); dir=wind_deg-11.25;if(dir<0){dir=360+dir}; dir=Math.round(dir/22.5); var wind_dir=dirs[dir];
__________________
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 28/02/17 a las 14:40:27. |
#93
|
||||
|
||||
@WillyWeb, has probado la acción JS que he puesto?
He estado probándola con los ángulos que pones y me da la solución correcta. Ya he borrado la que tenía en Tasker puro… En cuanto a la nomenclatura, quizás no sea la ortodoxa, pero en una acción Decir se entiende más clara y, en lectura se ve mejor… 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 28/02/17 a las 14:38:33. |
#94
|
||||
|
||||
@WillyWeb, has probado la acción JS que he puesto?
![]() para 77º ... round(77/22.5)=3 ... Este Noreste ... bien para 80º ... round(80/22.5)=3 ... Este Noreste ... mal (debería ser Este) *Recuerda que los índices de un array en Tasker comienzan en 1 y en JS en 0.
__________________
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) |
#95
|
||||
|
||||
![]() Acabo de mirar tu comentario y 80/22.5 = 3.555... por tanto "round" (redondeo al entero más próximio) da 4, no 3! Esto és, el 4º valor de la lista = Este Por supuesto que los arrays empiezan en [0], por esto no pongo el +1 como ponia en Tasker...
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 28/02/17 a las 15:29:57. |
#96
|
||||
|
||||
Ya he visto dónde me estaba equivocando
![]() He estado haciendo las cuentas a mano y en vez de redondear al entero más próximo he truncado la parte decimal. Efectivamente, tu algoritmo JS funciona correctamente con ese pequeño truco de hacer el array "circular" añadiendo al final el mismo valor del principio. En mi planteamiento me limitaba a los 16 valores posibles (de 0 a 15) y está claro que no hacía falta. ![]()
__________________
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) |
Gracias de parte de: | ||
#97
|
||||
|
||||
Una pequeña crítica: en mi opinión, si el objetivo era aprender deberías haber practicado primero con JS, convirtiendo tareas ya hechas cuyo funcionamiento comprendas perfectamente. En lugar de meterte de golpe con localización, json, api, httpget, JS, etc...
|
Gracias de parte de: | ||
#98
|
||||
|
||||
Danko, toda la razón.
Mitrhandir como un elefante en una cacharrería. Típico de mí. ![]()
__________________
Si la educación te parece cara, prueba con la ignorancia.
|
#99
|
||||
|
||||
Hombre, si quieres hacer una tarea que te proporcione la predicción del tiempo en tu ubicación ya me dirás cómo haces para no usar HTTPGet y ubicaciones. Puesto que no queda otra que usar datos de la red, mejor con el API de un sitio especializado que tirando del HTML de una web y luego "trocearlo" con 20 o 30 acciones para sacar los cuatro datos que necesitas... ¿no te parece?
![]() Y procesar el JSON que devuelve el API con JavaScript ha sido cosa mía, pero también puede ser "entretenido" sacar los datos usando sólo acciones de Tasker ... ¿voluntarios? ![]()
__________________
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) |
|
#100
|
||||
|
||||
Hombre, si quieres hacer una tarea que te proporcione la predicción del tiempo en tu ubicación ya me dirás cómo haces para no usar HTTPGet y ubicaciones. Puesto que no queda otra que usar datos de la red, mejor con el API de un sitio especializado que tirando del HTML de una web y luego "trocearlo" con 20 o 30 acciones para sacar los cuatro datos que necesitas... ¿no te parece?
![]() Y procesar el JSON que devuelve el API con JavaScript ha sido cosa mía, pero también puede ser "entretenido" sacar los datos usando sólo acciones de Tasker ... ¿voluntarios? ![]() ![]() |
![]() |
![]() |
||||||
|