Bekijk standen, live wedstrijden en geplande wedstrijden van meerdere competities via Football-Data.org.
- Ondersteunt meerdere competities tegelijk (bijv. Eredivisie, Champions League, Premier League, Bundesliga)
- Sensors voor:
- Stand (
_stand) - Volgende wedstrijd (
_next) - Live wedstrijden (
_live)
- Stand (
- Getest met de gratis Football-Data API. Live scores hebben met de gratis API vertraging en het aantal requests is gelimiteerd. Waarschijnlijk werkt dit beter met een betaalde API.
- Volledig compatibel met Home Assistant en HACS
- Open HACS → Integraties
- Klik rechtsboven op ⋮ → Aangepaste repository toevoegen
- Vul in:
- Repository URL:
https://github.com/rikkie80/football_data_multi - Categorie: Integratie
- Repository URL:
- Klik Toevoegen → vervolgens Downloaden
- Herstart Home Assistant
- Ga naar Instellingen → Apparaten & Diensten → Integratie toevoegen
- Zoek op:
Football Data Multi - Voer je Football-Data.org API token in
en selecteer de competities.
gebruikt de volgende custom cards:
- Flex-table-card
- Card-mod
type: vertical-stack
cards:
- type: conditional
conditions:
- condition: numeric_state
entity: sensor.eredivisie_nederland_live_wedstrijden
above: 0
card:
type: markdown
content: >
## ⚽ Live Wedstrijden
{% set matches = state_attr('sensor.eredivisie_nederland_live_wedstrijden', 'matches') | default([]) %}
{% if matches | length > 0 %}
<table style="width:100%; border-collapse:
collapse; font-size:3px; color: var(--primary-text-color);">
<tr style="text-align:left; border-bottom: 1px solid rgba(255,255,255,0.2);">
<th>Wedstrijd</th>
<th style="text-align:center;">Score</th>
<th style="text-align:center;">Status</th>
</tr>
{% for match in matches %}
<tr style="border-bottom: 1px solid rgba(255,255,255,0.1); vertical-align: middle;">
<td>
<img src="{{ match.thuisteam_crest }}" style="width:14px; height:14px; vertical-align:middle; margin-right:4px;">
{{ match.thuisteam }}
<b>-</b>
<img src="{{ match.uitteam_crest }}" style="width:14px; height:14px; vertical-align:middle; margin:0 4px;">
{{ match.uitteam }}
</td>
<td style="text-align:center;">
{{ match.score_home | default('0') }} - {{ match.score_away | default('0') }}
</td>
<td style="text-align:center;">
{{ match.status }} {% if match.minute %}({{ match.minute }}'){% endif %}
</td>
</tr>
{% endfor %}
</table>
{% else %}
<span style="font-size:10px;">Geen live wedstrijden</span>
{% endif %}
- type: markdown
content: >
<div style="padding: 16px; text-align: center;">
{% set next = states('sensor.eredivisie_nederland_volgende_wedstrijd') %}
{% if next != 'Geen gepland' and next != 'unavailable' and next !=
'unknown' %}
<h2 style="margin: 0;">📅 Volgende Wedstrijd</h2>
{% set home = state_attr('sensor.eredivisie_nederland_volgende_wedstrijd',
'thuisteam') %}
{% set away = state_attr('sensor.eredivisie_nederland_volgende_wedstrijd',
'uitteam') %}
{% set home_crest =
state_attr('sensor.eredivisie_nederland_volgende_wedstrijd',
'thuisteam_crest') %}
{% set away_crest =
state_attr('sensor.eredivisie_nederland_volgende_wedstrijd',
'uitteam_crest') %}
{% set datum =
state_attr('sensor.eredivisie_nederland_volgende_wedstrijd', 'datum') %}
<div style="display: flex; justify-content: space-around; align-items:
center; margin: 20px 0;">
<div>
<b>{% if home_crest %}<img src="{{ home_crest }}" width="25" style="display: block; margin: 0 auto;">{% endif %}
{{ home }} -
{{ away }}
{% if away_crest %}<img src="{{ away_crest }}" width="25" style="display: block; margin: 0 auto;">{% endif %}
</b>
</div>
</div>
<p style="color: var(--secondary-text-color);">
{% set dag_eng = as_timestamp(datum) | timestamp_custom('%A', true) %}
{% set maand_eng = as_timestamp(datum) | timestamp_custom('%B', true) %}
{% set dagen = {'Monday': 'Maandag', 'Tuesday': 'Dinsdag', 'Wednesday':
'Woensdag', 'Thursday': 'Donderdag', 'Friday': 'Vrijdag', 'Saturday':
'Zaterdag', 'Sunday': 'Zondag'} %}
{% set maanden = {'January': 'Januari', 'February': 'Februari', 'March':
'Maart', 'April': 'April', 'May': 'Mei', 'June': 'Juni', 'July': 'Juli',
'August': 'Augustus', 'September': 'September', 'October': 'Oktober',
'November': 'November', 'December': 'December'} %}
{% set dag_nl = dagen[dag_eng] | default(dag_eng) %}
{% set maand_nl = maanden[maand_eng] | default(maand_eng) %}
🕐 {{ dag_nl }} {{ as_timestamp(datum) | timestamp_custom('%d', true) }}
{{ maand_nl }} {{ as_timestamp(datum) | timestamp_custom('%Y om %H:%M',
true) }}
📍 Ronde {{ state_attr('sensor.eredivisie_nederland_volgende_wedstrijd',
'matchday') | default('?') }}</p>
{% else %}
<h2>📅 Volgende Wedstrijd</h2>
<p style="color: var(--secondary-text-color);">Geen geplande wedstrijden gevonden</p>
{% endif %}
</div>
- type: custom:flex-table-card
title: 🏆 Eredivisie Stand
entities:
include: sensor.eredivisie_nederland_stand
columns:
- name: Pos
data: standings
modify: x.position
align: center
- name: Team
data: standings
modify: >-
'<img src="' + x.team.crest + '" style="height: 24px; vertical-align:
middle; margin-right: 8px;">' + x.team.name
align: left
- name: Matches
data: standings
modify: x.playedGames
align: center
- name: Points
data: standings
modify: x.points
align: center
- name: +/-
data: standings
modify: x.goalDifference
align: center
- name: Goals
data: standings
modify: x.goalsFor + ':' + x.goalsAgainst
align: center
card_mod:
style: |
ha-card {
overflow-x: auto;
}
tbody tr:nth-child(-n+4) {
border-left: 3px solid #4CAF50 !important;
}
tbody tr:nth-last-child(-n+2) {
border-left: 3px solid #f44336 !important;
}
tbody tr:hover {
background-color: var(--table-row-background-hover-color) !important;
}
th {
background: var(--secondary-background-color) !important;
color: var(--secondary-text-color) !important;
position: sticky !important;
top: 0 !important;
z-index: 10 !important;
}
td:nth-child(4) {
font-weight: bold !important;
font-size: 16px !important;
}
title: Eredivisie
