4 votos

Cómo decirle a los Mensajes "yo no estoy en casa"?

Dejo mi Mac funcionando 24/7, pero no siempre estoy sentado en ella.

¿Hay alguna forma de saber la Mac, o Mensajes específicamente, si mi teléfono no está en la wifi local de subred, no tomar mensajes, les dejo por mi iPhone para recoger.

En la actualidad, si por alguna razón, estoy de iMessage, pero capaz de recibir SMS, mensajes nunca llegan a mi teléfono y no se re-transmitida después de fracasar por el remitente, debido a que el sistema considera que la entrega de ellos a mi Mac es prueba suficiente de que los vi.

Trabajos que falta me ofrecieron 6 horas, sólo porque yo estaba afk, no es un feliz vista para volver a casa.

Una opción: registro de Mensajes en la Mac cada vez que salgo de la casa...
...Nunca me voy a recordar.
Edit: el Registro de iMessage en el Mac es considerablemente más problemas de lo que vale. Se genera la mitad de una docena de mensajes y correos electrónicos a todos los dispositivos y cuenta...

6voto

jherran Puntos 6511

Primero de todos, usted necesita homebrew instalado en su sistema. Si no lo has hecho, visita http://brew.sh para obtener instrucciones, o hágamelo saber y voy a tratar de guiarlo.

Entonces usted necesita para instalar arp-scan. Para hacerlo, abra una Terminal y escriba brew install arp-scan.

El próximo paso. Guardar la secuencia de comandos siguiente, llamé check-iphone-available.scpt, pero puede cambiar el nombre si lo desea.

set IPHONE to do shell script "if /usr/local/bin/arp-scan -l | grep your-iphone-mac; then echo 1; else echo 0; fi" user name "your-username" password "your-password" with administrator privileges
tell application "System Events"
    tell process "Messages"
        tell menu bar 1
            tell menu bar item "Messages"
                tell menu "Messages"
                    tell menu item "My Status"
                        tell menu "My Status"
                            if IPHONE is not equal to "0" then
                                click menu item "Available"
                            else
                                click menu item "Away"
                            end if
                        end tell
                    end tell
                end tell
             end tell
        end tell
    end tell
end tell

Reemplace your-username, your-password y your-iphone-mac.

  • your-username debe ser un usuario administrador, que puede sudo en su ordenador.
  • your-password contraseña para ese usuario.
  • your-iphone-mac se pueden obtener en su iphone, vaya a Settings -> General -> About y copia Wi-Fi Address.

Dar permisos: chmod 775 check-iphone-available.scpt.

La secuencia de comandos ejecutar como administrador el comando arp-scan. Este comando envía paquetes ARP para hosts en la red local y muestra las respuestas que se reciban. El grep comando buscar su iphone en la respuesta que reciben por arp-scan. Si el iphone se encuentra, entonces devolver 1, de lo contrario, devuelve 0. En la 1, la secuencia de comandos de hacer clic en el elemento de menú Disponibles en los Mensajes, en 0, la misma en la Distancia (puede ser cambiado por Offline, On the phone, etc).

Así que, vamos a hacerlo de forma automática.

Ir a la carpeta /Users/your-username/Library/LaunchAgents y guardar allí el siguiente archivo plist. La llamé com.username.checkiphone.plist, pero de nuevo, siéntase libre de cambiar.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.your-username.checkiphone</string>

  <key>ProgramArguments</key>
  <array>
    <string>/usr/bin/osascript</string>
    <string>/Users/your-username/bin/check-iphone-available.scpt</string>
  </array>

  <key>Nice</key>
  <integer>1</integer>

  <key>StartInterval</key>
  <integer>60</integer>

  <key>RunAtLoad</key>
  <true/>

  <key>StandardErrorPath</key>
  <string>/tmp/com.your-username.checkiphone-available.err</string>

  <key>StandardOutPath</key>
  <string>/tmp/com.your-username.checkiphone-available.out</string>
</dict>
</plist>

El archivo es bastante auto-explicativo. Vamos a lanzar el comando /usr/bin/osascript /Users/your-username/bin/check-iphone-available.scpt cada 60 segundos, se lanzó a la carga, evitará errores en /tmp/com.username.checkiphone-available.err y los registros en /tmp/com.username.checkiphone-available.out.

De nuevo, sustituya your-username de forma adecuada.

Último paso, decirle a la Mac launchd demonio de carga.

launchctl load com.your-username.checkiphone.plist

Para detener la secuencia de comandos, basta con sustituir la palabra load con unload en la oración anterior. Al reiniciar el equipo el script se carga de nuevo. Para evitarlo, moverlo a otra carpeta.

3voto

jherran Puntos 6511

La segunda solución. Esta vez se basa en bluetooth.

Descargar Bluetooth Proximidad De Tasker. Lo siento compañero, pero es de $2.99.

Ejecutar cualquier AppleScript cuando un dispositivo bluetooth emparejado entra y sale de rango. Ajustar el rango de uso de la fuerza de la señal.

Seleccione su dispositivo BT y pegar este script en In Range Applescript:

tell application "System Events"
    tell process "Messages"
        tell menu bar 1
            tell menu bar item "Messages"
                tell menu "Messages"
                    tell menu item "My Status"
                        tell menu "My Status"
                                click menu item "Available"
                        end tell
                    end tell
                end tell
             end tell
        end tell
    end tell
end tell

Reemplace Available con Away en la secuencia de comandos y pegar en Out Of Range Applescript.

2voto

jherran Puntos 6511

Tercera solución. Para este trabajo, el debe tener una cuenta en ifttt.com (y ifttt app para iPhone) y también un Dropbox cuenta.

Puedo crear un par de recetas en ifttt, Si estoy en casa crear un archivo en Dropbox y Si puedo salir de casa crear un archivo en Dropbox. Usted tendrá que modificar con su dirección.

  • El primero crear un archivo llamado AtHome en el directorio IFTTT/iOS en su carpeta de Dropbox.
  • Segundo, crear un archivo llamado Out en el directorio IFTTT/iOS en su carpeta de Dropbox.

En ambas recetas cuando tu iphone entra o sale y área definida (su casa), crear uno o de otro archivo en tu cuenta de Dropbox.

Entonces esto es más fácil agarre para ambos archivos con este applescritp. El guión está buscando para los archivos creados y si existe, el cambio de mensajes de imessage en consecuencia y, a continuación, elimine el archivo. Si ninguno de los archivos que existe es no hacer nada, así que, iMessages se mantenga el estado hasta el siguiente archivo es creado.

on FileExists(theFile) -- (String) as Boolean
    tell application "System Events"
        if exists file theFile then
            return true
        else
            return false
        end if
    end tell
end FileExists

set IPHONE to FileExists("/Users/username/Dropbox/IFTTT/iOS/AtHome")
if IPHONE then
    set CHANGESTATUS to true
    do shell script "rm -rf /Users/username/Dropbox/IFTTT/iOS/AtHome"
else
    set CHANGESTATUS to false
end if

if CHANGESTATUS is not equal to true then
    set IPHONE to FileExists("/Users/username/Dropbox/IFTTT/iOS/Out")
    if IPHONE then
        set CHANGESTATUS to true
        set IPHONE to false
        do shell script "rm -rf /Users/username/Dropbox/IFTTT/iOS/Out"
    end if
end if

if CHANGESTATUS then
    tell application "System Events"
        tell process "Messages"
            tell menu bar 1
                tell menu bar item "Messages"
                    tell menu "Messages"
                        tell menu item "My Status"
                            tell menu "My Status"
                                if IPHONE then
                                    click menu item "Available"
                                else
                                    click menu item "Offline"
                                end if
                            end tell
                        end tell
                    end tell
                end tell
            end tell
        end tell
    end tell
end if

Debe cambiar /Users/username/Dropbox/IFTTT/iOS/ a punto de tu ruta real.

Después de esto, cambie el guión de mi primera respuesta con esto, y debería funcionar!

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