LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Smart Home / Home-Assistant-Energieübersicht: device_class, Einheit und state_class in der...
Diesen Artikel in anderen Sprachen lesen:

Home-Assistant-Energieübersicht: device_class, Einheit und state_class in der Discovery-Nachricht

Home-Assistant-Energieübersicht: device_class, Einheit und state_class in der Discovery-Nachricht
Inhalt
  1. Messgröße und Übersichtsbereich abstimmen
  2. Zustandsklasse nach Rücksetzverhalten wählen
  3. Vollständiges Discovery-Beispiel für einen Sensor
  4. Verfügbarkeit und Aktualität getrennt prüfen
  5. Statistik vor der Nutzung kontrollieren
  6. Fragen und Antworten
  7. Quellen

Ein MQTT-Sensor kann wechselnde Werte im Verlauf zeigen und trotzdem in einem Feld der Energieübersicht fehlen. Geräteklasse, Einheit und Zustandsklasse müssen zur Messung passen. Zusätzlich zählen gültige Discovery-Konfiguration, Aufzeichnung und Statistikfehler. Die Felder beschreiben Daten; ein geändertes Etikett wandelt Watt nicht in Kilowattstunden um.

Energiemetadaten, gültige Messwerte und Aktualität müssen zusammenpassen.
Energiemetadaten, gültige Messwerte und Aktualität müssen zusammenpassen.

Messgröße und Übersichtsbereich abstimmen

Für einen aufsummierten Energiestand passen device_class: energy, eine unterstützte Energieeinheit wie kWh und eine passende Total-Zustandsklasse. Die Schreibweise zählt: kwh ist nicht das Standardsymbol kWh. Unterstützte Einheiten müssen außerdem zum gewählten Übersichtsbereich passen. Ungültige Kombinationen können Protokoll- oder Statistikfehler erzeugen; Probleme bleiben nicht zwangsläufig stumm.

Leistung ist eine Rate in Watt. Aktuelle Home-Assistant-Versionen bieten in der Energieübersicht eigene Leistungsmessfelder mit device_class: power und state_class: measurement. Dort ist ein solcher Wert verwendbar, aber kein aufsummierter Energiezähler. Die Umbenennung von W in kWh ohne zeitliche Integration verfälscht die Messung.

Zustandsklasse nach Rücksetzverhalten wählen

  • measurement beschreibt Messwerte wie Leistung oder Temperatur. Daraus können Langzeitstatistiken mit Minimum, Maximum und Mittelwert entstehen, jedoch keine Energiezählersumme.
  • total unterstützt steigende und fallende Gesamtwerte. Ein niemals zurückgesetzter Lebenszeitzähler kann total ohne last_reset verwenden. Bei bekannten Rücksetzgrenzen muss die Integration passende Rücksetzinformationen liefern.
  • total_increasing passt zu einem nichtnegativen Zähler mit steigendem Stand und möglichen Neustarts ab null. last_reset ist nicht erforderlich. Ein erkannter Rücksprung beginnt einen neuen Zyklus; dessen erster Wert zählt ab null.

Der erste beobachtete Stand bildet eine Ausgangsbasis, nicht automatisch den gesamten historischen Verbrauch. Eine Folge 1000, 1005, 0, 1006 kann nach dem Null-Reset trotzdem fälschlich 1006 zusätzlich zählen. Nicht jeder kleine Rückgang gilt als Reset: Die aktuelle Entwicklerdokumentation beschreibt eine Toleranz für Rückgänge unter 10 %. Diese Toleranz ersetzt keine Prüfung alter oder ungültiger Messwerte.

Vollständiges Discovery-Beispiel für einen Sensor

Die folgende Datei sensor.json beschreibt einen Zähler mit tatsächlich passendem total_increasing-Verhalten. Das Zustandstopic erwartet einen numerischen kWh-Wert wie 123.456, ohne Einheit im Nutzwert. Der Sender muss online/offline-Verfügbarkeit und gültige Werte passend zur beispielhaften Ablaufzeit von 300 Sekunden liefern.

{
  "name": "Energy",
  "unique_id": "example_meter_energy",
  "state_topic": "example/meter/energy",
  "device_class": "energy",
  "unit_of_measurement": "kWh",
  "state_class": "total_increasing",
  "availability_topic": "example/meter/status",
  "payload_available": "online",
  "payload_not_available": "offline",
  "expire_after": 300
}

Die folgenden Befehle veröffentlichen die Konfiguration beziehungsweise entfernen genau diese Beispielkonfiguration. BROKER ist ein Platzhalter; Zugangsdaten, Port und TLS-Einstellungen müssen zum Testbroker passen. Das Entfernen ist ein eigener Verwaltungsvorgang, kein notwendiger Folgeschritt jeder Anlage.

