Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. 2-Punkt-Regler (Heizung)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    2-Punkt-Regler (Heizung)

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by

      Folgendes Script realisiert die 2-Punkt-Regelung einer Raumheizung:

      // 2-Punkt-Regler Raumheizung
      
      // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname
      var raum = name.split(".")[2];
      
      // halbe Hysterese in K
      var hh = 0.1;
      
      var xid = getIdByName(raum + ".Temperatur");
      var wid = getIdByName(raum + ".Sollwert");
      var yid = getIdByName(raum + ".Heizen");
      var x = getState(xid).val;  // Istwert in °C
      var w = getState(wid).val;  // Sollwert in °C
      
      function hys() {
          if (x <= w - hh) setState(yid, true);
          else if (x >= w + hh) setState(yid, false);
      }
      
      hys();  // Script start
      
      on(xid, function(dp) {
          x = dp.state.val;
          hys();
      });
      
      on(wid, function(dp) {
          w = dp.state.val;
          hys();
      });
      
      
      1 Reply Last reply Reply Quote 0
      • M
        Matz last edited by

        Guten Abend zusammen,

        ich möchte gerne das 2-Punkt-Regler Script verwenden.

        Ich verstehe nicht wie die Datenpunkte (letztlich die Temperatur und der Sollwert meines Raumthermostaten) in diesem Script verwendet werden.

        In den Objekten an meinem Thermostat habe ich in dem Datenpunkt der Temperatur einen Namen eingetragen (Wohnen.Temperatur).

        1433_wohnen.jpg

        In der ersten Zeile des Scripts:

        // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname

        var raum = name.split(".")[2];

        wird doch die Variable "raum" sozusagen deklariert, und mit dem Ergebniss der "Split" Funktion welche sich auf "name" bezieht gefüllt. Ich verstehe nicht woher dieser Name kommt.

        Ich habe das "name" durch "Wohnen" zum Test ersetzt.

        Dann bekomme ich fogende Fehlermeldung im Log: Wohnen is not defined at script.js.common.Test_Heizung

        Ich glaube ich habe hier den grundsätzlichen Zusammenhang noch nicht geblickt, kann mir jemand einen Tipp geben?

        Viele Grüße

        Matthias

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          Das Script muss unter der Gruppe "Wohnen" erstellt werden, wenn die Namen der Datenpunkte mit "Wohnen." beginnen, nicht unter "common".

          493_skript_gruppen.jpg
          493_wohnen.test_heizung.jpg

          1 Reply Last reply Reply Quote 0
          • M
            Matz last edited by

            Hallo,

            vielen Dank für deinen Hinweis, jetzt funktioniert es!

            Gruß

            Matthias

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            1.1k
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            2
            4
            2839
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo