Heizung bedienen
Jetzt die Heizung selbst — Temperatur einstellen, ein- und ausschalten. Das ist einfacher als das Warmwasser, weil die Heizung einen ganz normalen Temperaturbereich hat. Eine Regel musst du dabei einhalten, sonst kommt etwas anderes heraus als gedacht.
Vorher prüfen
both durch in zu ersetzen — dann fließen Werte nur zu dir hin und Home Assistant kann nichts schalten. Wer das gemacht hat, muss es jetzt zurückändern:topic # both 0 campmatic/<GERAETE_ID>/ campmatic/<GERAETE_ID>/Danach das Mosquitto-Programm neu starten. Ohne das bleibt in diesem Kapitel alles wirkungslos — ohne jede Fehlermeldung.
Die wichtigste Regel
Deine Box kann nicht jederzeit mit der Truma sprechen. Sie sammelt Befehle und gibt sie weiter, sobald das Bedienteil danach fragt. Das dauert einen Moment — und in dieser Zeit landen alle Befehle im selben Paket.
Warte nach jedem Befehl, bis sich der Zustand in Home Assistant ändert — meist eine halbe Minute. Erst dann der nächste.
Praktisch heißt das: Zum Einschalten genügt die Temperatur. Deine Heizung geht dabei von selbst an, ein zusätzlicher Einschaltbefehl ist nicht nötig — und würde die eben gesetzte Temperatur wieder überschreiben.
Die Entitäten anlegen
Häng den ersten Block unter dein bestehendes mqtt: sensor:, die beiden anderen unter template:. Ersetze <GERAETE_ID> durch deine Gerätenummer.
- name: "Heizung Betriebsart"
unique_id: campmatic_<GERAETE_ID>_heiz_mode
state_topic: "campmatic/<GERAETE_ID>/climate/truma_heizung/mode/state"
entity_category: diagnostic
expire_after: 2700
availability_topic: "campmatic/<GERAETE_ID>/status"
payload_available: "online"
payload_not_available: "offline"
Und unter template: — falls du den Abschnitt aus Kapitel 6 schon hast, kommen die beiden Einträge einfach dazu:
template:
- number:
- name: "Heizung Zieltemperatur"
unique_id: campmatic_<GERAETE_ID>_heiz_ziel
unit_of_measurement: "°C"
device_class: temperature
icon: mdi:thermometer
min: 5
max: 30
step: 1
# Ist die Heizung aus, gibt es keinen Sollwert. Dann zeigt der Regler 5 —
# das ist die niedrigste Stufe, die die Truma kennt.
state: >-
{% set s = states('sensor.heizung_sollwert') %}
{{ 5 if s in ['unknown', 'unavailable'] else s }}
set_value:
# EIN Befehl. Die Temperatur schaltet die Heizung selbst ein.
- action: mqtt.publish
data:
topic: "campmatic/<GERAETE_ID>/climate/truma_heizung/target_temperature/command"
payload: "{{ value | int }}"
- switch:
- name: "Heizung"
unique_id: campmatic_<GERAETE_ID>_heiz_schalter
icon: mdi:radiator
state: "{{ states('sensor.heizung_betriebsart') == 'heat' }}"
availability: >-
{{ states('sensor.heizung_betriebsart') not in ['unavailable', 'unknown'] }}
turn_on:
# Schaltet mit der Temperatur ein, die am Regler steht.
- action: mqtt.publish
data:
topic: "campmatic/<GERAETE_ID>/climate/truma_heizung/target_temperature/command"
payload: "{{ states('number.heizung_zieltemperatur') | int(20) }}"
turn_off:
- action: mqtt.publish
data:
topic: "campmatic/<GERAETE_ID>/climate/truma_heizung/mode/command"
payload: "off"
Danach Konfiguration prüfen und Home Assistant neu starten.
Heizstufe
Neben der Temperatur gibt es die Heizstufe. Sie bestimmt, wie kräftig die Truma arbeitet, um die eingestellte Temperatur zu erreichen. Dafür musst du nichts anlegen — die Auswahl kommt von allein und heißt select.<ENTITY>_truma_luftermodus.
Auch hier gilt die Regel von oben: nicht Temperatur und Heizstufe direkt hintereinander senden. Sonst überschreibt die Stufenwahl deine Temperatur mit 5 °C.
Hat es geklappt?
Ein Befehl kann folgenlos verpuffen — etwa wenn das Truma-Bedienteil gerade nicht antwortet. Home Assistant merkt davon nichts und zeigt den neuen Wert trotzdem an. Verlass dich deshalb nicht auf die Anzeige des Reglers.
sensor.<ENTITY>_truma_betriebsstatus was die Heizung gerade tut
sensor.<ENTITY>_truma_fehlercode 0 = alles in Ordnung
binary_sensor.<ENTITY>_truma_heizung_aktiv läuft gerade
binary_sensor.<ENTITY>_truma_cp_plus_alive Bedienteil antwortet
- Die Bridge steht auf
bothund das Programm wurde neu gestartet number.heizung_zieltemperaturundswitch.heizungsind da- Du weißt, dass zwischen zwei Befehlen eine Pause gehört