Platforms overview
Resumos do HealthKit
Resumos do HealthKit
O OpenClaw pode solicitar a um node de iPhone conectado um resumo somente leitura do dia atual do calendário. O iPhone calcula o agregado no próprio dispositivo e retorna apenas passos, duração do sono, frequência cardíaca média em repouso e quantidade/duração dos treinos. Amostras individuais do HealthKit, fontes, metadados, registros clínicos, ingestão em segundo plano e gravações não são compatíveis.
Esse recurso vem desativado por padrão. Ele exige consentimento separado no iPhone e autorização no Gateway.
Requisitos
- Um iPhone executando o aplicativo OpenClaw para iOS no qual o HealthKit informe que os dados de saúde estão disponíveis.
- Um node de iPhone conectado e aprovado. Consulte configuração do aplicativo para iOS.
- Um Gateway atual que consiga acessar o node do iPhone.
- Dados legíveis do app Saúde para todas as métricas que se espera visualizar. Um Apple Watch pode fornecer dados ao armazenamento do app Saúde no iPhone, mas o aplicativo OpenClaw para watchOS não é necessário para os resumos do HealthKit.
Habilitar o acesso
1. Autorizar o comando do Gateway
Adicione health.summary ao array gateway.nodes.allowCommands existente em
openclaw.json. Preserve todos os comandos já presentes:
{ gateway: { nodes: { allowCommands: ["health.summary"], }, },}health.summary é classificado como altamente sensível à privacidade e nunca é permitido pelo padrão da plataforma iOS. Uma entrada em gateway.nodes.denyCommands substitui a entrada de permissão. Consulte Política de comandos do Node.
2. Habilitar o compartilhamento no iPhone
No aplicativo para iOS:
- Abra Settings -> Permissions -> Privacy & Access -> Health Summaries.
- Toque em Enable & Share Summaries.
- Leia o aviso e escolha quais categorias do app Saúde o OpenClaw pode acessar na tela de permissões da Apple.
A opção registra sua escolha explícita de compartilhamento com o OpenClaw. Ela não afirma que a Apple concedeu acesso a todas as categorias solicitadas.
Habilitar os resumos de saúde adiciona health.summary à superfície de comandos declarada pelo node. Aprove a atualização resultante do emparelhamento do node:
openclaw nodes pendingopenclaw nodes approve <requestId>Em seguida, verifique se o iPhone conectado expõe um comando health.summary efetivo:
openclaw nodes describe --node "<iPhone name>"Solicitar o resumo de hoje
Somente today é compatível. Ele abrange desde a meia-noite local até o momento da solicitação, usando o calendário e o fuso horário atuais do iPhone.
openclaw nodes invoke \ --node "<iPhone name>" \ --command health.summary \ --params '{"period":"today"}' \ --jsonOs agentes podem chamar o mesmo comando com a ferramenta nodes:
{ "action": "invoke", "node": "<iPhone name>", "invokeCommand": "health.summary", "invokeParamsJson": "{\"period\":\"today\"}"}O payload do resumo contém:
| Campo | Significado |
|---|---|
period |
Sempre today |
startISO |
Início local do dia, codificado como um instante ISO |
endISO |
Horário da solicitação, codificado como um instante ISO |
timeZoneIdentifier |
Identificador de fuso horário do iPhone |
stepCount |
Total acumulado de passos arredondado |
sleepDurationMinutes |
Tempo de sono sem duplicação, limitado ao dia atual |
restingHeartRateBpm |
Frequência cardíaca média em repouso |
workoutCount |
Treinos iniciados hoje |
workoutDurationMinutes |
Duração total desses treinos |
Os campos de métricas são opcionais e são omitidos quando o HealthKit não retorna nenhum valor legível. Os estágios do sono e as fontes sobrepostas são combinados antes do cálculo da duração, portanto o mesmo minuto não é contabilizado duas vezes.
Comportamento de privacidade
- A agregação ocorre no iPhone. As amostras brutas não saem do dispositivo.
- O agregado solicitado sai do iPhone por meio do Gateway. Quando um agente o solicita, o agregado chega ao provedor de IA configurado e pode permanecer no histórico do chat. Uma invocação direta pela CLI o retorna ao operador da CLI.
- O OpenClaw solicita apenas acesso de leitura. Ele não pode adicionar nem modificar dados do app Saúde.
- O OpenClaw acessa o HealthKit somente quando
health.summaryé invocado. Não há ingestão de dados de saúde em segundo plano. - O HealthKit deliberadamente não revela se o acesso de leitura foi negado. Uma métrica ausente pode significar acesso negado, ausência de amostras correspondentes ou tipo de dado indisponível. O OpenClaw não consegue distinguir esses casos.
- O resumo se destina ao contexto pessoal de saúde e condicionamento físico, não a diagnósticos ou orientações médicas.
Para interromper o compartilhamento, volte a Health Summaries e toque em Disable. O iPhone removerá a funcionalidade de Saúde e o comando health.summary da superfície do node. Também é possível remover health.summary de
gateway.nodes.allowCommands para fechar o controle de acesso no lado do Gateway.
Solução de problemas
O comando não está declarado pelo node
Confirme se os resumos de saúde estão habilitados no aplicativo para iOS e se o iPhone está conectado. Execute openclaw nodes pending, aprove qualquer atualização de funcionalidade e inspecione openclaw nodes describe --node "<iPhone name>" novamente.
O comando exige adesão explícita
Adicione health.summary a gateway.nodes.allowCommands. Verifique também se
gateway.nodes.denyCommands não o contém; a lista de negação prevalece.
HEALTH_ACCESS_DISABLED
A opção de compartilhamento no aplicativo está desativada. Habilite Health Summaries em Privacy & Access no iPhone.
O resumo é obtido, mas há métricas ausentes
Abra o aplicativo Saúde da Apple e confirme se há dados de hoje. Revise o acesso do OpenClaw nos ajustes do app Saúde da Apple, mas não considere um resultado vazio como prova de que o acesso foi negado: o HealthKit oculta intencionalmente essa distinção.
Intervalos anteriores falham
O comando aceita somente {"period":"today"}. Resumos de vários dias e históricos não são compatíveis.