Real-Time Sports Scores w/ TeamTracker and TeamTracker-Card (Beta)

This.

The API is only returning matches through Sept 14th as of today, as indicated by the api_message or what is displayed on the NOT_FOUND card.

1 Like

Hello, how to differentiate two teams in French league 1 which have the same team_id like the clubs of Monaco and Montpellier => “MON”

THANKS

They won’t have the same team_id on the ESPN API…you need to get the details from there…

edit: actually looking at that they do both seem to be MON as you mention on their main page :see_no_evil::man_shrugging:t2:…maybe someone else has a bright idea as the “real” team_id must be somewhere

another edit…
so MON is Monaco…but what works for Montpellier :thinking:

and more updating…
if you create a sensor for Montpellier’s next opponent (Auxerre) it shows Montpellier correctly as the opponent but does list their abbreviation as MON…at this stage I’m stumped…

FINAL UPDATE
Ok…so I’ve overthought this…back to the Readme for the integrtation and of course we can use the "team abbreviation, team ID, athlete name, wildcard, or a regex… " so using their ID of 274 rather the abbreviation of MON works fine :partying_face:

Thank you,

It works like a charm :wink:

  - platform: teamtracker
    league_id: LIG1
    team_id: 274
    name: Ligue_1_Montpellier

  - platform: teamtracker
    league_id: LIG1
    team_id: 174
    name: Ligue_1_Monaco    
1 Like

Hi I hope somebody can help me.

I have this sensor in my configuration.yaml for soccer German 2.Bundesliga

  - platform: rest
    name: team_tracker_bund2_tabelle
    scan_interval: 3600 # 1 Tag // 3600sek = 1 Stunde
    resource: https://site.web.api.espn.com/apis/v2/sports/soccer/ger.2/standings? 
    type=0&level=0
    value_template: "{{ now() }}"
    json_attributes_path: "$['children'][0]['standings']"
    json_attributes:
      - entries

and this to display the standings on the Dashboard

type: custom:flex-table-card
entities:
  include: sensor.team_tracker_bund2_tabelle
columns:
  - name: Rang
    data: entries
    modify: x.stats[10].value
  - name: Logo
    data: entries
    modify: '''<img src="'' + x.team.logos[0].href + ''"style="width: 30%">'''
  - name: Mannschaft
    data: entries
    modify: x.team.name
  - name: Sp
    data: entries
    modify: x.stats[0].value
  - name: D
    data: entries
    modify: x.stats[2].value
  - name: Pkt
    data: entries
    modify: x.stats[3].value

I want to modify the custom:flex-table-card to display the up and down prior to previous standing like this


but I have no Idea how to do that

You should ask for help here:

In my opinion, sections is a great addition to Homeassistant UI. One piece of feedback though for this particular card is that there’s less possibility for for me to tune the size of the team tracker card to fit dashboards that are based on sections.

Maybe this is possible to tune a bit with custom CSS stuff, but then I’d be out of my depth? I’m really, really not compatible with css.

Regardless, it be great to have more possibilities to customize the size of the card to fit with different sections layouts.

The wiki explains how to use card-mod to do this.

1 Like

I think this is what you need

- name: Up-Down
  data: entries
  modify: |-
         if (x.current == x.previous)
           '<ha-icon icon="mdi:minus" >'
         else if (x.current =="0")
           '<ha-icon icon="mdi:bomb" style="color:red;" >'
         else if (x.previous == "0")
           '<div><ha-icon icon="mdi:hand-clap" style="color:blue;"></ha-icon>&nbsp;' +  "New " + '</div>';
         else if (x.current > x.previous)
           '<div><ha-icon icon="mdi:arrow-down" style="color:red;"></ha-icon>&nbsp;' +  "Dn "+ (x.current - x.previous) + '</div>';
         else if (x.current < x.previous)
           '<div><ha-icon icon="mdi:arrow-up" style="color:green;"></ha-icon>&nbsp;' + "Up "+ (x.previous - x.current) + '</div>';

I’m not the sharpest crayon in the toolbox so forgive me for asking this. I have scanned several threads and checked the wiki but I cant find out why the state_attr(team, “team_homeawat”) == “home”…) is set to only home.

Whats the logic behind that. I know what it does but why use that and leave out away games?

Thanks

Because if you only choose one (“home” is this case) you will not get two cards – one for the “home” team and one for the “away” team. That said, it all depends on the sport of interest. Like you would have two mlb entries right now (one for DET and one for CLE) instead of one which would be CLE as they are at home.

Makes sense. Thanks for the reply

Hey there… New to HA and Team Tracker… I installed this a few days ago to track my NY sports teams. Added Yankees, Giants, and Knicks, everything working fine in attributes. But then yesterday, Yankees stopped working. Says not found. Used the NYY abbreviation and it was working. Tried deleting and re adding, restarted HA… But still can’t be found. Anyone else have this issue, or any idea how to fix? Thanks in advance!

Looks like it’s working now. Maybe it’s acting weird because it’s postseason.

Looks good to me. Really good!

Can anyone help me make an automation based on the outcome of a game (win or loss). I’ve tried multiple things so far but nothing seems to be working. Any help would be greatly appreciated. I’ve attached one of the things I’ve tried so far. I’ve also tried triggering based on team_winner true or false and that hasn’t worked either. I’ve gotten pretty much everything else I’ve wanted to work so far except for this.

I use this. Add trigger entities as needed:

alias: Notify Game Ends
description: ""
mode: single
triggers:
  - entity_id:
      - sensor.texas_rangers
    to: POST
    from: IN
    trigger: state
conditions: []
actions:
  - variables:
      end_term: >-
        {% if trigger.to_state.attributes.sport == 'baseball' %} innings {% elif
        trigger.to_state.attributes.sport == 'hockey' %} periods {% elif
        trigger.to_state.attributes.sport == 'football' %} quarters {% else %}
        {% endif %}
  - delay:
      hours: 0
      minutes: 0
      seconds: 30
      milliseconds: 0
  - data:
      title: >
        {{trigger.to_state.attributes.team_name}} vs 
        {{trigger.to_state.attributes.opponent_name}}
      message: >
        {{trigger.to_state.attributes.team_name}} {% if
        trigger.to_state.attributes.team_score|int >
        trigger.to_state.attributes.opponent_score|int %} win {% elif
        trigger.to_state.attributes.team_score|int <
        trigger.to_state.attributes.opponent_score|int %} lose {% else %} tie {%
        endif %} {{
        trigger.to_state.attributes.team_score}}-{{trigger.to_state.attributes.opponent_score}} 
        in  {{trigger.to_state.attributes.quarter}} {{end_term}}.
      data:
        image: "{{trigger.to_state.attributes.team_logo}}"
    action: notify.all_phones

Let us know if you need more.

The delay is because the wife would yell at me if she was notified before we saw it on our streaming service :slight_smile:

https://github.com/giasemidis/euroleague_api

Salut can you post your code for the card? Do you have enter all teams from the ligue1 manually ?

So, I’ve got a tablet that I’m using as a home dashboard, and one of the things I want to have up on it is a few team tracker cards. The only issue is I want to lock down the tablet so that there’s no internet access (or at least, minimal internet access), but still be able to get team logos on the team tracker card. Of course, ESPN uses akamai so trying to nail down all the IP Addresses you’d need to open up is a can of worms, so limiting it that way is pretty much out of the question.

I could download all the assets for teams whose card I’d like to have up, or I could set up a reverse proxy - but then I’m stil stuck on how to update the cards so that they point to these local assets or the proxy. I think the path of least resistance is to use a helper entity to basically clone a team tracker entity and only update the logo attributes. I’m… Not certain how I could achieve that, though… Any ideas?