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

Peso, tensión, actividad y sueño de sus básculas, relojes y tensiómetros Withings.
Esta integración trae a Gladys los datos de sus dispositivos Withings: peso y composición corporal de una báscula, tensión arterial, pulso, temperatura, pasos y sueño de un reloj o de un Sleep Analyzer.
Los datos vienen de la nube de Withings (los mismos que en la app Withings): la integración no habla con los dispositivos de su red.
Lo que obtiene
| En Gladys | Lo que contiene |
|---|---|
| Dispositivo Withings health | Sus mediciones (peso, grasa, músculo, tensión, pulso, SpO2, temperatura…), la actividad de hoy, la última noche, el estado «en la cama» |
| Un dispositivo por dispositivo Withings | «Batería baja» (básculas, tensiómetros, relojes, termómetros) |
| 5 disparadores de escena | Nueva medición, se acostó, se levantó, resumen de la noche disponible, objetivo de pasos alcanzado |
| 2 acciones de escena | Actualizar los datos de Withings, leer el último valor de Withings |
| 2 widgets del panel | Salud Withings (resumen), Evolución del peso (gráfico) |
Las funciones del dispositivo Withings health siguen lo que su cuenta mide de verdad: quien tiene un tensiómetro obtiene la tensión, no veinte funciones de composición corporal vacías. Cuando aparece un nuevo tipo de medición, el dispositivo muestra un botón Actualizar en la pantalla de detección.
Las mediciones conservan su propia fecha: una pesada sincronizada una hora después se guarda a la hora en que se subió a la báscula.
Antes de empezar
- Una cuenta Withings, con sus dispositivos configurados en la app Withings (Health Mate) y sincronizados.
- Gladys 5.1 o posterior.
- Opcional: Gladys Plus, para las notificaciones en tiempo real (ver más abajo).
1. Crear una aplicación de desarrollador Withings
Withings pide declarar cada aplicación que lee sus datos. Es gratis y lleva cinco minutos.
- Vaya a developer.withings.com e inicie sesión con su cuenta Withings.
- Cree una aplicación de tipo Public API integration.
- Dele un nombre (p. ej. «Mi Gladys») y una descripción.
- Callback URL: ponga por ahora una dirección provisional, por ejemplo
https://localhost/. Añadirá la verdadera en el paso 3 más abajo. - Guarde. Withings muestra el Client ID y el Client secret de la aplicación.
2. Configurar la integración
En Gladys, abra Integraciones → Withings → Configuración:
| Campo | Qué poner |
|---|---|
| Client ID | El Client ID de su aplicación Withings |
| Client secret | El Client secret de su aplicación Withings |
| Intervalo de actualización (min) | Cada cuánto se lee Withings. 30 minutos por defecto (de 5 a 1440) |
| Objetivo diario de pasos | Usado por el disparador «Objetivo de pasos alcanzado». 10 000 por defecto |
| Notificaciones en tiempo real (Gladys Plus) | Activado por defecto. Solo funciona con Gladys Plus |
Guarde.
3. Conectar su cuenta Withings
- Haga clic en Conectar (campo «Cuenta Withings»).
- La primera vez, Withings responde que la dirección de retorno no está
permitida (
redirect_uri). Es normal: Withings solo acepta las direcciones declaradas en su aplicación. - De vuelta en Gladys, haga clic en Probar la conexión: el mensaje muestra la URL de retorno que usa Gladys. También está en los registros de la integración («Callback URL to declare in your Withings app»).
- En developer.withings.com, edite su aplicación y añada esa dirección a las callback URLs. Guarde.
- Haga clic de nuevo en Conectar, inicie sesión en Withings y acepte.
El estado pasa a Conectado, la integración lee un año de mediciones (solo el último valor de cada una se pone en Gladys), y los dispositivos aparecen en Detección. Créelos como cualquier otro dispositivo.
La URL de retorno depende de la dirección con la que abre Gladys. Haga clic siempre en Conectar desde la misma dirección (la que declaró).
Notificaciones en tiempo real (Gladys Plus)
Sin Gladys Plus, la integración lee Withings en el intervalo de actualización: una pesada aparece en Gladys en menos de 30 minutos (por defecto).
Con Gladys Plus, Withings avisa a Gladys en cuanto llegan datos nuevos:
- En la pantalla de configuración de la integración, rellene el bloque Webhooks de Gladys Plus con su clave Open API de Gladys Plus.
- Deje activadas las Notificaciones en tiempo real.
La integración se suscribe entonces sola a las notificaciones de Withings. Las nuevas mediciones llegan en pocos segundos, y un Sleep Analyzer envía los eventos en la cama / fuera de la cama (estos dos solo existen con Gladys Plus).
«Probar la conexión» indica si las notificaciones están activas.
Dispositivos y funciones
Withings health
| Función | Unidad | Notas |
|---|---|---|
| Peso, masa grasa, masa magra, masa muscular, masa ósea, agua corporal | kg | Báscula |
| Porcentaje de grasa | % | Báscula |
| Índice de grasa visceral | — | Body Comp / Body Scan |
| Presión sistólica / diastólica | mmHg | Tensiómetro |
| Frecuencia cardíaca | bpm | Báscula, tensiómetro |
| Oxígeno en sangre (SpO2) | % | ScanWatch |
| Temperatura corporal, temperatura de la piel | °C | Thermo, ScanWatch |
| Velocidad de la onda de pulso, edad vascular | m/s, — | Body Cardio, Body Scan |
| Pasos, distancia, desnivel, calorías activas y totales (de hoy) | —, m | Reloj o teléfono; vuelve a 0 a medianoche |
| Duración del sueño, sueño profundo / ligero / REM, puntuación, despertares, pulso | min, — | Última noche, fechada a la hora de despertar |
| En la cama | 0 / 1 | Sleep Analyzer, solo con Gladys Plus |
Gladys no tiene unidad kilogramo, bpm ni mmHg: esas funciones llevan la unidad en su nombre.
Un dispositivo por dispositivo Withings
Una función Batería baja (1 cuando Withings indica una batería baja), para una escena «cambiar las pilas». Un Sleep Analyzer enchufado a la red no la tiene.
Escenas
Disparadores
| Disparador | Cuándo | Variables |
|---|---|---|
| Nueva medición Withings | Se registra una pesada, una toma de tensión… | Tipo, fecha y cada valor de la medición (peso…) |
| Se acostó | Un Sleep Analyzer detecta que alguien se acuesta | — |
| Se levantó | Un Sleep Analyzer detecta que alguien se levanta | — |
| Resumen de la noche disponible | Withings ha analizado la noche pasada | Duración del sueño (min), puntuación del sueño, despertares |
| Objetivo de pasos alcanzado | Los pasos de hoy alcanzan el objetivo (una vez al día) | Pasos, objetivo |
«Nueva medición Withings» se puede filtrar por tipo: pesada, tensión arterial, temperatura, oxígeno en sangre, otra. Solo las mediciones recientes (menos de 24 horas) lo activan: conectar la cuenta nunca repite pesadas antiguas.
Ejemplo: cuando llega una pesada, envíame «Peso: {{triggerEvent.data.weight}} kg».
Acciones
| Acción | Lo que hace | Resultados |
|---|---|---|
| Actualizar los datos de Withings | Lee Withings ahora | Número de mediciones nuevas |
| Leer el último valor de Withings | El último valor conocido de una medición | Conocido (sí/no), valor, unidad, fecha |
Widgets del panel
- Salud Withings: hasta cuatro mosaicos en directo (peso, pasos, sueño, tensión…), la última medición y la última sincronización, las notificaciones, las pilas y un botón Actualizar.
- Evolución del peso: el peso actual y su curva durante una semana, un mes, tres meses o un año (ajuste del widget).
Botones de la pantalla de configuración
- Probar la conexión: cuenta, dispositivos, última sincronización, notificaciones y la URL de retorno que hay que declarar en Withings.
- Sincronizar ahora: lee Withings enseguida.
- Desconectar la cuenta Withings: olvida los tokens y detiene las notificaciones. Los dispositivos permanecen en Gladys con su historial.
Solución de problemas
| Mensaje / síntoma | Qué hacer |
|---|---|
| «Introduzca el Client ID y el Client secret…» | Rellene los dos campos, guarde |
Withings dice que redirect_uri no es válida | Añada a su aplicación Withings la URL de retorno que da «Probar la conexión» (paso 3) |
| «Withings rechazó la conexión… haga clic en Conectar» | Acceso revocado, secret cambiado o token caducado: haga clic de nuevo en Conectar |
| «Withings no está disponible en este momento» | Withings o su Internet está caído; la integración lo reintenta en la próxima actualización |
| Notificaciones «desactivadas (sin Gladys Plus vinculado)» | Rellene el bloque Webhooks de Gladys Plus, o quédese solo con el temporizador |
| Un nuevo tipo de medición no tiene función | Detección → Withings health → Actualizar |
| Ningún evento «en la cama» | Hace falta un Sleep Analyzer y Gladys Plus |
La integración escribe lo que hace en sus registros (el contenedor de la integración), nunca un token ni el Client secret.
Privacidad
- Sus datos van de la nube de Withings a su Gladys, a través de su aplicación de desarrollador. Nada pasa por terceros (Gladys Plus solo retransmite las notificaciones «datos nuevos», que no contienen ninguna medición).
- El Client secret y los tokens se guardan en la configuración de Gladys de la integración, nunca se vuelven a mostrar y nunca se escriben en los registros.
- La integración guarda un pequeño archivo en su volumen
/data(última lectura, últimos valores) para que un reinicio no duplique mediciones ni vuelva a lanzar escenas. - Una cuenta Withings por instalación de la integración.
Parámetros de configuración
Estos son los parámetros que Withings te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Primeros pasos | section | No | Los datos de Withings vienen de la nube de Withings, a través de una aplicación de desarrollador propia (gratuita). 1. En developer.withings.com, cree una aplicación (Public API integration). 2. Añada la URL de retorno de su Gladys: haga clic una vez en Conectar abajo y luego ejecute «Probar la conexión» para verla, o léala en los registros de la integración. 3. Copie aquí el Client ID y el Client secret, guarde, luego haga clic en Conectar e inicie sesión en Withings. |
| Client ID | string | Sí | El Client ID de su aplicación Withings. |
| Client secret | secret | Sí | El Client secret de su aplicación Withings. Guardado en Gladys, nunca se vuelve a mostrar. |
| Cuenta Withings | oauth2 | No | Guarde primero el Client ID y el secret, luego haga clic en Conectar e inicie sesión en Withings. |
| Intervalo de actualización (min) | number | No | Cada cuánto se lee Withings, en minutos. Con Gladys Plus, las nuevas mediciones también llegan en segundos. |
| Objetivo diario de pasos | number | No | El disparador de escena «Objetivo de pasos alcanzado» se activa una vez al día cuando los pasos de hoy lo alcanzan. |
| Notificaciones en tiempo real (Gladys Plus) | boolean | No | Pide a Withings que avise a Gladys de los nuevos datos a través de Gladys Plus: mediciones en segundos y los eventos «en la cama» / «fuera de la cama» de un Sleep Analyzer. Sin Gladys Plus, se aplica el intervalo de actualización. |
Cómo instalar Withings en Gladys
- En Gladys, abre Integraciones: Withings aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/prohand/gladys-withings: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). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/prohand/gladys-withings.
Withings 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
Withings 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 prohand, no el equipo principal de Gladys.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación