Home Assistant: Zustände invertieren mit Templates
Deine Jalousie meldet den falschen Zustand, obwohl real alles stimmt? Mit einem Template-Cover drehst du den Zustand in Home Assistant um, das fertige Snippet findest du hier.
Manchmal zeigt eine Entität in Home Assistant das Gegenteil von dem, was real passiert: Die Jalousie steht auf „geschlossen", obwohl sie offen ist. Mit dem Invertieren des Zustands passt du Anzeige und Logik an dein Setup an. Gerade bei komplexeren Installationen oder individuellen Dashboards brauchst du diese Flexibilität öfter, als man denkt.
Warum Zustände invertieren?
Nicht jede Entität meldet ihren Zustand so, wie du es erwartest. Ein Sensor, ein Schalter oder eine Jalousie zeigt in der Oberfläche „offen" statt „geschlossen", weil die Logik des Geräts vertauscht ist. Das nervt bei der Bedienung und sorgt für Verwirrung.
Mit gezieltem Invertieren korrigierst du die Darstellung. Die Steuerung wird übersichtlicher und deine Automationen arbeiten mit den richtigen Zuständen. Das Prinzip funktioniert für viele Entitätstypen, darunter Schalter, Sensoren und Covers.
So setzt du es um
Das Werkzeug der Wahl sind Template-Entitäten. Mit Template-Sensoren oder Template-Covers kehrst du den Zustand logisch um: Du definierst ein Template, das aus einem „true" ein „false" macht oder den Status einer Jalousie spiegelt.
Die Konfiguration landet in einer YAML-Datei, etwa in der templates.yaml oder direkt in deinen Paketen. Genaue Beispiele und die Syntax findest du in der offiziellen Home Assistant Dokumentation zur Template-Integration.
Dieses Template Cover invertiert das Verhalten einer bestehenden Cover-Entität in Home Assistant. Das hilft, wenn ein Gerät den Status falsch herum meldet, zum Beispiel „open", obwohl es in Wirklichkeit geschlossen ist (oder umgekehrt). Du bekommst damit eine korrigierte, saubere Cover-Entität, ohne das Gerät hardwareseitig neu verdrahten oder ständig umdenken zu müssen.
cover:
1 - platform: template
2 covers:
3 cover_invertiert:
4 friendly_name: "Cover (invertiert)"
5 open_cover:
6 service: cover.close_cover
7 target:
8 entity_id: cover.your_cover_id
9 close_cover:
10 service: cover.open_cover
11 target:
12 entity_id: cover.your_cover_id
13 stop_cover:
14 service: cover.stop_cover
15 target:
16 entity_id: cover.your_cover_id
17 value_template: >
18 {% if is_state('cover.your_cover_id', 'open') %}
19 closed
20 {% elif is_state('cover.your_cover_id', 'closed') %}
21 open
22 {% else %}
23 unknown
24 {% endif %}