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. Heizkreisregelungen - JS

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    473

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Heizkreisregelungen - JS

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
47 Beiträge 4 Kommentatoren 8.0k Aufrufe 1 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.
  • S Offline
    S Offline
    sound31
    schrieb am zuletzt editiert von
    #29

    Denn Datenpunkt Heizperiode habe ich auch ins Script der FBH geschrieben

    danach schaut das so aus:

    var Xp = 2;
    var Tn = 3600;
    var pwm = 100; //* PWM Zeit verlängert
    const idHeizen = "javascript.0.Heizperiode"/*Heizperiode*/;
    var xid = "knx.0.Sensoren.Erdgeschoss.Temp-Sensor-Kueche-EG"/*Temp-Sensor-Kueche-EG*/;
    var wid = "javascript.0.Sollwert-Küche-EG"/*Sollwert-Küche-EG*/;
    var yid = "knx.0.Aktoren.Heizung-Technik.Ventil-FBH-Kueche-EG"/*Ventil-FBH-Kueche-EG*/;
    
    var n = 0;  // Intervallzähler
    
    var  PI = require('pi-controller');
    
    var pi = new PI(Xp, Tn); 
    pi.setOutputMax(pwm);   // default: OutputMax = 100
    
    // Abfrage für Sommer/Winter noch einfugen
    
    function control() {
      var x = getState(xid).val;    // Istwert in °C
      var w = getState(wid).val;    // Sollwert in °C
      var y = pi.Control(w - x);    // Stellsignal
      n++;
      if (n >= pwm) n = 0;
       if (n < 8 && y > 0)           // Mindesteinschaltdauer: 8 Intervalle
        {   setState(yid, 1);
    //        setState(pump, 1);
        }
      else if (n >= 8 && y <= n)    // Zwei Ventile werden geschalten
        {   setState(yid, 0);
    //        setState(pump, 0);
        }  
    }
    
    control();  // Script start
    
    setInterval(control, 30000 );  // Intervall: von 1 auf 0,5 Minuten geändert
    
    // Abschaltung
    on(idHeizen, function(dp) {
        heizen = dp.state.val;
        control();
    }); 
    
    

    nach dem Start des Scripts kommen zwei Warn Meldungen:

    (Ausdruck beim Start)

    08:03:46.803 [info] javascript.0 Stop script script.js.Heizung.Küche-EG.FBH-Küche-EG

    08:03:47.528 [info] javascript.0 Start javascript script.js.Heizung.Küche-EG.FBH-Küche-EG

    08:03:47.528 [warn] javascript.0 at control (script.js.Heizung.Küche-EG.FBH-Küche-EG:25:9)

    08:03:47.528 [warn] javascript.0 at script.js.Heizung.Küche-EG.FBH-Küche-EG:34:1

    08:03:47.528 [info] javascript.0 script.js.Heizung.Küche-EG.FBH-Küche-EG: registered 1 subscription and 0 schedules

    ist das so korrekt?

    Bei Script für die Regelung der Temperatur im OG genügt es ja wen die Abschaltung im
    > // 3-Punkt-Ansteuerung aus Stellsignal ist, oder?

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #30

      Die Warnung kommt, weil die Variable heizen nicht deklariert ist.

      var heizen = getState(idHeizen).val;
      

      Die Auswertung muss in der Funktion control() erfolgen, damit die Ventile zu bleiben.

         if (n < 8 && y > 0 && heizen)     // Mindesteinschaltdauer: 8 Intervalle
      
      

      Beim Übergang Winter zu Sommer ist es besser, die Ventile gleich zu schließen.

      // Abschaltung
      on(idHeizen, function(dp) {
          heizen = dp.state.val;
          if(!heizen) setState(yid, 0);
      });
      
      

      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 Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #31

        @sound31:

        ei Script für die Regelung der Temperatur im OG genügt es ja wen die Abschaltung im

        // 3-Punkt-Ansteuerung aus Stellsignal

        ist, oder? `
        Ja.

        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 Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #32

          Anmerkung: Da die KNX-Datenpunkte zum Schalten (Ventile, Pumpen) mit 0 und 1 anstelle false/true angesteuert werden müssen, sollte der Datenpunkttyp von "boolean" in "number" (Zahl) geändert 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

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            sound31
            schrieb am zuletzt editiert von
            #33

            Hallo paul53,

            da ich für die Ladung des Boilers und die Fußbodenheizung nur einen Vorlauf

            zur verfügung habe ist dieser mit einem Ventil umschaltbar.

            (Leider ein altes Haus)

            Dazu muss ich allerdings die FBH Pumpe Abschalten.

            Ist das so korrekt wie ichs in das Script eingefügt habe?

            Das Ventil liefert eine "1" wenn es eingeschalten ist.

            // Ansteuerung Pumpe für Fußbodenheizungen
            
            const idHeizen = "javascript.0.Heizperiode"/*Heizperiode*/;
            const idladung = "knx.0.Aktoren.Heizung-Technik.Ventil-Ladung-Boiler"/*Ventil-Ladung-Boiler*/;
            
            var idpump1 = "knx.0.Aktoren.Heizung-Technik.Ventil-FBH-Kueche-EG"/*Ventil-FBH-Kueche-EG*/;
            var idpump2 = "knx.0.Aktoren.Heizung-Technik.Ventil-1-FBH-Flur-EG"/*Ventil-1-FBH-Flur-EG*/;
            var idpump = "knx.0.Aktoren.Heizung-Technik.HK-EG-Pumpe"/*HK-EG-Pumpe*/;
            
            // Initialisierung bei Skriptstart
            var pump1 = getState(idpump1).val;
            var pump2 = getState(idpump2).val;
            var timer = null;
            var heizen = getState(idHeizen).val;
            var ladung = getState(idladung).val;
            
            function control() {
                if(timer) clearTimeout(timer);
                if (pump1 || pump2) {
                    timer = setTimeout(function() {
                        setState(idpump, 1);
                    }, 180000);  // 3 Minuten Verzögerung
                }
                else {
                    timer = setTimeout(function() {
                        setState(idpump, 0);
                    }, 180000);    
               }
            }
            
            // Skriptstart
            control();
            
            // Auf Änderung von Pumpe1 reagieren
            on(idpump1, function(dp) {
                pump1 = dp.state.val;
                control();
            });
            
            // Auf Änderung von Pumpe 2 reagieren
            on(idpump2, function(dp) {
                pump2 = dp.state.val;
                control();
            });
            
            // Abschaltung
            on(idHeizen, function(dp) {
                heizen = dp.state.val;
                control();
            }); 
            
            // Abschaltung wegen Boilerladung
            on(idladung, function(dp) {
                heizen = dp.state.val;
                control();
            }); 
            
            
            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #34

              Die Variable heizen wird im Skript gesetzt aber nicht ausgewertet. Bitte ergänzen:

                  if ((pump1 || pump2) && heizen) {
              
              

              @sound31:

              ist dieser mit einem Ventil umschaltbar….Das Ventil liefert eine "1" wenn es eingeschalten ist. `
              Ist das ein Umschaltventil und was bedeutet "eingeschaltet" ?

              Weshalb soll die Pumpe der FBH bei Speicherladung abschalten ?

              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
              • S Offline
                S Offline
                sound31
                schrieb am zuletzt editiert von
                #35

                Die Pumpe der FBH ist noch eine "Alte" ohne Elektr.Lastregelung,

                Das sollte ich lt. dem Installateur so machen damit kein Überdruck im System entsteht

                da bei der Boilerladung der Vorlauf zur FBH unterbrochen ist.

                Eingeschaltet heißt das Wasser lüft in Richtung Boiler

                Ausgeschalten in Richtung FBH.

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #36

                  @sound31:

                  Eingeschaltet heißt das Wasser lüft in Richtung Boiler `
                  Dann solltest Du es so machen:

                  ...
                      if ((pump1 || pump2) && heizen && !ladung) {
                  ...
                  
                  // Abschaltung wegen Speicherladung
                  on(idladung, function(dp) {
                      ladung = dp.state.val;
                      if(ladung) setState(idpump, 0);  // FBH-Pumpe sofort aus, wenn Speicherladung
                      else control();
                  }); 
                  

                  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
                  • S Offline
                    S Offline
                    sound31
                    schrieb am zuletzt editiert von
                    #37

                    Vielen Dank,

                    Schönen Abend noch.

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      sound31
                      schrieb am zuletzt editiert von
                      #38

                      Hallo Paul53,

                      Ich habe noch eine Frage zum Script Pumpen.

                      Bei Schalten der Boilerladung schalter die Pumpe aus aber nach 3 Minuten wider ein

                      obwohl die Ladung noch ein ist.

                      Hier das Script, vielleicht kannst du noch mal ein Auge drauf werfen, Danke.

                      // Ansteuerung Pumpe für Fußbodenheizungen
                      
                      const idHeizen = "javascript.0.Heizperiode"/*Heizperiode*/;
                      const idladung = "knx.0.Aktoren.Heizung-Technik.Ventil-Ladung-Boiler"/*Ventil-Ladung-Boiler*/;
                      
                      var idpump1 = "knx.0.Aktoren.Heizung-Technik.Ventil-FBH-Kueche-EG"/*Ventil-FBH-Kueche-EG*/;
                      var idpump2 = "knx.0.Aktoren.Heizung-Technik.Ventil-1-FBH-Flur-EG"/*Ventil-1-FBH-Flur-EG*/;
                      var idpump = "knx.0.Aktoren.Heizung-Technik.HK-EG-Pumpe"/*HK-EG-Pumpe*/;
                      
                      // Initialisierung bei Skriptstart
                      var pump1 = getState(idpump1).val;
                      var pump2 = getState(idpump2).val;
                      var timer = null;
                      var heizen = getState(idHeizen).val;
                      var ladung = getState(idladung).val;
                      
                      function control() {
                          if(timer) clearTimeout(timer);
                          if ((pump1 || pump2) && heizen && !ladung) {
                              timer = setTimeout(function() {
                                  setState(idpump, 1);
                              }, 300000);  // 3 Minuten Verzögerung
                          }
                          else {
                              timer = setTimeout(function() {
                                  setState(idpump, 0);
                              }, 180000);    
                         }
                      }
                      
                      // Skriptstart
                      control();
                      
                      // Auf Änderung von Pumpe1 reagieren
                      on(idpump1, function(dp) {
                          pump1 = dp.state.val;
                          control();
                      });
                      
                      // Auf Änderung von Pumpe 2 reagieren
                      on(idpump2, function(dp) {
                          pump2 = dp.state.val;
                          control();
                      });
                      
                      // Abschaltung
                      on(idHeizen, function(dp) {
                          heizen = dp.state.val;
                          control();
                      }); 
                      
                      // Abschaltung wegen Speicherladung
                      on(idladung, function(dp) {
                          ladung = dp.state.val;
                          if(ladung) setState(idpump, 0);  // FBH-Pumpe sofort aus, wenn Speicherladung
                          else control();
                      });
                      
                      
                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #39

                        @sound31:

                        Bei Schalten der Boilerladung schalter die Pumpe aus aber nach 3 Minuten wider ein obwohl die Ladung noch ein ist. `
                        Das kann laut Skript nicht sein, denn die Pumpe schaltet nur ein, wenn die Ladung nicht aktiv ist.

                            if ((pump1 || pump2) && heizen && !ladung) {
                        

                        Liefert der Datenpunkt idLadung nur einen kurzen Impuls? Bitte prüfen

                        // Abschaltung wegen Speicherladung
                        on(idladung, function(dp) {
                            ladung = dp.state.val;
                            log('Speicherladung: ' + ladung);  // Debug
                            if(ladung) setState(idpump, 0);  // FBH-Pumpe sofort aus, wenn Speicherladung
                            else control();
                        });
                        

                        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
                        • S Offline
                          S Offline
                          sound31
                          schrieb am zuletzt editiert von
                          #40

                          Das Ventil bleibt Eingeschalten der Datenpunkt vom KNX her ist somit "Ein"

                          Ich habe die Zeilen Eingefügt:
                          ` > Liefert der Datenpunkt idLadung nur einen kurzen Impuls? Bitte prüfen

                          ` > Code:

                          // Abschaltung wegen Speicherladung

                          on(idladung, function(dp) {

                          ladung = dp.state.val;

                          log('Speicherladung: ' + ladung); // Debug

                          if(ladung) setState(idpump, 0); // FBH-Pumpe sofort aus, wenn Speicherladung

                          else control();

                          });
                          und die Einschaltzeit der Boilerrladung geändert,

                          danach standen diese Zeilen im LOG:

                          hm-rpc.2	2018-01-04 11:12:43.295	info	xmlrpc -> 0 devices
                          hm-rpc.2	2018-01-04 11:12:43.287	info	xmlrpc <- listDevices ["hm-rpc.2"]
                          javascript.0	2018-01-04 11:10:46.085	info	script.js.Heizung.Boilerladung.Boilerladung: registered 0 subscriptions and 3 schedules
                          javascript.0	2018-01-04 11:10:46.077	info	Start javascript script.js.Heizung.Boilerladung.Boilerladung
                          javascript.0	2018-01-04 11:10:46.064	info	Stop script script.js.Heizung.Boilerladung.Boilerladung
                          hm-rpc.2	2018-01-04 11:09:13.278	info	xmlrpc -> 0 devices
                          hm-rpc.2	2018-01-04 11:09:13.270	info	xmlrpc <- listDevices ["hm-rpc.2"]
                          hm-rpc.2	2018-01-04 11:05:43.194	info	xmlrpc -> 0 devices
                          hm-rpc.2	2018-01-04 11:05:43.182	info	xmlrpc <- listDevices ["hm-rpc.2"]
                          hm-rpc.2	2018-01-04 11:02:13.148	info	xmlrpc -> 0 devices
                          hm-rpc.2	2018-01-04 11:02:13.135	info	xmlrpc <- listDevices ["hm-rpc.2"]
                          javascript.0	2018-01-04 11:01:45.660	info	script.js.Heizung.Pumpen.FBH-Pumpe: Speicherladung: 1
                          javascript.0	2018-01-04 11:01:00.239	info	script.js.Heizung.Pumpen.FBH-Pumpe: Speicherladung: 0
                          javascript.0	2018-01-04 11:01:00.159	info	script.js.Heizung.Pumpen.FBH-Pumpe: Speicherladung: 1
                          javascript.0	2018-01-04 11:01:00.116	info	script.js.Heizung.Pumpen.FBH-Pumpe: Speicherladung: 0
                          javascript.0	2018-01-04 11:01:00.113	info	script.js.Heizung.Pumpen.FBH-Pumpe: Speicherladung: 1
                          javascript.0	2018-01-04 10:58:47.109	info	script.js.Heizung.Boilerladung.Boilerladung: registered 0 subscriptions and 3 schedules
                          javascript.0	2018-01-04 10:58:47.098	info	Start javascript script.js.Heizung.Boilerladung.Boilerladung
                          javascript.0	2018-01-04 10:58:47.087	info	Stop script script.js.Heizung.Boilerladung.Boilerladung
                          hm-rpc.2	2018-01-04 10:58:43.092	info	xmlrpc -> 0 devices
                          hm-rpc.2	2018-01-04 10:58:43.084	info	xmlrpc <- listDevices ["hm-rpc.2"]
                          web.0	2018-01-04 10:56:30.083	info	2018-01-04T09:56:30.078Z Connected system.user.admin
                          javascript.0	2018-01-04 10:56:08.350	info	script.js.Heizung.Pumpen.FBH-Pumpe: registered 4 subscriptions and 0 schedules
                          javascript.0	2018-01-04 10:56:08.342	info	Start javascript script.js.Heizung.Pumpen.FBH-Pumpe
                          javascript.0	2018-01-04 10:56:08.315	info	Stop script script.js.Heizung.Pumpen.FBH-Pumpe
                          hm-rpc.2	2018-01-04 10:55:13.044	info	xmlrpc -> 0 devices
                          
                          
                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            sound31
                            schrieb am zuletzt editiert von
                            #41

                            Die Pumpe schaltet aber nach 3 Minuten wider ein.

                            1 Antwort Letzte Antwort
                            0
                            • DutchmanD Offline
                              DutchmanD Offline
                              Dutchman
                              Developer Most Active Administrators
                              schrieb am zuletzt editiert von
                              #42

                              @sound31:

                              Die Pumpe schaltet aber nach 3 Minuten wider ein. `

                              Und das passiert auch durch den JavaScript adapter oder könnt es irgendwo anders her ?

                              –-----------------------

                              Send from mobile device

                              Das schöne ios hat Auto Korrektur zum k****

                              Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                              1 Antwort Letzte Antwort
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #43

                                @Dutchman:

                                Und das passiert auch durch den JavaScript adapter oder könnt es irgendwo anders her ? `
                                Auch das lässt sich durch ein zusätzliches Log feststellen

                                        timer = setTimeout(function() {
                                            setState(idpump, 1);
                                            log('FBH-Pumpe Ein, Typ von Ladung: ' + typeof ladung);
                                        }, 300000);  // 5 Minuten Verzögerung
                                
                                

                                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
                                • DutchmanD Offline
                                  DutchmanD Offline
                                  Dutchman
                                  Developer Most Active Administrators
                                  schrieb am zuletzt editiert von
                                  #44

                                  @paul53:

                                  Auch das lässt sich durch ein zusätzliches Log feststellen `

                                  man sieht es auch am object wen man mit de maus drauf stehen bleibt :)
                                  979_aenderung.jpg

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    sound31
                                    schrieb am zuletzt editiert von
                                    #45

                                    Aus der Anforderung zur Ladung kommt es nicht obwohl mir dieser Eintrag

                                    etwas verdächtig vorkommt:

                                    Warum hier innerhalb nicht mal einer Sekunde 4x geschalten wird??
                                    4002_screenshot.6.jpg
                                    Ich werde mir mal das Script zur Ladung des Boilers nochmals ansehen

                                    ob es von dort kommt.

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      Hier noch ein Skript (nicht getestet) zur Ansteuerung des 3-Punkt-Antriebs (Mischer)

                                      // 3-Punkt-Ansteuerung aus Stellsignal
                                      
                                      const Laufzeit = 150;  // Laufzeit des Stellantriebs in s
                                      const Stellmax = 100;  // max. Stellsignal (%)
                                      const minMove = 2;     // mindest Positionsänderung des Antriebs (in %)
                                      const idy = 'javascript.0...';  // Datenpunkt-ID Stellsignal
                                      const idAuf = '...';  // Datenpunkt-ID Antrieb Richtung Auf
                                      const idZu = '...';   // Datenpunkt-ID Antrieb Richtung Zu
                                      
                                      var faktor = 1000 * Laufzeit / Stellmax;  // Faktor ms/%
                                      var lastPos = 0;   // letzte Position (Stellsignal)
                                      var motor = true;  // Indikator: Antrieb in Bewegung
                                      
                                      function move(pos) {
                                      	if(!motor) {
                                      		if(pos - lastPos > minMove) {
                                      			setState(idAuf, true);
                                      			motor = true;
                                      			if(timer) clearTimeout(timer);
                                      			timer = setTimeout(function() {
                                      				setState(idAuf, false);
                                      				motor = false;
                                      			}, faktor * (pos - lastPos));
                                      			lastPos = pos;
                                      		}
                                      		else if(lastPos - pos > minMove) {
                                      			setState(idZu, true);
                                      			motor = true;
                                      			var deltaPos = lastPos - pos;
                                      			if(pos === 0) deltaPos = deltaPos + 10;  // Synchronistation "Zu"
                                      			if(timer) clearTimeout(timer);
                                      			timer = setTimeout(function() {
                                      				setState(idZu, false);
                                      				motor = false;
                                      			}, faktor * deltaPos);
                                      			lastPos = pos;
                                      		}	
                                      	}
                                      }
                                      
                                      on(idy, function(dp) {
                                      	move(dp.state.val);
                                      });
                                      
                                      // Bei Skriptstart fährt Antrieb erst auf Position 0 (Zu)
                                      setState(idAuf, false); 
                                      setState(idZu, true);
                                      var timer = setTimeout(function() {
                                          setState(idZu, false);
                                          motor = false;
                                          move(getState(idy).val); // Fahren in Sollposition
                                      }, 1000 * (Laufzeit + 10));
                                      

                                      EDIT: Skriptstart erweitert auf Fahren in Sollposition

                                      S Offline
                                      S Offline
                                      SilSchm
                                      schrieb am zuletzt editiert von
                                      #46

                                      @paul53 Hallo Paul 53, ich habe das PI-Regler-Script für die Vorlauftemperatur in Verbindung mit dem 3-Punkt-Mischer-Script getestet. Es funktioniert soweit super. Vielen Dank für die tolle Umsetzung für eine Idee, die ich schon länger hatte aber nicht umzusetzen wusste. Eine Sache habe ich gefunden, wobei meine Javascript Kenntnisse nicht reichen, um den Fehler zu finden. Wenn das Stellsignal vom PI-Regler 100 % beträgt, fährt beim Start des Mischer-Scripts nach der Initialisierungsfahrt der Mischer nicht wieder auf. Das Stellsignal ist 100 und der Mischer fährt nicht mehr. Wenn ich kurz manuell das Stellsignal auf einen Wert unter 100 setze, fährt der Mischer auf und die Regelung funktioniert wieder super. Das tritt jedesmal nach der Initialisierung auf, wenn 100 % als Stellsignal anliegen. Hast du evtl. eine Idee?

                                      MfG Silvio

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • S SilSchm

                                        @paul53 Hallo Paul 53, ich habe das PI-Regler-Script für die Vorlauftemperatur in Verbindung mit dem 3-Punkt-Mischer-Script getestet. Es funktioniert soweit super. Vielen Dank für die tolle Umsetzung für eine Idee, die ich schon länger hatte aber nicht umzusetzen wusste. Eine Sache habe ich gefunden, wobei meine Javascript Kenntnisse nicht reichen, um den Fehler zu finden. Wenn das Stellsignal vom PI-Regler 100 % beträgt, fährt beim Start des Mischer-Scripts nach der Initialisierungsfahrt der Mischer nicht wieder auf. Das Stellsignal ist 100 und der Mischer fährt nicht mehr. Wenn ich kurz manuell das Stellsignal auf einen Wert unter 100 setze, fährt der Mischer auf und die Regelung funktioniert wieder super. Das tritt jedesmal nach der Initialisierung auf, wenn 100 % als Stellsignal anliegen. Hast du evtl. eine Idee?

                                        MfG Silvio

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

                                        @SilSchm sagte:

                                        Das Stellsignal ist 100 und der Mischer fährt nicht mehr.

                                        Der Trigger, der die Mischerbewegung anstößt, benötigt eine Wertänderung, die nicht erfolgt, wenn das Stellsignal auf 100 % bleibt. Erweitere bitte den Scriptstart (Zeilen 14 bis 20) um das Fahren in die Sollposition:

                                        // Bei Skriptstart fährt Antrieb auf Position 0 (Zu)
                                        setState(idAuf, false); 
                                        setState(idZu, true);
                                        var timer = setTimeout(function() {
                                            setState(idZu, false);
                                            motor = false;
                                            move(getState(idy).val); // Fahren in Sollposition
                                        }, 1000 * (Laufzeit + 10));
                                        

                                        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
                                        Antworten
                                        • In einem neuen Thema antworten
                                        Anmelden zum Antworten
                                        • Älteste zuerst
                                        • Neuste zuerst
                                        • Meiste Stimmen


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        749

                                        Online

                                        32.5k

                                        Benutzer

                                        81.8k

                                        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