6. Erstellung einer Modus Auswahl
Implementierung der Kartenstruktur
Mit dieser Kartenstruktur im Dashboard wird eine Modusauswahl für die Heizungssteuerung ermöglicht. Dabei kann zwischen drei verschiedenen Modi gewählt werden: Stundenplan, Ferienmodus und Manuell. Die Auswahl erfolgt direkt über drei Schaltflächen im Dashboard. Jeder Modus ist durch eine eigene Karte mit Titel und Symbol dargestellt. Nur einer der Modi kann gleichzeitig aktiv sein.
Wenn man auf eine der Karten tippt, wird über eine MQTT-Nachricht der jeweilige Modus aktiviert. Damit das funktioniert, müssen die passenden yaml-Skripte in Home Assistant erstellt werden. Da die Nachrichten zur Ansteuerung ursprünglich für eine Steuerung von einer SPS konfiguriert wurden, werden die Nachrichten auf dem bereits eingerichteten topics "sps/befehl/modus" und "sps/befehl/temp" versendet. Zum Auslösen des Sende-Befehls wird die sogenannte "tap-action" verwendet, sodass die Nachricht beim Tippen auf die jeweilige Karte versendet wird. Die Kartenstruktur stellt die drei Modi als Schaltflächen dar und zeigt bei Auswahl von „Manuell“ zusätzlich eine Temperatur-Eingabekarte an. Wird unter dem Topic "sps/befehl/temp" gesendet, bedeutet das für das Python Skript sofort auch der Wechsel in den Manuellen Modus. Dieser wird in Home Assistant jedoch erst ausgeführt wenn man auf die Fläche "Manueller Modus" klickt und nicht wenn man einfach nur die Temperatur verändert. Liegen alle grundlegend benötigten Helfer vor, kannst du die folgende Kartenstruktur in dein Dashboard einfügen:
type: vertical-stack
cards:
- type: custom:timer-bar-card
entity: timer.modus_wechsel_timer
name: Nächste Auswahl in
icon: mdi:timer-outline
- type: conditional
conditions:
- entity: timer.modus_wechsel_timer
state: active
card:
type: custom:mushroom-template-card
primary: >
{{ iif(states('input_select.heiz_modus') == 'stundenplan',
'Stundenplan',
iif(states('input_select.heiz_modus') == 'ferienmodus', 'Ferienmodus',
iif(states('input_select.heiz_modus') == 'manuell', 'Manuell', 'Unbekannt'))) }}
icon: >
{{ iif(states('input_select.heiz_modus') == 'stundenplan',
'mdi:calendar-clock',
iif(states('input_select.heiz_modus') == 'ferienmodus', 'mdi:feather',
iif(states('input_select.heiz_modus') == 'manuell', 'mdi:hand-back-left', 'mdi:help'))) }}
icon_color: green
layout: vertical
fill_container: true
tap_action:
action: none
- type: conditional
conditions:
- entity: timer.modus_wechsel_timer
state_not: active
card:
type: custom:mushroom-template-card
primary: Stundenplan
icon: mdi:calendar-clock
icon_color:
"#AAAAAA": null
layout: vertical
fill_container: true
tap_action:
action: call-service
service: mqtt.publish
data:
topic: sps/befehl/modus
payload: 0;2
- type: conditional
conditions:
- entity: timer.modus_wechsel_timer
state_not: active
card:
type: custom:mushroom-template-card
primary: Ferienmodus
icon: mdi:feather
icon_color:
"#AAAAAA": null
layout: vertical
fill_container: true
tap_action:
action: call-service
service: mqtt.publish
data:
topic: sps/befehl/modus
payload: 0;3
- type: conditional
conditions:
- entity: timer.modus_wechsel_timer
state_not: active
card:
type: custom:mushroom-template-card
primary: Manuell
icon: mdi:hand-back-left
tap_action:
action: call-service
service: script.sende_manuelle_temperatur
color:
"#AAAAAA": null
vertical: true
features_position: bottom
- type: conditional
conditions:
- entity: timer.modus_wechsel_timer
state_not: active
card:
type: custom:mushroom-number-card
entity: input_number.manuelle_temperatur
name: Temperatur einstellen
icon: mdi:thermometer
icon_color: blue