¿Ejecutar un script basado en la información de la puesta y salida del sol?

4

¿Cuál es la mejor manera de ejecutar un Applescript cuando el estado de mi ubicación actual cambia de noche a día y de día a noche?

¡Gracias!

    
pregunta Dietrich Ayala 20.02.2017 - 14:14

2 respuestas

6

Nunca usé esto, pero parece que Power Manager debería poder hacerlo. Puedes realizar acciones basadas en el sol similares a automator.

Sin embargo, no parece que tenga una función incorporada para averiguar su ubicación automáticamente. Entonces, si eres como volar de un país a otro y quieres que se resuelva automáticamente, probablemente no puedas hacer eso.

Tienen un tutorial: How to Power En tu mac al amanecer .

    
respondido por el Joonas 20.02.2017 - 15:00
6

En primer lugar, para obtener su ubicación actual en la línea de comandos, descargue "LocateMe" desde aquí. Descomprima el archivo zip y busque el ejecutable LocateMe en el interior, al que puede mover, por ejemplo, /usr/local/bin/ para hacerlo accesible globalmente, o ponerlo en otro lugar.

Para obtener las horas locales de salida / puesta del sol, puede utilizar la API gratuita de sunrise-sunset.org/api junto con la opción de formato LocateMe -f para generar su API uri:

/path/to/LocateMe -f "http://api.sunrise-sunset.org/json?lat={LAT}&lng={LON}"

que debería devolver algo como http://api.sunrise-sunset.org/json?lat=52.068545&lng=12.126213

Como la api de sunrise-sunset devuelve datos json, puedes usar python para analizarlos. Simplemente cree dos scripts de shell pequeños con el siguiente contenido:

#!/bin/bash
curl -s $(/path/to/LocateMe -f "http://api.sunrise-sunset.org/json?lat={LAT}&lng={LON}") | python -c "import sys, json; print json.load(sys.stdin)['results']['sunrise']"

para el amanecer y

#!/bin/bash
curl -s $(/path/to/LocateMe -f "http://api.sunrise-sunset.org/json?lat={LAT}&lng={LON}") | python -c "import sys, json; print json.load(sys.stdin)['results']['sunset']"

para las horas de puesta de sol.

Ahora puede simplemente llamarlos desde AppleScript a través de:

set sunrise to do shell script "/path/to/sunrise_script.sh"
set sunset to do shell script "/path/to/sunset_script.sh"

y tiene la hora de la puesta del sol como una variable dentro de AppleScript, donde puede usarlos, por ejemplo, comparándolos con (time string of (current date)) .

    
respondido por el Asmus 20.02.2017 - 16:41

Lea otras preguntas en las etiquetas