Sincronizar datos de Apple Health con MQTT

Publicar datos de salud en un broker MQTT.

Last updated: February 5, 2026

On this page

Las automatizaciones MQTT te permiten publicar automáticamente tus datos de salud en un broker MQTT. Esto es ideal para integrar con plataformas IoT, sistemas de automatización del hogar o cualquier servicio que soporte mensajería MQTT.

Resumen

Las automatizaciones MQTT publican tus datos de salud como mensajes JSON en un tema MQTT especificado en un broker MQTT. Los datos se envían cada vez que la automatización se ejecuta según la configuración de frecuencia de sincronización.

Casos de uso:

  • Integración con plataformas IoT (Home Assistant, OpenHAB, etc.)
  • Publicar datos de salud en paneles basados en MQTT
  • Sistemas de monitoreo de salud en tiempo real
  • Integraciones personalizadas de automatización del hogar
  • Plataformas de registro de datos y análisis

Características principales:

  • Solo formato JSON (optimizado para MQTT)
  • Soporta conexiones autenticadas y anónimas
  • Estructura de temas configurable
  • Gestión de ID de cliente
  • Autenticación opcional con nombre de usuario/contraseña

Limitaciones

  • Acceso a datos de salud: Las aplicaciones no pueden acceder a los datos de salud mientras el iPhone está bloqueado. Las automatizaciones solo se ejecutarán durante los períodos en que tu dispositivo esté desbloqueado. Esto puede afectar la actualización de los datos. Consulta las instrucciones para la sincronización manual para mantener los datos actualizados.

  • Procesamiento en segundo plano: iOS limita el procesamiento en segundo plano para preservar la duración de la batería. Las automatizaciones dependen de la Actualización de aplicaciones en segundo plano y pueden no ejecutarse inmediatamente si:

    • La Actualización de aplicaciones en segundo plano está deshabilitada para la aplicación
    • El dispositivo está en Modo de bajo consumo
    • El dispositivo ha estado inactivo durante períodos prolongados
    • Los recursos del sistema están limitados
    • Múltiples aplicaciones están compitiendo por tiempo de ejecución en segundo plano
  • Solo formato JSON (no se puede cambiar)

  • Requiere un broker MQTT (local o basado en la nube)

Requisitos previos

  • Un broker MQTT (p. ej., Mosquitto, HiveMQ, AWS IoT Core, etc.)
  • Conectividad de red a tu broker MQTT
  • Dirección IP o nombre de host del broker
  • Número de puerto
  • Opcional: Nombre de usuario y contraseña si tu broker requiere autenticación

Configuración

Navega a la pantalla de Exportaciones Automatizadas desde la navegación principal, luego toca "Nueva Automatización" y selecciona "MQTT" como Tipo de Automatización.

Nombre de automatización

Ingresa un nombre descriptivo para tu automatización (p. ej., "MQTT Home Assistant", "Broker MQTT en la nube").

Notificaciones

Configura cuándo deseas recibir notificaciones:

  • Notificar en actualización de caché - Recibe una notificación cuando se actualicen los datos en caché
  • Notificar cuando se ejecute - Recibe una notificación cada vez que la automatización publique datos

Configuración del broker

Dirección IP

Ingresa la dirección IP o el nombre de host de tu broker MQTT.

Ejemplos:

  • 192.168.1.100 (dirección IP local)
  • mqtt.example.com (nombre de host)
  • broker.hivemq.com (broker MQTT en la nube)
  • localhost (si se ejecuta en el mismo dispositivo, no recomendado para iOS)

Nota: Usa direcciones IP para brokers locales en tu red, o nombres de host para brokers basados en la nube. Asegúrate de que el broker sea accesible desde tu dispositivo.

Puerto

Ingresa el número de puerto para tu broker MQTT.

Nota: El puerto predeterminado es 1883.

Tema

Ingresa el tema MQTT donde se publicarán los datos de salud. Este es el tema que los suscriptores usarán para recibir tus datos de salud.

Ejemplos de temas:

  • health/data
  • home/health/metrics
  • user/health/export
  • hae/automation-name

