Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Aktor schalten bei 2 unterschiedlichen Werten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Aktor schalten bei 2 unterschiedlichen Werten

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

      Hallo Leute,

      Könnt ihr meinem Gehirn einen kleinen Schubser geben.

      Ich will einen Steckdosen Aktor schalten der auf 2 Sensoren lauscht.

      Wenn der Co2 Wert zu hoch ist soll der Lüfter einschalten ebenso wenn die Luftfeuchtigkeit über einen bestimmten Wert geht.
      Jetzt hab ich mir ein Blockly mit den beiden Werten gemacht.
      Das Ganze funktioniert jetzt natürlich nicht richtig da der Wert vom Co2 Sensor passt und den Lüfter ausschaltet aber der Luftfeuchte Sensor anschlägt und den Lüfter einschalten möchte.

      Wie kann ich die beiden Werte mit den Schwellenwerten messen und vergleichen das diese korrekte den Lüfter aus und einschalten.

      ff13801b-4c63-41fa-bc65-58a1400668a7-image.png

      Stehe im Moment ein wenig auf dem Schlauch.
      Danke euch mal für die Hilfe.

      LG
      mandragora

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

        @mandragora
        Man benötigt eine ODER-Verknüpfung der Lüftungsanforderung.

        Blockly_temp.JPG

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

          @paul53

          Hallo
          Erstmals vielen lieben Dank für die schnelle Antwort.
          Ich habe das gerade mal bei mir nachgebaut und hab noch ein paar Verständnisfragen.

          Mit meinem Verständnis müsste das so in etwa passen !
          dd0b612c-10bf-4107-96d0-9a1579132681-image.png

          Könnest du da bitte nochmals drüberschauen und mich ggf. korrigieren.

          Vielen Dank nochmals für deine Bemühungen.

          LG
          mandragora

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

            @mandragora
            Der Vergleich mit ein muss mit dem Wert des Schaltaktors (.STATE) erfolgen.
            Die Verknüpfung der beiden Variablen muss in oder geändert werden: ein = CO2_hoch oder rH_hoch
            Die beiden Vergleiche oben sind falsch herum. Der Rest passt.

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

              @paul53 said in Aktor schalten bei 2 unterschiedlichen Werten:

              @mandragora
              Der Vergleich mit ein muss mit dem Wert des Schaltaktors (.STATE) erfolgen.
              Die Verknüpfung der beiden Variablen muss in oder geändert werden: ein = CO2_hoch oder rH_hoch
              Die beiden Vergleiche oben sind falsch herum. Der Rest passt.

              Ok. den Lüfter Schaltaktor hab ich mal eingetragen und die Verknüpfung auf "oder" geändert.
              Welche Vergleiche meinst du sind falsch herum ?
              Der CO2 (PPM) Wert ist der 1000er Wert und der Wert für die Luftfeuchte (rH) die 90

              bbe90684-ebfa-41be-8718-27e8909111d3-image.png

              oder meinst du die beiden Vergleiche ?
              93534f2b-9e91-42e5-894c-e217eda1794c-image.png

              die sollten nach meinem Verständnis doch auch passen oder verstehe ich hier was falsch ?

              Aktuell mit meinen Einstellungen schaltet der Lüfter permanent aus und wieder ein bei aktuell diesen Werten
              b212e598-3d73-42e7-8d6e-464e7df47382-image.png

              Danke dir für deine Geduld

              lg
              mandragora

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

                @mandragora sagte:

                Welche Vergleiche meinst du sind falsch herum ?
                Der CO2 (PPM) Wert ist der 1000er Wert und der Wert für die Luftfeuchte (rH) die 90

                Genau die beiden: Der Datenpunkt-Wert muss größer sein als der Grenzwert (hoch).

                @mandragora sagte in Aktor schalten bei 2 unterschiedlichen Werten:

                Aktuell mit meinen Einstellungen schaltet der Lüfter permanent aus und wieder ein bei aktuell diesen Werten

                Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

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

                  @paul53

                  Ich hab die Werte jetzt mal abgeändert und hoffe das ich dich jetzt richtig verstanden habe.

                  70dd1cac-9d6b-414f-bb42-8ba812c23960-image.png

                  Anbei noch das JS

                  var CO2_hoch, ein, rH_hoch;
                  
                  // Beschreibe diese Funktion …
                  function lueften() {
                    ein = CO2_hoch || rH_hoch;
                    // Vergleich mit Aktor Lüfter
                    if (ein != getState("hm-rpc.0.PEQ0415297.1.STATE").val) {
                      // schalte Lüfter ein
                      setState("hm-rpc.0.PEQ0415297.1.STATE"/*HM-ES-PMSw1-Pl PEQ0415297:1.STATE*/, ein);
                    }
                  }
                  
                  
                  // Sensoren auf Schwellenwerte prüfen
                  CO2_hoch = getState("mqtt.0.espeasyco2.co2sensor.PPM").val > 1000;
                  rH_hoch = getState("mqtt.0.espeasytemperatur.tempsensor.Luftfeuchte").val > 90;
                  lueften();
                  on({id: 'mqtt.0.espeasyco2.co2sensor.PPM', change: "ne"}, function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    CO2_hoch = (obj.state ? obj.state.val : "") > 1000;
                    lueften();
                    // weitere Aktionen
                  });
                  on({id: 'mqtt.0.espeasytemperatur.tempsensor.Luftfeuchte', change: "ne"}, function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    if ((obj.state ? obj.state.val : "") >= 95) {
                      rH_hoch = true;
                    } else if ((obj.state ? obj.state.val : "") <= 85) {
                      rH_hoch = false;
                    }
                    lueften();
                  });
                  

                  Nach dem ändern der Werte schaltet der Lüfter nicht mehr ein was jetzt auch so passen würde latu meinen aktuellen Werten.
                  Kanns heute aber nicht mehr kontrollieren.

                  6b3383c5-c1a0-4bb1-84e8-bbac47caa262-image.png

                  Bin gespannt ob das jetzt passt.

                  Vielen Dank paul53 und gute Nacht.
                  Mein Gerhirn macht heute nicht mehr mit 😄

                  LG
                  mandragora

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

                    @mandragora sagte:

                    Anbei noch das JS

                    Der Code passt.
                    Du solltest bei der CO2-Prüfung noch eine Hysterese einbauen (so wie bei rH), damit die Lüftung im Bereich um 1000 ppm nicht ständig ein- und ausschaltet.

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

                      @paul53

                      Hallo Paul

                      Ich hab heute mal das Ganze getestet und irgendwo hab ich da noch einen Fehler im System.
                      Wenn die Luftfeuchte über den Grenzwert geht dann schaltet sich der Lüfter ein. Soweit passt das.
                      Aber der Lüfter flappt da rum. Sprich er schaltet sich ein und wieder aus und das die Ganze Zeit hindurch.

                      Ich denke das hast du da auch mit deinem letzten Posting gemeint das ich die Hysterese beim Co2 Wert.
                      Das sollte das dann beseitigen richtig ?

                      Ich hab das jetzt mal so eingebaut.
                      Weiß jetzt leider nicht ob das richtig ist.

                      ac6df335-ccb6-4f06-851e-9b806d9cdd30-image.png

                      Kannst du (ihr) da eventuell mal drüberschauen ob das so passen würde.
                      Bin da leider wenns komplexer wird noch nicht so im Saft.

                      Ich werde es aber gleich auch mal live testen.

                      Danke schon mal für deine/ eure Bemühungen.

                      lg
                      mandragora

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

                        @mandragora sagte:

                        die Hysterese beim Co2 Wert.

                        Das ist noch keine Hysterese. Außerdem falsche Variable gesetzt.

                        Blockly_temp.JPG

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

                          @paul53

                          Ja sorry.. hab das übersehen.
                          Nun hab ichs so geändert

                          a82246d3-7534-436d-8563-b4464c43ece2-image.png

                          Leider hab ich da noch immer einen Wurm drinn.
                          Hab mal ein Video von meiner Visu gemacht wie sich das Ganze verhält.

                          HG hat 99.90 % und lt. Schwellenwert sollte der Lüfter angehen.
                          Macht er auch aber nur ganz kurz und schaltet dann wieder aus.

                          2020-12-30_15-37-42.mp4

                          Kannst du mir sagen wo ich hier den Fehler drinn hab?
                          Irgendwie steige ich da nicht dahinter.

                          Vielen lieben Dank nochmals

                          lg
                          mandragora

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

                            @mandragora sagte:

                            sollte der Lüfter angehen.
                            Macht er auch aber nur ganz kurz und schaltet dann wieder aus.

                            Dann logge mal die Variablen:

                            Blockly_temp.JPG

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

                              @paul53

                              Hallo nochmals.
                              Anbei noch ein kleines Video und Auszug vom Log.

                              javascript.0	2020-12-30 19:03:06.150	info	(1038) script.js.Pilzzucht.Pilze_Einleitung_Fruchtung2: CO2 hoch:false, rH hoch:true
                              javascript.0	2020-12-30 19:03:01.154	info	(1038) script.js.Pilzzucht.Pilze_Einleitung_Fruchtung2: CO2 hoch:false, rH hoch:true
                              javascript.0	2020-12-30 19:02:46.142	info	(1038) script.js.Pilzzucht.Pilze_Einleitung_Fruchtung2: CO2 hoch:false, rH hoch:true
                              javascript.0	2020-12-30 19:02:41.167	info	(1038) script.js.Pilzzucht.Pilze_Einleitung_Fruchtung2: CO2 hoch:false, rH hoch:true
                              
                              

                              2020-12-30_18-58-15.mp4

                              Danke und LG
                              mandragora

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

                                @mandragora sagte:

                                Auszug vom Log.

                                Das Log zeigt: Das Ausschalten kann nicht aus dem Skript kommen. Erstelle mal ein kleines Test-Script:

                                Blockly_temp.JPG

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

                                  @paul53

                                  Hallo Paul,

                                  Manchmal ist das Problem einfach vor dem Monitor 🙂
                                  Ich hab aus versehen mein kopiertes Script 2x laufen gehabt.
                                  Das erste dann noch mit den falschen Einstellungen.
                                  Hab das nun deaktiviert und nun funktioniert es auch mit dem Lüfter. Zumindest jetzt mal mit der Luftfeuchte.
                                  CO2 Überschuss hab ich bis jetzt noch nicht provozieren bzw. testen können.
                                  (Asche über mein Haupt 😉 )

                                  Hab es jetzt getestet und es funktioniert.
                                  Das einzige was jetzt noch nicht ganz passt ist das sich der Benebler wenn er über den Schwellenwert hinaus ist (95%) den Aktor nicht ausschaltet. Der bleibt permament ein.
                                  Hast du da noch einen Tipp für mich ?

                                  Dann denke ich sollte alles soweit wunderbar funktionieren.

                                  Danke dir

                                  lg
                                  mandragora

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

                                    @mandragora sagte:

                                    das sich der Benebler wenn er über den Schwellenwert hinaus ist (95%) den Aktor nicht ausschaltet.

                                    Der Benebler (wozu dient der eigentlich) wird so wie in Deinem ursprünglichen Skript auch nur durch den CO2-Wert gesteuert. Ich würde es so machen, dass entweder der Lüfter oder der Benebler läuft.

                                    Blockly_temp.JPG

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

                                      @paul53

                                      Hallo,

                                      Also der Hintergrund des Ganze ist folgender.

                                      Ich bin Hobbypilzzüchter und hab ein Gewächszelt in dem ich meine Pilze ziehe.
                                      Hier sind 3 Werte von großer Wichtigkeit die optimal in den verschiedenen Wachstumsphasen zusammenspielen müssen.
                                      Das ist zum einen die Temperatur und dann noch die Luftfeuchte und der CO2 Wert.

                                      Sprich während der Primordia Phase benötige ich im Zelt eine Temperatur von 10-15 °C / eine Luftfeuchte von 95-100% und einen CO2 Wert <1000 ppm

                                      Nun will ich das Ganze eben so gut es geht automatisieren.
                                      Die Idee dahinter war im Zelt oben einen Lüfter einzubauen der bei zu hohem CO2 Wert wie zu hoher Luftfeuchte und Temperatur sich einschaltet bis die Schwellwerte wieder im unteren Bereich sind.

                                      Da sich die Temperatur durch das Benebeln sowieso erhöht hab ich es hier mal weg gelassen und mich mal auf die Luftfeuchte und CO2 Wert konzentriert (Denke würde das Blockly auch nur unnötig aufblasen und noch komplizierter machen)

                                      So mal meine Idee wie das Ganze funktionieren könnte.
                                      Ob das dann alles so zusammenspielt kann ich noch nicht sagen. Aber zumindest wäre es einmal ein Ansatz um eine Pilzzucht so gut es geht zu automatisieren.

                                      Und daher müsste der Benebler sich halt dann auch ausschalten wenn er über den Wert drüber ist damit der Lüfter nicht zu lange laufen muss.
                                      Sorry das Ganze hätte ich wohl ganz am Anfang erwähnen sollen. Wäre dann für dich sicher auch einfacher gewesen.

                                      Ich werde das mal so einbauen versuchen wie du es mir gepostet hast.
                                      Dann schaue ich mal wie gut es funktioniert.

                                      Danke Danke Danke

                                      lg
                                      mandragora

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        mandragora @mandragora last edited by

                                        So hab ich das jetzt mal eingebaut

                                        97783715-2c66-4e1c-a002-98f26d97035f-image.png

                                        Ich glaub ich verwechsel da was.
                                        Der Benebler schaltet da nicht aus.

                                        Sorry für meine blöden Fragen

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

                                          @mandragora sagte:

                                          Der Benebler schaltet da nicht aus.

                                          Der Benebler muss ausschalten, wenn der Lüfter einschaltet (nicht, wenn der Lüfter schon läuft). Damit der Benebler bei Skript-Start schaltet, ändere es:

                                          Blockly_temp.JPG

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

                                            @paul53

                                            Hallo und Mahlzeit

                                            Ich hab das jetzt so abgeändert und der Benebler schaltet jetzt. Aber er flappt.
                                            Siehe mein Kurzvideo:

                                            2020-12-31_11-32-16.mp4

                                            Hab es so geändert wie von dir beschrieben. Hab ich da eventuell was übersehen ?

                                            Das Ganze sieht beim mit jetzt so aus

                                            8f583191-4266-4cf5-8cda-30f39e17c19e-image.png

                                            Vielen Dank nochmals und schon vorweg ein gutes und gesundes neues Jahr wünsch ich dir.

                                            lg
                                            mandragora

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            857
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            2
                                            27
                                            970
                                            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