Home Menu

Menu



Tasker Para hablar de todo lo relacionado con la aplicación tasker


 
Herramientas
  #1  
Viejo 05/07/13, 02:17:45
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Saber si otro aparato está conectado a mi tethering

En el apartado de Red, Tasker tiene una acción llamada Enlace-WiFi-(Tether), que nos permite activar o desactivar la función tethering (anclaje a red), convirtiendo el smartphone en un hotspot Wifi. Lo uso con cierta frecuencia y ahora estoy pensando en automatizarlo. Lo que me gustaría es que Tasker pudiera detectar si hay otro aparato conectado a este tethering de mi smartphone.

La idea de fondo es la siguiente: cuando no estoy conectado a ninguna red Wifi (no estoy ni en casa ni en el trabajo), cada 60 minutos pondría en marcha una tarea con el siguiente boceto:
1 Enlace-WiFi-(Tether), encender.
2 Esperar unos 30 segundos para dar tiempo a que otros aparatos se conecten.
3 Enlace-WiFi-(Tether), apagar... si no se ha conectado ningún aparato.

De esta forma mantengo el tethering activo si hay otro aparato usando ese enlace, o apago el tethering para ahorrar batería si no hay ningún aparato usando ese enlace.

Quizá en Linux/Android haya algún comando de consola que emita un listado con las direcciones MAC de los aparatos conectados. Supongo que con algo así, la tarea podría saber si hay algún aparato conectado al tethering de mi smartphone. He tratado de buscar por Google con estas ideas, pero no saco nada en claro.

Última edición por Caravantes Día 14/07/13 a las 01:46:25
Responder Con Cita


  #2  
Viejo 05/07/13, 11:31:56
Avatar de maid450
maid450 maid450 no está en línea
Miembro del foro
Mensajes: 450
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Versión de Radio: Cualquiera que ponga buen Rock
Tu operador: Yoigo
Mencionado: 15 comentarios
Tagged: 0 hilos
Pues no estoy en casa para probarlo bien, pero mira a ver si este comando devuelve lo que quieres (no debería hacer falta root):

Código:
cat /proc/net/arp | tail +2 | awk '{ print $4 }'
Parece un poco marciano, pero si te funciona y hay alguien interesado explicaré que hace y como funciona (no es tan complicado en el fondo)
Responder Con Cita
  #3  
Viejo 06/07/13, 03:35:42
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Cita:
Originalmente Escrito por maid450 Ver Mensaje
cat /proc/net/arp | tail +2 | awk '{ print $4 }'
Excelente. Lo he probado en el Terminal y parece que funciona bastante bien. Si tengo otro aparato conectado a mi tethering me devuelve la dirección MAC de ese aparato. Si no tengo ningún aparato contectado no devuelve nada. O sea que cumple perfectamente mis necesidades y expectativas. Además, de regalo... Si estoy en situación de Wifi-normal conectado al router de casa, creo que devuelve la MAC del router.

Con ese comando y la ayuda de Google, he investigado un poco, y tras ello interpreto las siguientes explicaciones, que para mí son suficientes. Corrígeme si estoy muy despistado.

- CAT concatena e imprime (en pantalla) el contenido de un fichero o la salida de un proceso; supongo que aquí lo que hace es mostrar el resultado de...
- ARP son las siglas en inglés de Address Resolution Protocol (Protocolo de resolución de direcciones). Es un protocolo de nivel de red responsable de encontrar la dirección hardware (Ethernet MAC). Este comando hace la parte principal, buscar la información de los equipos conectados, el resultado es porcesado por CAT y luego reenviado a los siguientes elementos...
- TAIL muestra las últimas líneas de un archivo (o de un proceso); supongo que el +2 es para que solo muestre dos líneas, que para mí caso son suficientes. El resultado es redirigido a...
- AWK sirve para manipular texto de una forma selectiva. Con el parámetro '{ print $4 }' sirve para imprimir (por pantalla) la cuarta columna del texto que recibe, omitiendo la información de las otras columnas (direcciones IP y otros datos irrelevantes para el caso).

Todo lo cual parece más complicado que aprender a escribir en chino. No sé cuanto cobra un informático pero creo que les pagan poco, menos que a un ministro, lo cual es muy injusto.

