This flow was submitted before accounts existed, so nobody owns it yet. If you submitted it, open the edit link you were given — it still works — and you can attach the flow to an account from there. There is no deadline, and attaching it retires the link for good.
NFL Team Scoreboard
Shows you the Team Scoreboard of your favorite NFL Team.
| System | Home Assistant Blueprint |
|---|---|
| Firmware | AWTRIX 3 |
| Topic | Smarthome |
| Built by | Hank_the_Tank |
| File | Kx0Qo4xqoneR.yaml · 16.1 KB |
| Icons | — |
| Published | 19 Aug 2023 · updated 13 Mar 2024 |
| Downloads | 18 |
NFL Team Scoreboard for AWTRIX Light
Prerequisites
Before using this blueprint, ensure that you have HACS installed. You also need the ha-teamtracker integration here.
Special Thanks to RobG
This would not be possible without him
Get the Awtrix Light Companion App for iOS/Android
Kx0Qo4xqoneR.yaml
blueprint:
name: "AWTRIX - NFL Team Scoreboard"
author: Hank_the_Tank
description: >
# NFL Team Scoreboard for AWTRIX Light
## Screenshots
 -  - 
## Prerequisites
**Before** using this blueprint, ensure that you have **HACS** installed. You also need the ha-teamtracker integration [here](https://github.com/vasqued2/ha-teamtracker).
## Credits
to Blueforcer for Awtrix Light
If you want to support his hard work in developing awtrix light, please consider to buy your Ulanzi clock with his affiliate links
[EU] [link](https://www.ulanzi.de/products/ulanzi-pixel-smart-uhr-2882?ref=28e02dxl)
[US] [link](https://www.ulanzi.com/products/ulanzi-pixel-smart-clock-2882?ref=28e02dxl)
If you already have hundreds of clocks, there are more ways to support him.
[Github](https://github.com/Blueforcer/awtrix-light#support)
wanna join the [Darkside](https://discord.gg/a3n8spsn)?
## Get the Awtrix Light Companion App for iOS/Android
<a href='https://play.google.com/store/apps/details?id=de.awtrix.light&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'>
<img style="width: 20%; height: auto;" alt='Get it on Google Play' src='https://raw.githubusercontent.com/fettesb/Homeassistant_blueprints/main/playstore_button.png'/>
</a>
<a href='https://apps.apple.com/de/app/awtrix-light/id6459478110'>
<img style="width: 20%; height: auto;" alt='Get it on Google Play' src='https://raw.githubusercontent.com/fettesb/Homeassistant_blueprints/main/appstore_button.png'/>
</a>
**Special Thanks to RobG** This would not be possible without him
**Thanks in advance**
domain: automation
input:
awtrix:
name: AWTRIX Device
description: Select the Awtrix 3
selector:
device:
integration: mqtt
manufacturer: Blueforcer
model: AWTRIX 3
multiple: true
appname:
name: Awtrix Application name
description: >-
This is the app name listed in the MQTT topic - it should be unique
default: "nflteamscore"
selector:
text:
message_duration:
name: Message Duration ⏱️
description: >-
How long should the message remain on the screen (in seconds).
selector:
number:
min: 0
max: 300
unit_of_measurement: "sec"
default: 15
my_sensor:
name: Football Sensor
description: Select your Football Team Sensor
selector:
entity:
filter:
- integration: teamtracker
source_url: https://raw.githubusercontent.com/fettesb/Homeassistant_blueprints/main/Awtrix%20NFL%20Team%20Scoreboard/awtrix_nfl_team_scoreboard.yaml
variables:
device_ids: !input awtrix
devices: >-
{% macro get_device(device_id) %}
{{ states((device_entities(device_id) | select('search','device_topic') | list)[0] | default('unknown')) }}
{% endmacro %}
{% set ns = namespace(devices=[]) %}
{% for device_id in device_ids %}
{% set device=get_device(device_id)|replace(' ','')|replace('\n','') %}
{% set ns.devices = ns.devices + [ device ] %}
{% endfor %}
{{ ns.devices | reject('match','unavailable|unknown') | list }}
appname: !input appname
my_sensor: !input my_sensor
message_duration: !input message_duration
team_colors_0: "{{ state_attr(my_sensor, 'team_colors')[0] }}"
team_colors_1: "{{ state_attr(my_sensor, 'team_colors')[1] }}"
opponent_colors_0: "{{ state_attr(my_sensor, 'opponent_colors')[0] }}"
opponent_colors_1: "{{ state_attr(my_sensor, 'opponent_colors')[1] }}"
team_score: >-
{% set raw_team_score = state_attr(my_sensor, 'team_score') %}
{% if raw_team_score|int < 10 %}
{{ "0" + raw_team_score|string }}
{% else %}
{{ raw_team_score|string }}
{% endif %}
opponent_score: >-
{% set raw_opponent_score = state_attr(my_sensor, 'opponent_score') %}
{% if raw_opponent_score|int < 10 %}
{{ "0" + raw_opponent_score|string }}
{% else %}
{{ raw_opponent_score|string }}
{% endif %}
first_quarter: >-
{"dp":[12,7,"#ffffff"]},
{"dp":[14,7,"#5F5F5F"]},
{"dp":[17,7,"#5F5F5F]},
{"dp":[19,7,"#5F5F5F]},
second_quarter: >-
{"dp":[12,7,"#ffffff"]},
{"dp":[14,7,"#ffffff"]},
{"dp":[17,7,"#5F5F5F]},
{"dp":[19,7,"#5F5F5F]},
third_quarter: >-
{"dp":[12,7,"#ffffff"]},
{"dp":[14,7,"#ffffff"]},
{"dp":[17,7,"#ffffff"]},
{"dp":[19,7,"#5F5F5F"]},
fourth_quarter: >-
{"dp":[12,7,"#ffffff"]},
{"dp":[14,7,"#ffffff"]},
{"dp":[17,7,"#ffffff"]},
{"dp":[19,7,"#ffffff"]},
payload_switch: >-
{
"name" : "{{ appname }}"
}
payload_game_start: >-
{
"draw":[
{"df":[0,0,16,8,"{{ team_colors_0 }}"]},
{"df":[16,0,16,8,"{{ opponent_colors_0 }}"]},
{"dl":[1,0,1,7,"{{ team_colors_1 }}"]},
{"dl":[3,0,3,7,"{{ team_colors_1 }}"]},
{"dl":[28,0,28,7,"{{ opponent_colors_1 }}"]},
{"dl":[30,0,30,7,"{{ opponent_colors_1 }}"]},
{{ first_quarter }}
{"dt":[7, 1, "{{ team_score }}",[255,255,255]]},
{"dt":[18, 1, "{{ opponent_score }}",[255,255,255]]},
{"dl":[15,3,16,3,"#ffffff"]}
],
"duration": {{ message_duration }}
}
payload_second_quarter: >-
{
"draw":[
{"df":[0,0,16,8,"{{ team_colors_0 }}"]},
{"df":[16,0,16,8,"{{ opponent_colors_0 }}"]},
{"dl":[1,0,1,7,"{{ team_colors_1 }}"]},
{"dl":[3,0,3,7,"{{ team_colors_1 }}"]},
{"dl":[28,0,28,7,"{{ opponent_colors_1 }}"]},
{"dl":[30,0,30,7,"{{ opponent_colors_1 }}"]},
{{ second_quarter }}
{"dt":[7, 1, "{{ team_score }}",[255,255,255]]},
{"dt":[18, 1, "{{ opponent_score }}",[255,255,255]]},
{"dl":[15,3,16,3,"#ffffff"]}
],
"duration": {{ message_duration }}
}
payload_third_quarter: >-
{
"draw":[
{"df":[0,0,16,8,"{{ team_colors_0 }}"]},
{"df":[16,0,16,8,"{{ opponent_colors_0 }}"]},
{"dl":[1,0,1,7,"{{ team_colors_1 }}"]},
{"dl":[3,0,3,7,"{{ team_colors_1 }}"]},
{"dl":[28,0,28,7,"{{ opponent_colors_1 }}"]},
{"dl":[30,0,30,7,"{{ opponent_colors_1 }}"]},
{{ third_quarter }}
{"dt":[7, 1, "{{ team_score }}",[255,255,255]]},
{"dt":[18, 1, "{{ opponent_score }}",[255,255,255]]},
{"dl":[15,3,16,3,"#ffffff"]}
],
"duration": {{ message_duration }}
}
payload_fourth_quarter: >-
{
"draw":[
{"df":[0,0,16,8,"{{ team_colors_0 }}"]},
{"df":[16,0,16,8,"{{ opponent_colors_0 }}"]},
{"dl":[1,0,1,7,"{{ team_colors_1 }}"]},
{"dl":[3,0,3,7,"{{ team_colors_1 }}"]},
{"dl":[28,0,28,7,"{{ opponent_colors_1 }}"]},
{"dl":[30,0,30,7,"{{ opponent_colors_1 }}"]},
{{ fourth_quarter }}
{"dt":[7, 1, "{{ team_score }}",[255,255,255]]},
{"dt":[18, 1, "{{ opponent_score }}",[255,255,255]]},
{"dl":[15,3,16,3,"#ffffff"]}
],
"duration": {{ message_duration }}
}
trigger:
- platform: state
entity_id:
- !input my_sensor
to: IN
id: Game Start
- platform: state
entity_id:
- !input my_sensor
to: POST
id: Game End
- platform: state
entity_id:
- !input my_sensor
attribute: team_score
id: Team Score Change
- platform: state
entity_id:
- !input my_sensor
attribute: opponent_score
id: Opponent Score Change
- platform: state
entity_id:
- !input my_sensor
attribute: quarter
id: Quarter Change
condition: []
action:
- repeat:
for_each: "{{ devices }}"
sequence:
- choose:
- conditions:
- condition: trigger
id:
- Game Start
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_game_start }}"
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/switch"
payload: "{{ payload_switch }}"
- conditions:
- condition: trigger
id:
- Quarter Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 1
below: 3
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_second_quarter }}"
- conditions:
- condition: trigger
id:
- Quarter Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 2
below: 4
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_third_quarter }}"
- conditions:
- condition: trigger
id:
- Quarter Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 3
below: 5
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_fourth_quarter }}"
- conditions:
- condition: trigger
id:
- Team Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 0
below: 2
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_game_start }}"
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/switch"
payload: "{{ payload_switch }}"
- conditions:
- condition: trigger
id:
- Team Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 1
below: 3
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_second_quarter }}"
- conditions:
- condition: trigger
id:
- Team Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 2
below: 4
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_third_quarter }}"
- conditions:
- condition: trigger
id:
- Team Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 3
below: 5
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_fourth_quarter }}"
- conditions:
- condition: trigger
id:
- Opponent Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 0
below: 2
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_game_start }}"
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/switch"
payload: "{{ payload_switch }}"
- conditions:
- condition: trigger
id:
- Opponent Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 1
below: 3
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_second_quarter }}"
- conditions:
- condition: trigger
id:
- Opponent Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 2
below: 4
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_third_quarter }}"
- conditions:
- condition: trigger
id:
- Opponent Score Change
- condition: numeric_state
entity_id: !input my_sensor
attribute: quarter
above: 3
below: 5
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
payload: "{{ payload_fourth_quarter }}"
- repeat:
for_each: "{{ devices }}"
sequence:
- choose:
- conditions:
- condition: trigger
id:
- Game End
sequence:
- service: mqtt.publish
data:
qos: 0
retain: false
topic: "{{ repeat.item }}/custom/{{ appname }}"
mode: restart
More flows for Home Assistant Blueprint or Smarthome
Something wrong with this flow? Report it.

