Zum Hauptinhalt springen

Team Tracker Smart-Home-Integration, kostenlos und Open Source

Team Tracker-Integration für Gladys Assistant

Follow your sports teams: live scores, next match, and scenes when your team scores.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

Follow your sports teams in Gladys: live scores, the next match, and scenes that run when your team scores or wins.

Beta. Scores come from ESPN's public API, which is free but undocumented: it can change without notice. Feedback is welcome on the GitHub repository or on the Gladys forum.

What you get​

  • One device per team, with three values:
    • Score: your team's score in the current (or last) match;
    • Opponent score;
    • Match: one line, e.g. Live · 63' · PSG 2 – 1 OM, Final · PSG 2 – 1 OM · Win or Next · Sat, Oct 17, 05:15 PM · at STR.
  • Scene triggers: match starting soon, match started, my team scored, opponent scored, match ended.
  • A scene action that reads the match of a team, to announce the score or to change the lights depending on the result.
  • Two dashboard widgets: the live match of one team, and the list of all your teams.

No account, no API key, nothing to install on your network. Gladys 5.1 or later is required.

Configuration​

  1. Open the Configuration tab of the integration.

  2. In Teams, write the teams to follow as LEAGUE:TEAM, separated by commas:

    LIG1:PSG, TOP14:RAC, NFL:KC, NBA:LAL
    • LEAGUE is a code of the table below.
    • TEAM is the team's abbreviation (PSG, KC) or its ESPN id (160).
    • Not sure? Click Find a team, pick the league, type part of the name: the integration lists the exact lines to paste.
  3. Pick the language of the match texts and your time zone (e.g. America/New_York, Europe/Paris), used to write kickoff times.

  4. Save, then click Test the teams: every team is listed with its current or next match, and every entry that cannot be followed says why.

  5. Open the Discovery tab and add the team devices.

Other settings​

SettingDefaultMeaning
Kickoff reminder (min)30The "Match starting soon" trigger fires this long before.
Refresh during a match (s)30How often scores are read while a match is live.
Refresh between matches (min)15How often the next matches are checked otherwise.
Time zoneEurope/ParisKickoff times are written in this zone (IANA name).
Language of the match textsEnglishLanguage of the "Match" line and of the scene summary.

The integration wakes up on its own for the reminder and for the kickoff: you do not need a short refresh to catch the start of a match.

Leagues​

CodeLeagueCodeLeague
LIG1Ligue 1TOP14Top 14
LIG2Ligue 2SIXNSix Nations
CDFCoupe de FranceRWCRugby World Cup
D1FPremière Ligue (women)NFLNFL
EPLPremier LeagueNCAAFNCAA Football
LIGALaLigaNBANBA
SERASerie AWNBAWNBA
BUNDBundesligaNCAAMNCAA Men's Basketball
CLChampions LeagueNCAAWNCAA Women's Basketball
ELEuropa LeagueNHLNHL
ECLConference LeagueMLBMLB
MLSMLSWCFIFA World Cup
NWSLNWSLWWCFIFA Women's World Cup

Another league? Any ESPN team league works with its two path segments instead of a code: soccer/por.1:SLB (Liga Portugal), soccer/ned.1:AJA (Eredivisie). They are the two parts after /sports/ in the ESPN API addresses.

A team in two competitions (Ligue 1 and Champions League) is two entries: LIG1:PSG, CL:PSG. Each is its own device.

Same abbreviation for two teams (three Top 14 teams are STA): use the ESPN id that Find a team gives (TOP14:25922 for Stade Toulousain).

Individual sports (tennis, golf, F1, MMA) are not supported: a match there is not two teams with a score.

Scenes​

The integration adds its own cards to the scene editor, under the Integrations category.

Triggers​

TriggerWhen
Match starting soonThe kickoff reminder is due (30 min before, default).
Match startedThe match went live.
My team scoredYour team's score went up (goal, try, touchdown…).
Opponent scoredThe opponent's score went up.
Match endedThe match is over; filter on win, loss or draw.

Every trigger can be limited to one team and to home or away matches; left empty, any team matches. The following actions can read the details with {{triggerEvent.data.<name>}}:

VariableExampleTriggers
team_nameParis Saint-Germainall
opponentStrasbourgall
home_awayawayall
leagueLigue 1all
team_score2all
opponent_score1all
summaryLive · 63' · PSG 2 – 1 STRall
points1 (6 for a touchdown)my team scored, opponent scored
resultwin, loss or drawmatch ended
kickoff2026-10-17T15:15Zmatch starting soon
minutes30match starting soon

Examples:

  • Goal light: "My team scored" → turn the living room lights green for 30 seconds.
  • Match reminder: "Match starting soon" → send a message "{{triggerEvent.data.summary}}".
  • Result: "Match ended", result = win → play a song.

Scores are read every 30 seconds by default: an event arrives up to that long after the action on the field, plus ESPN's own delay.

Action: Get the match of a team​

Gives the following actions the current or next match of a team: state (pre, in, post or none), is_live, team_score, opponent_score, opponent, kickoff, result and summary. It answers from the last reading, without calling ESPN.

The two scores are also device values: a scene condition can compare them ("only if my team leads").

Dashboard​

  • Team match: pick a team in the widget settings. Live score (it follows the device values in real time once the device is created), clock, kickoff, opponent, home or away, and a Refresh button.
  • My teams: every followed team with its logo, live matches first, with a LIVE, result or NEXT badge.

Troubleshooting​

  • A team is missing from Discovery: click Test the teams, it says why (unknown league, team not found, abbreviation shared by several teams, ESPN unreachable).
  • The badge of a team is "unreachable": ESPN did not answer the last reading. The last known scores stay displayed; the next reading tries again.
  • Kickoff times are off by some hours: set your Time zone.
  • Logs: open the integration logs in Gladys. Each scene event is logged (Scene event team_scored <- LIG1:PSG: …).

Privacy​

The integration only sends ESPN the leagues and team ids it reads. It needs no account and stores one small file in its own /data volume (the last reading of each team).

Konfigurationseinstellungen​

Diese Einstellungen fragt Team Tracker in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Getting startedsectionNeinScores come from the public ESPN API: no account, no key. Write the teams to follow as LEAGUE:TEAM, separated by commas, e.g. LIG1:PSG, TOP14:RAC, NFL:KC. Not sure of the abbreviation? Use the "Find a team" button below. Each team becomes a device in the Discovery tab.
TeamsstringJaLEAGUE:TEAM entries separated by commas (20 at most). The team is its abbreviation or its ESPN id.
Language of the match textsselectNeinLanguage of the "Match" text shown on the devices and sent to the scenes.
Time zonestringNeinKickoff times are written in this time zone (IANA name).
Kickoff reminder (min)numberNeinThe "Match starting soon" trigger fires this many minutes before kickoff. 0 turns it off.
Refresh during a match (s)numberNeinHow often scores are read while a match is live, in seconds.
Refresh between matches (min)numberNeinHow often the next matches are checked when nothing is live, in minutes.

So installierst du Team Tracker in Gladys​

  1. Öffne in Gladys Integrationen: Team Tracker erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/prohand/gladys-teamtracker:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/prohand/gladys-teamtracker.

Team Tracker benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Team Tracker ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von prohand veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