Saltar al contenido principal

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

Integración Withings para Gladys Assistant

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 GladysLo que contiene
Dispositivo Withings healthSus 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 escenaNueva medición, se acostó, se levantó, resumen de la noche disponible, objetivo de pasos alcanzado
2 acciones de escenaActualizar los datos de Withings, leer el último valor de Withings
2 widgets del panelSalud 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.

  1. Vaya a developer.withings.com e inicie sesión con su cuenta Withings.
  2. Cree una aplicación de tipo Public API integration.
  3. Dele un nombre (p. ej. «Mi Gladys») y una descripción.
  4. Callback URL: ponga por ahora una dirección provisional, por ejemplo https://localhost/. Añadirá la verdadera en el paso 3 más abajo.
  5. 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:

CampoQué poner
Client IDEl Client ID de su aplicación Withings
Client secretEl 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 pasosUsado 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​

  1. Haga clic en Conectar (campo «Cuenta Withings»).
  2. 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.
  3. 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»).
  4. En developer.withings.com, edite su aplicación y añada esa dirección a las callback URLs. Guarde.
  5. 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:

  1. 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.
  2. 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ónUnidadNotas
Peso, masa grasa, masa magra, masa muscular, masa ósea, agua corporalkgBáscula
Porcentaje de grasa%Báscula
Índice de grasa visceral—Body Comp / Body Scan
Presión sistólica / diastólicammHgTensiómetro
Frecuencia cardíacabpmBáscula, tensiómetro
Oxígeno en sangre (SpO2)%ScanWatch
Temperatura corporal, temperatura de la piel°CThermo, ScanWatch
Velocidad de la onda de pulso, edad vascularm/s, —Body Cardio, Body Scan
Pasos, distancia, desnivel, calorías activas y totales (de hoy)—, mReloj o teléfono; vuelve a 0 a medianoche
Duración del sueño, sueño profundo / ligero / REM, puntuación, despertares, pulsomin, —Última noche, fechada a la hora de despertar
En la cama0 / 1Sleep 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​

DisparadorCuándoVariables
Nueva medición WithingsSe 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 disponibleWithings ha analizado la noche pasadaDuración del sueño (min), puntuación del sueño, despertares
Objetivo de pasos alcanzadoLos 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ónLo que haceResultados
Actualizar los datos de WithingsLee Withings ahoraNúmero de mediciones nuevas
Leer el último valor de WithingsEl último valor conocido de una mediciónConocido (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íntomaQué hacer
«Introduzca el Client ID y el Client secret…»Rellene los dos campos, guarde
Withings dice que redirect_uri no es válidaAñ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ónDetecció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ámetroTipoObligatorioDescripción
Primeros pasossectionNoLos 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 IDstringSíEl Client ID de su aplicación Withings.
Client secretsecretSíEl Client secret de su aplicación Withings. Guardado en Gladys, nunca se vuelve a mostrar.
Cuenta Withingsoauth2NoGuarde primero el Client ID y el secret, luego haga clic en Conectar e inicie sesión en Withings.
Intervalo de actualización (min)numberNoCada cuánto se lee Withings, en minutos. Con Gladys Plus, las nuevas mediciones también llegan en segundos.
Objetivo diario de pasosnumberNoEl 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)booleanNoPide 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​

  1. En Gladys, abre Integraciones: Withings 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/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).
  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/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.

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 🙂