Exibe esforço ao vivo durante uma aula de fitness. Cada membro aparece como um bloco colorido pela zona de frequência cardíaca, mostrando porcentagem do máximo e calorias. Também são exibidos um placar da aula e a mistura de zonas.
Cartão ao vivo
Categoria: Saúde. Etiquetas: Classificações e posições, Números e métricas, Reconhecimento, Eventos e locais.
Layouts
Este cartão em tela cheia preenche toda a tela em paisagem ou retrato e não é colocado como canto, chip ou faixa.
Layouts: cheio. Formas: paisagem, retrato.
Layouts, temas e publicação de cartões. Veja os cartões.
Dados e privacidade
Feed: screenrig.heartrate/v1.
Documentos do feed carregam atribuição da fonte. O Player fornece o feed para o cartão.
Mostra apenas primeiros nomes ou apelidos: nunca sobrenome, idade, frequência cardíaca máxima além da porcentagem ou qualquer histórico de saúde, e o cartão não armazena nada sobre um membro.
Propriedades
Para tema, fundo, destaque e posição, veja Propriedades comuns.
Defina as propriedades estáticas nos params do cartão ao criá-lo. O documento de dados dele contém apenas propriedades dinâmicas. Linhas aninhadas descrevem o conteúdo da propriedade pai.
Propriedades estáticas
| Nome | Tipo | Padrão | Valores e limites | Descrição |
|---|---|---|---|---|
title | string | "Class effort" | maxLength: 40 | |
defaultMaxHr | integer | 190 | mínimo: 100; máximo: 230 | Frequência cardíaca máxima para um membro sem maxHr ou idade. |
rankBy | string | "points" | "points", "calories", "effort" | O que o ranking da tabela classifica: pontos de esforço, calorias ou porcentagem do máximo. Uma lista de membros sem nenhum dos primeiros recorre ao próximo. |
leaders | integer | 5 | mínimo: 3; máximo: 10 | Linhas no placar (menos quando o espaço é curto). |
perPage | integer | 24 | mínimo: 4; máximo: 48 | Azulejos em uma página; uma classe maior ocupa páginas adicionais. |
pageSeconds | integer | 10 | mínimo: 5; máximo: 60 | Quanto tempo cada página de blocos permanece na tela. |
showBpm | boolean | true | Exibir batimentos por minuto em cada bloco. | |
staleSeconds | integer | 45 | mínimo: 5; máximo: 3600 | Leituras mais antigas que esta escurecem os blocos e mostram Atualizado há 3 min. |
hour12 | boolean | false | ||
backgroundColor | string, nulo | null | padrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Substitui o fundo e a placa do cartão por uma cor plana ordenada por CSS. #RRGGBBAA fornece opacidade. background none tem precedência. |
textColor | string, nulo | null | padrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Substitui as cores do texto principal e secundário. As cores de destaque e status semântico mantêm seus papéis. |
Propriedades dinâmicas
| Nome | Tipo | Padrão | Valores e limites | Descrição |
|---|---|---|---|---|
className | string | "" | maxLength: 60 | A classe, por exemplo 6:00 AM Burn, quando o feed não fornece nenhuma. |
startedAt | string | "" | maxLength: 32 | Quando a aula começou, ISO 8601: o cabeçalho conta progressivamente a partir dela. |
endsAt | string | "" | maxLength: 32 | Quando a aula termina, ISO 8601: o cabeçalho conta regressivamente até ela. |
members | array | [] | minItems: 0; maxItems: 120 | Os membros na aula. Um feed (screenrig.heartrate/v1) prevalece quando presente; o armazenamento de dados fornece as mesmas linhas caso contrário. |
members[].id | string | maxLength: 40 | Um ID opaco de membro ou alça; nunca exibido. | |
members[].name | string | maxLength: 60; Obrigatório | Apenas a primeira palavra é mostrada. | |
members[].nickname | string | maxLength: 20 | Mostrado em vez do nome quando presente. | |
members[].hr | number | mínimo: 0; máximo: 260 | Frequência cardíaca em batimentos por minuto; 0 ou ausente significa sem sinal. | |
members[].maxHr | number | mínimo: 80; máximo: 240 | A frequência cardíaca máxima do membro. | |
members[].age | number | mínimo: 5; máximo: 110 | Usado para 220 menos a idade quando não há maxHr; nunca exibido. | |
members[].calories | number | mínimo: 0; máximo: 5000 | ||
members[].points | number | mínimo: 0; máximo: 5000 | Pontos de esforço (Myzone MEPs e similares). | |
updated | string | "" | maxLength: 32 | Quando as frequências cardíacas foram lidas, ISO 8601 (apenas armazenamento de dados; um feed carrega fetchedAt). |
Exemplo de tela
Salve as propriedades estáticas como params.json e crie o cartão. O resultado traz o id crd_ dele.
{
"theme": "neomustard"
}
screenrig card create --type heart-rate-wall --major 1 --file params.json
Adicione este item aos primitives de uma página da playlist, com esse id no lugar do id do exemplo. Publique a playlist e atribua uma tela.
{
"id": "heart-rate-wall",
"primitive": "card",
"card": "crd_01EXAMPLECARD000000000",
"layout": "full",
"content_fit": "fill"
}
Escrever dados ao vivo
Escreva o documento no cartão depois de criá-lo e depois substitua-o para atualizar a tela sem republicar. O cartão verifica cada gravação contra suas propriedades dinâmicas e recusa um documento que ele rejeita. Use o mesmo projeto da playlist.
Salve o documento como card-data.json. O CLI lê o documento em si, sem invólucro:
{
"className": "",
"startedAt": "",
"endsAt": "",
"members": [],
"updated": ""
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json
Ou chame a API diretamente. A API envolve o mesmo documento em um campo document. Um token de agente já nomeia seu projeto, então nenhum cabeçalho de projeto é enviado; se você enviar ScreenRig-Project, ele deve corresponder ao projeto do token. Forneça sua autorização de API pelo ambiente; veja Autenticação da API.
curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
--header "Authorization: Bearer $SCREENRIG_TOKEN" \
--header "Content-Type: application/json" \
--data '{"document":{"className":"","startedAt":"","endsAt":"","members":[],"updated":""}}'