Python MiIO: Control de Dispositivos Xiaomi con Python MiIO

Python MiIO: Control de Dispositivos Xiaomi con Python MiIO

Xiaomi es una empresa china que fabrica una amplia gama de dispositivos inteligentes, como aspiradoras, purificadores de aire, bombillas, cámaras, etc. Estos dispositivos pueden controlarse de forma remota a través de la aplicación Mi Home, pero también es posible controlarlos con Python.

La biblioteca Python MiIO permite controlar dispositivos Xiaomi utilizando el protocolo miIO. Esta biblioteca es de código abierto y está disponible en el repositorio de GitHub de rytilahti: https://github.com/rytilahti/python-miio.

Instalación

Para instalar la biblioteca Python MiIO, abre una terminal y ejecuta el siguiente comando:

pip install python-miio

Obtención del token de dispositivo

Antes de poder controlar un dispositivo Xiaomi con Python MiIO, debes obtener el token de dispositivo. El token de dispositivo es una cadena de caracteres que identifica el dispositivo de forma única.

Para obtener el token de dispositivo, conecta el dispositivo a la red Wi-Fi y abre la aplicación Mi Home. Abre la configuración del dispositivo y toca la opción «Más». En la parte inferior de la pantalla, verás un botón para generar el token de dispositivo.

Ejemplos

Una vez que tengas el token de dispositivo, puedes empezar a controlar el dispositivo con Python. A continuación, se muestran algunos ejemplos:

Encendido y apagado de un dispositivo

Para encender un dispositivo, utiliza el método on(). Para apagar un dispositivo, utiliza el método off().

Python
import miio

# Crea una instancia de la clase del dispositivo
device = miio.Device("192.168.1.100", "token")

# Enciende el dispositivo
device.on()

# Apaga el dispositivo
device.off()

Obtención de la información del dispositivo

Para obtener la información del dispositivo, utiliza el método info(). Este método devuelve un diccionario con información sobre el dispositivo, como su nombre, tipo, estado, etc.

Python
import miio

# Crea una instancia de la clase del dispositivo
device = miio.Device("192.168.1.100", "token")

# Obtiene la información del dispositivo
info = device.info()

# Imprime la información del dispositivo
print(info)

Control de un dispositivo con múltiples estados

Algunos dispositivos Xiaomi tienen múltiples estados, como los ventiladores, que pueden estar encendidos, apagados, en modo de velocidad 1, en modo de velocidad 2, etc. Para controlar un dispositivo con múltiples estados, utiliza el método set_state(). Este método devuelve el estado actual del dispositivo.

Python
import miio

# Crea una instancia de la clase del dispositivo
device = miio.Device("192.168.1.100", "token")

# Obtiene el estado actual del dispositivo
state = device.set_state("on")

# Imprime el estado actual del dispositivo
print(state)

Más información

Para obtener más información sobre la biblioteca Python MiIO, consulta la documentación oficial: https://python-miio.readthedocs.io/en/latest/.

Ejercicios

  • Escribe un script que encienda un dispositivo Xiaomi cuando llegues a casa.
  • Escribe un script que apague un dispositivo Xiaomi cuando te vayas de casa.
  • Escribe un script que controle un ventilador Xiaomi con múltiples estados.

Conclusión

La biblioteca Python MiIO es una herramienta muy útil para controlar dispositivos Xiaomi con Python. Con esta biblioteca, puedes crear scripts para controlar tus dispositivos de forma remota o automatizar tareas.