Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. (gelöst) Klimaanlagen einschalten, Reihenfolge

    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

    (gelöst) Klimaanlagen einschalten, Reihenfolge

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

      Hallo Leute,

      ich habe ein Blockly, wo die Klimaanlagen nach einer bestimmten Reihenfolge ein- und ausgeschaltet werden sollen. Ich habe diese Reihenfolge aber geändert und das Blockly funktioniert jetzt nicht mehr richtig vom Ablauf.

      So sollte es jetzt sein
      Einschalten:

      1. Schlafzimmer
      2. Kinderzimmer
      3. Dachgeschoss

      Ausschalten

      1. Dachgeschoss
      2. Kinderzimmer
      3. Schlafzimmer

      Ich habe das ganze jetzt allerdings per Java hier hinzugefügt, weil per Screenshot sind es immer sehr viele Bilder

      Wenn ich es doch als Blockly rein setzten soll, bitte eine kurze Info

      var bezug, grenzwertEin, grenzwertAus, cnt, delayOn, delayOn2, msg, delayOn3, delayOff, delayOff2, delayOff3;
      
      
      on({ id: [].concat(['discovergy.0.60671207.Power_Consumption']).concat(['discovergy.0.60671207.Power_Delivery']), change: 'ne' }, async (obj) => {
        bezug = getState('discovergy.0.60671207.Power_Consumption').val - getState('discovergy.0.60671207.Power_Delivery').val;
        grenzwertEin = -500;
        // Hysterese etwas größer als Leistungsaufnahme
        grenzwertAus = grenzwertEin + 700;
        console.info((['Bezug:',bezug,'W. Grenzwert Ein:',grenzwertEin].join('')));
        // Klimaanlagen einschalten
        if (bezug >= grenzwertEin) {
          (() => { if (delayOn) { clearInterval(delayOn); delayOn = null; }})();
          setState('0_userdata.0.Klimaanlagen.SZ.SZ_RestLZ_einschalten' /* SZ_RestLZ_einschalten */, 0, true);
        } else if (!delayOn) {
          // Klima Schlafzimmer einschalten
          cnt = 50;
          delayOn = setInterval(async () => {
            if (cnt > 0) {
              msg = '';
              cnt = (typeof cnt === 'number' ? cnt : 0) + -1;
              if (getState('0_userdata.0.Klimaanlagen.SZ.Freigabe1').val && !getState('melcloud.0.devices.58426692.control.power').val) {
                setState('0_userdata.0.Klimaanlagen.SZ.SZ_RestLZ_einschalten' /* SZ_RestLZ_einschalten */, (cnt / 10), true);
                if (cnt == 0) {
                  setState('melcloud.0.devices.58426692.control.power' /* Power */, true);
                  msg = 'Klima Schlafzimmer an';
                  (() => { if (delayOn) { clearInterval(delayOn); delayOn = null; }})();
                }
              }
              if (msg) {
                sendTo('email.0', 'send', {
                  text: msg,
                  to: '',
                  subject: msg,
                });
                console.log('email: ' + msg);
              }
            }
          }, 6000);
        }
        if (bezug >= grenzwertEin) {
          (() => { if (delayOn2) { clearInterval(delayOn2); delayOn2 = null; }})();
          setState('0_userdata.0.Klimaanlagen.KZ.KZ_RestLZ_einschalten' /* KZ_RestLZ_einschalten */, 0, true);
        } else if ((getState('melcloud.0.devices.58426692.control.power').val || (!getState('0_userdata.0.Klimaanlagen.SZ.Freigabe1').val)) && (!delayOn2)) {
          // Klima Kinderzimmer einschalten
          cnt = 100;
          delayOn2 = setInterval(async () => {
            if (cnt > 0) {
              msg = '';
              cnt = (typeof cnt === 'number' ? cnt : 0) + -1;
              if (getState('0_userdata.0.Klimaanlagen.KZ.Freigabe2').val && !getState('melcloud.0.devices.58426763.control.power').val) {
                setState('0_userdata.0.Klimaanlagen.KZ.KZ_RestLZ_einschalten' /* KZ_RestLZ_einschalten */, (cnt / 10), true);
                if (cnt == 0) {
                  setState('melcloud.0.devices.58426763.control.power' /* Power */, true);
                  msg = 'Klima Kinderzimmer an';
                  (() => { if (delayOn2) { clearInterval(delayOn2); delayOn2 = null; }})();
                }
              }
              if (msg) {
                sendTo('email.0', 'send', {
                  text: msg,
                  to: '',
                  subject: msg,
                });
                console.log('email: ' + msg);
              }
            }
          }, 6000);
        }
        if (bezug >= grenzwertEin) {
          (() => { if (delayOn3) { clearInterval(delayOn3); delayOn3 = null; }})();
          setState('0_userdata.0.Klimaanlagen.DG.DG_RestLZ_einschalten' /* DG_RestLZ_einschalten */, 0, true);
        } else if ((getState('melcloud.0.devices.58426692.control.power').val || (!getState('0_userdata.0.Klimaanlagen.SZ.Freigabe1').val)) && (getState('melcloud.0.devices.58426763.control.power').val || (!getState('0_userdata.0.Klimaanlagen.KZ.Freigabe2').val)) && (!delayOn3)) {
          // Klima Dachgeschoss einschalten
          cnt = 100;
          delayOn3 = setInterval(async () => {
            if (cnt > 0) {
              msg = '';
              cnt = (typeof cnt === 'number' ? cnt : 0) + -1;
              if (getState('0_userdata.0.Klimaanlagen.DG.Freigabe3').val && !getState('melcloud.0.devices.58426579.control.power').val) {
                setState('0_userdata.0.Klimaanlagen.DG.DG_RestLZ_einschalten' /* DG_RestLZ_einschalten */, (cnt / 10), true);
                if (cnt == 0) {
                  setState('melcloud.0.devices.58426579.control.power' /* Power */, true);
                  msg = 'Klima Dachgeschoss an';
                  (() => { if (delayOn3) { clearInterval(delayOn3); delayOn3 = null; }})();
                }
              }
              if (msg) {
                sendTo('email.0', 'send', {
                  text: msg,
                  to: '',
                  subject: msg,
                });
                console.log('email: ' + msg);
              }
            }
          }, 6000);
        }
        // Klimaanlagen auschalten
        if (bezug <= grenzwertAus) {
          (() => { if (delayOff) { clearInterval(delayOff); delayOff = null; }})();
          setState('0_userdata.0.Klimaanlagen.DG.DG_RestLZ_ausschalten' /* DG_RestLZ_ausschalten */, 0, true);
        } else if ((!getState('melcloud.0.devices.58426692.control.power').val) && getState('0_userdata.0.Klimaanlagen.SZ.Freigabe1').val && (!delayOff)) {
          // Klima Dachgeschoss ausschalten
          cnt = 50;
          delayOff = setInterval(async () => {
            if (cnt > 0) {
              msg = '';
              cnt = (typeof cnt === 'number' ? cnt : 0) + -1;
              if (getState('melcloud.0.devices.58426579.control.power').val) {
                setState('0_userdata.0.Klimaanlagen.DG.DG_RestLZ_ausschalten' /* DG_RestLZ_ausschalten */, (cnt / 10), true);
                if (cnt == 0) {
                  setState('melcloud.0.devices.58426579.control.power' /* Power */, false);
                  msg = 'Klima Dachgeschoss aus';
                  (() => { if (delayOn) { clearInterval(delayOn); delayOn = null; }})();
                }
              }
              if (msg) {
                sendTo('email.0', 'send', {
                  text: msg,
                  to: '',
                  subject: msg,
                });
                console.log('email: ' + msg);
              }
            }
          }, 6000);
        }
        if (bezug <= grenzwertAus) {
          (() => { if (delayOff2) { clearInterval(delayOff2); delayOff2 = null; }})();
          setState('0_userdata.0.Klimaanlagen.KZ.KZ_RestLZ_ausschalten' /* KZ_RestLZ_ausschalten */, 0, true);
        } else if ((!getState('melcloud.0.devices.58426692.control.power').val) && getState('0_userdata.0.Klimaanlagen.SZ.Freigabe1').val && (!delayOff2)) {
          // Klima Kinderzimmer ausschalten
          cnt = 100;
          delayOff2 = setInterval(async () => {
            if (cnt > 0) {
              msg = '';
              cnt = (typeof cnt === 'number' ? cnt : 0) + -1;
              if (getState('melcloud.0.devices.58426763.control.power').val) {
                setState('0_userdata.0.Klimaanlagen.KZ.KZ_RestLZ_ausschalten' /* KZ_RestLZ_ausschalten */, (cnt / 10), true);
                if (cnt == 0) {
                  setState('melcloud.0.devices.58426763.control.power' /* Power */, false);
                  msg = 'Klima Kinderzimmer aus';
                  (() => { if (delayOn2) { clearInterval(delayOn2); delayOn2 = null; }})();
                }
              }
              if (msg) {
                sendTo('email.0', 'send', {
                  text: msg,
                  to: '',
                  subject: msg,
                });
                console.log('email: ' + msg);
              }
            }
          }, 6000);
        }
        if (bezug <= grenzwertAus) {
          (() => { if (delayOff3) { clearInterval(delayOff3); delayOff3 = null; }})();
          setState('0_userdata.0.Klimaanlagen.SZ.SZ_RestLZ_ausschalten' /* SZ_RestLZ_ausschalten */, 0, true);
        } else if ((!delayOff3) && getState('0_userdata.0.Klimaanlagen.SZ.Freigabe1').val) {
          // Klima Schlafzimmer ausschalten
          cnt = 100;
          delayOff3 = setInterval(async () => {
            if (cnt > 0) {
              msg = '';
              cnt = (typeof cnt === 'number' ? cnt : 0) + -1;
              if (getState('melcloud.0.devices.58426692.control.power').val) {
                setState('0_userdata.0.Klimaanlagen.SZ.SZ_RestLZ_ausschalten' /* SZ_RestLZ_ausschalten */, (cnt / 10), true);
                if (cnt == 0) {
                  setState('melcloud.0.devices.58426692.control.power' /* Power */, false);
                  msg = 'Klima Schlafzimmer aus';
                  (() => { if (delayOn3) { clearInterval(delayOn3); delayOn3 = null; }})();
                }
              }
              if (msg) {
                sendTo('email.0', 'send', {
                  text: msg,
                  to: '',
                  subject: msg,
                });
                console.log('email: ' + msg);
              }
            }
          }, 6000);
        }
      });
      
      Homoran paul53 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @perladd last edited by

        @perladd sagte in Klimaanlagen einschalten, Rheinfolge geändet, Hiiilfe:

        kurze Info

        !

        P 2 Replies Last reply Reply Quote 0
        • P
          perladd @Homoran last edited by

          @homoran

          Hier sind dann die Blocklys

          1.png
          2.png
          3.png
          4.png
          5.png
          6.png
          7.png
          8.png

          VG
          Thomas

          P 1 Reply Last reply Reply Quote 0
          • P
            perladd @perladd last edited by

            @perladd

            Ich habe noch einige Kommentare hinzugefügt, zur besseren Übersicht

            1.png

            2.png

            3.png

            4.png

            5.png

            6.png

            7.png

            8.png

            9.png

            paul53 1 Reply Last reply Reply Quote 0
            • P
              perladd @Homoran last edited by

              @homoran

              Hallo,

              ich weiß nicht ob du noch die Blockly Bilder gesehen hast. Ich habe jetzt nocheinmal kräftig getestet.
              Also die Einschaltreihenfolge funktioniert.
              Beim ausschalten, schaltet mir das Blockly allerdings erst die Klima vom Schlafzimmer aus, es sollte eigentlich erst die vom Dachgeschoss ausgehen.
              Wenn die Klima vom Schlafzimmer denn dann ausgegangen ist, wollen die vom Kinderzimmer und Dachgeschoss gleichzeitig ausgehen, wenn die Zeit abgelaufen ist. Da tritt aber das nächste Problem auf. Die Klima aus bleibt bei 0,1 Minuten stehen und die Klima Dachgeschoss bei 0,2 Minuten und die Zeit läuft nicht weiter und somit werden die beiden Klimas auch erst gar nicht ausgeschaltet

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @perladd last edited by

                @perladd sagte in Klimaanlagen einschalten, Rheinfolge geändet, Hiiilfe:

                ich weiß nicht ob du noch die Blockly Bilder gesehen hast

                ja, hab ich.

                Das ist mir aber ehrlich gesagt zu viel.
                Bei so einem Riesenblockly müsste ich mich sehr lange einarbeiten, wenn ich es nicht selber schrittweise entwickelt und immer wieder erweitert habe.

                du müsstest es jetzt mit der funktionierenden Urversion vergleichen welche Änderungen du durchgeführt und dadurch ggf. die Hierarchien ineinandergreifender Aktionen zerstört hast

                P 1 Reply Last reply Reply Quote 0
                • P
                  perladd @Homoran last edited by

                  @homoran

                  Okay kann ich natürlich verstehen, jeder hat sein eigenes Programmierung und weg führt nach Rom 😂😂😂

                  Trotzdem danke 😊

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

                    @perladd sagte: Ausschalten

                    Dachgeschoss
                    Kinderzimmer
                    Schlafzimmer

                    Blockly_temp.JPG

                    Weshalb wird beim Ausschalten die Freigabe geprüft? Beim Ausschalten des Schlafzimmergerätes muss geprüft werden, ob die beiden anderen Geräte bereits ausgeschaltet sind:
                    sonst falls nicht DG-Gerät ein UND nicht Kinderzimmergerät ein UND nicht delayOff3.
                    Gleiche Logik mit ODER:

                    Blockly_temp.JPG

                    Das gilt analog auch für das Kinderzimmergerät:
                    sonst falls nicht DG-Gerät ein UND nicht delayOff2.

                    Blockly_temp.JPG

                    Beim Ausschalten des DG-Gerätes als erstes darf nur nicht delayOff geprüft werden.

                    Blockly_temp.JPG

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

                      @perladd sagte: Rheinfolge

                      Fluss abwärts oder Fluss aufwärts?

                      1 Reply Last reply Reply Quote 1
                      • P
                        perladd @paul53 last edited by

                        @paul53

                        Hallo,

                        vielen Dank, dank dieser Anleitung habe ich es glaub ich hinbekommen. Es ist immer wieder das Kopierproblem 🙂 🙂
                        Hab zu viel vom einschalten kopiert.
                        Du bist echt fit mit den Blocklys 🙂

                        VG
                        Thomas

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

                          @paul53

                          Hallo,

                          sorry das ich dich nocheinmal belästige.
                          Ich verstehe eine Berechnung beim einschalten nicht. Die Klima SZ steht auf 50, geht also wunderbar nach 5 Minuten in Betrieb. Die Klima Kinderz. steht auf 100 und geht ebenfalls nach 10 Minuten in Betrieb. Die Klima DG steht ebenfalls auf 100, bleibt aber allerdings bei 0,1 Minuten stehen und geht nicht in Betrieb. Setzte ich die Zeit z.B. auf 18 geht auch die Klima DG nach 1,8 Minuten in Betrieb. Muss ich das verstehen ?????
                          Hat das was mit dem Delay und 6 Sek. zu tun, aber dann dürfte die Klima SZ ja auch nicht nach 10 Minuten in Betrieb gehen.
                          Vielleicht hast du da noch eine Erklärung für

                          VG

                          Thomas

                          paul53 1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators last edited by

                            @perladd sagte in Klimaanlagen einschalten, Rheinfolge geändet, Hiiilfe:

                            Muss ich das verstehen

                            dann ist irgenwo beim DG ein falscher Faktor drin

                            P 1 Reply Last reply Reply Quote 0
                            • P
                              perladd @Homoran last edited by

                              @homoran

                              Hallo,

                              für mich stehen hier überall die gleichen Werte 🙄 , bis auf die Einschaltzeiten natürlich

                              Screenshot 2024-07-04 140032.png
                              Screenshot 2024-07-04 135956.png
                              Screenshot 2024-07-04 135909.png

                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @perladd last edited by

                                @perladd 🤷

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

                                  @perladd sagte: Vielleicht hast du da noch eine Erklärung für

                                  Leider nein.
                                  Versuche es mal mit einer gesonderten Zählvariable z.B. cntDG.

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

                                    @paul53

                                    Hallo,

                                    habe ich soweit umgesetzt. Scheint besser zu funktionieren, ist nicht mehr hängengeblieben.

                                    Jetzt nur noch eine Verständnisfrage für mich, du kennst mein Blockly ja mittlerweile sehr gut 🙂

                                    Wenn das Blockly läuft, kann ich dann z.B. eine Freigabe wegnehmen, oder muss ich das Blockly dafür neu starten?

                                    Ich hab es zwar schon getestet und blieb immer etwas hängen, aber das könnte an den ganzen Fehlern noch gehangen haben.

                                    VG
                                    Thomas

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

                                      @perladd sagte: kann ich dann z.B. eine Freigabe wegnehmen, oder muss ich das Blockly dafür neu starten?

                                      Das Skript muss nicht neu gestartet werden, denn es wird oft genug getriggert. Allerdings sollte bei Wegnahme einer Freigabe auch ausgeschaltet werden, denn das passiert nicht automatisch. Beispiel:

                                      Blockly_temp.JPG

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      916
                                      Online

                                      31.9k
                                      Users

                                      80.3k
                                      Topics

                                      1.3m
                                      Posts

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