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
- Öffne in HomePulse den Standort und kopiere Standort-ID sowie API-Key.
- Lege den Key in secrets.yaml ab.
- Füge unter Einstellungen → Geräte & Dienste die Integration Version mit der Quelle Lokale Installation sowie die Integration Uptime hinzu.
- 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.
- 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:.
- Prüfe die Konfiguration und starte Home Assistant vollständig neu; ein bloßes Neuladen der Automationen registriert einen neuen rest_command nicht.
- 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.