Hallo zusammen,
ich habe mir kürzlich einen günstigen TRV von Moes zugelegt, der meine Wohnzimmerheizung steuern soll. Ist ein ZigBee3.0/Tuya Gerät. Über die SmartLife App funktioniert die Steuerung soweit tadellos - die Modi Auto, Manuell, Aus & Ein machen was sie sollen und auch die Heizzeitpläne im Auto-Modus funktionieren.
In HA sieht es allerdings etwas anders aus. Ich habe den TRV einfach wie meine anderen Tuya Geräte über die Tuya Integration eingebunden, da ich keinen ZigBee/MQTT Stick besitze. Leider funktioniert hiermit nur die Hälfte, wenn überhaupt. Die climate-Entität (climate.zigbee_smart_trv) enthält folgendes:
Zustand*
off
Zustands-Attribute (YAML, optional)
hvac_modes:
- "off"
- heat_cool
- heat_cool
- heat
min_temp: 5
max_temp: 35
target_temp_step: 0.5
preset_modes:
- "off"
current_temperature: 20.1
temperature: 25
preset_mode: "off"
friendly_name: Heizung
supported_features: 17
Irgendwas scheint hier mit den hvac_modes nicht zu stimmen, denn sie weichen doch stark von den Modi in SmartLife ab und beinhalten sogar eine Dopplung (2x “heat_cool”)
Dies wird auch in der Thermostat-Kachel in HA so falsch dargestellt (die zwei in der Mitte - Abbildung 1)
Klickt man einen dieser beiden “Heizen/Kühlen” Buttons an, werden beide aktiviert (Abbildung 2) und die climate-Entität ändert ihren Zustand von off auf heat_cool, wobei sich lediglich der preset_mode von “off” in null ändert.
Das Ventil öffnet sich in diesem Fall auf 100%, da IST-Temperatur < SOLL-Temperatur. Alles gut soweit, bis auf den Dopplungsfehler.
Möchte man nun aber einen der beiden äußeren Buttons benutzen, erscheint ein “network error 2008” - vermutlich weil ein falscher Befehl an den TRV geschickt wurde, bzw. der geschickte Befehl nicht dem “Befehlssatz” des TRV entspricht. (Abbildung 3)
Hierbei ist egal, ob ich links auf “Aus” oder rechts auf “Heizbetrieb” klicke. Bei beiden Buttons erscheint der Fehler 2008.
Ändere ich in der Tuya App auf meinem Smartphone den Modus nun von Aus auf Auto, ändert sich der Modus in der Kachel auf dem HA-Dashboard auf Heizen/Kühlen (auf einen der beiden “heat_cool”) und die Soll-Temperatur wird aus dem Heizzeitplan übernommen. (Abbildung 4)
Auch in diesem Fall ändert die climate-Entität ihren Zustand von off auf heat_cool, wobei sich dieses Mal nur der Wert des Attributs temperature ändert (in diesem Beispiel von 25 auf 20) - der preset_mode bleibt weiterhin auf null.
current temperature: 19.1
temperature: 20
preset_mode: null
friendly_name: Heizung
supported features: 17
Schalte ich das TRV per App aus, gelange ich wieder zum initial erwähnten Zustand.
Die Kachel auf dem HA-Dashboard hat offenbar aber auch noch eine zweite Ansicht, die über die drei Punkte oben rechts erreichbar ist. Hier erscheinen die Modi in einer Art Drop-Down Feld und es gibt einen neuen Button “Voreinstellung”, der aber nur den Wert off enthält. (Abbildung 5 & 6) Das Verhalten der Modus-Auswahl ist wie auf der vorherigen Ansicht.
Irgendwas scheint hier also grundsätzlich faul zu sein, oder? Aktuell kann ich das TRV per Automation in HA nur in einen der beiden “heat_cool”-Modi versetzen (welcher das auch immer ist) um es einzuschalten.
Ausschalten, Wechseln in einen anderen Modus oder das Ändern der Solltemperatur scheint nicht vorgesehen. (Abbildung 7)
Das Auslesen der aktuellen Temperatur “um etwas damit zu machen”, habe ich durch einen neuen Sensor in der configuration.yaml (bzw. in der sensor-template.yaml) nachgerüstet. Das funktioniert hiermit auch problemlos:
- sensor:
- name: "heizung_istwert"
unique_id: "heizung_istwert"
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
state: "{{ state_attr('climate.zigbee_smart_trv', 'current_temperature') }}"
Doch was nützt es, wenn ich die 30°C des TRV nun als Trigger nutzen kann, ich es dann dank Fehler 2008 aber nicht per Automation ausschalten und nur über einen für Laien komplizierten Dienstaufruf auf eine niedrigere/andere Temperatur einstellen kann?
Ersteres führt zu dem erwähnten Fehler 2008, letzteres muss man (laut KI) wohl über die folgende Anweisung realisieren, welche die Heizung zwar nicht ausschaltet, das Ventil aber aufgrund der niedrigen Zieltemperatur schließt:
service: climate.set_temperature
data:
entity_id: climate.zigbee_smart_trv
temperature: 10
Warum HA dann daraus das folgende macht, konnte mir auch KI nicht final erklären:
data:
entity_id: climate.zigbee_smart_trv
temperature: 10
action: climate.set_temperature
Möglicherweise gibt es “service” als Dienstaufruf ja gar nicht mehr ツ
Na ja, was mich nach dem ganzen Erklär-Bilderbuch nun noch interessieren würde, ist folgendes: Gibt es eine Möglichkeit herauszufinden, was bzw. welche Befehle hinter den einzelnen Modi-Aufrufen stecken? Kann man diese Befehle auf das ändern, was das TRV erwartet/versteht? Die Befehle der SmartLife App versteht es ja auch…
Ich hoffe ich habe das da oben einigermaßen verständlich ausgedrückt und mich nicht allzu doof angestellt bei meinen Versuchen
Würde mich freuen, wenn mich jemand in die richtige Richtung schubsen könnte.
Danke im Voraus und Happy Weekend!
Maik