Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe bei Script für Heizungsteuerung

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Hilfe bei Script für Heizungsteuerung

Geplant Angeheftet Gesperrt Verschoben JavaScript
17 Beiträge 3 Kommentatoren 1.2k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Hamudulu

    Hallo, ich bin blutiger Anfänger mit dem Javascript bei iobroker und bräuchte mal Hilfe.
    Mein Plan ist dass wenn sich Objekt A ändert zu 1 dann ausführen A , wenn Objekt A ändert zu 2 dann ausführen B.

    if A = 1 dann
    sendTo('viessmannapi.0', 'action', {
    feature: 'heating.circuits.0.operating.programs.comfort',
    action: 'setTemperature',
    payload: {targetTemperature: 10}
    });
    sonst
    sendTo('viessmannapi.0', 'action', {
    feature: 'heating.circuits.0.operating.programs.comfort',
    action: 'setTemperature',
    payload: {targetTemperature: 20}
    });

    oder muss der Syntax ganz anders?

    Wenn x dann
    Wenn y dann

    Kann mir da bitte jemand helfen. Vielen Dank

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #2

    @Hamudulu

    const idA = '...'; // ID von Datenpunkt A
    
    function auswertung(val) {
       var setPoint = 20; 
       if(val == 1) setPoint = 10;
       sendTo('viessmannapi.0', 'action', {
          feature: 'heating.circuits.0.operating.programs.comfort',
          action: 'setTemperature',
          payload: {targetTemperature: setPoint}
       });
    }
    
    on(idA, function(dp) { // triggert bei Wertänderung
       auswertung(dp.state.val);
    });
    
    auswertung(getState(idA).val); // Skriptstart
    

    Brauchbare Javascript-Doku

    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

    H 1 Antwort Letzte Antwort
    1
    • paul53P paul53

      @Hamudulu

      const idA = '...'; // ID von Datenpunkt A
      
      function auswertung(val) {
         var setPoint = 20; 
         if(val == 1) setPoint = 10;
         sendTo('viessmannapi.0', 'action', {
            feature: 'heating.circuits.0.operating.programs.comfort',
            action: 'setTemperature',
            payload: {targetTemperature: setPoint}
         });
      }
      
      on(idA, function(dp) { // triggert bei Wertänderung
         auswertung(dp.state.val);
      });
      
      auswertung(getState(idA).val); // Skriptstart
      

      Brauchbare Javascript-Doku

      H Offline
      H Offline
      Hamudulu
      schrieb am zuletzt editiert von
      #3

      @paul53 Vielen Dank, ich probier das mal. Ich musste allerdings die Auswertung (getState(... weglassen. Das gab eine Fehlermeldung dass es so nicht funktioniert....
      War das eine essentielle Funktion?

      paul53P 1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        Hamudulu
        schrieb am zuletzt editiert von
        #4

        Es funktioniert!!! Tschüss Tado ;-)
        Obergut, vielen Dank für die Hilfe.

        1 Antwort Letzte Antwort
        0
        • H Hamudulu

          @paul53 Vielen Dank, ich probier das mal. Ich musste allerdings die Auswertung (getState(... weglassen. Das gab eine Fehlermeldung dass es so nicht funktioniert....
          War das eine essentielle Funktion?

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #5

          @Hamudulu sagte:

          Ich musste allerdings die Auswertung (getState(... weglassen. Das gab eine Fehlermeldung dass es so nicht funktioniert....

          Dann entferne in der Konfiguration der Javascript-Instanz den Haken bei "NIcht alle Zustände beim Start abonnieren".

          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

          H 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Hamudulu sagte:

            Ich musste allerdings die Auswertung (getState(... weglassen. Das gab eine Fehlermeldung dass es so nicht funktioniert....

            Dann entferne in der Konfiguration der Javascript-Instanz den Haken bei "NIcht alle Zustände beim Start abonnieren".

            H Offline
            H Offline
            Hamudulu
            schrieb am zuletzt editiert von
            #6

            @paul53 Hatte ich schon. Daran liegts nicht.

            1 Antwort Letzte Antwort
            0
            • H Offline
              H Offline
              Hamudulu
              schrieb am zuletzt editiert von Hamudulu
              #7

              Hallo nochmal

              ich bin gerade dabei meine Heizung etwas zu versmarten...
              An und Abwesenheit klappt, jetzt würde ich gern in Abhängigkeit der Außentemperatur die Heizkurve anpassen. In meinem Fall ist es in der Übergangszeit etwas zu kalt gefühlt in der Wohnung und wenns kalt ist genau richtig...
              Scriptversuch, abgeleitet von dem Script oben:

              
              const idA = 'homee.0.TemperatureAndHumiditySensor-168.Temperature-1002'; // Außentemperatur
               
              function auswertung(val) {
                 var setPoint = 0; 
                 if(val <= 12 && val >= 5) setPoint = 1;
                 sendTo('viessmannapi.0', 'action', {
                    feature: 'viessmannapi.0.heating.circuits.0.heating.curve.shift',
                    action: 'setCurve',
                    payload: {shift: setPoint}
                 });
              }
               
              on(idA, function(dp) { // triggert bei Wertänderung
                 auswertung(dp.state.val);
              });
               
              auswertung(getState(idA).val); // Skriptstart
              
              

              Klappt das? Bin mir nicht sicher mit dieser getState Auswertung
              Vielen Dank schon mal.
              Grüße

              paul53P 2 Antworten Letzte Antwort
              0
              • H Hamudulu

                Hallo nochmal

                ich bin gerade dabei meine Heizung etwas zu versmarten...
                An und Abwesenheit klappt, jetzt würde ich gern in Abhängigkeit der Außentemperatur die Heizkurve anpassen. In meinem Fall ist es in der Übergangszeit etwas zu kalt gefühlt in der Wohnung und wenns kalt ist genau richtig...
                Scriptversuch, abgeleitet von dem Script oben:

                
                const idA = 'homee.0.TemperatureAndHumiditySensor-168.Temperature-1002'; // Außentemperatur
                 
                function auswertung(val) {
                   var setPoint = 0; 
                   if(val <= 12 && val >= 5) setPoint = 1;
                   sendTo('viessmannapi.0', 'action', {
                      feature: 'viessmannapi.0.heating.circuits.0.heating.curve.shift',
                      action: 'setCurve',
                      payload: {shift: setPoint}
                   });
                }
                 
                on(idA, function(dp) { // triggert bei Wertänderung
                   auswertung(dp.state.val);
                });
                 
                auswertung(getState(idA).val); // Skriptstart
                
                

                Klappt das? Bin mir nicht sicher mit dieser getState Auswertung
                Vielen Dank schon mal.
                Grüße

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #8

                @Hamudulu sagte:

                jetzt würde ich gern in Abhängigkeit der Außentemperatur die Heizkurve anpassen. In meinem Fall ist es in der Übergangszeit etwas zu kalt gefühlt in der Wohnung und wenns kalt ist genau richtig...

                Das ist häufig der Fall, da die Heizungsbauer die Heizkurve falsch einstellen: Den Fusspunkt zu niedrig (20 °C) und dafür die Steilheit etwas zu groß. Dabei wird nicht beachtet, dass im Bad eine Temperatur von 24 °C vorzusehen ist, was aber in der Übergangszeit bei 20 °C Fusspunkt nicht möglich ist. Erhöhe den Fusspunkt auf 23 ... 24 °C, dann muss nicht per ioBroker eingegriffen werden.

                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

                H 1 Antwort Letzte Antwort
                0
                • H Hamudulu

                  Hallo nochmal

                  ich bin gerade dabei meine Heizung etwas zu versmarten...
                  An und Abwesenheit klappt, jetzt würde ich gern in Abhängigkeit der Außentemperatur die Heizkurve anpassen. In meinem Fall ist es in der Übergangszeit etwas zu kalt gefühlt in der Wohnung und wenns kalt ist genau richtig...
                  Scriptversuch, abgeleitet von dem Script oben:

                  
                  const idA = 'homee.0.TemperatureAndHumiditySensor-168.Temperature-1002'; // Außentemperatur
                   
                  function auswertung(val) {
                     var setPoint = 0; 
                     if(val <= 12 && val >= 5) setPoint = 1;
                     sendTo('viessmannapi.0', 'action', {
                        feature: 'viessmannapi.0.heating.circuits.0.heating.curve.shift',
                        action: 'setCurve',
                        payload: {shift: setPoint}
                     });
                  }
                   
                  on(idA, function(dp) { // triggert bei Wertänderung
                     auswertung(dp.state.val);
                  });
                   
                  auswertung(getState(idA).val); // Skriptstart
                  
                  

                  Klappt das? Bin mir nicht sicher mit dieser getState Auswertung
                  Vielen Dank schon mal.
                  Grüße

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #9

                  @Hamudulu sagte:

                  Bin mir nicht sicher mit dieser getState Auswertung

                  Wenn in der Konfiguration kein Haken bei "NIcht alle Zustände beim Start abonnieren" ist, funktioniert getState().

                  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 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @Hamudulu sagte:

                    jetzt würde ich gern in Abhängigkeit der Außentemperatur die Heizkurve anpassen. In meinem Fall ist es in der Übergangszeit etwas zu kalt gefühlt in der Wohnung und wenns kalt ist genau richtig...

                    Das ist häufig der Fall, da die Heizungsbauer die Heizkurve falsch einstellen: Den Fusspunkt zu niedrig (20 °C) und dafür die Steilheit etwas zu groß. Dabei wird nicht beachtet, dass im Bad eine Temperatur von 24 °C vorzusehen ist, was aber in der Übergangszeit bei 20 °C Fusspunkt nicht möglich ist. Erhöhe den Fusspunkt auf 23 ... 24 °C, dann muss nicht per ioBroker eingegriffen werden.

                    H Offline
                    H Offline
                    Hamudulu
                    schrieb am zuletzt editiert von
                    #10

                    @paul53 Was meinst du mit Fusspunkt? Die Raumsolltemperatur?

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • H Hamudulu

                      @paul53 Was meinst du mit Fusspunkt? Die Raumsolltemperatur?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #11

                      @Hamudulu sagte:

                      Fusspunkt? Die Raumsolltemperatur?

                      Ja. Der Raumsollwert entspricht dem Fusspunkt. Der Fusspunkt der Heizkurve beschreibt den Punkt, an dem der energielose Zustand erreicht wird: Raumsollwert = Vorlaufsollwert = Aussentemperatur = Rücklauftemperatur.

                      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 Antwort Letzte Antwort
                      0
                      • Jey CeeJ Online
                        Jey CeeJ Online
                        Jey Cee
                        Developer
                        schrieb am zuletzt editiert von
                        #12

                        @Hamudulu bitte code und logs in Code tags (6) Packen. Es ist super schlecht zu lesen und unübersichtlich vor allem auf Mobilen Geräten.

                        Bitte hol das nach, dafür gibt es die Bearbeiten funktion rechts unten am Beitrag im 3 Punkte Menü.

                        Persönlicher Support
                        Spenden -> paypal.me/J3YC33

                        H 1 Antwort Letzte Antwort
                        0
                        • Jey CeeJ Jey Cee

                          @Hamudulu bitte code und logs in Code tags (6) Packen. Es ist super schlecht zu lesen und unübersichtlich vor allem auf Mobilen Geräten.

                          Bitte hol das nach, dafür gibt es die Bearbeiten funktion rechts unten am Beitrag im 3 Punkte Menü.

                          H Offline
                          H Offline
                          Hamudulu
                          schrieb am zuletzt editiert von
                          #13

                          @Jey-Cee Sorry, bin neu hier, hab’s nachgeholt und tatsächlich ist es so besser 🥳

                          Jey CeeJ H 2 Antworten Letzte Antwort
                          0
                          • H Hamudulu

                            @Jey-Cee Sorry, bin neu hier, hab’s nachgeholt und tatsächlich ist es so besser 🥳

                            Jey CeeJ Online
                            Jey CeeJ Online
                            Jey Cee
                            Developer
                            schrieb am zuletzt editiert von
                            #14

                            @Hamudulu danke.

                            Persönlicher Support
                            Spenden -> paypal.me/J3YC33

                            1 Antwort Letzte Antwort
                            0
                            • H Hamudulu

                              @Jey-Cee Sorry, bin neu hier, hab’s nachgeholt und tatsächlich ist es so besser 🥳

                              H Offline
                              H Offline
                              Hamudulu
                              schrieb am zuletzt editiert von
                              #15

                              @Hamudulu jetzt hab ich mal zur Übung das obere Script versucht in Blockly nachzustellen.

                              var setpoint;
                              
                              
                              on({id: 'homee.0.Homee-0.HomeeMode-1', change: "ne"}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                if ((obj.state ? obj.state.val : "") == 0) {
                                  setpoint = 23;
                                  sendTo("viessmannapi.0", "action", {
                                     "setTemperature": 'viessmannapi.0.heating.circuits.0.operating.programs.normal'
                                  });
                                } else {
                                  setpoint = 10;
                                  sendTo("viessmannapi.0", "action", {
                                     "setTemperature": 'viessmannapi.0.heating.circuits.0.operating.programs.normal'
                                  });
                                }
                              });
                              

                              Leider funktioniert das nicht ...was fehlt da oder wie definier ich da die Action die stattfinden soll.

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • H Hamudulu

                                @Hamudulu jetzt hab ich mal zur Übung das obere Script versucht in Blockly nachzustellen.

                                var setpoint;
                                
                                
                                on({id: 'homee.0.Homee-0.HomeeMode-1', change: "ne"}, function (obj) {
                                  var value = obj.state.val;
                                  var oldValue = obj.oldState.val;
                                  if ((obj.state ? obj.state.val : "") == 0) {
                                    setpoint = 23;
                                    sendTo("viessmannapi.0", "action", {
                                       "setTemperature": 'viessmannapi.0.heating.circuits.0.operating.programs.normal'
                                    });
                                  } else {
                                    setpoint = 10;
                                    sendTo("viessmannapi.0", "action", {
                                       "setTemperature": 'viessmannapi.0.heating.circuits.0.operating.programs.normal'
                                    });
                                  }
                                });
                                

                                Leider funktioniert das nicht ...was fehlt da oder wie definier ich da die Action die stattfinden soll.

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #16

                                @Hamudulu sagte:

                                das obere Script versucht in Blockly nachzustellen.

                                Vielleicht so ?

                                Blockly_temp.JPG

                                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

                                H 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @Hamudulu sagte:

                                  das obere Script versucht in Blockly nachzustellen.

                                  Vielleicht so ?

                                  Blockly_temp.JPG

                                  H Offline
                                  H Offline
                                  Hamudulu
                                  schrieb am zuletzt editiert von
                                  #17

                                  @paul53 Hallo, nein läuft leider nicht. Der Unterschied sind die " die sind im Blockly " und im anderen Script ' und da läuft es....kann das sein?

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  643

                                  Online

                                  32.6k

                                  Benutzer

                                  82.1k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe