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. Skripten / Logik
  4. Homatik Ip Heizkörper Thermostat

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    492

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

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

Homatik Ip Heizkörper Thermostat

Scheduled Pinned Locked Moved Skripten / Logik
17 Posts 3 Posters 1.2k Views 2 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.
  • R Raspberrypi

    @paul53 said in Homatik Ip Heizkörper Thermostat:

                                                                                                                                // IDs anpassen!                                                                                                                                                                            const idVentil = 'hmip.0.xyz.channels.1.valvePosition';                                                                                                                                                                            const idRelais = 'abc';                                                                                                                                                                                                                                                                                                                                                         var relais = getState(idRelais).val;                                                                                                                                                                                                                                                                                                                                                         on(idVentil, function (dp) {                                                                                                                                                                              if (compareTime("5:00", "22:00", "between")) {                                                                                                                                                                                let ventil = 100 * dp.state.val;                                                                                                                                                                                if (ventil < 20) relais = true;                                                                                                                                                                                else if (ventil >= 30) relais = false;                                                                                                                                                                              } else relais = false;                                                                                                                                                                              if (relais != getState(idRelais).val) {                                                                                                                                                                                setState(idRelais, relais);                                                                                                                                                                              }                                                                                                                                                                            });                                            
    
    code_text
    // IDs anpassen!
    const idVentil = 'hmip.0.devices.3014F711A000201A4997B5FC.channels.1.valvePosition';
    const idRelais = 'hmip.0.devices.3014F711A000045A499D28F0.channels.1.on';
     
    var relais = getState(idRelais).val;
     
    on(idVentil, function (dp) {
      if (compareTime("5:00", "22:00", "between")) {
        let ventil = 100 * dp.state.val;
        if (ventil < 30) relais = true;
        else if (ventil >= 20) relais = false;
      } else relais = false;
      if (relais != getState(idRelais).val) {
        setState(idRelais, relais);
      }
    });
    
    

    so siehts bei mir nun aus.
    Muss ich betreffend der Ventilposition noch was anpassen betreffend 0,2 oder 0,3 %?
    Weil aktuell läuft es nicht, bzw das relais wird nicht angesprochen, muss man da speziell was machen um das Programm ausführen zu lassen?

    paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by
    #8

    @raspberrypi sagte: was anpassen betreffend 0,2 oder 0,3 %?

    Die Anpassung passiert in Zeile 10.

    Wann soll das Relais anziehen und wann abfallen? Deine Bedingungen erscheinen mir unlogisch.

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    R 1 Reply Last reply
    0
    • paul53P paul53

      @raspberrypi sagte: was anpassen betreffend 0,2 oder 0,3 %?

      Die Anpassung passiert in Zeile 10.

      Wann soll das Relais anziehen und wann abfallen? Deine Bedingungen erscheinen mir unlogisch.

      R Offline
      R Offline
      Raspberrypi
      wrote on last edited by
      #9

      @paul53 said in Homatik Ip Heizkörper Thermostat:

      @raspberrypi sagte: was anpassen betreffend 0,2 oder 0,3 %?

      Die Anpassung passiert in Zeile 10.

      Wann soll das Relais anziehen und wann abfallen? Deine Bedingungen erscheinen mir unlogisch.

      Ja pass auf, ich wollte es sehr gerne so machen, da ich eine Gasetagenheizung habe, wenn die beiden Thermostate, bzw eines der Thermostate eine Ventilöffnungsposition von mehr als 30% oder 0,30 %, in diesem fall soll der zustand des Relais von false auf true wechseln, da dieses Relais auf nc angeschlossen ist, nur wenn Heizung an, dann ist auch strom drauf.

      Wenn die ventilposition kleine als 30 oder 03,% ist Relais false (aus).

      Beim Raspberrymatic war das voll easy, da bist nur hingegangen Programm geschrieben, Wenn Thermostat Ventil größer als 0,3% dann True Relais und die Heizung läuft, ansonsten Relais false. (Heizung aus).

      Ich scheitere maßlos daran bei IoBroker. weil sowas in gänze fehlt.

      paul53P 1 Reply Last reply
      0
      • R Raspberrypi

        @paul53 said in Homatik Ip Heizkörper Thermostat:

        @raspberrypi sagte: was anpassen betreffend 0,2 oder 0,3 %?

        Die Anpassung passiert in Zeile 10.

        Wann soll das Relais anziehen und wann abfallen? Deine Bedingungen erscheinen mir unlogisch.

        Ja pass auf, ich wollte es sehr gerne so machen, da ich eine Gasetagenheizung habe, wenn die beiden Thermostate, bzw eines der Thermostate eine Ventilöffnungsposition von mehr als 30% oder 0,30 %, in diesem fall soll der zustand des Relais von false auf true wechseln, da dieses Relais auf nc angeschlossen ist, nur wenn Heizung an, dann ist auch strom drauf.

        Wenn die ventilposition kleine als 30 oder 03,% ist Relais false (aus).

        Beim Raspberrymatic war das voll easy, da bist nur hingegangen Programm geschrieben, Wenn Thermostat Ventil größer als 0,3% dann True Relais und die Heizung läuft, ansonsten Relais false. (Heizung aus).

        Ich scheitere maßlos daran bei IoBroker. weil sowas in gänze fehlt.

        paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #10

        @raspberrypi sagte: Ventilöffnungsposition von mehr als 30% oder 0,30 %, in diesem fall soll der zustand des Relais von false auf true wechseln
        Wenn die ventilposition kleine als 30 oder 03,% ist Relais false (aus).

        Man sollte immer eine Hysterese verwenden, damit im Grenzbereich nicht ständig ein- und ausgeschaltet wird.
        Dann müssen Zeilen 11, 12 geändert werden:

            if (ventil > 30) relais = true; // Heizung ein
            else if (ventil < 20) relais = false;
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        R 1 Reply Last reply
        0
        • paul53P paul53

          @raspberrypi sagte: Ventilöffnungsposition von mehr als 30% oder 0,30 %, in diesem fall soll der zustand des Relais von false auf true wechseln
          Wenn die ventilposition kleine als 30 oder 03,% ist Relais false (aus).

          Man sollte immer eine Hysterese verwenden, damit im Grenzbereich nicht ständig ein- und ausgeschaltet wird.
          Dann müssen Zeilen 11, 12 geändert werden:

              if (ventil > 30) relais = true; // Heizung ein
              else if (ventil < 20) relais = false;
          
          R Offline
          R Offline
          Raspberrypi
          wrote on last edited by Raspberrypi
          #11

          @paul53 said in Homatik Ip Heizkörper Thermostat:

          (ventil > 30)

          aber was hat es damit zu tun?
          let ventil = 100 * dp.state.val;

          weil wiegesagt das thermostat hat ventilposition aktuell von 65% und das relais wird nicht angesteuert.

          // IDs anpassen!
          const idVentil = 'hmip.0.devices.3014F711A000201A4997B5FC.channels.1.valvePosition'/*valvePosition*/;
          const idRelais = 'hmip.0.devices.3014F711A000045A499D28F0.channels.1.on'/*on*/;
           
          var relais = getState(idRelais).val;
           
          on(idVentil, function (dp) {
            if (compareTime("5:00", "22:00", "between")) {
              let ventil = 100 * dp.state.val;
              if (ventil > 30) relais = true;
              else if (ventil < 20) relais = false;
            } else relais = false;
            if (relais != getState(idRelais).val) {
              setState(idRelais, relais);
            }
          });
          
          paul53P 1 Reply Last reply
          0
          • R Raspberrypi

            @paul53 said in Homatik Ip Heizkörper Thermostat:

            (ventil > 30)

            aber was hat es damit zu tun?
            let ventil = 100 * dp.state.val;

            weil wiegesagt das thermostat hat ventilposition aktuell von 65% und das relais wird nicht angesteuert.

            // IDs anpassen!
            const idVentil = 'hmip.0.devices.3014F711A000201A4997B5FC.channels.1.valvePosition'/*valvePosition*/;
            const idRelais = 'hmip.0.devices.3014F711A000045A499D28F0.channels.1.on'/*on*/;
             
            var relais = getState(idRelais).val;
             
            on(idVentil, function (dp) {
              if (compareTime("5:00", "22:00", "between")) {
                let ventil = 100 * dp.state.val;
                if (ventil > 30) relais = true;
                else if (ventil < 20) relais = false;
              } else relais = false;
              if (relais != getState(idRelais).val) {
                setState(idRelais, relais);
              }
            });
            
            paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #12

            @raspberrypi sagte: das thermostat hat ventilposition aktuell von 65% und das relais wird nicht angesteuert.

            Hat sich die Position mal verändert. Es wird nur bei Wertänderung getriggert!

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            R 1 Reply Last reply
            0
            • paul53P paul53

              @raspberrypi sagte: das thermostat hat ventilposition aktuell von 65% und das relais wird nicht angesteuert.

              Hat sich die Position mal verändert. Es wird nur bei Wertänderung getriggert!

              R Offline
              R Offline
              Raspberrypi
              wrote on last edited by
              #13

              @paul53 said in Homatik Ip Heizkörper Thermostat:

              @raspberrypi sagte: das thermostat hat ventilposition aktuell von 65% und das relais wird nicht angesteuert.

              Hat sich die Position mal verändert. Es wird nur bei Wertänderung getriggert!

              Ich habe erfolg zu vermelden, und zwar lag der fehler im Abfrage intervall, nun habe ich was rumprobiert und mit verzögerung, er schaltet. Weil er halt Zeitverzögert die daten von dem Heizungsthermostat bekommt. Aber er schaltet.

              Nun zu deiner Frage, was genau meintest du mit Heizhysterese?

              R 1 Reply Last reply
              0
              • R Raspberrypi

                @paul53 said in Homatik Ip Heizkörper Thermostat:

                @raspberrypi sagte: das thermostat hat ventilposition aktuell von 65% und das relais wird nicht angesteuert.

                Hat sich die Position mal verändert. Es wird nur bei Wertänderung getriggert!

                Ich habe erfolg zu vermelden, und zwar lag der fehler im Abfrage intervall, nun habe ich was rumprobiert und mit verzögerung, er schaltet. Weil er halt Zeitverzögert die daten von dem Heizungsthermostat bekommt. Aber er schaltet.

                Nun zu deiner Frage, was genau meintest du mit Heizhysterese?

                R Offline
                R Offline
                Raspberrypi
                wrote on last edited by
                #14

                Ich weiss gar nicht ob die möglich ist aber ich möchte sehr gerne die Heizung, da ich in meiner Wohnung oft die Türen offen habe, eine Durchschnitts Ventilöffnung bestimmen. Dh. Es kommen 5 unterschiedliche Werte bei Rum und daraus möchte ich einen Wert bestimmen.

                Ich weiss nur nicht ob dies so möglich ist.

                Da kommt ihr ns Spiel

                paul53P 1 Reply Last reply
                0
                • R Raspberrypi

                  Ich weiss gar nicht ob die möglich ist aber ich möchte sehr gerne die Heizung, da ich in meiner Wohnung oft die Türen offen habe, eine Durchschnitts Ventilöffnung bestimmen. Dh. Es kommen 5 unterschiedliche Werte bei Rum und daraus möchte ich einen Wert bestimmen.

                  Ich weiss nur nicht ob dies so möglich ist.

                  Da kommt ihr ns Spiel

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by paul53
                  #15

                  @raspberrypi sagte: Durchschnitts Ventilöffnung bestimmen.

                  Durchschnitt über alle Ventile?

                  const idsVentile = $('hmip.0.devices.*.channels.1.valvePosition');
                  const idMittel = '0_userdata.0.Ventile.Mittelwert'; // ID anpassen!
                  
                  idsVentile.on(function() {
                      let sum = 0;
                      idsVentile.each(function(id, i) {
                          sum += getState(id).val;    
                      });
                      setState(idMittel, Math.round(100 * sum / idsVentile.length), true);
                  });
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  R 1 Reply Last reply
                  0
                  • paul53P paul53

                    @raspberrypi sagte: Durchschnitts Ventilöffnung bestimmen.

                    Durchschnitt über alle Ventile?

                    const idsVentile = $('hmip.0.devices.*.channels.1.valvePosition');
                    const idMittel = '0_userdata.0.Ventile.Mittelwert'; // ID anpassen!
                    
                    idsVentile.on(function() {
                        let sum = 0;
                        idsVentile.each(function(id, i) {
                            sum += getState(id).val;    
                        });
                        setState(idMittel, Math.round(100 * sum / idsVentile.length), true);
                    });
                    
                    R Offline
                    R Offline
                    Raspberrypi
                    wrote on last edited by
                    #16

                    @paul53 sagte in Homatik Ip Heizkörper Thermostat:

                    @raspberrypi sagte: Durchschnitts Ventilöffnung bestimmen.

                    Durchschnitt über alle Ventile?

                    const idsVentile = $('hmip.0.devices.*.channels.1.valvePosition');
                    const idMittel = '0_userdata.0.Ventile.Mittelwert'; // ID anpassen!
                    
                    idsVentile.on(function() {
                        let sum = 0;
                        idsVentile.each(function(id, i) {
                            sum += getState(id).val;    
                        });
                        setState(idMittel, Math.round(100 * sum / idsVentile.length), true);
                    });
                    

                    Ja richtig. Ich weiss Gloss nicht ob sowas überhaupt geht ???

                    paul53P 1 Reply Last reply
                    0
                    • R Raspberrypi

                      @paul53 sagte in Homatik Ip Heizkörper Thermostat:

                      @raspberrypi sagte: Durchschnitts Ventilöffnung bestimmen.

                      Durchschnitt über alle Ventile?

                      const idsVentile = $('hmip.0.devices.*.channels.1.valvePosition');
                      const idMittel = '0_userdata.0.Ventile.Mittelwert'; // ID anpassen!
                      
                      idsVentile.on(function() {
                          let sum = 0;
                          idsVentile.each(function(id, i) {
                              sum += getState(id).val;    
                          });
                          setState(idMittel, Math.round(100 * sum / idsVentile.length), true);
                      });
                      

                      Ja richtig. Ich weiss Gloss nicht ob sowas überhaupt geht ???

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by paul53
                      #17

                      @raspberrypi sagte: Ich weiss Gloss nicht ob sowas überhaupt geht ???

                      Funktioniert das Skript nicht?
                      Vorher natürlich erst den Datenpunkt für den Mittelwert erstellen! Dann nach Skriptstart warten, bis ein Ventil seine Position ändert.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      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

                      278

                      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