HomePulse

Integrationen

Home Assistant einrichten

Heartbeats und ausgewählte Entitäten per rest_command sicher ausgehend senden.

Voraussetzungen

  • Home Assistant mit Internetzugang
  • Ein HomePulse-Standort mit Integration Home Assistant
  • Der einmalig angezeigte API-Key
  • Die Home-Assistant-Integrationen Version (Quelle: Lokale Installation) und Uptime

Schritt für Schritt

  1. Öffne in HomePulse den Standort und kopiere Standort-ID sowie API-Key.
  2. Lege den Key in secrets.yaml ab.
  3. Füge unter Einstellungen → Geräte & Dienste die Integration Version mit der Quelle Lokale Installation sowie die Integration Uptime hinzu.
  4. Prüfe unter Entwicklerwerkzeuge → Zustände, dass sensor.current_version eine Versionsnummer und sensor.uptime einen UTC-Zeitpunkt liefert. Wurden die Entitäten umbenannt, ersetze beide IDs im Beispiel.
  5. Füge den REST-Befehl zur configuration.yaml hinzu. Wenn dort bereits automation: !include automations.yaml steht, verwende für die manuelle Automation den separaten Schlüssel automation homepulse:.
  6. Prüfe die Konfiguration und starte Home Assistant vollständig neu; ein bloßes Neuladen der Automationen registriert einen neuen rest_command nicht.
  7. Prüfe unter Entwicklerwerkzeuge → Aktionen, ob rest_command.homepulse_heartbeat vorhanden ist, und führe ihn einmal manuell aus.

Beispielkonfiguration

# secrets.yaml
homepulse_api_key: hp_live_DEIN_EINMALIGER_KEY

# configuration.yaml
# Ein vorhandenes "automation: !include automations.yaml" unverändert lassen.
rest_command:
  homepulse_heartbeat:
    url: "https://www.homepulse.at/api/ingest/homeassistant/heartbeat"
    method: POST
    headers:
      X-HomePulse-Key: !secret homepulse_api_key
      Idempotency-Key: "ha-{{ now().timestamp() | int }}"
    content_type: "application/json"
    verify_ssl: true
    payload: >-
      {% set version_value = states("sensor.current_version") %}
      {% set started_at = as_timestamp(states("sensor.uptime"), default=none) %}
      {{ {
        "apiVersion": "2026-08-01",
        "siteId": "DEINE-STANDORT-GUID",
        "source": "homeassistant",
        "sourceVersion": version_value if version_value not in ["unknown", "unavailable", "none", ""] else none,
        "sentAtUtc": utcnow().isoformat(),
        "status": "online",
        "uptimeSeconds": ((as_timestamp(utcnow()) - started_at) | int(0)) if started_at is not none else none
      } | to_json }}

# Eigener, beschrifteter Block – kein zweites unbeschriftetes "automation:".
automation homepulse:
  - id: homepulse_heartbeat
    alias: "HomePulse Heartbeat"
    triggers:
      - trigger: time_pattern
        minutes: "/1"
    actions:
      - action: rest_command.homepulse_heartbeat
    mode: single

Testschritt

Entwicklerwerkzeuge → Aktionen → rest_command.homepulse_heartbeat ausführen. Danach in HomePulse ‚Integration testen‘ wählen.

Erwartetes Ergebnis

HTTP 202; die Integration zeigt ‚Gesund‘ und einen aktuellen Zeitpunkt unter ‚Letzte Übertragung‘.

Fehlerbehebung

  • Version nicht gemeldet: Die Integration Version mit Quelle Lokale Installation hinzufügen und die tatsächliche Entity-ID im Template einsetzen.
  • Uptime nicht gemeldet: Die Integration Uptime hinzufügen und die tatsächliche Entity-ID im Template einsetzen.
  • Unbekannte Aktion rest_command.homepulse_heartbeat: configuration.yaml prüfen und Home Assistant vollständig neu starten.
  • 401: Key/Integration passen nicht – Key rotieren und secrets.yaml aktualisieren.
  • 400 site_mismatch: Standort-ID exakt als GUID übernehmen.
  • Kein Kontakt: DNS, Systemzeit und ausgehendes HTTPS prüfen.
  • Templatefehler: Aktion in den Entwicklerwerkzeugen öffnen und gerenderten JSON-Inhalt prüfen.

Sicherheitshinweise

  • Key ausschließlich in secrets.yaml speichern und nicht in Trace-/Debug-Logs ausgeben.
  • Nur für Healthcheck relevante Entitäten übertragen.
  • Keine Anwesenheitsnamen verwenden; neutrale Anzeigenamen wählen.