🏠 Sternkids in Home Assistant

Kinderdaten direkt im Smart-Home-Dashboard · Automationen · Echtzeit

💡
Ersetze in allen Beispielen DeinKind1, DeinKind2 durch die echten Namen deiner Kinder und DEIN-API-KEY durch deinen API-Key aus der App.
Entity IDs werden automatisch aus dem name: Feld generiert – alles Kleinbuchstaben, Leerzeichen werden zu Unterstrichen. Beispiel: "DeinKind1 Sterne heute"sensor.deinkind1_sterne_heute

Einleitung

Mit der Sternkids Home-Assistant-Integration kannst du Kinderdaten direkt in dein HA-Dashboard einbinden: Sterne, Aufgaben, Wochenziel-Fortschritt und Belohnungen – alles in Echtzeit. Auf Basis dieser Sensoren lassen sich Automationen bauen: Lichter grün schalten wenn alle Aufgaben erledigt sind, Push-Benachrichtigungen wenn das Wochenziel erreicht wurde, oder eine tägliche Zusammenfassung.

Die API aktualisiert sich alle 5 Minuten automatisch (konfigurierbar über scan_interval).

Voraussetzungen

Schritt-für-Schritt Anleitung

1

REST Sensor einrichten

⚠️ Wichtig: Es darf nur einmal sensor: in deiner configuration.yaml vorkommen! Wähle eine der beiden Varianten passend zu deiner HA-Konfiguration.
Variante A – sensor.yaml (empfohlen)

Falls du in configuration.yaml bereits sensor: !include sensor.yaml verwendest, füge dies in deine sensor.yaml ein:

- platform: rest
  name: "Sternkids Familie"
  resource: "https://sternkids.de/api/ha/status?key=DEIN-API-KEY"
  scan_interval: 300
  value_template: "{{ value_json.family }}"
  json_attributes:
    - children
    - week_goal
    - rewards
Variante B – direkt in configuration.yaml

Falls du kein Include verwendest, füge dies in configuration.yaml ein. Nur einmal sensor: erlaubt – falls es schon existiert, einfach den Listeneintrag darunter einfügen.

sensor:
  - platform: rest
    name: "Sternkids Familie"
    resource: "https://sternkids.de/api/ha/status?key=DEIN-API-KEY"
    scan_interval: 300
    value_template: "{{ value_json.family }}"
    json_attributes:
      - children
      - week_goal
      - rewards
2

Template Sensoren einrichten

⚠️ Wichtig: Falls du bereits einen template: Block in deiner configuration.yaml hast, füge die Sensoren in den bestehenden Block ein! Es darf nur einen template: Block geben. Nicht die veraltete platform: template Syntax verwenden.

Füge dies in deiner configuration.yaml in den bestehenden template: Block ein (oder erstelle ihn einmalig neu):

template:
  - sensor:
      # === KIND 1 ===
      - name: "DeinKind1 Sterne heute"
        unique_id: sternkids_kind1_sterne_heute
        unit_of_measurement: "⭐"
        state: >
          {{ state_attr('sensor.sternkids_familie', 'children')[0]['stars_today'] }}

      - name: "DeinKind1 Sterne Woche"
        unique_id: sternkids_kind1_sterne_woche
        unit_of_measurement: "⭐"
        state: >
          {{ state_attr('sensor.sternkids_familie', 'children')[0]['stars_week'] }}

      - name: "DeinKind1 Aufgaben heute"
        unique_id: sternkids_kind1_aufgaben_heute
        state: >
          {{ state_attr('sensor.sternkids_familie', 'children')[0]['tasks_done'] }}/{{ state_attr('sensor.sternkids_familie', 'children')[0]['tasks_total'] }}

      # === KIND 2 ===
      - name: "DeinKind2 Sterne heute"
        unique_id: sternkids_kind2_sterne_heute
        unit_of_measurement: "⭐"
        state: >
          {{ state_attr('sensor.sternkids_familie', 'children')[1]['stars_today'] }}

      - name: "DeinKind2 Sterne Woche"
        unique_id: sternkids_kind2_sterne_woche
        unit_of_measurement: "⭐"
        state: >
          {{ state_attr('sensor.sternkids_familie', 'children')[1]['stars_week'] }}

      - name: "DeinKind2 Aufgaben heute"
        unique_id: sternkids_kind2_aufgaben_heute
        state: >
          {{ state_attr('sensor.sternkids_familie', 'children')[1]['tasks_done'] }}/{{ state_attr('sensor.sternkids_familie', 'children')[1]['tasks_total'] }}

      # === KIND 3 (optional – nur wenn 3 Kinder vorhanden) ===
      - name: "DeinKind3 Sterne heute"
        unique_id: sternkids_kind3_sterne_heute
        unit_of_measurement: "⭐"
        state: >
          {{ state_attr('sensor.sternkids_familie', 'children')[2]['stars_today'] }}

💡 Die echten Entity IDs findest du nach dem HA-Neustart unter Entwicklerwerkzeuge → Zustände → nach „sternkids" suchen.

3

Home Assistant neu starten

Einstellungen → System → Neu starten → Komplett neu starten
Nicht nur „Konfiguration neu laden" – der REST Sensor benötigt einen vollständigen Neustart.

Warte nach dem Neustart ca. 2 Minuten, bis HA vollständig hochgefahren ist, bevor du die Sensoren prüfst.

4

Sensoren prüfen

Entwicklerwerkzeuge → Zustände → nach sternkids suchen.
Folgende Entitäten sollten erscheinen:

sensor.sternkids_familie
sensor.deinkind1_sterne_heute
sensor.deinkind1_sterne_woche
sensor.deinkind1_aufgaben_heute
sensor.deinkind2_sterne_heute
sensor.deinkind2_sterne_woche
sensor.deinkind2_aufgaben_heute

Falls die Entity IDs abweichen: die echte ID aus der Zustandsliste kopieren und in den Dashboard Cards verwenden.

Dashboard Cards

📋 Entities Card 📊 Gauge Card ↔️ Horizontal Stack 📝 Markdown Card
Card 1 – Einfache Übersicht (Entities Card)
type: entities
title: "⭐ Sternkids"
entities:
  - entity: sensor.deinkind1_sterne_heute
    name: "DeinKind1 – Heute"
    icon: mdi:star
  - entity: sensor.deinkind1_sterne_woche
    name: "DeinKind1 – Diese Woche"
    icon: mdi:star-outline
  - entity: sensor.deinkind1_aufgaben_heute
    name: "DeinKind1 – Aufgaben"
    icon: mdi:checkbox-marked-circle-outline
  - entity: sensor.deinkind2_sterne_heute
    name: "DeinKind2 – Heute"
    icon: mdi:star
  - entity: sensor.deinkind2_sterne_woche
    name: "DeinKind2 – Diese Woche"
    icon: mdi:star-outline
  - entity: sensor.deinkind2_aufgaben_heute
    name: "DeinKind2 – Aufgaben"
    icon: mdi:checkbox-marked-circle-outline
Card 2 – Fortschrittsbalken Wochenziel (Gauge Card)
type: gauge
entity: sensor.deinkind1_sterne_woche
name: "DeinKind1 – Wochenziel"
min: 0
max: 20
severity:
  green: 15
  yellow: 8
  red: 0
Card 3 – Kinder nebeneinander vergleichen
type: horizontal-stack
cards:
  - type: stat
    entity: sensor.deinkind1_sterne_heute
    name: "DeinKind1 ⭐"
  - type: stat
    entity: sensor.deinkind2_sterne_heute
    name: "DeinKind2 ⭐"
Card 4 – Offene Aufgaben (Markdown Card)
type: markdown
content: >
  ## 📋 Offene Aufgaben

  **DeinKind1:**
  {% for task in state_attr('sensor.sternkids_familie', 'children')[0]['tasks_pending'] %}
  - {{ task }}
  {% endfor %}

  **DeinKind2:**
  {% for task in state_attr('sensor.sternkids_familie', 'children')[1]['tasks_pending'] %}
  - {{ task }}
  {% endfor %}

Automationen

Automation 1 – Licht grün wenn alle Aufgaben erledigt
automation:
  - alias: "Sternkids Alle Aufgaben erledigt"
    trigger:
      platform: template
      value_template: >
        {{ state_attr('sensor.sternkids_familie', 'children')[0]['tasks_done'] ==
           state_attr('sensor.sternkids_familie', 'children')[0]['tasks_total'] }}
    action:
      service: light.turn_on
      target:
        entity_id: light.DEIN_LICHT
      data:
        color_name: green
Automation 2 – Push-Benachrichtigung wenn Wochenziel erreicht
automation:
  - alias: "Sternkids Wochenziel erreicht"
    trigger:
      platform: template
      value_template: >
        {{ state_attr('sensor.sternkids_familie', 'rewards')[0]['achieved'] == true }}
    action:
      service: notify.mobile_app
      data:
        title: "🎉 Sternkids"
        message: "Wochenziel erreicht! Belohnung verdient!"
