Nota: Esta aplicação é baseado num post que encontrei, há dias, no reddit. Por isso, tirando alguns insignificantes detalhes não tenho qualquer mérito de autoria.
Nota2: Algumas coisas tiveram de ser alteradas, devido às mais recentes actualizações. Em baixo segue a “aplicação” actualizada.
Antes de mais nada, devem seguir as excelentes indicações deixadas no post do @RodolfoVieira, sobre como conseguir as credenciais & password, de forma a conectar o Google Calendar ao vosso HA:
Tendo acesso ao vosso calendário, têm de ir ao site: https://fixtur.es/en/superliga
Escolham o país, competição e equipa - caso queiram uma diferente -, e de seguida carreguem no icon: “Google Calendar.”
Façam Restart, no HA ,e confirmem no ficheiro google_calendars.yaml a nova adição.
Tomem nota do device_id pretendido e criem os seguintes templates, no configuration.yaml:
- platform: template
sensors:
time_until_next_equipa_game_minutes:
friendly_name: Time Until Next Equipa Game Minutes
unit_of_measurement: minutes
value_template: >-
{% if states.calendar.equipa.attributes.start_time %}
{{((as_timestamp(states.calendar.equipa.attributes.start_time) - as_timestamp(now())) / 60) | int }}
{%- else -%}
0
{%- endif %}
- platform: template
sensors:
time_until_next_equipa_game:
friendly_name: Time Until Next Equipa Game
value_template: >-
{% set time = (((states('sensor.time_until_next_equipa_game_minutes') | int) * 60) | int) | int %}
{% set minutes = ((time % 3600) / 60) | int %}
{% set hours = ((time % 86400) / 3600) | int %}
{% set days = (time / 86400) | int %}
{%- if time < 60 -%}
Game!
{%- else -%}
{%- if days > 0 -%}
{{ days }} days
{%- endif -%}
{%- if hours > 0 -%}
{%- if days > 0 or hours -%}
{{ ' ' }}
{%- endif -%}
{{ hours }} hours
{%- endif -%}
{%- if minutes > 0 -%}
{%- if days > 0 or hours > 0 -%}
{{ ' ' }}
{%- endif -%}
{{ minutes }} minutes
{%- endif -%}
{%- endif -%}
Alterem, “equipa” pelo vosso device_id.
De seguida, numa localização à vossa escolha, no Lovelace, criem uma nova Card e escolham a última opção “Manual”, acrescentando o seguinte:
type: button
tap_action:
action: more-info
entity: sensor.time_until_next_equipa_game
show_state: true
show_icon: false
hold_action:
action: none
Mais uma vez, alterem “equipa” pelo vosso device_id.
O resultado deverá ser algo como isto:
Tottenham, no meu caso.
O quê?.. Gosto de ver portugueses a darem cartas no estrangeiro.
Quanto à Automatização; vão a Configuration/Configuração, Automations/Automatizações e Add Automations/Adicionar Automatizações.
Comecem com uma Automatização “limpa”; carreguem no três pontinhos (hamburguer) no topo-direito e escolhe a opção de editar como YAML.
Apaguem o que lá aparece e copiem o seguinte code:
alias: Equipa's Game - Start (Minutes)
description: ''
trigger:
- platform: state
entity_id: sensor.time_until_next_equipa_game
from: '10'
to: '9'
condition: []
action:
- service: tts.google_translate_say
data:
message: The game is starting.
entity_id: all
mode: single
Mas, mais uma vez, se tiverem seguido as indicações, apenas terão de alterar o “equipa” pelo device_id de antes.
No meu caso, criei o trigger para quando os minutos decrescentes se alteram de 10->9, de modo a dar-me tempo para preparar tudo. Assim como a receber uma notificação-falada em todos os Google Minis, pela casa: “The game is starting.”
Alterem isso ao vosso gosto.
PS. Dêem, também, uma vista de olhos no Tutorial do @vpnobrega, sobre as transmissões televisivas dos jogos. Parece-me um óptimo acrescento!
edit: actualização