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 Offline
    H Offline
    Hamudulu
    schrieb am zuletzt editiert von
    #1

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