Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Suche helfende Hand Lüftungssteuerung

    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

    Suche helfende Hand Lüftungssteuerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @TinoNikol last edited by paul53

      @TinoNikol sagte:

      wenn ich jetzt Dusche sollte ja die Abluft starten! ... Und ganz wichtig Zeitsteuerung

      Habe compareTime() (2 Stellen), einen Datenpunkt für Duschen im Automodus und ein schedule() ergänzt.

      // Zu- und Ablüfter steuern
      
      // IDs anpassen !
      const idZuluft = 'alias.0.Haus.Zuluft.Luefter';
      const idAbluft = 'alias.0.Haus.Abluft.Luefter';
      const idZuMode = '0_userdata.0.Haus.Zuluft.Modus';
      const idAbMode = '0_userdata.0.Haus.Abluft.Modus';
      const idLueft  = '0_userdata.0.Haus.Klima.Lueften';
      const idDusche = '0_userdata.0.Bad.Abluft.Duschen';
      
      var modeZu = getState(idZuMode).val; // 0=Aus,1=Auto,2=Ein
      var modeAb = getState(idAbMode).val;
      var lueft  = getState(idLueft).val && compareTime('07:00', '22:00', 'between'); 
      var duschen = getState(idDusche).val;
      
      function zuluft() {
          let ein = modeZu == 2 || modeZu == 1 && lueft;
          if(ein != getState(idZuluft).val) setState(idZuluft, ein);
      }
      
      function abluft() {
          let ein = modeAb == 2 || modeAb == 1 && (lueft || duschen);
          if(ein != getState(idAbluft).val) setState(idAbluft, ein);
      }
      
      zuluft();
      abluft();
      
      schedule('0 7,22 * * *', function() { // täglich am Morgen und am Abend
          zuluft();
          abluft();
      });
      
      on(idLueft, function(dp) {
          lueft = dp.state.val && compareTime('07:00', '22:00', 'between');
          zuluft();
          abluft();
      });
      
      on(idZuMode, function(dp) {
          modeZu = dp.state.val;
          zuluft();
      });
      
      on(idAbMode, function(dp) {
          modeAb = dp.state.val;
          abluft();
      });
      
      on(idDusche, function(dp) {
          duschen = dp.state.val;
          abluft();
      });
      

      @TinoNikol sagte in Suche helfende Hand Lüftungssteuerung:

      Automatisch eine bestimmte Luftfeuchte hält???

      Das halte ich nicht für sinnvoll. Das Lüftungsskript dient zur Entfeuchtung durch die Außenluft und enthält einen Schutz vor zu trockener Luft.

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

        @paul53 Ok aber wie funktioniert das mit dem Dusch Modus???

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

          Luftfeuchte wäre klasse...

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

            @TinoNikol sagte :

            wie funktioniert das mit dem Dusch Modus???

            Das musst Du wissen, wie erkannt wird, dass geduscht wird. Gibt es einen Taster ? Oder über Anstieg Luftfeuchte ?

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

              @paul53 Sensor Luftfeuchte

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

                @TinoNikol sagte:

                Sensor Luftfeuchte

                Welche Daten hat der Sensor (Auflösung, Zeitverhalten) ?

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

                  @paul53 Ist ein Shelly HT keine Ahnung

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

                    @TinoNikol sagte:

                    Ist ein Shelly HT

                    Habe ich nicht.

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

                      @paul53 said in Suche helfende Hand Lüftungssteuerung:

                      @TinoNikol sagte:

                      Ist ein Shelly HT

                      Habe ich nicht.

                      Denk hab eingestell ab 0,5 % Luftfeuchte meldet er

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

                        @TinoNikol sagte:

                        ab 0,5 % Luftfeuchte meldet er

                        Dann kann man den Anstieg auswerten. Vorschlag:

                        const idRH = 'alias.0.Bad.Klima.rel_Feuchte';
                        const idDusche = '0_userdata.0.Bad.Abluft.Duschen';
                        
                        var duschen = getState(idDusche).val;
                        
                        on(idRH, function(dp) {
                            let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute
                            if(anstieg > 2 && dp.state.val > 66) duschen = true;
                            else if(dp.state.val < 65) duschen = false;
                            setState(idDusche, duschen, true);
                        });
                        
                        T 2 Replies Last reply Reply Quote 0
                        • T
                          TinoNikol @paul53 last edited by

                          @paul53 said in Suche helfende Hand Lüftungssteuerung:

                          @TinoNikol sagte:

                          ab 0,5 % Luftfeuchte meldet er

                          Dann kann man den Anstieg auswerten. Vorschlag:

                          const idRH = 'alias.0.Bad.Klima.rel_Feuchte';
                          const idDusche = '0_userdata.0.Bad.Abluft.Duschen';
                          
                          var duschen = getState(idDusche).val;
                          
                          on(idRH, function(dp) {
                              let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute
                              if(anstieg > 2 && dp.state.val > 66) duschen = true;
                              else if(dp.state.val < 65) duschen = false;
                              setState(idDusche, duschen, true);
                          });
                          

                          Cool

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

                            @paul53 said in Suche helfende Hand Lüftungssteuerung:

                            @TinoNikol sagte:

                            ab 0,5 % Luftfeuchte meldet er

                            Dann kann man den Anstieg auswerten. Vorschlag:

                            const idRH = 'alias.0.Bad.Klima.rel_Feuchte';
                            const idDusche = '0_userdata.0.Bad.Abluft.Duschen';
                            
                            var duschen = getState(idDusche).val;
                            
                            on(idRH, function(dp) {
                                let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute
                                if(anstieg > 2 && dp.state.val > 66) duschen = true;
                                else if(dp.state.val < 65) duschen = false;
                                setState(idDusche, duschen, true);
                            });
                            

                            Irgendwie geht das nicht

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

                              @TinoNikol sagte:

                              Irgendwie geht das nicht

                              Was geht nicht ? Um zu sehen, woran es hakt, füge Log-Ausgaben ein:

                              const idRH = 'alias.0.Bad.Klima.rel_Feuchte';
                              const idDusche = '0_userdata.0.Bad.Abluft.Duschen';
                               
                              var duschen = getState(idDusche).val;
                               
                              on(idRH, function(dp) {
                                  let anstieg = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc); // % pro Minute
                                  if(anstieg > 2 && dp.state.val > 66) duschen = true;
                                  else if(dp.state.val < 65) duschen = false;
                                  setState(idDusche, duschen, true);
                                  log('Anstieg: ' + anstieg + ' %/min, rel. Feuchte: ' + dp.state.val + ' %, Duschen: ' + duschen);
                              });
                              
                              T 2 Replies Last reply Reply Quote 0
                              • T
                                TinoNikol @paul53 last edited by

                                @paul53 Ok geht musste mal restarten aber braucht lang bis reagiert!

                                00:22:37.325	info	javascript.0 (28636) Start javascript script.js.Lüftung.Dusch_Erkennung
                                00:22:37.331	info	javascript.0 (28636) script.js.Lüftung.Dusch_Erkennung: registered 1 subscription and 0 schedules
                                00:23:09.453	info	javascript.0 (28636) script.js.Lüftung.Dusch_Erkennung: Anstieg: 3.7327770763572485, rel. Feuchte: 89.5, Duschen: true
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • T
                                  TinoNikol @paul53 last edited by

                                  @paul53 Hi irgendwas stimmt nicht muss Javascript neustarten sonst Startet Lüftung nicht!

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

                                    @TinoNikol sagte:

                                    muss Javascript neustarten sonst Startet Lüftung nicht!

                                    Das kann wohl kaum an diesem Skript liegen.

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

                                      @paul53 An was könnte es liegen?

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

                                        @TinoNikol sagte:

                                        An was könnte es liegen?

                                        ?? Hast Du irgendwo eine Endlosschleife programmiert ? Meine Skriptvorschläge enthalten keine Endlosschleife, wenn die richtige Datenpunkt-ID zugeordnet ist. Deaktiviere mal die Skripte, die Du nicht gerade testen willst.

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

                                          @paul53 Was heißt endlosschleife?

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

                                            @TinoNikol sagte:

                                            Was heißt endlosschleife?

                                            Eine Endlosschleife ist eine Schleife, die nicht per Programm abgebrochen wird. Sie entsteht z.B., wenn der Trigger-Datenpunkt und der Datenpunkt der geschrieben wird, identisch sind und im Skript der Wert verändert wird. Beispiel:

                                            const idTrigger = 'irgendeine_ID';
                                            
                                            on(idTrigger, function(dp) {
                                               setState(idTrigger, dp.state.val + 1); // Wert im Datenpunkt wird um 1 erhöht, was wiederum einen Trigger auslöst
                                            });
                                            

                                            Eine solche Endlosschleife kann das OS lahmlegen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            754
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript ventilation
                                            4
                                            76
                                            4888
                                            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