Mejores prácticas para temas:

  • Usa barras diagonales (/) para crear jerarquías de temas
  • Usa nombres descriptivos que indiquen el tipo de datos
  • Evita espacios y caracteres especiales
  • Considera incluir el nombre de la automatización para múltiples automatizaciones

Nota: El nombre del tema distingue entre mayúsculas y minúsculas. Asegúrate de que los suscriptores usen exactamente el mismo nombre de tema.

ID de cliente

Ingresa un ID de cliente único para esta conexión MQTT. Esto identifica tu dispositivo ante el broker MQTT.

Ejemplos de ID de cliente:

  • health-export-iphone
  • hae-client-001
  • ios-health-app

Nombre de usuario (Opcional)

Ingresa el nombre de usuario para la autenticación del broker MQTT. Déjalo vacío si tu broker no requiere autenticación.

Contraseña (Opcional)

Ingresa la contraseña para la autenticación del broker MQTT. Déjalo vacío si tu broker no requiere autenticación.

Configuración de tipo de datos

Tipo de datos

Selecciona qué tipo de datos de salud exportar:

  • Métricas de salud - Pasos, frecuencia cardíaca, sueño y otras mediciones de salud
  • Entrenamientos - Actividades de ejercicio y fitness
  • Síntomas - Síntomas y condiciones de salud
  • ECG - Lecturas de electrocardiograma
  • Notificaciones de frecuencia cardíaca - Eventos de frecuencia cardíaca alta/baja
  • Estado mental - Entradas de estado de ánimo y estado mental (iOS 18.0+)
  • Seguimiento del ciclo - Datos del ciclo menstrual y salud reproductiva
  • Medicamentos - Registros de medicamentos y adherencia (iOS 26.0+)

Configuración de métricas de salud

Cuando se selecciona Métricas de salud:

Seleccionar métricas de salud - Elige qué métricas específicas incluir. Puedes seleccionar todas las métricas disponibles o elegir específicas.

Consejo: Seleccionar solo las métricas que necesitas reduce el tamaño del mensaje y el tiempo de procesamiento.

Fuentes preferidas - Configura qué fuentes de datos tienen prioridad cuando múltiples fuentes proporcionan la misma métrica.

Configuración de entrenamientos

Cuando se selecciona Entrenamientos:

Incluir datos de ruta - Activa para incluir rutas para entrenamientos que tienen datos de ubicación.

Incluir métricas de entrenamiento - Activa para incluir métricas de salud recopiladas durante los entrenamientos (frecuencia cardíaca, calorías, etc.).

Agrupación de tiempo (Métricas de entrenamiento) - Cuando se usa Versión de exportación 2 e Incluir métricas de entrenamiento está habilitado:

  • Minutos - Agrupa las métricas de entrenamiento por minuto
  • Segundos - Agrupa las métricas de entrenamiento por segundo

Configuración de exportación

Formato de exportación

Nota: Las automatizaciones MQTT solo soportan formato JSON. Esta configuración no se puede cambiar y se establece automáticamente en JSON.

Versión de exportación

Selecciona una Versión de exportación para los datos de entrenamiento:

  • Versión 1 - Formato heredado
  • Versión 2 - Formato actual con datos de entrenamiento mejorados

Nota: La Versión de exportación afecta principalmente a la estructura de datos de entrenamiento si estás exportando entrenamientos.

Rango de fechas

Selecciona cuándo se deben exportar los datos:

  • Predeterminado - Sincroniza los datos del día anterior completo más los datos hasta la fecha y hora actuales
  • Desde última sincronización - En cada sincronización, exporta todos los datos desde la última vez que se ejecutó la exportación hasta la fecha y hora actuales
  • Hoy - Sincroniza todos los datos de la fecha actual hasta la hora actual
  • Ayer - Sincroniza todos los datos del día anterior completo
  • Últimos 7 días - Sincroniza los datos de los últimos siete días completos

Resumir datos

Cuando se usa formato JSON con tipo de datos Métricas de salud, activa o desactiva Resumir datos.

  • ON - Proporciona resúmenes de datos agregados (predeterminado)
  • OFF - Proporciona datos desagregados cuando es posible, mostrando puntos de datos individuales

Agrupación de tiempo

Cuando Resumir datos está habilitado, selecciona cómo se deben agregar los datos.

Resumir datos

Activa o desactiva Resumir datos para Métricas de salud.

  • ON - Proporciona resúmenes de datos agregados (predeterminado)
  • OFF - Proporciona datos desagregados cuando es posible

Nota: Esta configuración solo se aplica al tipo de datos Métricas de salud.

Frecuencia de sincronización

Configura con qué frecuencia la automatización debe publicar datos en MQTT:

Selecciona un número e intervalo.

Pruebas y verificación

Pruebas manuales

  1. Toca "Exportación manual" en la pantalla de configuración de automatización
  2. Selecciona un rango de fechas
  3. Toca "Exportar" para publicar un mensaje
  4. Usa un cliente MQTT para suscribirte a tu tema y verificar que se recibió el mensaje

Usar un cliente MQTT

Para verificar que los mensajes se están publicando:

  1. Configura un cliente MQTT
  2. Conéctate a tu broker MQTT usando las mismas credenciales
  3. Suscríbete a tu tema
  4. Activa una exportación manual desde la aplicación
  5. Verifica que el mensaje aparezca en tu cliente MQTT

Ver registros de actividad

  1. Toca "Ver registros de actividad" en la pantalla de configuración de automatización
  2. Revisa las ejecuciones recientes de automatización
  3. Verifica errores de conexión o fallos de publicación
  4. Verifica las marcas de tiempo de publicación

Formato de mensaje

Los mensajes MQTT se publican como JSON. El contenido del mensaje sigue el formato JSON de exportación estándar:

{
  "data": {
    "metrics": [...],
    "workouts": [...],
    ...
  }
}

El mensaje se publica con:

  • Tema: Como se configuró en la automatización
  • QoS: Entrega como máximo una vez
  • Retener: Los mensajes no se retienen
  • Contenido: Cadena JSON que contiene datos de salud

Solución de problemas

Problemas comunes

Fallos de conexión

  • Verifica que la dirección IP/nombre de host del broker sea correcta
  • Verifica que el puerto sea correcto y que el broker esté escuchando en ese puerto
  • Asegúrate de que haya conectividad de red al broker
  • Verifica que las reglas del firewall permitan conexiones al broker
  • Verifica si el broker requiere TLS/SSL

Fallos de autenticación

  • Verifica que el nombre de usuario y la contraseña sean correctos
  • Verifica que la autenticación esté habilitada en tu broker si se proporcionan credenciales
  • Asegúrate de que el usuario tenga permiso para publicar en el tema especificado

Mensajes no recibidos

  • Verifica que el nombre del tema coincida exactamente (distingue entre mayúsculas y minúsculas)
  • Verifica que los suscriptores estén conectados al mismo broker
  • Asegúrate de que los suscriptores estén suscritos al tema correcto
  • Verifica que la automatización esté habilitada y ejecutándose
  • Verifica los Registros de actividad para errores de publicación

Tamaño de mensaje grande

  • Reduce el número de métricas de salud seleccionadas
  • Usa opciones de agregación menos granulares
  • Considera dividir en múltiples automatizaciones para diferentes tipos de datos

Consejos y mejores prácticas

  1. Organización de temas:

    • Usa estructuras de temas jerárquicas (p. ej., health/metrics, health/workouts)
    • Incluye identificadores de dispositivo o automatización en los temas
    • Documenta tu estructura de temas para referencia fácil
  2. Tamaño de mensaje:

    • Mantén los mensajes razonablemente grandes para evitar límites del broker MQTT
    • Usa agregación menos granular para reducir el volumen de datos
    • Considera dividir grandes conjuntos de datos en múltiples mensajes
  3. Monitoreo:

    • Usa los Registros de actividad en la aplicación para rastrear el éxito de la publicación
  4. Brokers en la nube:

    • Cuando uses brokers MQTT en la nube (AWS IoT, HiveMQ Cloud, etc.):
      • Sigue sus requisitos de conexión específicos
      • Verifica sus límites de tamaño y velocidad de mensajes
      • Verifica las convenciones de nomenclatura de temas