O jogo do seu time no Home Assistant: Próximo Jogo do zero
Instale pelo Marketplace, escolha a série e o time e tenha no painel a data, o horário, o estádio e onde passa o próximo jogo, com card, calendário e aviso antes da bola rolar.
Prefere ver? Assista ao vídeo"Que horas é o jogo?" era um dos pedidos que mais chegavam aqui no canal. Em vez de ensinar mais uma gambiarra com script e sensor MQTT, eu fiz um componente: o Próximo Jogo mostra no Home Assistant a data, a hora, o adversário, o estádio, o campeonato e onde passa o próximo jogo do seu time, para qualquer clube da Série A e da Série B.
Ele é gratuito e de código aberto, e eu sou o autor. Vem com um card pronto para o painel, um calendário de jogos e uma automação de aviso para você importar com um clique.
Antes de começar
Você vai precisar de:
- Home Assistant 2024.11 ou mais novo;
- internet no Home Assistant (os dados vêm das páginas públicas do ge).
A partir do Home Assistant 2026.11, o HACS já vem embutido como Marketplace. Nas versões anteriores, o caminho é o HACS, explicado logo abaixo.
1. Instalar o componente
No Home Assistant 2026.11 ou mais novo:
- Abra Configurações › Marketplace.
- Clique em Adicionar a partir do link e cole
https://github.com/dougbaptista/ha_proximo_jogo. Na primeira vez ele pede para conectar a sua conta do GitHub (só leitura). - O Próximo Jogo aparece na seção Novo. Abra e clique em Instalar.
A configuração abre sozinha, sem reiniciar.
No Home Assistant 2026.10 ou anterior:
- HACS › três pontinhos › Repositórios personalizados.
- Cole o link do repositório, escolha o tipo Integração e adicione.
- Baixe o Próximo Jogo e reinicie o Home Assistant.
2. Escolher a série e o time
Em Configurações › Dispositivos e serviços › Adicionar integração › Próximo Jogo:
- Escolha a série: Série A ou Série B.
- Escolha o time. A lista não é fixa: ela vem da classificação do ge na hora da instalação, então sempre bate com a temporada.
Quer acompanhar mais de um time? Repita o processo. Cada time vira um serviço separado.
3. O que ele cria
Para cada time, um dispositivo com:
| Entidade | O que mostra |
|---|---|
| Próximo jogo | data e hora da partida |
| Adversário | contra quem é |
| Campeonato | Brasileirão, Copa do Brasil, Libertadores, Sul-Americana, estadual |
| Estádio | onde é o jogo |
| Mando | em casa ou fora de casa |
| Onde assistir | os canais e streamings |
| Jogos (calendário) | a agenda do time no calendário do Home Assistant |
O sensor Próximo jogo também carrega tudo nos atributos (mandante, visitante, escudos, rodada ou fase, placar e situação), o que deixa os templates fáceis.
Exemplo de template
Em Ferramentas de desenvolvedor › Modelo, troque gremio pelo seu time:
{% set jogo = 'sensor.gremio_proximo_jogo' %}
{% set dias = ['segunda', 'terça', 'quarta', 'quinta',
'sexta', 'sábado', 'domingo'] %}
{% set inicio = as_datetime(states(jogo)) | as_local %}
{{ state_attr(jogo, 'time') }} contra o
{{ states('sensor.gremio_adversario') }},
{{ dias[inicio.weekday()] }} às {{ inicio.strftime('%H:%M') }},
na {{ states('sensor.gremio_estadio') }}.Ele devolve algo como "Grêmio contra o Atlético-MG, sábado às 18:00, na Arena MRV.", pronto para a Alexa falar ou para mandar no Telegram.
4. O card no painel
O card vem junto com a integração. Não precisa instalar nada à parte.
- Edite o painel e clique em Adicionar cartão.
- Procure Próximo Jogo. Ele já vem preenchido com o sensor do primeiro time.
- No editor visual, escolha o time e ligue ou desligue: mostrar campeonato, mostrar onde assistir e nome do time em vez da sigla.
O card acompanha o jogo: antes, mostra quando é; com a bola rolando, aparece o selo AO VIVO e o placar; sem jogo marcado, ele avisa em vez de mostrar coisa errada. Um toque abre a página da partida no ge.
Prefere YAML? O código do card está logo abaixo deste artigo.
5. Atualização e falta de internet
- No dia a dia, ele consulta uma vez por hora.
- A partir de uma hora antes do jogo e durante a partida, passa para de cinco em cinco minutos (é o placar ao vivo). Depois do apito final, volta ao normal.
- Se a internet cair ou o site demorar, o card continua mostrando o último jogo que conhecia e atualiza sozinho na próxima consulta que der certo.
6. Calendário de jogos
Os jogos aparecem no menu Calendário do Home Assistant. E calendário também é gatilho de automação: "uma hora antes do evento, faça alguma coisa", sem sensor de data nem template complicado.
7. Automação de aviso (blueprint)
Fiz um blueprint que:
- avisa antes do jogo, com quem é, onde é e onde passa;
- repete o aviso de tempos em tempos até a bola rolar (por exemplo, a cada 30 minutos a partir de 2 horas antes);
- acende a luz na cor do time quando o jogo começa, se tiver alguém em casa.
Para usar, importe o blueprint (botão no código logo abaixo deste artigo) e crie a automação a partir dele. É só um formulário: time, antecedência, intervalo, como avisar, quem conta como "em casa", luzes e cor.
Ele já vem configurado para aparecer nas notificações do próprio Home Assistant. Para receber no celular, no Telegram, no WhatsApp ou na Alexa, troque a ação usando {{ titulo }} e {{ mensagem }}.
Limites (sendo honesto)
- Os dados vêm das páginas públicas do ge. Não é uma API oficial e o componente não tem ligação com o Grupo Globo.
- Se o site mudar, o componente pode parar de atualizar. O card continua mostrando o último jogo conhecido, e eu solto uma correção. Se acontecer, abra um aviso no GitHub.
- Remo e Cuiabá não têm agenda no ge. Para eles aparece só o jogo do Brasileirão da rodada atual.
Links
Qual é o seu time e o que você quer na próxima versão? Outras séries, outros esportes, Fórmula 1? Comenta aqui embaixo.
Blueprint: aviso antes do jogo do seu time
blueprint:
name: Próximo Jogo - aviso antes do jogo
description: >
Avisa antes do jogo do seu time e repete o aviso de tempos em
tempos até a bola rolar. Quando o jogo começa, se tiver alguém em casa,
acende a luz na cor do time.
Usa o sensor "Próximo jogo" da integração Próximo Jogo
(https://github.com/dougbaptista/ha_proximo_jogo).
domain: automation
source_url: https://github.com/dougbaptista/ha_proximo_jogo/blob/main/blueprints/automation/proximo_jogo/aviso_do_jogo.yaml
input:
jogo:
name: Time
description: "O sensor Próximo jogo do time, por exemplo sensor.gremio_proximo_jogo."
selector:
entity:
filter:
- integration: proximo_jogo
domain: sensor
device_class: timestamp
antecedencia:
name: Começar a avisar quanto tempo antes
default: 120
selector:
number:
min: 5
max: 1440
step: 5
unit_of_measurement: min
intervalo:
name: Repetir o aviso a cada
description: Use 0 para avisar uma vez só.
default: 30
selector:
number:
min: 0
max: 240
step: 5
unit_of_measurement: min
aviso:
name: Como avisar
description: >
Já vem com a notificação do próprio Home Assistant. Troque pelo
celular (notify.mobile_app_...), Telegram, WhatsApp ou Alexa, usando
{{ titulo }} e {{ mensagem }} no texto.
default:
- action: persistent_notification.create
data:
title: "{{ titulo }}"
message: "{{ mensagem }}"
notification_id: proximo_jogo_aviso
selector:
action: {}
presenca:
name: Quem conta como "tem alguém em casa"
description: A zona Casa (zone.home), uma pessoa, um grupo ou um sensor de presença.
default: zone.home
selector:
entity:
filter:
- domain: [zone, person, group, binary_sensor, input_boolean]
luzes:
name: Luzes que acendem quando o jogo começa (opcional)
default: []
selector:
entity:
multiple: true
filter:
- domain: light
cor:
name: Cor do time
default: [0, 114, 206]
selector:
color_rgb: {}
mode: single
max_exceeded: silent
trigger_variables:
jogo: !input jogo
antecedencia: !input antecedencia
triggers:
# Fica verdadeiro quando entra na janela de aviso. O now() faz o Home
# Assistant reavaliar a cada minuto, então não precisa de outro gatilho.
- trigger: template
value_template: >
{% set inicio = as_datetime(states(jogo), none) %}
{{ inicio is not none
and state_attr(jogo, 'hora_definida') != false
and inicio - timedelta(minutes=antecedencia | int) <= now() < inicio }}
variables:
jogo: !input jogo
intervalo: !input intervalo
presenca: !input presenca
luzes: !input luzes
cor: !input cor
# Guardado como texto ISO: variáveis de automação não preservam datetime.
inicio: "{{ states(jogo) }}"
actions:
- repeat:
sequence:
- variables:
minutos: "{{ ((as_datetime(inicio) - now()).total_seconds() / 60) | round(0) | int }}"
quando: >-
{% if minutos >= 60 %}{{ minutos // 60 }} h{{ ' %02d min' % (minutos % 60) if minutos % 60 else '' }}{% else %}{{ minutos }} min{% endif %}
mensagem: >-
{{ state_attr(jogo, 'mandante') }} x {{ state_attr(jogo, 'visitante') }} começa em {{ quando }}
({{ (as_datetime(inicio) | as_local).strftime('%H:%M') }}).
{%- if state_attr(jogo, 'estadio') %} Local: {{ state_attr(jogo, 'estadio') }}.{% endif %}
{%- if state_attr(jogo, 'transmissao') %} Onde assistir: {{ state_attr(jogo, 'transmissao') | join(', ') }}.{% endif %}
titulo: "⚽ Jogo do {{ state_attr(jogo, 'time') }}"
- choose: []
default: !input aviso
# Espera o intervalo, sem passar do início do jogo.
- delay:
seconds: >
{% set falta = (as_datetime(inicio) - now()).total_seconds() %}
{{ [falta, intervalo | int * 60 if intervalo | int > 0 else falta] | min | int }}
# Para 30 s antes: a espera é truncada e, sem essa folga, sairia um
# último aviso de "começa em 0 min".
until:
- condition: template
value_template: >
{{ now() >= as_datetime(inicio) - timedelta(seconds=30)
or intervalo | int == 0 }}
# Com aviso único (intervalo 0), espera o início para a parte da luz.
- wait_template: "{{ now() >= as_datetime(inicio) }}"
timeout:
hours: 24
- if:
- condition: template
value_template: >
{% set s = states(presenca) %}
{{ luzes | count > 0 and
((presenca.startswith('zone.') and s | int(0) > 0)
or s in ['on', 'home']) }}
then:
- action: light.turn_on
target:
entity_id: "{{ luzes }}"
data:
rgb_color: "{{ cor }}"
brightness_pct: 100Card Próximo Jogo: o jogo do seu time no painel
# Card "Próximo Jogo" — vem junto com a integração, não precisa instalar nada à parte.
# Troque sensor.gremio_proximo_jogo pelo sensor "Próximo jogo" do seu time.
type: custom:proximo-jogo-card
entity: sensor.gremio_proximo_jogo
mostrar_campeonato: true # campeonato e rodada no topo
mostrar_transmissao: true # "onde assistir" embaixo
mostrar_nome: false # true = nome do time em vez da sigla0 comentários
Carregando comentários…
Também respondo os comentários no YouTube.
Escolhidos para você
Veja também
44:39VídeoHACS - Instalando e Configurando no Home Assistant [Pt-BR]
HACS - Home Assistant Community Store Aprenda instalar e configurar no seu Home Assistant, dando mais estilo a suas telas do seu Home Assistant.
13:43VídeoIntegre o Home Assistant com Google Sheets e Automatize Seus Registros! (Tutorial Passo a Passo) 🚀
Integre o Home Assistant ao Google Sheets e registre automaticamente logs, eventos e sensores!
25:49VídeoMonitoramento de Preços de Combustíveis com Home Assistant | Componente Fuel Prices via HACS
Monitoramento automático de preços de combustíveis no Home Assistant com um componente personalizado! ⛽
11:09VídeoSua casa em 3D no Home Assistant: NeonPlan 3D do zero (grátis)
⚠️ AVISO IMPORTANTE: o Marketplace nativo chega na versão 2026.11 do Home Assistant, com lançamento estável previsto para 4 de novembro de 2026. Gravei este vídeo na versão beta.…
Blueprint: sincroniza luz e interruptor nos dois sentidos
Liga a luz pelo interruptor e o interruptor pela luz, sem loop. Uso na escada e na garagem aqui de casa.
ConfiguraçãoGasto de energia do mês em reais
Utility meter que zera todo mês + tarifa editável na tela + sensor de quanto o mês já custou.
Canal no YouTube
Toda semana, uma automação nova funcionando de verdade.
Passo a passo em português, sem enrolação, testado aqui em casa.