¿Un iTunes automatizado?

Así que he querido esto durante mucho tiempo, pero no estoy 100% seguro de cómo hacerlo. Básicamente quiero poder hacer que iTunes reproduzca una estación de radio cuando llegue a casa .

Estaba pensando en poder ejecutar un script cada diez segundos más o menos para ver si mi iPhone se ha unido a mi red inalámbrica, abriendo así iTunes y reproduciendo esa estación de radio. Después de que comienza a reproducirse, impide que el script vuelva a verificarse hasta 12 horas después. (Estoy dando un ejemplo de 12 horas ya que no quiero estar en casa y de repente tener música comenzando de repente sin ningún motivo).

Entonces, ¿por dónde debo empezar? ¿Estoy empezando en el lugar correcto? ¿Hay algo mejor que esto? ¡Necesito ayuda y dirección! Siento que lo que quiero es relativamente simple... :-/

¿Puedes aclarar? ¿Estás hablando de iTunes en tu iPhone o en tu Mac? ¿Te refieres a una estación de radio basada en Internet, no a una convencional por aire?
Solo como mis dos centavos, creo que probablemente sea mejor tener el ajuste de inicio/no inicio, en lugar de simplemente deshabilitarlo durante 12 horas; eso significaría que si llega a casa a las 5 p. m., ¡comenzará a reproducirse a las 5 a. m.! Si su secuencia de comandos ejecuta la verificación y solo comienza a reproducirse si su teléfono no se encontró en la verificación anterior, eso parecería ser una mejora.

Respuestas (3)

Para empezar, puede consultar ControlPlane para activar iTunes cuando llegue a casa.

de http://www.controlplaneapp.com/about/ :

ControlPlane le permite crear perfiles de configuración, contextos en la jerga de ControlPlane, para su Mac en función de dónde se encuentre o de lo que esté haciendo. ControlPlane determina dónde se encuentra o qué está haciendo en función de una serie de fuentes de evidencia disponibles y luego reconfigura automáticamente su Mac en función de sus preferencias. Las fuentes de evidencia pueden incluir su ubicación actual, redes WiFi visibles, dispositivos USB conectados, aplicaciones en ejecución y más.

Sería útil si pudiera proporcionar un poco más de información sobre la funcionalidad esperada. Parece que tienes una Mac en tu casa, ¿permanece encendida todo el tiempo?

Se le ocurren un par de ideas, pero la forma en que las combine dependerá de lo que quiera que suceda específicamente.

Comprobación de ubicación

Si tiene su iPhone con usted y se conecta automáticamente a su Wi-Fi, esa es probablemente la mejor manera de verificar si está en casa.

Primero, tenga en cuenta la dirección MAC Wi-Fi de su iPhone, que encontrará en Configuración → General → Acerca de → Dirección Wi-Fi .

Puede usar el arp -acomando en Terminal (o un script) para imprimir la lista de direcciones conocidas de Mac en la red local, luego use greppara verificar si la dirección de su iPhone está allí:

arp -a | grep -i IPHONE_MAC_HERE

Eso imprimirá la entrada ARP si una coincide con la dirección de su iPhone, y no imprimirá nada si no la hay.

Es importante tener en cuenta que esto solo puede funcionar de manera confiable si su iPhone está configurado para sincronizarse a través de Wi-Fi con su Mac. arp -asolo enumera las direcciones con las que se ha comunicado recientemente: no sabe que su iPhone está allí a menos que hable con su Mac. Debido a que la sincronización Wi-Fi hace que el iPhone envíe un mensaje de identificación cuando se une a una red (para ver si alguna computadora con la que se sincroniza está en línea), se agregará a la tabla ARP de su Mac cuando regrese a casa, pero es posible que no si no tienes configurada la sincronización Wi-Fi.

Reproducción de secuencias de comandos de iTunes

Si no usa algo como Controlplane (mencionado en la respuesta de Kraymer ), AppleScript es la mejor manera de controlar la reproducción de iTunes.

Es bastante sencillo:

tell application "iTunes"
    play playlist "Music"
end tell

Comenzará a reproducir su biblioteca principal. Cambie "Música" a cualquiera de los nombres de su lista de reproducción si tiene uno específico que desea reproducir. También puede agregar set shuffle of playlist "Music" to yesen la línea antes de la playlínea si desea mezclar.

También puede iniciar la reproducción dentro de un script de shell:

osascript -e 'tell application "iTunes" to play playlist "Music"'

Guión de ejemplo

#!/bin/bash

iPhoneMAC='78:a3:e4:4C:8f:a9' # From Settings > General > About > Wi-Fi Address

# Check if the iPhone is in the ARP table
arp -a | grep -i $iPhoneMAC > /dev/null # Silence output

# Repeat check every 30 seconds, if the iPhone address isn't detected
while [[ $? == 1 ]]; do 
    sleep 30
    arp -a | grep -i $iPhoneMAC > /dev/null
done

# Once the iPhone is detected, play music
osascript -e 'tell application "iTunes" to play playlist "Music"'

Esta es una versión bastante simplista, pero debería ser un buen punto de partida para hacer algo más cercano a lo que quieres. Cuando ejecute el script, comprobará la dirección del iPhone (asegúrese de poner la correcta en el script) cada treinta segundos hasta que lo detecte, luego reproducirá iTunes.

Mejoras sugeridas

  • Es un trato único, una vez que detecta el iPhone, reproduce la música y deja de verificar. Querrá averiguar qué lógica quiere detrás de él (es decir, si se inicia una vez por día de la semana, para que se reproduzca cuando llegue a casa del trabajo, o si desea que se reproduzca cada vez que ingrese a la casa).
  • Ejecutarlo a través de launchdla funcionalidad de OS X (que permite varias programaciones y repeticiones de secuencias de comandos) puede ser una buena idea. Hay muchos recursos sobre esto, tanto en Ask Different como en otros lugares.
    • Si lo hace de esta manera, es posible que no necesite la funcionalidad de bucle, launchdpodría ser responsable de ejecutarlo en un intervalo para verificar.
  • Algún tipo de mecanismo para evitar comprobaciones innecesarias una vez que llegas a casa y suena la música. Podría ser simplemente un sueño prolongado una vez que reproduzca la música, o algo un poco más inteligente, según cuándo desee que lo verifique.

Agregando a lo que todos los demás dicen, hay otra opción que puede considerar si no le importa dejar Bluetooth habilitado en su teléfono (y dado que los iPhones más nuevos usan Bluetooth 4.0, no será tan malo agotar su batería como encarnaciones anteriores). Este sitio web detalla una aplicación llamada Bluetooth Proximity Tasker, que le permite programar varias acciones cuando su sistema detecta su iPhone (u otro dispositivo habilitado para Bluetooth) con una cierta intensidad de señal.

No probé personalmente esta aplicación, pero probé otra que encontré hace uno o dos meses que pudo detectar mi iPhone y deshabilitar la protección con contraseña en mi iMac (aunque esa aplicación era gratuita y carecía de la opción de selección de fuerza personalizada).