Bundesliga-Ergebnisse im Smart Home

Nach der EM ist vor der Bundesliga. Da in der nächsten Woche die Bundesliga wieder startet, war es an der Zeit, die Integration & Automation, die ich zur EM erstellt hatte, für die Bundesliga fit zu machen. Details dazu gibt es im folgenden Video:

Das vorherige Video: https://youtu.be/CYK7JrNmvfg

Folgend die genutzten Parameter für die Team Tracker Integration:

Parameter für die Bundesliga
BUND auswählen als Liga
Team: z.b. 124 für Dortmund

Parameter für die 2. Bundesliga – Custom configuration:
sport_path: soccer
league_path: ger.2
Team: z.b. 133 für Schalke

Parameter für die Champings-League
CL auswählen als Liga
Team: z.b. 131 für Leverkusen

Parameter für die Europa-League – Custom configuration:
sport_path: soccer
league_path: uefa.europa
Team: z.b. 7911 für Hoffenheim

Parameter für den Pokal – Custom configuration:
sport_path: soccer
league_path: ger.dfb_pokal
Team: z.b. 124 für Dortmund

Flex-Table Custom Card:
https://github.com/custom-cards/flex-table-card/

GitHub Link für den Status:
https://github.com/vasqued2/ha-teamtracker?tab=readme-ov-file#sensor-data

Dashboard-Konfiguration Einzelkarten:

type: custom:teamtracker-card
entity: sensor.team_tracker
outline: true
outline_color: deeppink
show_league: true

Dashboard-Konfiguration für Gesamte-Karte

type: vertical-stack
cards:
  - type: conditional
    conditions:
        - entity: sensor.team_tracker
          state_not: NOT_FOUND
    card:
      type: custom:teamtracker-card
      entity: sensor.team_tracker
      outline: true
      outline_color: lightgray
      show_league: true
  - type: conditional
    conditions:
      - entity: sensor.team_tracker_cl
        state_not: NOT_FOUND
    card:
      type: custom:teamtracker-card
      entity: sensor.team_tracker_cl
      outline: true
      outline_color: lightgray
      show_league: true
  - type: conditional
    conditions:
      - entity: sensor.team_tracker_pokal
        state_not: NOT_FOUND
    card:
      type: custom:teamtracker-card
      entity: sensor.team_tracker_pokal
      outline: true
      outline_color: lightgray
      show_league: true

REST-Sensor für die configuration.yaml

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

1. Bundesliga Tabelle: (Update am 25.08 wg. anderem Format!)

type: custom:flex-table-card
entities:
  include: sensor.team_tracker_bund_tabelle
columns:
  - name: #
    data: entries
    modify: x.stats[10].value
  - name: Logo
    data: entries
    modify: '''<img src="'' + x.team.logos[0].href + ''"style="width: 100%">'''
  - name: Mannschaft
    data: entries
    modify: x.team.name
  - name: Sp
    data: entries
    modify: x.stats[0].value
  - name: S
    data: entries
    modify: x.stats[7].value
  - name: U
    data: entries
    modify: x.stats[6].value
  - name: 'N'
    data: entries
    modify: x.stats[1].value
  - name: Tore
    data: entries
    modify: |-
      {
        x.stats[5].value +
        " : " +
        x.stats[4].value
      }
  - name: D
    data: entries
    modify: x.stats[2].value
  - name: Pkt
    data: entries
    modify: x.stats[3].value
strict: true
css:
  tbody td:nth-child(8)+: 'width: 40px;'

2. Bundesliga Tabelle (Danke an Andreas Sölsch!)

type: custom:flex-table-card
entities:
  include: sensor.team_tracker_bund2_tabelle
columns:
  - name: '#'
    data: entries
    modify: x.stats[10].value
  - name: Logo
    data: entries
    modify: '''<img src="'' + x.team.logos[0].href + ''"style="width: 100%">'''
  - name: Mannschaft
    data: entries
    modify: x.team.name
  - name: Sp
    data: entries
    modify: x.stats[0].value
  - name: S
    data: entries
    modify: x.stats[7].value
  - name: U
    data: entries
    modify: x.stats[6].value
  - name: 'N'
    data: entries
    modify: x.stats[1].value
  - name: Tore
    data: entries
    modify: |-
      {
        x.stats[5].value +
        " : " +
        x.stats[4].value
      }
  - name: D
    data: entries
    modify: |-
      {
        x.stats[5].value -
        x.stats[4].value
      }
  - name: Pkt
    data: entries
    modify: x.stats[3].value
strict: true
css:
  tbody td:nth-child(8)+: 'width: 40px;'

Sensor exkludieren im Recorder:

recorder:
  exclude:
    entities:
        sensor.team_tracker

Schnipsel für die Automation:

  rgb_color:
    - >-
      {{state_attr('sensor.team_tracker_cl','team_colors')[0][1:3]|int(base=16)}}
    - >-
      {{state_attr('sensor.team_tracker_cl','team_colors')[0][3:5]|int(base=16)}}
    - >-
      {{state_attr('sensor.team_tracker_cl','team_colors')[0][5:7]|int(base=16)}}

Download des Blueprint für die Automation:

https://github.com/Senbei123/tristanssmartesheim/blob/main/fussball_lichter.yaml

/update am 16.09.2024

Dank Markus wurde ich auf den folgenden Beitrag aufmerksam, der die optischen Konfigurationsmöglichkeiten der flex-table-card gut beschreibt: https://community.home-assistant.io/t/flex-table-card/461173/2


Kommentare