Automation 3 – Tägliche Zusammenfassung um 19 Uhr
automation:
  - alias: "Sternkids Tagesabschluss"
    trigger:
      platform: time
      at: "19:00:00"
    action:
      service: notify.mobile_app
      data:
        title: "⭐ Sternkids Tagesübersicht"
        message: >
          DeinKind1: {{ states('sensor.deinkind1_sterne_heute') }} ⭐
          DeinKind2: {{ states('sensor.deinkind2_sterne_heute') }} ⭐

API Dokumentation

Endpunkt: GET https://sternkids.de/api/ha/status?key=DEIN-API-KEY

Die Daten werden serverseitig alle 5 Minuten aktualisiert. Das scan_interval in HA kann kürzer eingestellt werden, neue Daten gibt es aber max. alle 5 Minuten.

Felder im JSON Response

FeldTypBeschreibung
familystringFamilienname
family_iconstringEmoji-Icon der Familie
week_goalnumberWochenziel in Sternen
updated_atstringZeitstempel der Abfrage (ISO 8601)
children[].namestringName des Kindes
children[].avatarstringEmoji-Avatar
children[].stars_todaynumberSterne heute
children[].stars_weeknumberSterne diese Woche
children[].tasks_donenumberErledigte Aufgaben heute
children[].tasks_totalnumberGesamte Aufgaben heute
children[].tasks_pendingarrayListe der offenen Aufgaben (Strings)
rewards[].namestringName der Belohnung
rewards[].emojistringEmoji der Belohnung
rewards[].stars_needednumberBenötigte Sterne für Belohnung
rewards[].stars_currentnumberAktuelle Sterne
rewards[].achievedbooleanBelohnung erreicht?
rewards[].hiddenbooleanÜberraschungs-Belohnung?

Beispiel-Response

{
  "family": "DeineFamilie",
  "family_icon": "🦊",
  "week_goal": 20,
  "updated_at": "2026-05-24T10:00:00Z",
  "children": [
    {
      "name": "DeinKind1",
      "avatar": "🦁",
      "color": "#FFB830",
      "stars_today": 6,
      "stars_week": 14,
      "tasks_done": 4,
      "tasks_total": 6,
      "tasks_pending": ["Hände waschen", "Anziehen"]
    },
    {
      "name": "DeinKind2",
      "avatar": "🐹",
      "color": "#FF8C42",
      "stars_today": 3,
      "stars_week": 10,
      "tasks_done": 2,
      "tasks_total": 6,
      "tasks_pending": ["Aufräumen", "Zähne putzen", "Schlafen gehen"]
    }
  ],
  "rewards": [
    {
      "name": "DeineBelonung",
      "emoji": "🎬",
      "stars_needed": 20,
      "stars_current": 14,
      "achieved": false,
      "hidden": false
    }
  ]
}

Häufige Fehler & Lösungen

❌ „duplicated mapping key"

Ursache: sensor: oder template: kommt mehrfach in configuration.yaml vor.

✅ Lösung: Nur einmal sensor: und einmal template: erlaubt. Alle Einträge in den jeweiligen Block schreiben.

❌ Entität nicht im Dashboard gefunden

Ursache: Entity ID stimmt nicht überein.

✅ Lösung: Entwicklerwerkzeuge → Zustände → nach „sternkids" suchen → echte Entity ID kopieren und im Dashboard verwenden.

❌ „bad indentation of a sequence entry"

Ursache: Falsche Einrückung im YAML.

✅ Lösung: Immer genau 2 Leerzeichen einrücken. Niemals Tabs verwenden! YAML prüfen: yamllint.com

❌ „platform: template wird eingestellt"

Ursache: Alte Template-Syntax verwendet.

✅ Lösung: Moderne template: Syntax verwenden wie in dieser Anleitung (kein - platform: template mehr).

❌ REST Sensor erscheint nicht in Zuständen

Ursache: HA nicht komplett neu gestartet oder API gibt Fehler zurück.

✅ Lösung: 1. API direkt testen: sternkids.de/api/ha/status?key=DEIN-KEY → muss JSON zurückgeben. 2. HA komplett neu starten. 3. 2 Minuten warten.

❌ Template Sensor zeigt „unavailable"

Ursache: sensor.sternkids_familie noch nicht geladen oder nicht erreichbar.

✅ Lösung: Erst den REST Sensor zum Laufen bringen, dann erscheinen die Template Sensoren automatisch. Reihenfolge beachten!

Support

Bei Fragen oder Problemen:

App herunterladen und Konto erstellen: sternkids.de