Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Sonnenprogramm

    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

    Sonnenprogramm

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

      Hi Paul,

      hat etwas länger gedauert aber ich habe mich eben mal dran gegeben … mir ist aber noch was unklar. Bitte mal meine Kommenare ansehen. Es geht im wesentlichen um die Stellen wo Du WERT eingetragen hat in einem roten Block - Mir ist nicht klar was ich da reinpacken muss ...

      8270_screenshot_2018-08-25_javascript_-_iobroker.png

      Falls Objekt -> Default - bleibt so ?

      Viele Grüße,

      Marc

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

        @meicker:

        die Stellen wo Du WERT eingetragen hat in einem roten Block - Mir ist nicht klar was ich da reinpacken muss … `
        Das ist der Wert des Trigger-Datenpunktes.
        493_blockly_dp_props.jpg
        default muss ersetzt werden durch den Datenpunkt global.sonnenprogramm_aktiv, denn wenn dieser sich ändert, soll das Sonnenprogramm gestartet bzw. das Schedule Sommer2 gestoppt werden.

        1 Reply Last reply Reply Quote 0
        • M
          meicker last edited by

          danke Paul,

          da mache ich die tage dran weiter … 🙂

          1 Reply Last reply Reply Quote 0
          • M
            meicker last edited by

            Hi Paul,

            das sieht nicht richtig aus …

            8270_screenshot_2018-08-28_javascript_-_iobroker.png

            Sonnenprogramm aktib soll ein globaler Schalter sein um das gesamte Programm ausser gefecht zu setzen.

            Wenn Sonne Balkon wahr ist macht es Sonnenprogramm, ansonsten wird Sommer 2 angehalten. Damit ist doch dann Ende im Gelände … keine der anderen Prüfungen im Sommerprogramm würde mehr ausgeführt, oder täusche ich mich da ?

            8270_screenshot_2018-08-28_javascript_-iobroker_1.png

            vg

            Marc

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

              @meicker:

              Sonnenprogramm aktib soll ein globaler Schalter sein um das gesamte Programm ausser gefecht zu setzen. `
              So habe ich es auch verstanden.
              @meicker:

              Wenn Sonne Balkon wahr ist macht es Sonnenprogramm, ansonsten wird Sommer 2 angehalten. Damit ist doch dann Ende im Gelände … keine der anderen Prüfungen im Sommerprogramm würde mehr ausgeführt, oder täusche ich mich da ? `
              Richtig. In meinem Vorschlage wird auch nicht der Wert von "javascript.0.global.sonne-balkon" ausgewertet, um die Funktion auszurufen bzw. das Schedule zu stoppen, sondern der Wert des Triggerdatenpunktes = Wert von "global.sonnenprogramm_aktiv".

              1 Reply Last reply Reply Quote 0
              • M
                meicker last edited by

                Hi Paul 🙂

                OK 🙂 Morgen wieder 🙂 Jetzt ist es zu spät …

                Wenn ich hier Sternchen vergeben dürfte würdest Du ne ganze Menge bekommen. Hier scheint es nicht viele user zu geben die sich mit Antworten Mühe geben ... Dankeschön dafür !!! Meist bekommt man nur ein Stichwort vor den Latz geknallt und das wars ...

                vg

                Marc

                1 Reply Last reply Reply Quote 0
                • R
                  RappiRN Most Active last edited by

                  @meicker:

                  Hier scheint es nicht viele user zu geben die sich mit Antworten Mühe geben … Dankeschön dafür !!! Meist bekommt man nur ein Stichwort vor den Latz geknallt und das wars ... `

                  Ich würde sagen: haltlose Anschuldigung! 😞

                  Enrico

                  1 Reply Last reply Reply Quote 0
                  • M
                    meicker last edited by

                    @RappiRN:

                    Ich würde sagen: haltlose Anschuldigung! 😞 `

                    Damit wollte ich nicht die helfenden Hände ansprechen ! Sicherlich habe ich hier viel Hilfe erhalten, sonst wäre ich nicht da wo ich jetzt bin, das ist klar.

                    1 Reply Last reply Reply Quote 0
                    • M
                      meicker last edited by

                      @Paul

                      Hi Paul,

                      noch eine Kleinigkeit - 🙂

                      script.js.Homepilot.Szenen.Sonne.Sonnenprogramm_V2: clearTimeout() => not found
                      

                      Kannst Du damit was anfangen ? M.E werden alle Timeouts auch geschlossen, dieser hat aber keinen Namen …

                      Ich zeige am Besten mal den Code, das Blocky ist zu lang wenn ich es komplett öffne ...

                      ! ````
                      var Sommer2, TOB1, TOB2, TOM1, TOM2, TOE1, TOE2, TOBS1, TOBS2;
                      ! /**

                      • Beschreibe diese Funktion …
                        /
                        function Sonnenprogramm() {
                        Sommer2 = schedule('
                        9-20 * 5-9 *', function () {
                        createState("global.sonne-balkon", function () {
                        });
                        createState("global.sonne-markise", function () {
                        });
                        createState("global.sonne-esszimmer", function () {
                        });
                        createState("global.sonne-bad-schlafzimmer", function () {
                        });
                        if (getState("javascript.0.Homepilot.Temperatur").val >= 22 && getState("javascript.0.Homepilot.Lichtwert").val >= 50000 && getState("javascript.0.Homepilot.Sonnenrichtung").val >= 80 && getState("javascript.0.Homepilot.Sonnenrichtung").val <= 190) {
                        setState("javascript.0.global.sonne-balkon"/global.sonne-balkon/, true, true);
                        } else {
                        setState("javascript.0.global.sonne-balkon"/global.sonne-balkon/, false, true);
                        }
                        if (getState("javascript.0.Homepilot.Temperatur").val >= 22 && getState("javascript.0.Homepilot.Lichtwert").val >= 50000 && getState("javascript.0.Homepilot.Sonnenrichtung").val >= 80 && getState("javascript.0.Homepilot.Sonnenrichtung").val <= 190) {
                        setState("javascript.0.global.sonne-markise"/global.sonne-markise/, true, true);
                        } else {
                        setState("javascript.0.global.sonne-markise"/global.sonne-markise/, false, true);
                        }
                        if (getState("javascript.0.Homepilot.Temperatur").val >= 22 && getState("javascript.0.Homepilot.Lichtwert").val >= 10000 && getState("javascript.0.Homepilot.Sonnenrichtung").val >= 190 && getState("javascript.0.Homepilot.Sonnenrichtung").val <= 265) {
                        setState("javascript.0.global.sonne-esszimmer"/global.sonne-esszimmer/, true, true);
                        } else {
                        setState("javascript.0.global.sonne-esszimmer"/global.sonne-esszimmer/, false, true);
                        }
                        if (getState("javascript.0.Homepilot.Temperatur").val >= 22 && getState("javascript.0.Homepilot.Lichtwert").val >= 5000 && getState("javascript.0.Homepilot.Sonnenrichtung").val >= 260 && getState("javascript.0.Homepilot.Sonnenrichtung").val <= 280) {
                        setState("javascript.0.global.sonne-bad-schlafzimmer"/global.sonne-bad-schlafzimmer/, true, true);
                        } else {
                        setState("javascript.0.global.sonne-bad-schlafzimmer"/global.sonne-bad-schlafzimmer/, false, true);
                        }
                        });
                        }

                      ! if (getState("javascript.0.global.sonnenprogramm_aktiv").val) {
                      Sonnenprogramm();
                      }
                      on({id: 'javascript.0.global.sonnenprogramm_aktiv', change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      if (getState("javascript.0.global.sonnenprogramm_aktiv").val == true) {
                      Sonnenprogramm();
                      } else {
                      (function () {if (Sommer2) {clearSchedule(Sommer2); Sommer2 = null;}})();
                      }
                      });
                      on({id: "javascript.0.global.sonne-balkon"/global.sonne-balkon/, change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      // Balkon
                      if (getState("javascript.0.global.sonne-balkon").val == true) {
                      (function () {if (TOB2) {clearTimeout(TOB2); TOB2 = null;}})();
                      TOB1 = setTimeout(function () {
                      if (getState("javascript.0.global.homepilot.automatik.wohnzimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.10015.level"/level Rollo Links/, 30);
                      setState("homepilot.0.devices.RolloTubeDuoFern.10001.level"/level Rollo Rechts/, 30);
                      (function () {if (TOB1) {clearTimeout(TOB1); TOB1 = null;}})();
                      }
                      }, 900000);
                      } else {
                      (function () {if (TOB1) {clearTimeout(TOB1); TOB1 = null;}})();
                      TOB2 = setTimeout(function () {
                      if (getState("javascript.0.global.homepilot.automatik.wohnzimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.10015.level"/level Rollo Links/, 0);
                      setState("homepilot.0.devices.RolloTubeDuoFern.10001.level"/level Rollo Rechts/, 0);
                      (function () {if (TOB2) {clearTimeout(TOB2); TOB2 = null;}})();
                      }
                      }, 900000);
                      }
                      });
                      // Markise
                      on({id: "javascript.0.global.sonne-markise"/global.sonne-markise/, change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      if (getState("javascript.0.global.sonne-markise").val == true) {
                      (function () {if (TOM2) {clearTimeout(TOM2); TOM2 = null;}})();
                      TOM1 = setTimeout(function () {
                      if (getState("javascript.0.global.sonne-markise").val == true) {
                      if (getState("javascript.0.global.homepilot.automatik.markise").val == true) {
                      setState("homepilot.0.devices.DuoFernRohrmotor-Aktor.10018.level"/level Markise/, 90);
                      (function () {if (TOM1) {clearTimeout(TOM1); TOM1 = null;}})();
                      }
                      }
                      }, 900000);
                      } else {
                      (function () {if (TOM1) {clearTimeout(TOM1); TOM1 = null;}})();
                      TOM2 = setTimeout(function () {
                      if (getState("javascript.0.global.sonne-markise").val == false) {
                      if (getState("javascript.0.global.homepilot.automatik.markise").val == true) {
                      setState("homepilot.0.devices.DuoFernRohrmotor-Aktor.10018.level"/level Markise/, 0);
                      (function () {if (TOM2) {clearTimeout(TOM2); TOM2 = null;}})();
                      }
                      }
                      }, 900000);
                      }
                      });
                      // Esszimmer
                      on({id: "javascript.0.global.sonne-esszimmer"/global.sonne-esszimmer/, change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      if (getState("javascript.0.global.sonne-esszimmer").val == true) {
                      (function () {if (TOE2) {clearTimeout(TOE2); TOE2 = null;}})();
                      TOE1 = setTimeout(function () {
                      if (getState("javascript.0.global.sonne-esszimmer").val == true) {
                      if (getState("javascript.0.global.homepilot.automatik.esszimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.1010011.level"/level Rollo Esstisch/, 30);
                      }
                      (function () {if (TOE1) {clearTimeout(TOE1); TOE1 = null;}})();
                      }
                      }, 900000);
                      } else {
                      (function () {if (TOE1) {clearTimeout(TOE1); TOE1 = null;}})();
                      TOE2 = setTimeout(function () {
                      if (getState("javascript.0.global.sonne-esszimmer").val == false) {
                      if (getState("javascript.0.global.homepilot.automatik.esszimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.1010011.level"/level Rollo Esstisch/, 0);
                      (function () {if (TOE2) {clearTimeout(TOE2); TOE2 = null;}})();
                      }
                      }
                      }, 900000);
                      }
                      });
                      // Bad & Schlafzimmer
                      on({id: "javascript.0.global.sonne-bad-schlafzimmer"/global.sonne-bad-schlafzimmer/, change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      if (getState("javascript.0.global.sonne-bad-schlafzimmer").val == true) {
                      (function () {if (TOBS2) {clearTimeout(TOBS2); TOBS2 = null;}})();
                      TOBS1 = setTimeout(function () {
                      if (getState("javascript.0.global.sonne-bad-schlafzimmer").val == true) {
                      if (getState("javascript.0.global.homepilot.automatik.badezimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.10013.level"/level Rollo Badezimmer/, 30);
                      }
                      if (getState("javascript.0.global.homepilot.automatik.schlafzimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.10012.level"/level Rollo Schlafzimmer/, 30);
                      }
                      (function () {if (TOBS1) {clearTimeout(TOBS1); TOBS1 = null;}})();
                      }
                      }, 900000);
                      } else {
                      (function () {if (TOBS1) {clearTimeout(TOBS1); TOBS1 = null;}})();
                      TOBS2 = setTimeout(function () {
                      if (getState("javascript.0.global.sonne-bad-schlafzimmer").val == false) {
                      if (getState("javascript.0.global.homepilot.automatik.badezimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.10013.level"/level Rollo Badezimmer/, 0);
                      }
                      if (getState("javascript.0.global.homepilot.automatik.schlafzimmer").val == true) {
                      setState("homepilot.0.devices.RolloTubeDuoFern.10012.level"/level Rollo Schlafzimmer/, 0);
                      }
                      (function () {if (TOBS2) {clearTimeout(TOBS2); TOBS2 = null;}})();
                      }
                      }, 900000);
                      }
                      });

                      
                      vg
                      
                      Marc
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        @meicker:

                        M.E werden alle Timeouts auch geschlossen, dieser hat aber keinen Namen … `
                        Ich kann keinen clearTimeout() ohne Namen finden. Im Reiter Log ist die Fehlermeldung meist ausführlicher mit Angabe der Zeilennummer.

                        1 Reply Last reply Reply Quote 0
                        • M
                          meicker last edited by

                          @paul53:

                          Im Reiter Log ist die Fehlermeldung meist ausführlicher mit Angabe der Zeilennummer. `
                          Du meinst bei den Scripten selber, richtig ? Hast Du eine Idee warum ich da manchmal gar nichts angezeigt bekomme ? Normalerweise kommt ja beim Start eines Scriptes etwas von subscriptions bla bla bla … da kommt nix. Javascript Adapter habe ich schon neu gestartet.

                          Der Fehler kommt glaube ich auch nur wenn das Script läuft, also richtig aktiv ist. Morgen mal sehen wenn die Sonne wieder scheint, oder ich muss heute Abend mal auf Fake Werte setzen ...

                          vg Marc

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

                            @meicker:

                            Du meinst bei den Scripten selber, richtig ? `
                            Nein, im Reiter "Log".

                            1 Reply Last reply Reply Quote 0
                            • M
                              meicker last edited by

                              Das stand nur auf 'WARN' - Hab eben den Javascript Adapter wieder auf info gesetzt und warte auf ein erneutes Vorkommnis … 🙂

                              1 Reply Last reply Reply Quote 0
                              • M
                                meicker last edited by

                                neeeee, Paul, da kommt nix anderes 😞

                                javascript.0	2018-09-11 16:30:00.040	warn	script.js.Homepilot.Szenen.Sonne.Sonnenprogramm_V2: clearTimeout() => not found
                                

                                Ist doch richtig, dass ich zwei eigenständige Blöcke habe, oder ? Wobei das immer noch nicht den Timer erklären würde und eigentlich ja auch alles funktioniert …
                                8270_screenshot_2018-09-11_javascript_-_iobroker.png

                                vg

                                Marc

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

                                  @meicker:

                                  da kommt nix anderes `
                                  Ist ja auch "nur" eine Warnung.

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    meicker last edited by

                                    @paul53:

                                    Ist ja auch "nur" eine Warnung. ` Ja, vor einem nicht vorhandenen Abschluss zvom Timer ohne Namen … :lol:

                                    Der Timer dessen Namen nicht genannt werden darf ... 🙂

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      meicker last edited by

                                      @Paul

                                      Hi Paul, schau mal hier, das war im Log :

                                      script.js.Homepilot.Szenen.Sonne.Sonnenprogramm_V2: getState(id=javascript.0.global.sonnenprogramm_aktiv, timerId=0) => {"val":true,"ack":false,"ts":1536103846400,"q":0,"from":"system.adapter.admin.0
                                      

                                      Also ich habe jetzt nochmals alles durchgesehen und nichts im Script gefunden … aber doch eigenartig ...

                                      vg

                                      Marc

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

                                        Du https://forum.iobroker.net/viewtopic.php?f=21&t=16313&start=20#p172360, wenn die Zeit abgelaufen ist. Das ist nicht nötig, da die Timer sich selbst beenden. Vielleicht gibt es an der Stelle ein Laufzeitproblem ?

                                        Nimm mal diese Stopps raus.

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          meicker last edited by

                                          Hi Paul,

                                          das war es glaube ich … zumindest kommt die warnung nicht mehr. Aber für einen Funktionstest war zu wenig Sonne. Zumidest sind die Rollos nicht wild rumgefahren, soweit alles gut...

                                          Vielen Dank 🙂

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          809
                                          Online

                                          31.7k
                                          Users

                                          79.9k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          53
                                          3251
                                          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