Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script nur aktiv von 6 Uhr bis 22 Uhr

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script nur aktiv von 6 Uhr bis 22 Uhr

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

      Hallo ! Ich steige mal wieder nicht durch Blocky durch. Ich habe folgendens Script was mir die Anrufer von meiner Fritzbox auf meinen Sons´s ausgibt.

      var timeout, timeout2, On_call_states, callerName, caller, speak, Intervall;
      
      
      on({id: "tr-064.0.callmonitor.ringing"/*ringing*/, val: true}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
        timeout = setTimeout(async function () {
          if (getState("tr-064.0.callmonitor.toPauseState").val == 'ring') {
            timeout2 = setTimeout(async function () {
              On_call_states = getState("tr-064.0.callmonitor.toPauseState").val;
              callerName = getState("tr-064.0.callmonitor.inbound.callerName").val;
              caller = getState("tr-064.0.callmonitor.inbound.caller").val;
              speak = 'sayit.0.tts.text';
              // Rechter Mausklick aktivieren
              // Falls andere Echos sprechen sollen.
              // Rechts Verknüpfen
              // Gegebenenfalls Block kopieren
              on({id: speak, change: "any"}, function (obj) {
                setState('sayit.1.tts.text', obj.state.val);
              });if (callerName == '' && caller == '') {
                setStateDelayed(speak, 'Ein Anruf von Unbekannt', false, parseInt(0, 10), false);
              } else if (callerName == '') {
                setStateDelayed(speak, ('Ein Anruf von ' + String(caller)), false, parseInt(0, 10), false);
              } else if (callerName != '') {
                setStateDelayed(speak, ('Ein Anruf von ' + String(callerName)), false, parseInt(0, 10), false);
              }
              Intervall = setInterval(async function () {
                On_call_states = getState("tr-064.0.callmonitor.toPauseState").val;
                if (On_call_states == 'end' || On_call_states == 'connect') {
                  (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                } else if (callerName == '' && caller == '') {
                  setStateDelayed(speak, 'Ein Anruf von Unbekannt', false, parseInt(0, 10), false);
                } else if (callerName == '') {
                  setStateDelayed(speak, ('Ein Anruf von ' + String(caller)), false, parseInt(0, 10), false);
                } else if (callerName != '') {
                  setStateDelayed(speak, ('Ein Anruf von ' + String(callerName)), false, parseInt(0, 10), false);
                }
              }, 8000);
            }, 2000);
          }
        }, 1000);
      });
      

      wie schaffe ich es nun das dieses Script NUR zwischen 6 Uhr morgends bis 22 Uhr aktiv ist, so das Nachst ruhe ist 🙂 Ich weis mal wieder nicht wo ich und welches Timer element einbauen muss.

      Könnt ihr mir da bitte weiter helfen. Danke !

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

        @GTV sagte:

        NUR zwischen 6 Uhr morgends bis 22 Uhr aktiv ist

        Blockly_temp.JPG

        Keine Trigger innerhalb von Triggern verwenden !!

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

          @paul53 Danke, das werde ich so einbauen. Aber bei Blocky wede ich die Logic dahinter glaube ich nie verstehen 😞

          Homoran Asgothian 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @GTV last edited by

            @GTV sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

            Aber bei Blocky wede ich die Logic dahinter glaube ich nie verstehen

            wo hakt es denn?

            G 1 Reply Last reply Reply Quote 0
            • G
              GTV @Homoran last edited by

              @Homoran an meinem Biblischen Alter 🙂 LOL ich komme noch aus BASIC Zeiten und VBS ist so das letzte was in meinem Kopf rein ging. Aber bei Javascript ist mein Kopf nicht mehr in der Lage das umzusetzen 😉 Dann noch umdenken in Blocky .... wenn ich den fertigen Code sehe ist es logisch zumindest meistens.

              Aber jetzt habe ich das mit 6 Uhr morgends mal wieder nicht zu ende gedacht. Denn wer will schon Sonntag morgen um 6 Uhr aus den lautsprechern hören das man angerufen wird. Jetzt suche ich schon wieder mir einen Wolf wie ich das Tagesabhängig hin bekomme...

              Homoran paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @GTV last edited by

                @GTV sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

                an meinem Biblischen Alter

                wer hat das hier nicht 😉

                @GTV sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

                ich komme noch aus BASIC Zeiten und VBS ist so das letzte was in meinem Kopf rein ging.

                VBS habe ich nie probiert

                @GTV sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

                Aber bei Javascript ist mein Kopf nicht mehr in der Lage das umzusetzen Dann noch umdenken in Blocky

                Mir ging es ähnlich, aber anders herum.
                Ich kann auch kein js, aber mit Blockly komme ich wenigstens dahin nicht exakt die Syntax können zu müssen.
                Dann sehe ich mir den Code in js an und hoffe, dass irgendwann etwas hängenbleibt.

                @GTV sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

                Aber jetzt habe ich das mit 6 Uhr morgends mal wieder nicht zu ende gedacht. Denn wer will schon Sonntag morgen um 6 Uhr aus den lautsprechern hören das man angerufen wird. Jetzt suche ich schon wieder mir einen Wolf wie ich das Tagesabhängig hin bekomme...

                Das hat aber IMHO nichts mit js oder Blockly zu tun, sondern einfach mit Logik.
                Als BASICler solltest du das hinbekommen - und wirst es auch!

                Wichtig ist, dass im Gegensatz zu deinem Threadtitel, javaScripts IMMER laufen und auf einen Trigger warten, danach wird dann der Code abgearbeitet und erst zum Schluss kommt es zu einer Aktion, oder nicht.

                Also musst du analog zu @paul53 s FALLS weitere FALLS (If - Then - Eles kennst du auch), notfalls verschachtelt einbauen.

                Versuch es mal

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

                  @GTV sagte:

                  ich komme noch aus BASIC Zeiten

                  ... und ich aus Assembler Zeiten (Z80).

                  G F liv-in-sky 3 Replies Last reply Reply Quote 0
                  • G
                    GTV @paul53 last edited by

                    @paul53 😁 die ein zwei Jahre machen den Kohl auch nicht fett 😁 😁 😁 Mein erster Rechner war ein C16 für nen C64 hat es Geldlich nicht gereicht damals 🙂 🙂

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

                      @paul53 sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

                      @GTV sagte:

                      ich komme noch aus BASIC Zeiten

                      ... und ich aus Assembler Zeiten (Z80).

                      Meine allerersten Programmierversuche waren in Maschinensprache, 6502 Selbstbauprojekt in der Erstausgabe der c't 🙂

                      1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @GTV last edited by

                        @GTV Das mit dem Trigger im Trigger hat nichts mit Blockly zu tun. Es geht um die Logik.

                        Die Funktion "on" trägt eine Subscription auf einen Event in eine Liste ein, die abgearbeitet wird. Deswegen macht es keinen Sinn diesen Befehl abhängig von einem Trigger oder einer Uhrzeit zu setzen. Die Subskription ist aktiv unabhängig davon unter welcher Bedingung sie eingetragen wurde. Und mir ist kein Weg bekannt einen Event zu "unsubscribend"

                        Deswegen ist es Immer besser die Subskription allgemeingültig zu halten und innerhalb der Subscription die Bedingungen abzufragen unter denen eine Aktion stattfinden soll. z.Bsp das Abprüfen einer Uhrzeit.

                        A.

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

                          @Asgothian sagte:

                          mir ist kein Weg bekannt einen Event zu "unsubscribend"

                          Das trifft für Blockly zu - nicht für Javascript.

                          Asgothian 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @paul53 last edited by

                            @paul53 sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

                            @GTV sagte:

                            ich komme noch aus BASIC Zeiten

                            ... und ich aus Assembler Zeiten (Z80).

                            assemblern musst ich auch mal 🙂

                            betriebssystem für einen damals neuen motorola microcontroller umschreiben - hat nicht funktioniert, weil sich rausstellte, dass die hergestellten controller einen hardware-bug hatten und einige befehle nicht funktionierten - da konnte ich lange nach einem fehler in der software suchen - bin damals fast durchgedreht

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

                              @paul53 sagte in Script nur aktiv von 6 Uhr bis 22 Uhr:

                              Das trifft für Blockly zu - nicht für Javascript.

                              Nein, das trifft auch für Javascript zu.

                              Ich schrieb das mir kein weg bekannt ist. Wenn ich deinen Kommentar richtig lese dann gibt es einen Weg. Ich kenne den halt nicht 🙂

                              A.

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

                                @Asgothian sagte:

                                dann gibt es einen Weg.

                                Javascript-Adapter Funktions-Doku

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                855
                                Online

                                32.0k
                                Users

                                80.4k
                                Topics

                                1.3m
                                Posts

                                6
                                14
                                478
                                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