3 votos

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

¿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.

6voto

Joonas Puntos 216

Nunca he usado esto, pero parece Gestor de energía debería poder hacerlo. Usted puede hacer sol basado en acciones similares a automator.

Sin embargo, no parece que tenga una función integrada para averiguar tu ubicación automáticamente. Así que si estás volando de un país a otro y quieres que lo averigüe automáticamente, probablemente no puedas hacerlo.

Tienen un tutorial: Cómo encender el Mac al amanecer .

enter image description here

6voto

James Socol Puntos 146

En primer lugar, para obtener tu ubicación actual en la línea de comandos, descarga "LocateMe" de aquí. Descomprima el archivo zip y busque el ejecutable LocateMe en el interior, que puede mover a, por ejemplo /usr/local/bin/ para hacerla accesible globalmente, o ponerla en cualquier otro lugar.

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

/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 sunrise-sunset devuelve datos json, puede utilizar python para analizarlo. Basta con crear dos pequeños shell scripts 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 llamarlos simplemente 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 tienes la hora de la puesta de sol como variable dentro de AppleScript, donde puedes usarlas, por ejemplo, comparándolas con (time string of (current date)) .

2 votos

Si ya lo tiene, o si no le importa instalar otra herramienta cmdline, puede utilizar jq en lugar de Python: ... | jq .results.sunrise .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X