z3us
13/08/13, 09:45:10
Bueno, voy a compartir con vosotros mi última creación. Creo que el código me ha quedado algo lioso y seguro que me podéis ayudar a mejorarlo. Yo lo uso sobre todo para mis salidas a hacer senderismo o montar en bici, para que me avise de cuándo se pone el sol y que no me pille la noche.
- Primer perfil: Este perfil se activa todos los días a las 00:30, y lo que hace es sacar de la web www.wunderground las horas en que va a salir y ponerse el sol en el día que acaba de comenzar en el sitio en el que estoy:
Calcular Salida Y Puesta Del Sol (34)
A1: HTTP Get [ Servidor:Puerto:http://api.wunderground.com Ruta:api/7669ca23184907a1/forecast/conditions/astronomy/q/%LOCN.xml Atributos: Cookies: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida:amanecer.txt ]
A2: Establecer variable [ Nombre:%sol A:%HTTPD Calcular:Apagado Añadir:Apagado ]
Guardo el código html de la página en la variable sol
A3: Separar variable [ Nombre:%sol Separador:<sunset Eliminar base:Apagado ]
A4: Separar variable [ Nombre:%sol2 Separador:<hour> Eliminar base:Apagado ]
A5: Separar variable [ Nombre:%sol22 Separador:</hou Eliminar base:Apagado ]
A6: Separar variable [ Nombre:%sol23 Separador:</hou Eliminar base:Apagado ]
A7: Establecer variable [ Nombre:%hocaso A:%sol221 Calcular:Apagado Añadir:Apagado ]
A8: Establecer variable [ Nombre:%hamanecer A:%sol231 Calcular:Apagado Añadir:Apagado ]
Guardo la hora en que amanece y se pone el sol en %hocaso y %hamanecer, ambas en formato 24h
A9: Separar variable [ Nombre:%sol2 Separador:<minute> Eliminar base:Apagado ]
A10: Separar variable [ Nombre:%sol22 Separador:</minute Eliminar base:Apagado ]
A11: Separar variable [ Nombre:%sol23 Separador:</minut Eliminar base:Apagado ]
A12: Establecer variable [ Nombre:%mocaso A:%sol221 Calcular:Apagado Añadir:Apagado ]
A13: Establecer variable [ Nombre:%mamanecer A:%sol231 Calcular:Apagado Añadir:Apagado ]
Guardo los minutos en que amanece y se pone el sol en %mamanecer y %mocaso
<Calculamos segundos amanecer y ocaso>
A14: Establecer variable [ Nombre:%Horaamanecer A:%DATE %hamanecer.%mamanecer Calcular:Apagado Añadir:Apagado ]
A15: Convertir Variable [ Nombre:%Horaamanecer Función:Fecha Hora a Segundos Almacenar Resultado en:%Amanecer ]
A16: Establecer variable [ Nombre:%Horaocaso A:%DATE %hocaso.%mocaso Calcular:Apagado Añadir:Apagado ]
A17: Convertir Variable [ Nombre:%Horaocaso Función:Fecha Hora a Segundos Almacenar Resultado en:%Ocaso ]
Aquí he juntado fecha, hora y minutos, para poder convertirlo en segundos y guardarlo en %Amanecer y %Ocaso
A18: Realizar tarea [ Nombre:Salida Y Puesta Del Sol Parar:Apagado Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ]
Ejecuto otra tarea, en la que proceso la información obtenida, y está incluida en el segundo perfil...
Segundo perfil: Se ejecuta cada vez que reinicio el móvil, y así salvo los wait. La tarea que contiene este perfil también se ejecuta todos los días después del primer perfil, a las 00:30
Salida Y Puesta Del Sol (39)
A1: Establecer variable [ Nombre:%Segundosparaamanecer A:%Amanecer Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%Segundosparaocaso A:%Ocaso Calcular:Apagado Añadir:Apagado ]
Aquí creo las variables que van a contener los segundos que quedan para amanecer u ocaso
A3: Restar de variable [ Nombre:%Segundosparaamanecer Valor:%TIMES ]
A4: Restar de variable [ Nombre:%Segundosparaocaso Valor:%TIMES ]
Aquí calculo los segundos que restan para la salida y puesta del sol de hoy
A5: Si (if) [ %Segundosparaamanecer > 0 ]
A6: Esperar [ MS:0 Segundos:%Segundosparaamanecer Minutos:0 Horas:0 Días:0 ]
A7: AutoRemote Notification [ Configuración:Recipient: Myself]
A8: Ir a acción [ Tipo:Número Acción Número:10 Etiqueta: ]
A9: Fin si (End if)
Este if actúa si hoy todavía no ha amanecido: espera los segundos que sean, me salta la notificación cuando salga el sol, y se va al paso 10 para esperar la puesta del sol.
A10: Si (if) [ %Segundosparaamanecer < 0 ]
A11: Si (if) [ %Segundosparaocaso > 0 ]
A12: Esperar [ MS:0 Segundos:%Segundosparaocaso Minutos:0 Horas:0 Días:0 ]
A13: AutoRemote Notification [ Configuración:Recipient: Myself]
Este if actúa si estamos entre el amanecer y la puesta del sol: espera los segundos hasta el ocaso, y me salta la notificación
A14: Else
A15: Detener [ Con error:Apagado Tarea: ]
Si ya se ha puesto hoy el sol, se detiene la tarea
¿qué os parece? ¿cómo puedo mejorarlo?
- Primer perfil: Este perfil se activa todos los días a las 00:30, y lo que hace es sacar de la web www.wunderground las horas en que va a salir y ponerse el sol en el día que acaba de comenzar en el sitio en el que estoy:
Calcular Salida Y Puesta Del Sol (34)
A1: HTTP Get [ Servidor:Puerto:http://api.wunderground.com Ruta:api/7669ca23184907a1/forecast/conditions/astronomy/q/%LOCN.xml Atributos: Cookies: Cuenta atrás:10 Tipo Mime:text/xml Archivo de salida:amanecer.txt ]
A2: Establecer variable [ Nombre:%sol A:%HTTPD Calcular:Apagado Añadir:Apagado ]
Guardo el código html de la página en la variable sol
A3: Separar variable [ Nombre:%sol Separador:<sunset Eliminar base:Apagado ]
A4: Separar variable [ Nombre:%sol2 Separador:<hour> Eliminar base:Apagado ]
A5: Separar variable [ Nombre:%sol22 Separador:</hou Eliminar base:Apagado ]
A6: Separar variable [ Nombre:%sol23 Separador:</hou Eliminar base:Apagado ]
A7: Establecer variable [ Nombre:%hocaso A:%sol221 Calcular:Apagado Añadir:Apagado ]
A8: Establecer variable [ Nombre:%hamanecer A:%sol231 Calcular:Apagado Añadir:Apagado ]
Guardo la hora en que amanece y se pone el sol en %hocaso y %hamanecer, ambas en formato 24h
A9: Separar variable [ Nombre:%sol2 Separador:<minute> Eliminar base:Apagado ]
A10: Separar variable [ Nombre:%sol22 Separador:</minute Eliminar base:Apagado ]
A11: Separar variable [ Nombre:%sol23 Separador:</minut Eliminar base:Apagado ]
A12: Establecer variable [ Nombre:%mocaso A:%sol221 Calcular:Apagado Añadir:Apagado ]
A13: Establecer variable [ Nombre:%mamanecer A:%sol231 Calcular:Apagado Añadir:Apagado ]
Guardo los minutos en que amanece y se pone el sol en %mamanecer y %mocaso
<Calculamos segundos amanecer y ocaso>
A14: Establecer variable [ Nombre:%Horaamanecer A:%DATE %hamanecer.%mamanecer Calcular:Apagado Añadir:Apagado ]
A15: Convertir Variable [ Nombre:%Horaamanecer Función:Fecha Hora a Segundos Almacenar Resultado en:%Amanecer ]
A16: Establecer variable [ Nombre:%Horaocaso A:%DATE %hocaso.%mocaso Calcular:Apagado Añadir:Apagado ]
A17: Convertir Variable [ Nombre:%Horaocaso Función:Fecha Hora a Segundos Almacenar Resultado en:%Ocaso ]
Aquí he juntado fecha, hora y minutos, para poder convertirlo en segundos y guardarlo en %Amanecer y %Ocaso
A18: Realizar tarea [ Nombre:Salida Y Puesta Del Sol Parar:Apagado Prioridad:5 Parámetro 1 (%par1): Parámetro 2 (%par2): Devolver Valor de Variable: ]
Ejecuto otra tarea, en la que proceso la información obtenida, y está incluida en el segundo perfil...
Segundo perfil: Se ejecuta cada vez que reinicio el móvil, y así salvo los wait. La tarea que contiene este perfil también se ejecuta todos los días después del primer perfil, a las 00:30
Salida Y Puesta Del Sol (39)
A1: Establecer variable [ Nombre:%Segundosparaamanecer A:%Amanecer Calcular:Apagado Añadir:Apagado ]
A2: Establecer variable [ Nombre:%Segundosparaocaso A:%Ocaso Calcular:Apagado Añadir:Apagado ]
Aquí creo las variables que van a contener los segundos que quedan para amanecer u ocaso
A3: Restar de variable [ Nombre:%Segundosparaamanecer Valor:%TIMES ]
A4: Restar de variable [ Nombre:%Segundosparaocaso Valor:%TIMES ]
Aquí calculo los segundos que restan para la salida y puesta del sol de hoy
A5: Si (if) [ %Segundosparaamanecer > 0 ]
A6: Esperar [ MS:0 Segundos:%Segundosparaamanecer Minutos:0 Horas:0 Días:0 ]
A7: AutoRemote Notification [ Configuración:Recipient: Myself]
A8: Ir a acción [ Tipo:Número Acción Número:10 Etiqueta: ]
A9: Fin si (End if)
Este if actúa si hoy todavía no ha amanecido: espera los segundos que sean, me salta la notificación cuando salga el sol, y se va al paso 10 para esperar la puesta del sol.
A10: Si (if) [ %Segundosparaamanecer < 0 ]
A11: Si (if) [ %Segundosparaocaso > 0 ]
A12: Esperar [ MS:0 Segundos:%Segundosparaocaso Minutos:0 Horas:0 Días:0 ]
A13: AutoRemote Notification [ Configuración:Recipient: Myself]
Este if actúa si estamos entre el amanecer y la puesta del sol: espera los segundos hasta el ocaso, y me salta la notificación
A14: Else
A15: Detener [ Con error:Apagado Tarea: ]
Si ya se ha puesto hoy el sol, se detiene la tarea
¿qué os parece? ¿cómo puedo mejorarlo?