DashboardÜbersicht
Fitness
Dashboard-View 'Fitness' mit 29 Karten. Teil des Haupt-Dashboards.
So übernimmst du sie
Zwei Schritte, dann läuft sie bei dir.
- 1
Das brauchst du
- SensorGerät
- Zahlenwert-EingabeHelfer
- ZählerHelfer
- 2
Einfügen
Dashboard öffnenDashboard bearbeitenRaw-Konfigurationseditor
Der Raw-Konfigurationseditor ersetzt das ganze Dashboard. Für eine einzelne Karte stattdessen eine Karte hinzufügen und dort den YAML-Code einfügen.
Übersicht: Fitness# Entity-IDs sind anonymisiert. Ersetze sie durch deine eigenen. # Beispiel: light.dein_wohnzimmer_licht -> light.wohnzimmer_deckenlampe title: Fitness type: sections max_columns: 3 path: fitness icon: mdi:bicycle-penny-farthing subview: false sections: - type: grid columns: 2 cards: - type: heading heading: Ziele & Fortschritt - type: gauge entity: sensor.garmin_skating_year_progress name: Skating-Ziel 2026 unit: '%' min: 0 max: 100 severity: green: 75 yellow: 50 red: 0 - type: entity entity: input_number.garmin_skate_year_km name: Kilometer (Jahr) icon: mdi:map-marker-distance grid_options: columns: 6 rows: 2 - type: entity entity: input_number.garmin_skate_year_min name: Minuten (Jahr) icon: mdi:clock-time-eight-outline grid_options: columns: 6 rows: 2 - type: custom:mushroom-template-card primary: '{% set projected = states(''sensor.garmin_skating_projection_2025'') | float(0) %}{% set goal = states(''input_number.garmin_skating_jahresziel'') | float(2026) %}{% if projected >= goal %}Ziel wird erreicht!{% elif projected > 0 %}Prognose: {{ projected | round(0) }} km{% else %}Keine Daten{% endif %}' secondary: 'Ziel: {{ states(''input_number.garmin_skating_jahresziel'') | int(0) }} km' icon: mdi:trending-up layout: vertical entity: sensor.garmin_skating_projection_2025 tap_action: action: more-info - type: custom:mushroom-template-card primary: '{% set chrono = states(''sensor.garmin_chronological_age'') | float(0) %}{% set fitness = states(''sensor.garmin_fitness_age'') | float(0) %}{% set diff = (chrono - fitness) | round(1) %}Biologisch {{ diff }} Jahre jünger' secondary: 'Fitness Age: {{ states(''sensor.garmin_fitness_age'') | float(0) | round(1) }} | Alter: {{ states(''sensor.garmin_chronological_age'') }}' icon: mdi:heart-pulse layout: vertical entity: sensor.garmin_fitness_age tap_action: action: more-info icon_color: red grid_options: columns: 6 rows: 2 - type: grid cards: - type: heading heading: Letzte Aktivitäten - type: entities entities: - type: custom:template-entity-row entity: sensor.last_activities name: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 0 %}{% set a = acts[0] %}{{ a.activityName }} ({{ (a.startTime | string)[:10] | replace(''-'', ''.'') }}){% else %}---{% endif %}' state: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 0 %}{% set a = acts[0] %}{{ (a.distance / 1000) | round(1, default=0) }} km | {{ (a.duration / 60) | round(0, default=0) }} min | {{ a.calories | round(0, default=0) }} kcal{% else %}---{% endif %}' icon: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 0 %}{% set a = acts[0] %}{% set t = a.activityName | lower %}{% if ''skat'' in t or ''inline'' in t %}mdi:rollerblade{% elif ''tennis'' in t %}mdi:tennis{% elif ''run'' in t or ''gehen'' in t %}mdi:run-fast{% else %}mdi:bike{% endif %}{% else %}mdi:help-circle{% endif %}' - type: custom:template-entity-row entity: sensor.last_activities name: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 1 %}{% set a = acts[1] %}{{ a.activityName }} ({{ (a.startTime | string)[:10] | replace(''-'', ''.'') }}){% else %}---{% endif %}' state: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 1 %}{% set a = acts[1] %}{{ (a.distance / 1000) | round(1, default=0) }} km | {{ (a.duration / 60) | round(0, default=0) }} min | {{ a.calories | round(0, default=0) }} kcal{% else %}---{% endif %}' icon: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 1 %}{% set a = acts[1] %}{% set t = a.activityName | lower %}{% if ''skat'' in t or ''inline'' in t %}mdi:rollerblade{% elif ''tennis'' in t %}mdi:tennis{% elif ''run'' in t or ''gehen'' in t %}mdi:run-fast{% else %}mdi:bike{% endif %}{% else %}mdi:help-circle{% endif %}' - type: custom:template-entity-row entity: sensor.last_activities name: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 2 %}{% set a = acts[2] %}{{ a.activityName }} ({{ (a.startTime | string)[:10] | replace(''-'', ''.'') }}){% else %}---{% endif %}' state: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 2 %}{% set a = acts[2] %}{{ (a.distance / 1000) | round(1, default=0) }} km | {{ (a.duration / 60) | round(0, default=0) }} min | {{ a.calories | round(0, default=0) }} kcal{% else %}---{% endif %}' icon: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 2 %}{% set a = acts[2] %}{% set t = a.activityName | lower %}{% if ''skat'' in t or ''inline'' in t %}mdi:rollerblade{% elif ''tennis'' in t %}mdi:tennis{% elif ''run'' in t or ''gehen'' in t %}mdi:run-fast{% else %}mdi:bike{% endif %}{% else %}mdi:help-circle{% endif %}' - type: custom:template-entity-row entity: sensor.last_activities name: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 3 %}{% set a = acts[3] %}{{ a.activityName }} ({{ (a.startTime | string)[:10] | replace(''-'', ''.'') }}){% else %}---{% endif %}' state: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 3 %}{% set a = acts[3] %}{{ (a.distance / 1000) | round(1, default=0) }} km | {{ (a.duration / 60) | round(0, default=0) }} min | {{ a.calories | round(0, default=0) }} kcal{% else %}---{% endif %}' icon: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 3 %}{% set a = acts[3] %}{% set t = a.activityName | lower %}{% if ''skat'' in t or ''inline'' in t %}mdi:rollerblade{% elif ''tennis'' in t %}mdi:tennis{% elif ''run'' in t or ''gehen'' in t %}mdi:run-fast{% else %}mdi:bike{% endif %}{% else %}mdi:help-circle{% endif %}' - type: custom:template-entity-row entity: sensor.last_activities name: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 4 %}{% set a = acts[4] %}{{ a.activityName }} ({{ (a.startTime | string)[:10] | replace(''-'', ''.'') }}){% else %}---{% endif %}' state: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 4 %}{% set a = acts[4] %}{{ (a.distance / 1000) | round(1, default=0) }} km | {{ (a.duration / 60) | round(0, default=0) }} min | {{ a.calories | round(0, default=0) }} kcal{% else %}---{% endif %}' icon: '{% set acts = state_attr(''sensor.last_activities'', ''last_activities'') | reverse | list %}{% if acts and acts|length > 4 %}{% set a = acts[4] %}{% set t = a.activityName | lower %}{% if ''skat'' in t or ''inline'' in t %}mdi:rollerblade{% elif ''tennis'' in t %}mdi:tennis{% elif ''run'' in t or ''gehen'' in t %}mdi:run-fast{% else %}mdi:bike{% endif %}{% else %}mdi:help-circle{% endif %}' - type: custom:mushroom-template-card primary: 'Highlight der Woche: {{ state_attr(''sensor.garmin_weekly_highlight'', ''activityName'') }}' secondary: '{{ state_attr(''sensor.garmin_weekly_highlight'', ''distance'') }} km - {{ state_attr(''sensor.garmin_weekly_highlight'', ''duration'') }} min - {{ state_attr(''sensor.garmin_weekly_highlight'', ''calories'') }} kcal' icon: mdi:star-shooting layout: vertical tap_action: action: more-info entity: sensor.garmin_weekly_highlight grid_options: columns: 6 rows: 2 - type: custom:mushroom-template-card primary: '{% set total_min = states(''input_number.garmin_skate_year_min'') | float(0) + states(''input_number.garmin_tennis_year_min'') | float(0) + states(''input_number.garmin_bike_year_min'') | float(0) %}{{ total_min | round(0) }} min Sport' secondary: '{% set sessions = states(''counter.garmin_skate_sessions'') | int(0) + states(''counter.garmin_tennis_sessions'') | int(0) + states(''counter.garmin_bike_sessions'') | int(0) %}{{ sessions }} Einheiten in {{ now().year }}' icon: mdi:trophy-outline layout: vertical icon_color: amber tap_action: action: none grid_options: columns: 6 rows: 2 - type: grid cards: - type: heading heading: Skating Minuten (letzte 30 Tage) heading_style: title - chart_type: bar period: day type: statistics-graph entities: - sensor.garmin_skating_min_month days_to_show: 30 stat_types: - max hide_legend: true logarithmic_scale: false - type: custom:mushroom-template-card primary: '{% set km = states(''input_number.garmin_skate_year_km'') | float(0) %}{% if km > 1300 %}Fast Rom erreicht!{% elif km > 700 %}Bis München!{% elif km > 400 %}Hannover incoming{% else %}Lokalrunde{% endif %}' secondary: '{{ states(''input_number.garmin_skate_year_km'') | float(0) | round(1) }} km dieses Jahr · Ziel: {{ states(''input_number.garmin_skating_jahresziel'') | int(0) }} km' icon: mdi:earth tap_action: action: more-info entity: input_number.garmin_skate_year_km grid_options: columns: 12 rows: 2 multiline_secondary: false layout: vertical fill_container: false badge_icon: '' badge_color: '' - type: grid cards: - type: heading heading: Skating - type: custom:mushroom-template-card primary: '{{ states(''input_number.garmin_skate_month_km'') }}' icon: mdi:calendar-month entity: input_number.garmin_skate_month_km layout: vertical tap_action: action: more-info multiline_secondary: false secondary: Skating km (Monat) - type: custom:mushroom-template-card primary: '{{ states(''input_number.garmin_skate_year_km'') }}' icon: mdi:calendar entity: input_number.garmin_skate_year_km layout: vertical secondary: Skating km (Jahr) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:clock-outline entity: sensor.garmin_skating_min_month primary: '{{ states(''sensor.garmin_skating_min_month'') }}' secondary: Minuten (Monat) tap_action: action: more-info layout: vertical - type: custom:mushroom-template-card icon: mdi:clock-time-four-outline entity: input_number.garmin_skate_year_min layout: vertical primary: '{{ states(''input_number.garmin_skate_year_min'') }}' secondary: Minuten (Jahr) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:counter entity: counter.garmin_skate_sessions layout: vertical primary: '{{ states(''counter.garmin_skate_sessions'') }}' secondary: Einheiten (Jahr) tap_action: action: more-info icon_color: teal - type: grid cards: - type: heading heading: Tennis - type: custom:mushroom-template-card icon: mdi:calendar-month entity: input_number.garmin_tennis_month_km layout: vertical primary: '{{ states(''input_number.garmin_tennis_month_km'') }}' secondary: Tennis km (Monat) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:calendar entity: input_number.garmin_tennis_year_km layout: vertical primary: '{{ states(''input_number.garmin_tennis_year_km'') }}' secondary: Tennis km (Jahr) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:clock-outline entity: input_number.garmin_tennis_month_min primary: '{{ states(''input_number.garmin_tennis_month_min'') }}' secondary: Minuten (Monat) tap_action: action: more-info layout: vertical - type: custom:mushroom-template-card icon: mdi:clock-time-four-outline entity: input_number.garmin_tennis_year_min layout: vertical primary: '{{ states(''input_number.garmin_tennis_year_min'') }}' secondary: Minuten (Jahr) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:counter entity: counter.garmin_tennis_sessions layout: vertical primary: '{{ states(''counter.garmin_tennis_sessions'') }}' secondary: Einheiten (Jahr) tap_action: action: more-info icon_color: orange - type: grid cards: - type: heading heading: Radfahren - type: custom:mushroom-template-card icon: mdi:calendar-month entity: input_number.garmin_bike_month_km layout: vertical primary: '{{ states(''input_number.garmin_bike_month_km'') }}' secondary: Bike km (Monat) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:calendar entity: input_number.garmin_bike_year_km layout: vertical primary: '{{ states(''input_number.garmin_bike_year_km'') }}' secondary: Bike km (Jahr) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:clock-outline entity: input_number.garmin_bike_month_min layout: vertical primary: '{{ states(''input_number.garmin_bike_month_min'') }}' secondary: Minuten (Monat) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:clock-time-four-outline entity: input_number.garmin_bike_year_min layout: vertical primary: '{{ states(''input_number.garmin_bike_year_min'') }}' secondary: Minuten (Jahr) tap_action: action: more-info - type: custom:mushroom-template-card icon: mdi:counter entity: counter.garmin_bike_sessions layout: vertical primary: '{{ states(''counter.garmin_bike_sessions'') }}' secondary: Einheiten (Jahr) tap_action: action: more-info icon_color: green cards: []Aus meinem Home Assistant, Stand 15. März 2026.
