Saltar al contenido principal

Integración domótica Miele, gratuita y de código abierto

Integración Miele para Gladys Assistant

Electrodomésticos Miele@home: estado, programa, tiempo restante, temperaturas y escenas.

Siga sus electrodomésticos Miele@home en Gladys: lavadoras, secadoras, lavavajillas, hornos, campanas, placas de cocción, frigoríficos, congeladores, vinotecas, cafeteras y robots aspiradores. La integración usa la API oficial «Miele 3rd Party API», la misma que usa Home Assistant.

Desarrollada sin los aparatos ni una cuenta Miele: sus comentarios son bienvenidos. El código se ha comprobado con respuestas reales de la API publicadas por el proyecto Home Assistant, todavía no con un aparato real.

Integración comunitaria, sin relación con Miele. Miele y Miele@home son marcas de Miele & Cie. KG.

Presentación​

  • Un dispositivo Gladys por aparato Miele: estado (en marcha, en pausa, terminado, avería…), programa y fase en curso, tiempo restante, tiempo transcurrido, fin previsto, puerta, temperaturas, energía y agua del ciclo.
  • Tiempo real: la integración escucha el flujo de eventos de Miele. Una colada terminada se conoce en pocos segundos.
  • Órdenes seguras: encendido/apagado de una lavadora, lavavajillas, campana o cafetera, luces, consigna y SuperCool/SuperFrost de un frigorífico o congelador, inicio de un programa preparado en el aparato. Nunca se enciende un horno ni una placa a distancia.
  • Disparadores de escena: «Programa Miele terminado» y «Avería de un aparato Miele».
  • Widget «Aparatos Miele»: lo que está en marcha, y por cuánto tiempo.

Requisitos​

  • Gladys Assistant 5.1.0 o posterior.
  • Aparatos Miele@home ya vinculados en la aplicación Miele (smartphone), con la cuenta Miele que usará aquí.
  • Acceso a Internet para Gladys: todo pasa por la nube de Miele, no existe API local.
  • Credenciales de desarrollador Miele (Client ID y Client Secret), gratuitas: vea el paso 1 más abajo.
  • No hace falta Gladys Plus.

Configuración​

Paso 1 — Solicitar las credenciales a Miele. Abra el formulario de Miele y rellénelo (nombre de la aplicación: por ejemplo «Gladys»). Miele le envía por correo un Client ID y un Client Secret. Si el formulario pide una «Redirect URI», indique la que Gladys muestra en el paso 3 (por defecto https://my.gladysassistant.com/redirect/oauth).

Paso 2 — Instalar la integración. En Gladys: Integraciones → Miele (tienda) o Integraciones → Instalar desde GitHub con la dirección https://github.com/guim31/gladys-miele.

Paso 3 — Rellenar y conectar. En la pantalla Configuración de la integración:

  1. pegue el Client ID y el Client Secret, elija el idioma y haga clic en Guardar;
  2. bajo «Cuenta Miele», copie si hace falta la URI de redirección mostrada y haga clic en Conectar;
  3. se abre una ventana de Miele: inicie sesión con su cuenta Miele (la de la aplicación), elija su país si se lo pide y autorice el acceso;
  4. la ventana se cierra y el indicador de conexión se pone verde.

Paso 4 — Añadir los aparatos. Abra la pestaña Descubrir de la integración: ahí aparece cada aparato Miele de la cuenta. Haga clic en Añadir a Gladys en los que quiera seguir. Sus estados llegan enseguida.

El botón Probar la conexión de la pantalla Configuración lista los aparatos que devuelve Miele: útil para comprobar que todo está en orden.

El idioma elegido sirve para los nombres de las funciones de los nuevos aparatos, los estados y el widget. Los nombres de programas y fases vienen de Miele, que solo los da en inglés o alemán (alemán si elige alemán, inglés en los demás casos).

Qué ofrece cada aparato​

AparatoFunciones
Lavadora, lavasecadoraEstado, programa, fase, tiempo restante, tiempo transcurrido, fin previsto, puerta, encendido/apagado, energía y agua del ciclo
SecadoraLo mismo, sin el agua
LavavajillasEstado, programa, fase, tiempo restante, tiempo transcurrido, fin previsto, puerta, encendido/apagado, energía y agua del ciclo
Horno, horno de vapor, microondas, cajón calientaplatosEstado, programa, fase, tiempo restante, tiempo transcurrido, fin previsto, puerta, temperatura, temperatura de consigna y temperatura interior (solo lectura), luz (según el modelo)
Placa de cocciónEstado (solo lectura)
Campana extractoraEstado, encendido/apagado, luz
Frigorífico, congelador, vinotecaEstado, puerta, temperatura y consigna de cada zona, SuperCool y/o SuperFrost, luz (vinotecas)
CafeteraEstado, programa, fase, puerta, encendido/apagado, luz
Robot aspiradorEstado, programa, fase, batería

Algunos detalles:

  • Fin previsto: hora de fin calculada a partir del tiempo restante (y del inicio diferido si lo hay), en la zona horaria de Gladys. «—» cuando nada está en marcha o el programa está en pausa.
  • Puerta: un sensor de apertura, abierto o cerrado.
  • Energía y agua del ciclo: lo que Miele indica para el ciclo en curso o el último, cuando el aparato lo mide («EcoFeedback»). El valor del último ciclo se mantiene mientras el aparato está apagado.
  • Consigna de un frigorífico: un grado por paso, dentro del rango que acepta el aparato (normalmente de 1 a 9 °C en el frigorífico, de −28 a −14 °C en el congelador).
  • Un aparato que ya no está conectado a la nube de Miele muestra «No conectado» y el indicador «inaccesible».

Órdenes y seguridad​

  • Lo que se puede controlar: encendido/apagado (lavadora, secadora, lavavajillas, campana, cafetera), luces (campana, hornos, cafetera, vinotecas), consigna y SuperCool/SuperFrost (frío), y la acción de escena «Controlar un aparato Miele» (iniciar, pausar, detener).
  • Lo que nunca: encender un horno, una placa, un microondas o un cajón calientaplatos, cambiar su temperatura, iniciar un programa en él. Aunque la API de Miele lo permitiera, la integración lo rechaza. Detener un programa de horno sigue siendo posible.
  • Iniciar un programa a distancia requiere que el aparato lo acepte: un programa elegido en el aparato, la puerta cerrada y Remote Start (o MobileStart, según el modelo) activado en el aparato. Si no, la integración responde «El aparato no acepta esta orden ahora».
  • Inicio diferido: ajuste el programa en el aparato con Remote Start y deje que una escena programada de Gladys lo inicie a la hora deseada (horas valle). Un inicio diferido ajustado en el propio aparato (SmartStart incluido) aparece como estado «Inicio diferido» y en el fin previsto.

Actualización y cuotas​

  • La integración mantiene un flujo de eventos abierto con Miele: cada cambio llega en pocos segundos, sin peticiones adicionales.
  • Además, lee toda la cuenta cada 30 minutos (una petición, más una por aparato controlable). Si el flujo se corta, lee cada 2 minutos hasta que vuelve.
  • No depende del sondeo de Gladys (poco fiable para las integraciones externas): se actualiza sola.
  • Miele no publica ninguna cifra de cuota para su API; este ritmo queda muy por debajo del de Home Assistant (una lectura cada 2 minutos, siempre). Las condiciones de uso de Miele se aplican a sus credenciales.
  • Solo se envían a Gladys los cambios, más un recordatorio cada 6 horas de un valor que no cambia (si no, Gladys lo consideraría antiguo).

Widget​

El widget Aparatos Miele (Panel → Editar → añadir un widget → Miele) lista los aparatos añadidos a Gladys que están en marcha, en pausa, esperando un inicio diferido, terminados o con avería, los más urgentes primero: programa, fase, hora de fin y una etiqueta con el tiempo restante o el estado. Los frigoríficos, siempre «en marcha», no aparecen. Se actualiza cada minuto y en cuanto un aparato arranca o se para. No tiene ajustes.

Disparadores y acciones de escena​

Disparador «Programa Miele terminado»: un aparato pasa de «En marcha» (o «En pausa») a «Terminado». Filtro opcional: el aparato. Variables para las acciones siguientes: nombre del aparato, programa, energía consumida (kWh) y agua consumida (litros) cuando Miele las da. Se dispara una vez por fin de programa, nunca al reiniciar Gladys.

Disparador «Avería de un aparato Miele»: un aparato pasa al estado «Avería» o indica un fallo. Filtro opcional: el aparato. Variable: nombre del aparato.

Acción «Controlar un aparato Miele»: iniciar, pausar o detener el programa de un aparato. Iniciar y pausar: solo lavadoras, secadoras y lavavajillas. Detener: también hornos, campana y cafetera. Salida: «Orden enviada». Si se rechaza, la acción falla con el motivo y la escena continúa.

No hay disparador «puerta abierta demasiado tiempo»: el disparador estándar de Gladys sobre la puerta (sensor de apertura) con la opción «durante» ya lo hace, en cualquier aparato.

Ejemplos de escenas​

  • Colada terminada: disparador «Programa Miele terminado» (aparato: la lavadora) → enviar un mensaje «La colada ha terminado ({{triggerEvent.data.program}}, {{triggerEvent.data.energy_kwh}} kWh)».
  • Lavavajillas en horas valle: prepare el programa por la noche con Remote Start activado; una escena programada a la 1:30 ejecuta «Controlar un aparato Miele → Iniciar».
  • Congelador abierto: disparador «Puerta del congelador = abierta durante 3 minutos» → notificación.
  • Avería: disparador «Avería de un aparato Miele» → mensaje con {{triggerEvent.data.device_name}}.

Solución de problemas​

  • «Introduzca el Client ID y el Client Secret…»: los campos están vacíos o sin guardar.
  • La ventana de Miele rechaza el inicio de sesión o la URI de redirección: compruebe el Client ID; si su aplicación Miele tiene una URI de redirección registrada, debe ser exactamente la que aparece bajo «Cuenta Miele».
  • «Este inicio de sesión ha caducado…»: más de 15 minutos entre el clic en Conectar y el final del inicio de sesión, o un inicio de sesión empezado desde otro Gladys. Haga clic de nuevo en Conectar.
  • «Miele ha rechazado la autorización guardada»: el acceso se ha revocado, la contraseña de Miele ha cambiado o se ha modificado el Client ID: haga clic en Conectar.
  • Ningún aparato en Descubrir: el botón Probar la conexión indica lo que devuelve Miele. Una cuenta vacía significa que los aparatos están vinculados a otra cuenta Miele.
  • «El aparato no acepta esta orden ahora»: puerta abierta, ningún programa elegido, Remote Start/MobileStart desactivado, o el aparato ya está en el estado pedido.
  • Registros: en funcionamiento normal no se escribe nada. Para verlo todo, pase la variable LOG_LEVEL=debug al contenedor. Nunca se registra ningún token ni secreto.

Limitaciones​

  • No se elige el programa a distancia (no hay lista de programas en Gladys): se inicia el preparado en el aparato.
  • Nombres de programas y fases en inglés o alemán (límite de la API de Miele).
  • Sin control de hornos, placas y microondas (decisión de seguridad), ni del robot aspirador, ni de la velocidad de la campana.
  • Los niveles de TwinDos/PowerDisk, las zonas de una placa y el inicio diferido ajustado a distancia no están incluidos.
  • Depende de la nube de Miele: sin Internet o durante una avería de Miele, no hay actualizaciones (los aparatos funcionan con normalidad).
  • Los nombres de las funciones se fijan al añadir el aparato: cambiar el idioma solo renombra los aparatos nuevos (los estados sí cambian de idioma).

Datos y privacidad​

  • Los tokens de acceso de Miele se guardan en el volumen /data de la integración (un archivo que solo ella puede leer), nunca en la configuración de Gladys ni en los registros.
  • El Client Secret es un campo secreto de Gladys: no se vuelve a mostrar.
  • El inicio de sesión se hace en la página de Miele: la integración nunca ve su contraseña. La página de redirección de Gladys (my.gladysassistant.com) solo devuelve su navegador a su Gladys; el código que ve pasar es inútil sin el Client Secret.
  • La integración solo se comunica con api.mcs3.miele.com.

Parámetros de configuración​

Estos son los parámetros que Miele te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Antes de empezarsectionNoMiele no tiene API local: todo pasa por la nube de Miele, con la cuenta de la aplicación Miele. Solicite a Miele credenciales de desarrollador gratuitas (Client ID y Client Secret, enviadas por correo), péguelas abajo y guarde. Si Miele pide una URI de redirección, copie la que aparece bajo el botón Conectar. Después haga clic en Conectar e inicie sesión con su cuenta Miele.
Client IDstringSíClient ID enviado por Miele.
Client SecretsecretSíClient Secret enviado por Miele, no se vuelve a mostrar.
Cuenta Mieleoauth2NoInicie sesión con la cuenta Miele a la que sus aparatos están vinculados en la aplicación Miele.
IdiomaselectNoNombres de las funciones de los nuevos aparatos, estados y widget. Los programas vienen de Miele, en inglés o alemán.

Cómo instalar Miele en Gladys​

  1. En Gladys, abre Integraciones: Miele aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/guim31/gladys-miele:1.0.1), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-miele.

Miele requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Miele es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