Saltar al contenido principal

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

Integración Polar para Gladys Assistant

Tu reloj Polar en Gladys: actividad, sueño, Nightly Recharge, entrenamientos y escenas.

Presentación​

Esta integración lleva a Gladys los datos de tu cuenta Polar Flow (relojes y sensores de frecuencia cardíaca Polar), a través de la API oficial Polar AccessLink: actividad de hoy, última noche, Nightly Recharge, entrenamientos y carga cardio, como dispositivo, widgets del panel y escenas.

  • Un dispositivo por cuenta vinculada («Polar Marie»): pasos, tiempo activo, calorías, distancia y objetivo del día; puntuación y tiempo de sueño; estado Nightly Recharge, carga SNA, variabilidad cardíaca, frecuencia cardíaca y respiratoria de la noche; estado y ratio de carga cardio.
  • Widgets: hoy (con un botón Sincronizar), última noche, últimos entrenamientos, últimos siete días.
  • Escenas: entrenamiento sincronizado, nueva noche, nueva Nightly Recharge, objetivo de actividad alcanzado; una acción lee los últimos valores (peso incluido) para un mensaje o una condición.
  • Nube: tus datos viajan entre los servidores de Polar y tu Gladys, con tu propio cliente AccessLink; nada pasa por un servidor de terceros. Polar no envía notificaciones a Gladys: la integración lee Polar cada 30 minutos (ajustable) y cuando pulsas Sincronizar.
  • Tras sincronizar el reloj: Polar solo conoce lo que el reloj sincronizó con Polar Flow (app móvil u ordenador). Una noche aparece tras la sincronización de la mañana, un entrenamiento tras la suya.

Integración comunitaria, sin relación con Polar Electro. Aún no probada con una cuenta Polar real: cuéntanos lo que ves.

Los widgets de Polar: hoy, última noche, entrenamientos y los últimos siete días (ilustración generada, no es una captura de pantalla)

Requisitos​

  • Gladys 5.3.0 o posterior.
  • Una cuenta Polar Flow con un reloj o sensor Polar que se sincroniza con Polar Flow.
  • Un cliente API AccessLink gratuito, creado una vez con tu cuenta Polar Flow (unos cinco minutos). Polar no ofrece una clave compartida y la integración no incluye ninguna.

