Dynamische Darstellung von Energieertragswerten in Home Assistant
Dynamische Darstellung von Energieertragswerten in Home Assistant
Einleitung
Die dynamische Darstellung von Energieertragswerten in Home Assistant ist für viele Nutzer von Bedeutung, um den Überblick über den eigenen Energieverbrauch und die Einspeisung zu behalten. Insbesondere die Anpassung von Einheiten wie "kWh" und "MWh" kann helfen, die Daten verständlicher zu präsentieren, ohne zusätzliche Helper oder Conditional Cards erstellen zu müssen.
Problem
Ein Nutzer möchte seine Energieertragswerte in Home Assistant dynamisch darstellen, insbesondere die Einheiten "kWh" und "MWh". Die Herausforderung besteht darin, dies zu erreichen, ohne auf Conditional Cards zurückzugreifen oder zusätzliche Helper zu erstellen. Der aktuelle Code für die Darstellung im Dashboard wurde bereitgestellt.
Lösung
Um die Energieertragswerte dynamisch darzustellen, kann die visibility
-Eigenschaft in der Konfiguration verwendet werden. Diese ermöglicht es, bestimmte Elemente basierend auf Bedingungen anzuzeigen oder auszublenden. Durch die Verwendung von card-mod
können die Karten entsprechend angepasst werden, um die gewünschten Einheiten anzuzeigen.
Hier ist ein Beispiel, wie die Konfiguration angepasst werden kann:
type: custom:stack-in-card
mode: vertical
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.inverter_monatlicher_ertrag
name: Gesamt
show_points: false
show_state: true
- entity: sensor.strom_eigennutzung_monat
name: Eigenverbrauch
show_points: false
show_state: true
- entity: sensor.monatliche_einspeisung
name: Netzeinspeisung
show_points: false
show_state: true
name: Energieertrag
hours_to_show: 24
points_per_hour: 1
value_factor: -3
unit: >
[[[
return states['sensor.inverter_monatlicher_ertrag'].state > 1000 ? 'MWh' : 'kWh';
]]]
- type: custom:stack-in-card
mode: horizontal
cards:
- type: custom:mushroom-entity-card
entity: sensor.eigenverbrauch_monat_prozent
name: Eigenverbrauch
icon_type: none
- type: custom:mushroom-entity-card
name: Geldertrag
icon_type: none
alignment: end
layout: vertical
entity: sensor.strom_einspeiseverguetung_monatlich
card_mod:
style:
mushroom-state-info$: |
.container {
align-items: end;
}
card_mod:
style: |
:host {
--stack-card-margin: 0px;
--ha-card-border-radius: 0px;
--ha-card-border-width: 0px;
}
In diesem Beispiel wird die Einheit dynamisch basierend auf dem Wert des Sensors sensor.inverter_monatlicher_ertrag
angepasst. Wenn der Wert über 1000 liegt, wird "MWh" angezeigt, andernfalls "kWh".
Schritte zur Umsetzung
1. Öffne die Konfigurationsdatei deines Dashboards in Home Assistant. 2. Füge die oben angegebene YAML-Konfiguration in den entsprechenden Abschnitt ein. 3. Stelle sicher, dass die Sensoren korrekt konfiguriert sind und die gewünschten Werte liefern. 4. Speichere die Änderungen und lade das Dashboard neu, um die dynamische Darstellung zu überprüfen.
Hintergrundwissen
Die Verwendung von card-mod
in Home Assistant ermöglicht es, das Aussehen und Verhalten von Karten anzupassen, ohne die zugrunde liegende Logik zu verändern. Die visibility
-Eigenschaft kann verwendet werden, um Karten oder Elemente basierend auf bestimmten Bedingungen anzuzeigen oder auszublenden. Dies ist besonders nützlich, um die Benutzeroberfläche übersichtlich zu halten und nur relevante Informationen anzuzeigen.
Zusätzliche Infos
Funktion | Erklärung |
---|---|
`custom:mini-graph-card` | Zeigt einen Mini-Graphen für Sensorwerte an. |
`custom:mushroom-entity-card` | Stellt Entitäten in einem anpassbaren Layout dar. |
`card_mod` | Ermöglicht die Anpassung des Stils von Karten in Home Assistant. |
`value_factor` | Faktor zur Umrechnung von Sensorwerten, z.B. von Wh in MWh. |
`unit` | Dynamische Einheit, die basierend auf Bedingungen angezeigt wird. |
Hinweise & Best Practices
- Teste die Konfiguration in einer sicheren Umgebung, bevor du sie in deinem Haupt-Dashboard implementierst. - Achte darauf, dass die Sensoren, die du verwendest, die erwarteten Werte liefern, um die dynamische Anzeige korrekt zu gestalten. - Halte die Benutzeroberfläche so einfach wie möglich, um die Benutzerfreundlichkeit zu gewährleisten.