Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Thermostat mit ext. Ist-Temperatursensor (Empfehlung)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    277

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Thermostat mit ext. Ist-Temperatursensor (Empfehlung)

Scheduled Pinned Locked Moved Hardware
thermostatzigbee thermostatheizungssteuerung
22 Posts 9 Posters 4.8k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ZarelloZ Zarello

    Das selbe Problem hatte ich bei mir auch. Allerdings hatte ich nicht darauf geachtet, ob das Thermostat das kann sondern einfach eines gekauft, welches Zigbee spricht.

    Meine Lösung: Ein kleines Skript, was auf den Sollwert des Thermostats die Differenz zwischen Temperatur des Thermostats und Temperatur des Thermometers addiert.

    Im Detail: Ich habe mir einen Datenpunkt 0_userdata.0.SollTemperatur erstellt, in dem ich die gewünschte Temperatur einstelle.
    Außerdem gibt es einen Datenpunkt 0_userdata.0.Fensteröffnung (boolean), an dem festgehalten wird ob eines der Fenster geöffnet ist.

    Im Skript:

    const id_thermostat = "zigbee.0.847127fffe0a488b";
    const id_thermometer = "zigbee.0.00124b0022e97dce";
    
    async function setThermostat (obj) {
        if (getState ("0_userdata.0.Fensteröffnung").val) {
            setState (id_thermostat + ".target_temperature", 5);
            return;
        }
    
        // Differenz berechnen und auf max. +/-5°C beschränken
        let d = getState("0_userdata.0.SollTemperatur").val - getState(id_thermometer + ".temperature").val;
        if (d < -5)
            d = -5;
        else if (d > 5)
            d = 5;
    
        const old_temperature = getState (id_thermostat + ".target_temperature").val;
        const new_temperature = getState (id_thermostat + ".local_temp").val + d;
    
        const diff = old_temperature - new_temperature;
        if (diff < 0 || diff > 0.5) {
            setState(id_thermostat + ".target_temperature", new_temperature);
        }
    }
    
    on({id: new RegExp('0_userdata\\.0\\.SollTemperatur'
            + "$|" + 'zigbee\\.0\\.00124b0022e97dce\\.temperature'
            + "$|" + '0_userdata\\.0\\.Fensteröffnung'
            + "$|" + 'zigbee\\.0\\.847127fffe0a488b\\.local_temp' + "$"), change: "ne"}, setThermostat);
    
    setThermostat ({});
    

    Beim Reduzieren der Temperatur habe ich noch eine Schwelle von 0.5°C eingebaut, da ich festgestellt habe, dass dadurch die Temperatur etwas schneller und besser erreicht wird und um die Änderungshäufigkeit etwas zu reduzieren.

    ZarelloZ Offline
    ZarelloZ Offline
    Zarello
    wrote on last edited by
    #21

    Ich bekam gerade folgende Frage per Chat:

    Was tut das Script, wenn der Datenpunkt 0_userdata.0.Fensteröffnung auf true steht?

    Ich antworte mal hier, damit andere, denen sich die Frage stellt, auch etwas davon haben ;)
    Nochmal kurz die Stelle um die es geht:

        if (getState ("0_userdata.0.Fensteröffnung").val) {
            setState (id_thermostat + ".target_temperature", 5);
            return;
        }
    

    Wenn in dem Objekt Fensteröffnung der Wert true steht, dann wird das Heizkörperthermostat auf 5°C gesetzt. Das ist die niedrigste Einstellung, die bei dem Thermostat möglich ist und entspricht der Frostschutztemperatur.
    Also: Fenster offen -> Heizung aus. Durch das return wird danach auch keine weitere Anweisung dieser Funktion ausgeführt.

    Das Objekt Fensteröffnung wird durch ein anderes Skript gesetzt, da ich zum einen in dem Zimmer mehrere Fenster habe und zum anderen auch noch weitere Dinge darüber steuere.

    1 Reply Last reply
    1
    • mickymM Offline
      mickymM Offline
      mickym
      Most Active
      wrote on last edited by mickym
      #22

      Die Shelly TRV kannst Du dafür nutzen, da Du die IST Temperatur über HTTP API oder mqtt setzen kannst. Damit bist Du völlig unabhängig von der Hardware und kannst über den IOBroker steuern. Damit ist auch die Frage des Protokolls des Temperatursensors obsolet.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      Support us

      ioBroker
      Community Adapters
      Donate

      263

      Online

      32.7k

      Users

      82.5k

      Topics

      1.3m

      Posts
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Home
      • Recent
      • Tags
      • Unread 0
      • Categories
      • Unreplied
      • Popular
      • GitHub
      • Docu
      • Hilfe