Muchas gracias Maid
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 06/07/13, 10:44:23
Avatar de maid450
maid450 maid450 no está en línea
Miembro del foro
Mensajes: 450
 
Fecha de registro: sep 2009
Localización: Valencia
Mensajes: 450
Modelo de smartphone: Nexus 5 / Nexus 7
Versión de Radio: Cualquiera que ponga buen Rock
Tu operador: Yoigo
Mencionado: 15 comentarios
Tagged: 0 hilos
Excelente análisis, eso es justo lo que va haciendo el comando.

Sólo 2 apuntes, en realidad no se usa el comando "arp", existe en Linux, pero he leído que no en todos los Android. En su lugar se lee ("cat" sirve para leer un fichero) el fichero /proc/net/arp, que es un fichero de texto donde se registran los dispositivos conectados (evidentemente tiene que ver con el protocolo ARP que has descrito).
Aparte, el "tail +2" lo que hace es saltarse la primera línea y empezar en la segunda, y esto es porque la primera línea contiene los encabezamientos, los nombres de las distintas columnas, y en la segunda empiezan los resultados.
Si conectaras varios dispositivos te devolvería todas sus MACs.

Cita:
Originalmente Escrito por Caravantes Ver Mensaje
Todo lo cual parece más complicado que aprender a escribir en chino. No sé cuanto cobra un informático pero creo que les pagan poco, menos que a un ministro, lo cual es muy injusto.
¡Jajaja! Ya te digo

Última edición por maid450 Día 06/07/13 a las 11:25:04
Responder Con Cita
  #5  
Viejo 13/07/13, 06:25:27
Avatar de Caravantes
Caravantes Caravantes no está en línea
Usuario muy activo
Mensajes: 2,200
Compra y venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Versión de ROM: Android 8
Tu operador: Lowi
Mencionado: 59 comentarios
Tagged: 4 hilos
Cita:
Originalmente Escrito por maid450 Ver Mensaje
cat /proc/net/arp | tail +2 | awk '{ print $4 }'
Hoy lo he implementado en Tasker, y funciona perfectamente.
He hecho una tarea sencilla que acaba estableciendo una variable %Enlazado a 1 o 0 (uno o cero) dependiendo de que haya otros equipos enlazados o no.

1 Establecer variable %Enlazado a 0
2 Ejecutar consola, cat /proc/net/arp | tail +2 | awk '{ print $4 }' , Root:Encendido, Almacenar Salida En %salida
3 Establecer variable %Enlazado a 1 Si (if) %salida ~ *:*

Luego, en otra tarea, combino esa variable %Enlazado con la variable %WIFI (on/off) para saber la situación exacta porque la variable %Enlazado se pone a 1 tanto si estoy conectado a un router como si estoy en tethering con otro aparato conectado a mi smartphone. Dependiendo de lo que contengan esas dos variables salen cuatro posibilidades para tomar decisiones según corresponda.

Gracias nuevamente, estoy feliz como una lombriz.

Añado la tarea exportada con los detalles:
Código:
A1: Establecer variable [ Nombre:%Enlazado A:0 Calcular:Apagado Añadir:Apagado ] 
    A2: Ejecutar consola [ Comando:cat /proc/net/arp | tail +2 | awk '{   print $4 }' Cuenta atrás (segundos):0 Usar Root:Encendido Almacenar   Salida En:%salida Almacenar Errores En: Almacenar Resultado en: ] 
    A3: Establecer variable [ Nombre:%Enlazado A:1 Calcular:Apagado Añadir:Apagado ] Si (if) [ %salida ~ *:* ]
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 18/07/13, 01:49:58
Avatar de ATaskREADOS
ATaskREADOS ATaskREADOS no está en línea
Miembro del foro
Mensajes: 180
 
Fecha de registro: ene 2013
Mensajes: 180
Tu operador: Otra
Mencionado: 0 comentarios
Tagged: 1 hilos
Subido al recopilatorio.
Maid y Caravantes muchas gracias y enhorabuena, habeis sido recompensados con el máximo galardón de este subforo: la copa virtual

Fdo: Mlesir
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Otro software para Android > Tasker

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 02:41:17 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007