20 Antworten zu „Bundesliga-Ergebnisse im Smart Home“

  1. Danke für deine Arbeit. Leider funktioniert die Tabelle für die 2. Bundesliga nicht. Ich habe folgende Zeile angepasst:

    resource: https://site.web.api.espn.com/apis/v2/sports/soccer/ger.2/standings?type=0&level=0

    1. So, ich habe oben nun auch die Tabelle für die 2. Liga reingepackt!

  2. Avatar von michael

    super viel danke wie kann ich in der einzelkarte die teams ändern ?
    Danke

    1. Schau dir dazu mal das verlinkte vorherige Video an, da wird es erklärt. Musst die Teamid über die Webseite herausfinden.

  3. Avatar von Wolfgang Glaw
    Wolfgang Glaw

    Wie bekomme ich im Dasboard beim Pokal- Spiel die 3 XXX ersetzt durch „DFB-Pokal“

    1. Dazu habe ich leider auch noch keine Lösung gefunden.

      1. card_title: DFB Pokal

  4. Avatar von Markus Hewera
    Markus Hewera

    Läuft soweit super. Danke hierfür.
    Hast Du herausbekommen ob für den Pokal ne Tabelle möglich ist ?
    Bekomme nur das zurück bei Url: https://site.web.api.espn.com/apis/v2/sports/soccer/ger.dfb_pokal/standings?type=0&level=0

    {„uid“:“s:600~l:3954″,“id“:“2061″,“name“:“German Cup“,“abbreviation“:“German Cup“,“seasons“:[]}

    Grüße Markus

    1. Hallo Markus, leider noch nicht.

  5. Hi,
    leider habe ich ein Problem bei der Sache. Anscheinend wird bei mir der Sensor nicht angelegt, warum auch immer. Wenn ich dann bei Karte hinzufügen dein Skript einfüge, erscheint nur die Beschriftung „Platz, Logo etc“. Hat jemand einen Vorschlag, was ich machen könnte, damit der Sensor ordentlich angelegt wird? LG

    1. Nach der Anlage in der configuration.yaml hast du Home Assistant neu gestartet? Und auch keine Fehler im Log?

      1. Danke das war’s. Perfekt. 😉

      2. Jetzt wird die Tabelle angezeigt, allerdings ist bei den ein Fehler.
        Konfigurationsfehler erkannt:
        bad indentation of a mapping entry (42:41)

        39 | … : x.stats[3].value
        40 | … ue
        41 | …
        42 | … :nth-child(8)+: ‚width: 40px;’type: “
        Wenn ich diese letzten Zeilen weg nehme, funktioniert alles, aber die Punkte werden eben nicht ordentlich angezeigt.
        Vielleicht hast du hier ja auch noch einen Tip.
        LG

        1. Sorry. Jetzt klappt’s. Tolle Arbeit.

  6. Avatar von Wolfgang Glaw
    Wolfgang Glaw

    Hallo Tristan,
    in der Karte in der die einzelnen Spielpaarungen angezeigt werden, sind nur die Spiele die max. in 3 Tage stattfinden angzeigt. Ich möchte aber gerne die Spiele von meiner Mannschaft die in einem Zeitraum von ca. 2 Wochen stattfinden angezeigt haben.
    Wie kann ich das einstellen ?
    LG

  7. Avatar von Michael Dick
    Michael Dick

    Sowas für die Frauen Bundesliga wäre cool.

  8. Hallo Super Sache dein Video!

    Habe auch alles soweit hinbekommen, nur an der Benachrichtigung hapert es noch ein wenig. Kannst du mal schauen ob du den Fehler findest? Der Auslöser löst bei mir nicht aus:

    {{state_attr(’sensor.bvb_bundesliga‘, ‚date‘) == now()+timedelta(minutes=5)}}

  9. Avatar von Slimsteve

    eine wunderbare app, leider ist mein herzensverein noch ein eliga tiefer in der bundesliga. gibts die möglichkeit die 3te lige zu integrien bzw wie muß das kürzel angelegt werden

    1. Hi, mir ist aktuell nicht bekannt, dass die 3. Liga unterstützt wird.

  10. Avatar von Mäx_flex
    Mäx_flex

    Hallo Tristan,
    Erstmals großen Dank für deine super Beiträge jetzt steh ich irgendwie auf den Schlauch bräuchte mal deine Hilfe und zwar wird mir die Tabelle nicht angezeigt die Spiele funktionieren Perfekt ich sende dir mal meine yaml Datei vielleicht könntest du mir ja weiterhelfen besten dank im voraus.
    Gruß Mäx

    # Loads default set of integrations. Do not remove.
    default_config:

    # Load frontend themes from the themes folder
    frontend:
    themes: !include_dir_merge_named themes

    automation: !include automations.yaml
    script: !include scripts.yaml
    scene: !include scenes.yaml
    template:

    – sensor:
    platform: rest
    name: team_tracker_bund_tabelle
    resource: https://site.web.api.espn.com/apis/v2/sports/soccer/ger.1/standings?type=0&level=0
    value_template: „{{ now() }}“
    json_attributes_path: „$[‚children‘][0][’standings‘]“
    json_attributes:
    – entries

    – sensor:
    – name: „Stromzähler total“
    unique_id: „sensor.stromzahler_total“
    unit_of_measurement: „kWh“
    device_class: „energy“
    state_class: „total_increasing“
    state: >-
    {{ float(states(’sensor.stromzahler_total‘)) | round(3) }}

    – name: „Stromzähler current“
    unique_id: „sensor.stromzahler_current_1“
    unit_of_measurement: „W“
    device_class: „energy“
    state_class: „total_increasing“
    state: >-
    {{ float(states(’sensor.stromzahler_current_1′)) | round(3) }}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert