Unterstützung bei korrekter Ansteuerung Heizkörperthermostat

  • Hallo,

    nun habe auch ich endlich den Einstieg ins Thema Smarthome gewagt.
    Grund dafür war, dass ich meine Räumlichkeiten effizienter beheizen kann.

    Die Wahl der zentralen Software fiel auf Home Assistant (installiert als Docker).
    In allen betreffenden Räumen wurde ein Zigbee Temperatur-/Feuchtigkeitssensor (Sonoff SNZB-02D) angebracht, sowie am jeweiligen Heizkörper das analoge Thermostat durch ein Sonoff TRVZB getauscht.
    Als Zigbee-Gateway wird ein Sonoff ZigBee 3.0 USB Dongle Plus eingesetzt. Dieser ist in einem Zigbee2MQTT Docker-Container eingebunden. MQTT-Broker ist ein Mosquito Docker-Container.
    Alle Zigbee-Geräte konnten damit problemlos über das MQTT-AddOn in Home Assistant eingebunden werden.

    Was ich nun möchte:
    Anhand der von den Temperatursensoren der SNZB-02D ermittelten Raumtemperatur sollen die Thermostate für jeden einzelnen Raum angesteuert werden, so dass eine eingestellte Zieltemperatur erreicht wird.
    Dazu habe ich mir zuerst einmal das Add-On "Better Thermostat" installiert, dass genau das umsetzten können soll. Die Einrichtung ging damit auch flott von der Hand.

    Allerdings funktioniert das nicht so wie es soll...
    Obwohl die Raumtemperatur laut Thermometer zu niedrig war und die eingestellte Zieltemperatur höher lag blieb die Heizung kalt.
    Ein Vergleich der MQTT-Konfiguration zweier Thermostate zeigte, dass nach dem Firmwareupdate die Werte für "Valve closing degree" und "Valve opening degree" von 50 auf 100% umgestellt wurden.
    Nachdem ich wieder zurück auf 50% geregelt hatte wurde zumindest mal der Heizkörper war.
    Wie sich dann aber herausstellte hörte er bei Erreichen der gesetzten Zieltemperatur nicht mehr auf zu heizen.

    Eine kurze Recherche zeigte, dass es offenbar Probleme bei Better Thermostat in Verbindung mit den Sonoff TRVZB Thermostaten gibt.
    Darüber hinaus scheint die Unterstützung für die  Ansteuerung der Thermostate über valve opening und closing degree noch garnicht gegeben zu sein.
    Letzteres wäre natürlich eine tolle Sache.


    Für mich klang das Vorhaben anfangs noch nach einer simplen Sache. Wie sich zeigt ist es aber offenbar mal wieder anspruchsvoller als gedacht.
    Kann mir jemand helfen die Thermostate richtig anzusteuern?
    Wie handhabt ihr das?

  • Mahlzeit,

    ich habe seit einem Jahr Zigbee-Heizkörperthermostate im Einsatz. Angefangen hatte ich auch mit Better Thermostat, das aber nach kurzer Zeit nicht mehr mit meinen Thermostaten zusammenarbeiten wollte.
    Danach bin ich umgestiegen auf Versatile Thermostat. Auch das ist über HACS zu installieren.
    Damit klappt eigentlich alles, wie ich es brauche.
    Ich habe in jedem Raum Zigbee Thermometer und auch Fenster-/Türkontakte, zusätzlich gibt es Räume mit mehr als einem Heizkörper, die Außentemperatur kommt von einem Terassenthermometer.
    Wenn mehr als ein Fenster in einem Raum ist, dann muss man diese über einen Helfer gruppieren, da dort nur eines ausgewählt werden kann.

    Für jeden Raum habe ich dann einen Versatile Dienst erstellt (bspw. Heizen im Büro) wo die zugehörigen Geräte (Fenster, Heizkörper, Thermometer, etc.) hinterlegt sind.
    Jetzt können für jeden Raum separate Temperaturen für Boost, Komfort, Eco und Frost voreingestellt werden.

    Solltest du probieren. Ich denke, dass es auch bei dir passt.

    HA ist bei mir eine Hyper-V VM und Zigbee wird über ZHA mit einer ZBridge Pro von Sonoff mit Tasmota eingebunden. Aktuell sind damit über 100 Zigbee-Geräte verbunden, ein paar kommen noch von der HUE-Bridge dazu.

  • Versatile Thermostat habe ich mir als Alternative auch schon angesehen.
    Allerdings habe ich es ehrlich gesagt nicht hinbekommen das richtig einzurichten. Mir war nicht ganz klar was wo einzutragen ist, bzw. welche Optionen für mich überhaupt die richtigen bzw. relevant sind.

    Es gibt bei mir nur ein Zigbee-Thermometer und ein Zigbee-Thermostat je Raum. Fenster-/Türkontakte sind nicht vorhanden. Auch für die Außentemperatur gibt es keine Sensor. Better Thermostat greift hier auf die Wettervorhersage aus dem vorinstallierten Met.no AddOn zurück. Wie man dem Versatile Thermostat AddOn die Außentemperatur ohne Sensor beibringen kann war mir ebenfalls leider nicht ersichtlich.

  • Ich habe auch die Met.no Vorhersage installiert.

    AFAIK musst du deine configuration.yaml um ein template für weather erweitern, wie hier beschrieben:

    Template Weather Provider
    Instructions on how to integrate Template Weather provider into Home Assistant.
    www.home-assistant.io

    Dann solltest du auch die Temperatur von met.no als Entität nutzen können.
    Fenster-/Türkontakte sind optional und müssen unter Features erst aktiviert werden, ebenso wir motion detection. power management oder presence detection.

  • AFAIK musst du deine configuration.yaml um ein template für weather erweitern, wie hier beschrieben:

    Ich scheine das System noch nicht so richtig verinnerlicht zu haben leider.

    Gemäß der Anleitung aus dem Link habe ich versucht die Wetterdaten von met.no in das Template einzubinden.
    Konkret habe ich in dem Template den Bereich 'weather.my_region' mit 'weather.my_region' aus deer Met.no-Integration ersetzt. Damit bekomme ich auch eine neue Entität. Die zeigt mir aber nur an dass es draußen bewölkt ist. Wie bekomme ich denn stattdessen die aktuelle Außentemperatur da rein?

  • Wie soll das denn mit dem Zigbee Zeugs und HA ueberhaupt theoretisch funktionieren ?

    Ich hab mich seinerzeit ja für Homatic IP entschieden, weil ich nur für die rausfinden konnte, das es dort geht:

    - Der raumthermostat wird mit dem heizkoerperthermostat quasi gepaired.
    - Der raumthermostat signalisiert immer bei aenderung der gemessenen raumtemperatur die neue raumtemperatur an den heizkoerperthermostat
    - Der Heizkörperthermostat nimmt immer den wert des gepairten raumthermostaten als "ist-wert" der temperatur anstelle der vom thermosensor im heizkoerperthermostat selbst gemessenen temperatur

    So wie ich das bei zigbee verstanden habe gibt's da gar keine moeglichkeit, direktes pairing zu machen. Das soll jetzt doch ganz neu und schick erst mit matter gehen - laut letztem bericht in c't dazu... wenn ich den richtig verstanden hbe.

    Ich habe da auch nix dazu gefunden, wie man z.b. von einem controller wie home assistant sowas wie den "temperatur ist-wert" an zigbee heizkoerperthermostaten liefern kann.

    Ohne diese direkte regelung muesste der controller (home assistant) versuchen zu messen, welche temperaturdifferenz X es im normalfall zwischen heizkoerperthermostat und raumthermostat gibt. Und dann bei messung von temperatur T am raumthermostaten den heizkoerperthermostat entsprechend auf T+X regeln. Aber so eine berechnung/regelschleife im controller ist auch nicht so einfach hinzubekommen.

  • te36 genau da setzen Add-Ons wie 'Better Thermostat" oder 'Versatile Thermostat' an. Die übernehmen praktisch die Logik dahinter und setzten das in HA um. So zumindest in der Theorie.

    In meiner Praxis funktioniert das nur nicht so wie gewünscht. Aktuell muss ich manuell steuer. Leider.

  • Die zeigt mir aber nur an dass es draußen bewölkt ist. Wie bekomme ich denn stattdessen die aktuelle Außentemperatur da rein?

    Richtig sicher bin ich mir da auch nicht, aber ich denke, du musst einen Sensor für die Temperatur erstellen:

    Code
    sensor:
      - platform: template
        sensors:
          aktuelle_temperatur:
            friendly_name: "Aktuelle Temperatur"
            unit_of_measurement: "°C"
            value_template: "{{ state_attr('weather.home', 'temperature') }}"
  • So wie ich das bei zigbee verstanden habe gibt's da gar keine moeglichkeit, direktes pairing zu machen. Das soll jetzt doch ganz neu und schick erst mit matter gehen

    Zigbee ist ein Funkstandard und Matter ein Protokoll.
    Da wirfst du leider was durcheinander.
    Matter ist das Protokoll, das herstellerunabhängig im Smarthome funktionieren soll.
    Mattergeräte können auch WLAN-Geräte sein oder wie es Philips macht, dass es seine HUE-Geräte matterfähig macht, indem der HUB per Firmewareupdate Matter bekommt, die Zigbee Lampen aber nicht.

    Bei allen nicht Matter-Geräten kann der Hersteller dafür sorgen, dass diese nur mit bestimmten (meist den eigenen) Gegenstellen funkionieren.
    So kannst du als "normaler" Smarthome-User bspw. Tuya WLAN-Steckdosen nur mit der Tuya-(Smartlife) Software verbinden.

    Das geile an Home Assistant ist aber bspw. dass es überhaupt keine Rolle spielt, wie das Thermometer verbunden ist (Bluthooth, WLAN, Zigbee, DECT, etc.) sondern einfach nur, dass es die Werte liefert. Dort werden diese dann von solchen Integrationen genutzt, um sinnvolle Dinge zu erstellen.
    Ich habe Heizkörperthermostate von 4 verschiedenen Herstellern, ebenso Fensterkontakte und auch Thermometer. Bei den Hue Bewegungssensoren ist auch ein Thermometer enthalten, dass brauchbar ist (im Gegensatz zu dem in den Aqara BMWs).

  • Danke für den Input!

    mit diesem Code hat es jetzt funktioniert einen Sensor zu erstellen:

    Code
    sensor:
      - platform: template
        sensors:
          aktuelle_temperatur:
            friendly_name: "Aktuelle Temperatur"
            unit_of_measurement: "°C"
            value_template: "{{ state_attr('weather.forecast_home', 'temperature') }}"

    Den kann ich in 'Versatile Thermostat' auch verwenden.

    Jetzt gibt es aber noch eine ganze Reihe von weiteren Unklarheiten.

    • Um die Ansteuerung abhängig von der Außentemperatur zu machen muss wohl ein Thermostat vom Typ 'Central Configuration' angelegt werden. Was bedeuten dort die Einträge "Minimum temperature allowed' und "Maximum temperature allowed'?
    • Welcher Thermostat-Typ ist für die einzelnen Räume dann in meinem Fall der richtige? 'Thermostat over a valve?'
    • Was für Angaben muss ich sonst noch machen bei 'Main attributes', 'Underlyings', 'Presets' und 'Advanced parameters'?


    Ich komm da mit der zugehörigen Dokumentation leider so überhaupt nicht zurecht...

  • goscho Zigbee spezifiziert AFAIK vom Funklevel bis in die Anwendungsschicht rauf, oder ist dir da ein anderer name als zigbee fuer die anwendungsschicht bekannt ? Ansonsten könnte Home Assistant doch nicht Zigbee Heizkörperthermostate erkennen und denen standardisierte "zigbee" (anwendungs) messages schicken in denen steht "bitte raum auf N grad heizen".

    Was da fehlt ist eine vergleichbare "zigbee"(anwendungs) message an zigbee thermostaten "die raumtemperatur ist jetzt NN grad".

    Klar, bei matter ist nur die anwendungsprotokollschicht gemeint, und darunter kann dann wifi oder zigbee-rf mit IPv6 (thread) verwendet werden. Aber wichtig ist, das es anscheinend in matter diese message gibt "die raumtemperatur ist jetzt NN grad". Und das nicht nur ein controller die schicken kann, sondern auch ein gepairter raumthermostat. Wenn ich den c't artikel richtig verstanden habe.

    Und ohne diese direkten messages muss so ein home assistant plugin regelmagie programmiert haben. Mit anscheinend viel schoenen undokumentierten nerd-nobs, die @psychofactory jetzt hoffentlich nicht alle ausprobieren muß.

  • So wie ich das bei zigbee verstanden habe gibt's da gar keine moeglichkeit, direktes pairing zu machen. Das soll jetzt doch ganz neu und schick erst mit matter gehen - laut letztem bericht in c't dazu... wenn ich den richtig verstanden hbe.

    Doch, heißt bei Zigbee "binding", genau wie bei Matter auch. Ich hab allerdings bei Zigbee noch keine Thermostate gesehen, die das können. Aber so Lichtschalter -> Lampe funktioniert einwandfrei.

  • te36 ich kann nur für meinen Fall sprechen. Zwischen Home Assistant und den Zigbee-Geräten ist wie im Eingangspost erwähnt noch der Mosquitto MQTT-Broker sowie der Zigbee2MQTT-Container in dem der USB-Dongle der als Gateway fungiert eingebunden ist.
    Salopp gesagt letztlich alles nur Maßnahmen, damit das was die jeweiligen Endgeräte an Daten liefern bzw. an commands empfangen von Home Assistant aus verwertbar ist.


    Wenn man so sagen will hat Home Assistant hat dann also eine bereinigte Datenbasis auf der dann verschiedene Logiken aufgebaut werden können. Entweder mit Bordmitteln, oder über AddOns die das vereinfachen bzw. den Funktionsumfang erweitern.

    Letzteres war mein Vorhaben, das jedoch aktuell noch problembehaftet ist, weil es offenbar eine Inkompatibilität zwischen dem AddOn und den Entitäten gibt die von meinen Thermostaten geliefert werden.
    Oder bzw. weil ich die Dokumentation von dem andern AddOn nicht verstehe [ag]


    ...zumindest hab ich das bis jetzt so verstanden.

  • Und das nicht nur ein controller die schicken kann, sondern auch ein gepairter raumthermostat. Wenn ich den c't artikel richtig verstanden habe.

    Ich sehe keinen richtigen Sinn dahinter, ein Raum-Thermometer direkt und nur mit einem Thermostat zu verkuppeln, da dieses Thermometer auch anderen zur Verfügung stehen soll und dann gibt es Räume, in denen mehr als ein Heizkörper sind.
    Was, wenn man ein Gerät mit einer anderen Technik hat (bspw. ESP32 mit WLAN oder Bluetooth, etc.)? Dann geht ein direktes Binding sowieso nicht.

    Wir schweifen aber schon wieder zu weit vom eigentlichen Thema ab.

    Auch für die Außentemperatur gibt es keine Sensor.

    Vielleicht ist es für dich am einfachsten, du nimmst ein billiges Zigbee Thermometer und hängst es in einen wassergeschützen Außenbereich.
    So habe ich das bei mir gemacht.
    Wenn das mit der Temperatur von met.no jedoch klappt, gib bitte mal Bescheid.

    PS: Einem Freund habe ich vor ein paar Tagen 8 Thermostate von Sonoff besorgt, die er in Home Assistant mit Better Thermostat konfiguriert hat. Er konnte mir aber nicht sagen, ob die aufhören zu heizen, da er oder seine Frau zumeist manuell die Heizungen der kleinen über die HA Companion App ausschalten.

  • goscho

    Bei Homatics IP und ZWave kann man eine Liste von Empfaengern konfigurieren für den Fall, den Du meinst.

    Ob direkte Verbindung oder vom Controller ist Philosophiefrage. Hat beides Vor/Nachteile. Das führt jetzt zu weit.

    Aber es fehlt ja wohl vor allem die Möglichkeit den Heizkörperthermostaten die IST-Temperatur des Raums zu melden (vom controller oder direkt)- so das die Regelschleife lokal im Heizkörperthermostat verbleiben kann. Und nicht aufwendig in einem plugin nachgebildet werden muß.

  • Wenn das mit der Temperatur von met.no jedoch klappt, gib bitte mal Bescheid.

    Ja, das hat mit dem Code den ich oben gepostet hatte sehr gut funktioniert. Danke dafür nochmal.

    Inzwischen konnte ich das Szenario auch mit "Versatile Thermostat" abbilden.
    Allerdings leider immernoch nicht ganz so wie gewünscht.

    Als "Type of Versatile Thermostat" musste ich "Thermostat over a climate" verwenden.
    Wenn ich das nun alles richtig verstanden bzw. interpretiert habe, dann wird in dem jeweiligen Räumen über das Raumthermometer abhängig von der (über die zentrale Konfiguration hinterlegte) Außentemperatur geprüft ob geheizt werden muss. Das Add-On erstellt dann aufgrund der Parameter einen Algorithmus der dem Thermostat dann mitteilt wie es öffnen oder schließen soll.
    Bei dem Modus gibts dann aber auch nur "an" und "aus".
    Besser wäre da der Modus "Thermostat over a valve" gewesen bei dem granular über einen Prozentwert geregelt wird wie weit das Thermostat öffnet bzw. schließt. Die Sonoff TRVZB unterstützen das grundsätzlich seit einigen Monaten auch. Auch wurde die Unterstützung dafür in Zigbett2MQTT bereits mit aufgenommen. In Versatile Thermostat kann ich dann aber das Thermostat in diesem Modus nicht hinterlegen.
    Wenn hier noch jemand einen Hinweis hat wäre ich dankbar.

    Die Dokumentation ist dahingehend leider ziemlich dürftig. Viele der vorhandenen Optionen werden dort garnicht oder nur unzureichend beschrieben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!