Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Homatik Ip Heizkörper Thermostat

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Homatik Ip Heizkörper Thermostat

    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      oFbEQnpoLKKl6mbY5e13 @Raspberrypi last edited by

      @raspberrypi

      Was fehlt denn? Ventilposition wird doch angezeigt!

      R 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Raspberrypi last edited by

        @raspberrypi sagte: gescheitert mein Script fertig zu bekommen,

        Wenn im Skript als Grenzwert 20 % verwendet wird, der Datenpunkt "valvePosition" aber nur Werte von 0 bis 0.99 liefert, kann es nicht funktionieren.

        R 1 Reply Last reply Reply Quote 0
        • R
          Raspberrypi @paul53 last edited by

          @paul53 said in Homatik Ip Heizkörper Thermostat:

          @raspberrypi sagte: gescheitert mein Script fertig zu bekommen,

          Wenn im Skript als Grenzwert 20 % verwendet wird, der Datenpunkt "valvePosition" aber nur Werte von 0 bis 0.99 liefert, kann es nicht funktionieren.

          bei RaspberryMatic hat es funktioniert, nur hier halt nicht, egal ob ich sage du sollst bei 0,2% reagieren oder bei 0,4% es funktioniert nicht.

          1 Reply Last reply Reply Quote 0
          • R
            Raspberrypi @oFbEQnpoLKKl6mbY5e13 last edited by

            @ofbeqnpolkkl6mby5e13 said in Homatik Ip Heizkörper Thermostat:

            @raspberrypi

            Was fehlt denn? Ventilposition wird doch angezeigt!

            Es fehlt die umsetzung, weil ich habe probiert mit Blockly zu arbeiten, aber ich komm damit nicht klar, mir fehlen die sachen von wegen "Bei 0,2 o 0,4 % Ventilposition schaltest du Relais auf true. (an)
            Und dann habe ich es mit Rules probiert, ohne erfolg.
            ich weiß nicht was ich sonst noch machen soll.....

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

              @raspberrypi sagte: versuchen dies via Java Script zu machen

              // 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);
                }
              });
              
              R 1 Reply Last reply Reply Quote 0
              • R
                Raspberrypi @paul53 last edited by 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?

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

                  @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 1 Reply Last reply Reply Quote 0
                  • R
                    Raspberrypi @paul53 last edited by

                    @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.

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

                      @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 1 Reply Last reply Reply Quote 0
                      • R
                        Raspberrypi @paul53 last edited by 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);
                          }
                        });
                        
                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Raspberrypi last edited by

                          @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 1 Reply Last reply Reply Quote 0
                          • R
                            Raspberrypi @paul53 last edited by

                            @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 Reply Quote 0
                            • R
                              Raspberrypi @Raspberrypi last edited by

                              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

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @Raspberrypi last edited by 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 1 Reply Last reply Reply Quote 0
                                • R
                                  Raspberrypi @paul53 last edited by

                                  @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 ???

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

                                    @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.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    511
                                    Online

                                    31.7k
                                    Users

                                    79.8k
                                    Topics

                                    1.3m
                                    Posts

                                    3
                                    17
                                    540
                                    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