PDA

Ver la Versión Completa : Wake On Lan (WOL) desde Tasker


malkair
30/09/13, 13:38:29
Buenas. Por asi a alguien le interesara, estoy preparando un tareílla para 1) comprobar si un PC dentro de mi red está o no encendido y 2) Encenderlo si no lo está. Naturalmente, esto solo funcionará si nuestro PC está suspendido, no apagado totalmente. Hay que configurar la tarjeta de red para permitirle despertar al equipo y que solo lo haga con un "Magic Packet" (esto está en las propiedades de vuestro adaptador de red).

Primero, la tarea para comprobar si el PC está encendido o no:

Ejecutar consola: ping -c 3 192.168.1.2 - Guardar salida en: %pingresult - Continuar tras error: activada
If %pingresult ~ *100% packet loss*
Flash: Está apagado
Else
Flash: Está encendido
End If

Como vemos, lanza 3 pings a la IP 192.168.1.2 (es la IP del PC que queremos comprobar), y si está apagado (devuelve un mensaje que contiene la expresión "100% packet loss"), lo indica; en otro caso, nos indica que está encendido.

Ahora, vamos a "despertarlo". Necesitamos la app Wol Wake on Lan Wan (https://play.google.com/store/apps/details?id=com.benfinnigan.wol&hl=es), gratuita en Play Store y con soporte para Tasker. La configuramos así:

Añadimos servidor nuevo, le damos el nombre que queramos, ponemos su MAC (la podemos obtener ejecutando ipconfig /all en el PC), ponemos su IP, dejamos puerto 9 y todo lo demás como está. Si alguien necesita más información de cómo obtener la MAC, que me lo diga.

Y creamos una sencillísima tarea en Tasker:

Plugins - Opciones de WoL Wake on Lan Wan - Configurar - (nuestro PC)

Esta tarea al ser lanzada despertará de inmediato nuestro PC si todo está bien configurado.

Ya está. Ahora podemos combinar la tarea de PING con la de WOL, de forma que si el PC no está encendido, se ejecute la tarea para despertarlo.

Las aplicaciones son múltiples y sería muy sencillo preparar un perfil que despertara al PC cuando estamos llegando a casa o a cierta hora del día, por poner unos simples ejemplos (este prefil/tarea es solo para red local, pero se puede hacer desde fuera de la wifi; para ello necesitaríamos crear una cuenta en un servicio de ip fija como no-ip.com y hacer el WOL a la dirección proporcionada por el servicio, del tipo miordenador.no-ip.biz).

No es todo demasiado detallado porque ando un poco mal de tiempo. Si precisáis más información o teneís ideas que pueden funcionar con este perfil, responded y gustosamente lo iremos puliendo.

madre
01/10/13, 01:21:13
Gracias, precisamente estaba haciendo esa tarea desde hace unos días y me has aclarado algunas dudas que tenía. :ok:

stripper2001
01/10/13, 20:07:26
Hola Malkair.

Ya te funciona???

No veo claro que puedas pasar un paquete WOL entra diferentes redes, me explico:
Entiendo que el Android lo tienes conectado con Wifi i los PCs están en un switch, y por tanto, en Ethernet.

No entiendo cómo puede pasar un broadcast entre diferentes redes, es decir que el broadcast será visto por todos los elementos Wifi pero no por los ethernet.

En todo caso el problema no es de tasker pero corrígeme si me equivoco.

En el curro tengo diversas subredes y precisamente me interesaba poder arrancar máquinas entre diferentes redes i el paquete WOL no pasa.

Otra pequeña aclaración: el PC puede estar apagado del todo, que si la NIC está configurada para WOL (BIOS), se arranca perfectamente.

Me encantaría esa herramienta para el curro.

Ya me dirás

Saludos

malkair
02/10/13, 10:09:28
Hola, stripper2001.

En mi caso, tengo varios PCs y dispositivos en mi LAN, todos ellos conectados por cable Ethernet, algunos directamente al router y otros tras un switch, todos ellos tienen IPs fijas locales 192.168.1.x. Lógicamente, el teléfono está en wifi y conecta por DHCP. A mí me funciona perfectamente el WOL tal y como lo he preparado, que es como indico en el post inicial:

Desde la wifi propia (LAN) no hay el más mínimo problema: Poniendo la IP local del PC que quiero despertar (ej.: 192.168.1.2), ejecuto la tarea (o la lanzo desde un perfil) y automáticamente el PC despierta (no he probado a encenderlo desde "apagado" (S5), lo probaré).

Desde fuera de la wifi (WAN) es cuando hay que hacer más cosas. Básicamente lo que yo hice fue:

- Abrir en el router el puerto 9 para la IP del PC que quiero despertar. Si no lo haces, el WOL llega al router pero no lo distribuye, ni siquiera con el Broadcast activado (al menos eso me ocurría).
- En caso de tener IP dinámica, hay que tener una cuenta no-ip en cualquier servicio. Antes todos usábamos DynDNS, pero ahora es de pago, así que se puede crear con no-ip.com gratuitamente.
- En la app WOL ponemos como IP la fija, ejemplo: miordenador.no-ip.biz, puerto 9 y Broadcast desmarcado.

De esta forma, al hacer el WOL a la IP fija (miordenador.no-ip.biz por ejemplo), el router la recibe en el puerto 9 y la manda a la IP local del PC que quieres despertar. Y el PC despierta: Probado desde la propia wifi, desde 3G y desde otra wifi y FUNCIONA perfectamente en todos los casos.

Lo que no sé es cómo despertar varios PCs con un solo WOL. En la configuración de la app WOL hay opción para crear grupos y seguramente haya alguna opción adicional, o quizá haya que abrir un rango de puertos o un puerto diferente para cada PC. O quizá en tus redes hay algún cortafuegos, no soy ni muchísimo menos un experto pero creo que en las empresas suele haber filtros de ese tipo. Comprueba, aunque supongo que ya lo has hecho, que los PCs tienen IP local fija (si están en DHCP igual no reciben el paquete).

Espero que te sirva. Un saludo.

mlesir
02/10/13, 15:53:41
Ante todo enhorabuena Malkair, gran aporte.
Yo también había leído que incluso si el PC esta totalmente apagado se puede encender siempre que esté configurado para ello. Pues ya que estáis os pediría a los dos, a stripper y a ti, que si conocéis algún enlace a un tutorial que diga como hacerlo lo pongáis. Y ya para no acabar de pedir, si lo encontráis a ver si puede ser uno para dummies.. Jeje. Gracias.

rabeliyo
08/12/13, 11:45:54
Muy buenas, pues todo perfecto, a mi me lo enciende sin problemas desde casa y desde la calle.

La cosa es que la app no tiene forma de apagar el pc,que me resulta igual de util que encenderlo y queria preguntaros si sabeis alguna forma o programa compatible con tasker porque no he encontrado ninguno.

Me da que voy a tener que hacer un script y ya no me acuerdo de los comandos jajajaja todo sera investigar.

Un saludo a todos.

EDITO: Tengo en mente usar el eventghost junto con autoremote ya que he encontrado que dispone de todas las opciones del menu de apagado :ok: a ver que tal va