Configuración​

  1. Abre admin.polaraccesslink.com e inicia sesión con tu cuenta Polar Flow.

  2. Acepta las condiciones de AccessLink si se piden y crea un nuevo cliente (aplicación): un nombre («Gladys»), una descripción, un correo de contacto y, si se pide, un sitio web (https://gladysassistant.com sirve).

  3. Como URL de redirección de autorización (callback), escribe exactamente:

    https://my.gladysassistant.com/redirect/oauth

    Es la página HTTPS de Gladys que devuelve tu navegador a tu instancia, sea cual sea su dirección. Si accedes a Gladys por HTTPS y activaste la opción avanzada «dirección de la instancia» de la pantalla de configuración, registra en su lugar la dirección que muestra esa pantalla (o ambas: Polar acepta varias URL, la enviada debe coincidir exactamente con una).

  4. Guarda y copia el Client ID y el Client secret del cliente.

2. En Gladys​

  1. Abre la integración Polar, pega el Client ID y el Client secret y guarda.
  2. Pulsa Conectar con Polar, inicia sesión en Polar Flow y acepta. Vuelves a Gladys conectado: la integración registra tu cuenta en tu cliente y la lee.
  3. Ve a Descubrir y añade el dispositivo «Polar …», y luego los widgets a un panel.
  4. Sincroniza tu reloj con Polar Flow: Polar solo comparte los datos sincronizados después de la vinculación. Pulsa entonces Sincronizar (o espera a la siguiente lectura).
CampoPor defectoFunción
Client ID—El Client ID de tu cliente AccessLink.
Client secret—Su secreto, nunca mostrado ni escrito en los registros.
Conectar con Polar—Vincula tu cuenta Polar Flow (solo lectura: accesslink.read_all).
Intervalo de lectura30 min15, 30, 60 o 120 minutos; cada lectura cuesta 5 o 6 peticiones.
Idioma de los textosAutomáticoNombres del dispositivo y de las funciones, estado de carga cardio y textos de escenas.

Botones: Sincronizar ahora (no dos veces en dos minutos), Desvincular la cuenta Polar (la da de baja de tu cliente y olvida el token; el dispositivo permanece) y Diagnóstico (escribe un resumen anonimizado en la pestaña Registros).

Uso​

Dispositivo​

FunciónUnidad / escalaActualización
Pasos de hoypasostras cada sincronización del día
Tiempo activo de hoyminutostras cada sincronización del día
Calorías de hoykcaltras cada sincronización del día
Distancia de hoykm (según los pasos)tras cada sincronización del día
Objetivo de actividad diario% (puede superar 100)tras cada sincronización del día
Puntuación del sueño1 a 100tras la sincronización matinal
Tiempo dormidohorastras la sincronización matinal
Estado Nightly Recharge1 muy baja … 6 muy buenatras la sincronización matinal
Carga SNA-10 a +10tras la sincronización matinal
Variabilidad cardíaca (noche)ms (RMSSD)tras la sincronización matinal
Frecuencia cardíaca nocturnappmtras la sincronización matinal
Frecuencia respiratoriarespiraciones por minutotras la sincronización matinal
Ratio de carga cardioesfuerzo / toleranciatras un entrenamiento
Estado de carga cardiotextotras un entrenamiento

«Hoy» sigue la zona horaria de Gladys. Antes de la primera sincronización del día, las funciones de actividad conservan el último valor de ayer (su fecha lo indica). Gladys no tiene unidad de peso: el peso solo lo da la acción de escena.

Escenas​

DisparadorCuándoFiltros
Entrenamiento sincronizadoun nuevo entrenamiento llegó a Polar Flowcuenta, deporte
Nueva noche disponiblela noche de los dos últimos días llegó a Polar Flowcuenta
Nightly Recharge disponiblela Nightly Recharge de los dos últimos días llegó a Polar Flowcuenta, estado 1-6
Objetivo de actividad alcanzadola actividad de hoy alcanzó el 100 % del objetivo, una vez al díacuenta

Cada evento lleva sus valores ({{triggerEvent.data.sleep_score}}, duration_minutes, status_label…) y un summary listo. No se dispara nada por los datos ya presentes al arrancar la integración. La acción Polar: leer los últimos datos da la actividad de hoy, la última noche, la Nightly Recharge, el estado de entrenamiento, la última sesión y el peso de la última lectura.

Ejemplos:

  • Nueva noche disponible → enviar «{{triggerEvent.data.summary}}» al móvil al despertar.
  • Nightly Recharge disponible, estado 1 o 2 → suavizar las luces de la mañana y aplazar el recordatorio de entrenamiento.
  • Entrenamiento sincronizado, deporte «Carrera» → encender el toallero del baño.

Solución de problemas​

  • Polar indica «redirect_uri» o una página de error tras Conectar: la URL de redirección del cliente no es idéntica a la que envía Gladys. Comprueba https://my.gladysassistant.com/redirect/oauth (sin barra final) en el cliente de admin.polaraccesslink.com. La pestaña Registros muestra el URI de redirección usado.
  • «Polar rechazó la conexión (invalid_client)»: Client ID o secreto incorrecto. Vuelve a copiarlos y guarda antes de conectar.
  • «Conexión rechazada: la respuesta no corresponde»: la autorización caducó (10 minutos) o se abrió dos veces. Vuelve a pulsar Conectar con Polar.
  • «Polar se niega a compartir los datos» (HTTP 403): acepta los consentimientos obligatorios de tu cuenta en account.polar.com y pulsa Sincronizar.
  • «Polar rechazó el acceso»: el token fue revocado (en Polar Flow, con Desvincular o tras un año aproximadamente). Vuelve a pulsar Conectar con Polar.
  • Nada de hoy: sincroniza antes el reloj con Polar Flow; Polar solo comparte los datos sincronizados después de la vinculación.
  • Informar de un problema: issues de GitHub con las versiones de Gladys y de la integración, el modelo de reloj y las líneas del botón Diagnóstico (sin token ni nombre).

¿Por qué no hay notificación instantánea? Los webhooks de Polar necesitan una dirección pública que responda a Polar y peticiones firmadas cuya cabecera Gladys Plus no transmite: la integración lee Polar a su propio ritmo.

Parámetros de configuración​

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

ParámetroTipoObligatorioDescripción
1. Tu cliente de la API AccessLinksectionNoPolar no ofrece una clave compartida: inicia sesión en admin.polaraccesslink.com con tu cuenta Polar Flow y crea un cliente API gratuito (una «aplicación»). Como URL de redirección de autorización, escribe exactamente https://my.gladysassistant.com/redirect/oauth. Después copia aquí su Client ID y su secreto. La documentación detalla cada paso.
Client IDstringSíLo muestra admin.polaraccesslink.com una vez creado el cliente.
Client secretsecretSíSe muestra junto al Client ID. Nunca se escribe en los registros.
2. Conecta tu cuenta Polar FlowsectionNoGuarda primero, pulsa el botón y acepta en Polar Flow. Polar solo comparte los datos sincronizados después de esta vinculación: sincroniza luego tu reloj con Polar Flow. Vuelve a conectarte si Gladys indica un acceso rechazado.
Conectar con Polaroauth2NoGladys solo pide leer tus datos (accesslink.read_all); nunca cambia nada en Polar Flow.
3. OpcionessectionNo
Intervalo de lecturaselectNoPolar no envía notificaciones a Gladys: la integración lo lee a este ritmo (5 o 6 peticiones por lectura) y cada vez que pulsas Sincronizar.
Idioma de los textosselectNoNombres del dispositivo y de las funciones, estado de carga cardio y textos de escenas. Automático: el idioma de tu panel, en cuanto se haya mostrado un widget.

Cómo instalar Polar en Gladys​

  1. En Gladys, abre Integraciones: Polar 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/william-de71/gladys-polar:0.1.0), 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/William-De71/gladys-polar.

Polar requiere Gladys >=5.3.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​

Polar 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 William-De71, 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 🙂