Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Hilfe bei Script für Heizungsteuerung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Hilfe bei Script für Heizungsteuerung

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

      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

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

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

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

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

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

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

                @paul53 Hatte ich schon. Daran liegts nicht.

                1 Reply Last reply Reply Quote 0
                • H
                  Hamudulu last edited by 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

                  paul53 2 Replies Last reply Reply Quote 0
                  • paul53
                    paul53 @Hamudulu last edited by

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

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

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

                        @paul53 Was meinst du mit Fusspunkt? Die Raumsolltemperatur?

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

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

                          1 Reply Last reply Reply Quote 0
                          • Jey Cee
                            Jey Cee Developer last edited by

                            @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 1 Reply Last reply Reply Quote 0
                            • H
                              Hamudulu @Jey Cee last edited by

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

                              Jey Cee H 2 Replies Last reply Reply Quote 0
                              • Jey Cee
                                Jey Cee Developer @Hamudulu last edited by

                                @Hamudulu danke.

                                1 Reply Last reply Reply Quote 0
                                • H
                                  Hamudulu @Hamudulu last edited by

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

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

                                    @Hamudulu sagte:

                                    das obere Script versucht in Blockly nachzustellen.

                                    Vielleicht so ?

                                    Blockly_temp.JPG

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

                                      @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 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      530
                                      Online

                                      31.8k
                                      Users

                                      80.0k
                                      Topics

                                      1.3m
                                      Posts

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