{% from 'formatting.jinja' import cleanup %} {% macro sports_str(team,type) %} {% if type == 'start' %} {% if state_attr(team,'league') in ['NFL','NCAAF'] %} Kickoff {% elif state_attr(team,'league') == 'MLB' %} First pitch {% elif state_attr(team,'league') == 'NHL' %} Puck drop {% endif %} {% endif %} {% endmacro %} {% macro sports_pregame(team) %} {% macro data() %} {% if is_state(team,'PRE') %} {% set date = state_attr(team,'date') | as_timestamp | timestamp_custom('%m-%d') %} {% if date == now().strftime('%m-%d') %} The {{ state_attr(team,'friendly_name') }} will be playing today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} at {{ state_attr(team,'venue') }}. {{ sports_str(team,'start') }} is at {{ state_attr(team,'date') | as_timestamp | timestamp_custom('%I:%M %p') }}. {% endif %} {% endif %} {% endmacro%} {{ cleanup(data()) }} {% endmacro %} {% macro sports_main(team) %} {% macro data() %} {% if is_state(team,'POST') %} {% set date = state_attr(team,'date') | as_timestamp | timestamp_custom('%m-%d') %} {% set yday = (as_timestamp(now()) - (24*3600)) | timestamp_custom('%m-%d') %} {% if date == now().strftime('%m-%d') %} {% if state_attr(team,'clock') in ['postponed','Postponed'] %} The {{ state_attr(team,'friendly_name') }} had their game postponed today, and it will be played at a later date. {% elif (state_attr(team,'team_score') | int) == state_attr(team,'opponent_score') | int %} The {{ state_attr(team,'friendly_name') }} tied in their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}. {% elif state_attr(team,'team_winner') == true %} The {{ state_attr(team,'friendly_name') }} won their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}. {% elif state_attr(team,'opponent_winner') == true %} The {{ state_attr(team,'friendly_name') }} lost their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}. {% endif %} {% if state_attr(team,'clock') not in ['postponed','Postponed'] %} This brings their record to {{ state_attr(team,'team_record') | replace("-"," and ") }} on the season. {% endif %} {% elif yday == date %} {% if state_attr(team,'clock') in ['postponed','Postponed'] %} The {{ state_attr(team,'friendly_name') }} had their game postponed yesterday, and it will be played at a later date. {% elif (state_attr(team,'team_score') | int) == state_attr(team,'opponent_score') | int %} The {{ state_attr(team,'friendly_name') }} tied in their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}. {% elif state_attr(team,'team_winner') == true %} The {{ state_attr(team,'friendly_name') }} won their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}. {% elif state_attr(team,'opponent_winner') == true %} The {{ state_attr(team,'friendly_name') }} lost their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}. {% endif %} {% if state_attr(team,'clock') not in ['postponed','Postponed'] %} This brings their record to {{ state_attr(team,'team_record') | replace("-"," and ") }} on the season. {% endif %} {% endif %} {% elif is_state(team,'IN') %} {% if (state_attr(team,'team_score') | int) == (state_attr(team,'opponent_score') | int) %} The {{ state_attr(team,'friendly_name') }} are currently tied in their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}. {% elif (state_attr(team,'team_score') | int) > (state_attr(team,'opponent_score') | int) %} The {{ state_attr(team,'friendly_name') }} are currently winning their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}. {% else %} The {{ state_attr(team,'friendly_name') }} are currently losing their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} with a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}. {% endif %} {% endif %} {% endmacro %} {{ cleanup(data()) }} {% endmacro %} {% macro sports_inhibit(team) %} {% if is_state(team,'NOT_FOUND') %} true {% elif state_attr(team,'kickoff_in') %} {{ 'months' in state_attr(team,'kickoff_in') or 'month' in state_attr(team,'kickoff_in') or 'weeks' in state_attr(team,'kickoff_in') }} {% endif %} {% endmacro %} {% macro sports_today(team) %} {% if states(team) != 'NOT_FOUND' %} {% set date = state_attr(team,'date') | as_timestamp | timestamp_custom('%m-%d') %} {% else %} {% set date = 'none' %} {% endif %} {% if date == now().strftime('%m-%d') %} {{ states(team) in ['PRE','IN'] }} {% endif %} {% endmacro %} {% macro sports_updates(time) %} {% macro data() %} {% if time == 'pregame' %} {% if is_state('binary_sensor.michigan_wolverines_inhibit','off') %} {{ sports_pregame('sensor.michigan_wolverines') }} {% endif %} {% if is_state('binary_sensor.ohio_state_buckeyes_inhibit','off') %} {{ sports_pregame('sensor.ohio_state_buckeyes') }} {% endif %} {% if is_state('binary_sensor.toledo_rockets_inhibit','off') %} {{ sports_pregame('sensor.toledo_rockets') }} {% endif %} {% if is_state('binary_sensor.minnesota_vikings_inhibit','off') %} {{ sports_pregame('sensor.minnesota_vikings') }} {% endif %} {% if is_state('binary_sensor.san_francisco_49ers_inhibit','off') %} {{ sports_pregame('sensor.san_francisco_49ers') }} {% endif %} {% if is_state('binary_sensor.minnesota_twins_inhibit','off') %} {{ sports_pregame('sensor.minnesota_twins') }} {% endif %} {% if is_state('binary_sensor.cleveland_guardians_inhibit','off') %} {{ sports_pregame('sensor.cleveland_guardians') }} {% endif %} {% if is_state('binary_sensor.los_angeles_dodgers_inhibit','off') %} {{ sports_pregame('sensor.los_angeles_dodgers') }} {% endif %} {% if is_state('binary_sensor.minnesota_wild_inhibit','off') %} {{ sports_pregame('sensor.minnesota_wild') }} {% endif %} {% elif time == 'main' %} {% if is_state('binary_sensor.michigan_wolverines_inhibit','off') %} {{ sports_main('sensor.michigan_wolverines') }} {% endif %} {% if is_state('binary_sensor.ohio_state_buckeyes_inhibit','off') %} {{ sports_main('sensor.ohio_state_buckeyes') }} {% endif %} {% if is_state('binary_sensor.toledo_rockets_inhibit','off') %} {{ sports_main('sensor.toledo_rockets') }} {% endif %} {% if is_state('binary_sensor.minnesota_vikings_inhibit','off') %} {{ sports_main('sensor.minnesota_vikings') }} {% endif %} {% if is_state('binary_sensor.san_francisco_49ers_inhibit','off') %} {{ sports_main('sensor.san_francisco_49ers') }} {% endif %} {% if is_state('binary_sensor.minnesota_twins_inhibit','off') %} {{ sports_main('sensor.minnesota_twins') }} {% endif %} {% if is_state('binary_sensor.cleveland_guardians_inhibit','off') %} {{ sports_main('sensor.cleveland_guardians') }} {% endif %} {% if is_state('binary_sensor.los_angeles_dodgers_inhibit','off') %} {{ sports_main('sensor.los_angeles_dodgers') }} {% endif %} {% if is_state('binary_sensor.minnesota_wild_inhibit','off') %} {{ sports_main('sensor.minnesota_wild') }} {% endif %} {% endif %} {% endmacro %} {{ cleanup(data()) }} {% endmacro %} {% macro sports_datetime(team) %} {{ as_timestamp(state_attr(team,'date')) | timestamp_custom('%Y-%m-%d %H:%M:%S') }} {% endmacro%}