mosquitto_pub -h BROKER -r -t "homeassistant/sensor/example_meter_energy/config" -f sensor.json

mosquitto_pub -h BROKER -r -t "homeassistant/sensor/example_meter_energy/config" -n

Einzelkomponenten-Discovery folgt <Präfix>/<Komponente>/[<node_id>/]<object_id>/config. Der Knotenteil ist optional. Behaltene Konfiguration kann bei erneuter Anmeldung des Abonnements zugestellt werden. Alternativ kann der Sender Discovery nach Home Assistants Birth-Nachricht erneut veröffentlichen. Behaltene Discovery speichert weder automatisch aktuelle Messwerte noch bestätigt die Nachricht ein aktives Gerät.

Eine leere behaltene Nachricht entfernt diese gespeicherte Konfiguration. Für dauerhafte Stilllegung muss außerdem die erneute Veröffentlichung durch den Sender enden; ein Gerät mit anderen Entitäten bleibt gegebenenfalls bestehen. Eine stabile unique_id ermöglicht Registry-Zuordnung und Anpassungen. Für gerätebasiertes Discovery ist die Kennung Pflicht, aber keine eigenständige allgemeine Voraussetzung jeder Energiestatistik. Fehlerhafte Pflichtfelder können die Konfiguration ablehnen lassen; grundsätzlich ignoriert werden unbekannte Schlüssel.

Verfügbarkeit und Aktualität getrennt prüfen

Eine Offline-Nachricht als Last Will hilft bei verlorener MQTT-Verbindung. Ein eingefrorener Messwert bei weiterhin verbundenem Sender wird dadurch nicht zwangsläufig erkannt. expire_after kann ausbleibende Aktualisierungen sichtbar machen, sofern das normale Sendeintervall bekannt ist. Wiederholtes Senden eines alten Werts kann eine reine Nachrichtenaltersprüfung weiterhin umgehen; der Sender sollte die Aktualität der Erfassung prüfen.

Behaltene Zustandswerte benötigen besondere Beachtung: Die erneute Zustellung nach einem Home-Assistant-Neustart kann einen abgelaufenen Wert frisch erscheinen lassen. Die MQTT-Sensor-Dokumentation empfiehlt bei Ablaufüberwachung keine behaltenen Zustandsnutzlasten; Home Assistant kann Zustand und verbleibende Ablaufzeit selbst wiederherstellen. Die Discovery-Konfiguration darf weiterhin behalten werden.

Statistik vor der Nutzung kontrollieren

Tatsächliche Attribute und Messwert der Entität prüfen, anschließend Einstellungen → Werkzeuge → Statistik sowie Protokolle. Die Aufzeichnung muss den Sensor einschließen. Kurzzeitstatistiken werden alle fünf Minuten erstellt; stündliche Zusammenfassungen bilden die Langzeitstatistik. Eine korrigierte Discovery-Konfiguration rekonstruiert nicht automatisch sämtliche fehlenden Energiewerte der Vergangenheit.

Die Statistikwerkzeuge können aufgezeichnete Fehler korrigieren, aber aus einer leeren Zeitspanne keine fehlenden Messungen ableiten. Änderungen kumulierter Summen können spätere Versätze und benachbarte Differenzen beeinflussen. Deshalb den umliegenden Verlauf prüfen und vor Korrekturen eine Sicherung erhalten. Ein späterer Zählerstand kann den Gesamtanstieg einer Ausfallzeit zeigen, ohne dessen tatsächliche Stundenverteilung zu erklären.

Fragen und Antworten

Kann aus Leistung ein Energiezähler entstehen?

Der Integral-Helfer nähert Energie aus gemessener Leistung über die Zeit an. Bei einer Quelle in W ergeben Präfix k und Zeiteinheit h die Einheit kWh. Die linke Methode kann zu korrekt gemeldeten Sprüngen mit anschließend gleichbleibender Leistung passen; Trapezintegration zu glatten, häufig gemessenen Verläufen. Keine Methode ersetzt fehlende Messungen. Ein verlässlicher Hardware-Energiezähler ist nach Möglichkeit vorzuziehen.

Soll jeder Nullwert verworfen werden?

Nein. Null kann ein gültiger neuer Zählerstand oder Reset sein. Kommunikationsfehler sollten als nicht verfügbar oder unbekannt erscheinen, nicht als erfundene null. Filter benötigen Gerätestatus, Zeitstempel und plausible Änderungen sowie einen vorgesehenen Weg für Zählerwechsel. Eine pauschale Größer-null-Vorlage würde auch gültige Nullstände verbergen und löst nicht jedes Problem mit alten Messwerten.

Quellen

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA zum Schutz vor Spam.

Kommentar schreiben

Erfahrungen mit anderen Geräten oder Integrationen und Rückfragen zur Einrichtung sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.