Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Blockly

    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

    Blockly

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

      Danke für die schnelle Antwort,

      1. Da ich bis auf SPS noch nichts prog. habe fehlen mir gewisse Grundlagen, daher kann ich wenig ableiten ( CCU 2 Programme prog. zähle ich mal nicht dazu)

      2. Ich helfe gerne, nur reicht mein jetziges Niveau bestimmt nicht aus um anderen zu helfen 😉

      3. Besonderes erst mal nichts, weil ich auch nicht richtig Überschauen kann was alles geht.

      Oh doch eine Kleinigkeit, gehört aber nicht hier hin, suche noch die Möglichkeit bei meinem Receiver den Net-Radiosender weiter zu schalten ( mit einer weiteren Taste)

      Für viele bestimmt nur eine Spielerei, für mich ist das aber eine super Sache

      Kurzes drücken auf den "EIB Taster"( der keiner ist) Receiver geht an stellt die Lautstärke ein und Schaltet Net-Radio als Eingang ein.

      Nach einer Stunde geht er automatisch aus oder ich drücke die Taste lange

      Im Alltag bin ich immer zu faul erst das Tablet zu suchen usw….

      1 Reply Last reply Reply Quote 0
      • E
        Elektroman last edited by

        Ist das so korrekt, oder zu umständlich?

        ![](</s><URL url=)<link_text text="http://uploads.tapatalk-cdn.com/2016092 ... 283815.jpg">http://uploads.tapatalk-cdn.com/20160920/7965789db5e49271fe6bffa315283815.jpg</link_text>" />

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

          Willst du nicht so was einbauen wie: "ich schalte das Radio in 2 Minuten aus, druck Knopf um weiter zu hören" ?

          und bei "Radio aus", solltest du noch den Timer stoppen.

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

            Hallo,

            ich bekomme es immer noch nicht am laufen, ich habe glaube ich so ziemlich fast alles ausprobiert.

            @mike2712:

            @Bluefox:

            Kann es sein, dass dein _EG.Flur.Licht.State immer nur "true" ist?

            Dann solltest du auf "wurde aktualisiert" ändern.

            Und bitte im zweiten Fall versuchst du auf ein Wert zu triggern… Du musst Objekt ID nehmen.

            Und natürlich "Javascript" Adapter muss laufen und Skript muss gespeichert sein und auch laufen. `

            EG Flur Licht ist nicht immer "true", ich spiele damit rum.

            2. Fall habe ich auch geändert, ohne Erfolg.

            Javascript Adapter läuft, selbstverständlich speichere ich und aktualisiere nochmals.

            Unter den Adapter Einstellungen habe ich den Haken bei "Erlaube das Kommando "setObject": " gesetzt, aber das hatte wohl auch nichts damit zu tun.

            Benötige ich noch irgendetwas wo ich vielleicht nicht dran denke, oder was mir so nicht bewusst ist (z.B. Cron oder ID Einfügen)?

            Bin irgendwie am verzweifeln.

            blockly.JPG

            Im Log ist nichts zu sehen, weder im Script Log unterhalb der Programmierung, noch in iOBroker.

            Das ist der Auszug aus dem Log "info" von iobroker.

            ! hm-rpc-0 2016-09-12 20:20:19.311 info setValue ["MEQ0276480:1","STATE",false] BOOL
            ! hm-rpc-0 2016-09-12 20:20:15.972 info setValue ["MEQ0276480:1","STATE",true] BOOL
            ! hm-rpc-0 2016-09-12 20:19:47.767 info setValue ["MEQ0276480:1","STATE",false] BOOL

            Lg Mike `

            Folgende Warnungen bekomme ich, kann es damit etwas zu tun haben, weiß leider nicht was das bedeutet.

            ! Home-ioBroker 2016-09-20 19:02:54.094 warn host.Home-ioBroker instance system.adapter.javascript.0 already running with pid 2724
            ! host-Home-ioBroker 2016-09-20 19:02:24.080 warn instance system.adapter.javascript.0 terminated due to SIGTERM
            ! host-Home-ioBroker 2016-09-20 19:02:03.237 warn instance system.adapter.javascript.0 already running with pid 1672
            ! host-Home-ioBroker 2016-09-20 19:01:53.019 warn instance system.adapter.javascript.0 already running with pid 1672
            ! host-Home-ioBroker 2016-09-20 19:01:33.223 warn instance system.adapter.javascript.0 terminated due to SIGTERM
            ! host-Home-ioBroker 2016-09-20 19:01:23.005 warn instance system.adapter.javascript.0 terminated due to SIGTERM
            ! host-Home-ioBroker 2016-09-20 19:00:44.098 warn instance system.adapter.javascript.0 already running with pid 1020
            ! host-Home-ioBroker 2016-09-20 19:00:14.084 warn instance system.adapter.javascript.0 terminated due to SIGTERM

            Gruß Mike

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

              @mike2712:

              Hallo,

              egal was und wie ich es mache, ich bekomme mit Blockly kein Licht gesteuert.

              Habe mir die Hilfe auf "https://github.com/ioBroker/ioBroker.ja … ckly_en.md" angeschaut, meiner Meinung nach alles gemacht wie es dort steht. Mache ich irgendetwas grundsätzliches noch falsch ?

              blockly.JPG

              Sollte nicht theoretisch beides funktionieren ? Wenn EG Flur Licht sich ändert, OG 1 Flur Licht einschalten, im ersten teil mit wert von EG Flur, oder im 2. ein?

              Habe auch etliche andere Sachen versucht, möchte zunächst einfach nur ein Licht schalten können, wie ist erst einmal egal.

              Lg Mike `
              Kannst du da debug Ausgaben einbauen? Ob trigger überhaupt funktioniert?

              1 Reply Last reply Reply Quote 0
              • E
                Elektroman last edited by

                Vielen danke für den Tip Bluefox, frage ist nur wie?

                Wird der timeout beim erneuten drücken des Taster nicht so oder so zurückgesetzt?

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

                  @Elektroman:

                  Vielen danke für den Tip Bluefox, frage ist nur wie?

                  Wird der timeout beim erneuten drücken des Taster nicht so oder so zurückgesetzt? `

                  Direkt unter dem "timeout"-block (heisst bei die "ausführen" ist ein "clearTimeout" (weiss grad nicht wie der in deutsch heisst … den musst Du nehmen und einbauen wenn Du ausschaltest

                  1 Reply Last reply Reply Quote 0
                  • E
                    Elektroman last edited by

                    Puhhhh,

                    also

                    1. mit Time out stop bekomme ich es leider nicht hin, mir ist leider nicht klar wo ich ihn platzieren muss

                    2. bekomme ich leider keine richtige Rückmeldung vom Receiver welcher Eingang gerade ausgewählt ist. Bereutet im Klartext:

                    Ich schalte das Radio an und meine Frau schaltet danach auf TV um Timer schaltet leider aus 😞

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

                      "Time out stop" nutzt du um das automatische ausschalten nach ner Stunde zu "stoppen" (also zu verhindern). Also muss es an alle Stellen wo du es stoppen willst … AM einfachsteh muss das in den Block wo du explizit ausschaltest weil Du sollst doppelt ausschaltest - einmal sofort und einmal der Timer später.

                      Das Problem mit der Fehlenden Rückmeldung und damit zu frühem ausschalten löst das freilich nicht ;(

                      1 Reply Last reply Reply Quote 0
                      • E
                        Elektroman last edited by

                        Die Sache mit dem autom. abschalten werde ich jetzt löschen, da ich ja keine Rückmeldung bekomme.

                        Ist aber auch nicht schlimm, vergessen kann man das ja eigentlich nicht 😉

                        Wichtiger ist die Frage wie ich ein Web-Radiosender weiter schalten kann. Aber das kann mir max. hier der Entwickler des Adapters sagen (auch an dieser Stelle vielen Dank und meinen großen Respekt dafür), oder?

                        Ich habe leider auch keine aktuelle Liste mit Befehlen von YAMAHA gefunden, die ich als "Command" einfügen könnte

                        Noch Jemand eine Idee ?

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

                          Hallo,

                          @Bluefox:

                          Kannst du da debug Ausgaben einbauen? Ob trigger überhaupt funktioniert? `

                          ja das habe ich nochmals in vielen Varianten versucht, hatte ich auch schon mal hier gepostet "Beitragvon mike2712 » 12.09.2016, 19:11"

                          Kann das etwas mit den Warnungen zu tun haben? Ich denke auch das der Trigger nicht funktioniert, aber warum?

                          Lg Mike

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

                            @mike2712:

                            Hallo,

                            egal was und wie ich es mache, ich bekomme mit Blockly kein Licht gesteuert.

                            Habe mir die Hilfe auf "https://github.com/ioBroker/ioBroker.ja … ckly_en.md" angeschaut, meiner Meinung nach alles gemacht wie es dort steht. Mache ich irgendetwas grundsätzliches noch falsch ?

                            blockly.JPG

                            Sollte nicht theoretisch beides funktionieren ? Wenn EG Flur Licht sich ändert, OG 1 Flur Licht einschalten, im ersten teil mit wert von EG Flur, oder im 2. ein?

                            Habe auch etliche andere Sachen versucht, möchte zunächst einfach nur ein Licht schalten können, wie ist erst einmal egal.

                            Lg Mike `

                            Hallo mike2712

                            Dies wird Dir nicht wirklich weiterhelfen.

                            Aber ich habe Dein Blockly mal nach gebaut.
                            147_lampeschaltetlampe.png
                            Beide Versionen funktionieren einwandfrei.

                            Das erzeugte Script sieht so aus.

                            ! on({id: "hm-rpc.0.KEQ0881320.1.STATE"/WZ-TA-LErker:1.STATE/, change: "ne"}, function (obj) {
                            ! var value = obj.state.val;
                            ! var oldValue = obj.oldState.val;
                            ! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
                            ! });
                            ! on({id: 'hm-rpc.0.KEQ0881320.1.STATE', change: "ne"}, function (obj) {
                            ! var value = obj.state.val;
                            ! var oldValue = obj.oldState.val;
                            ! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
                            ! });

                            Die Trigger sind in Ordnung. Das Problem muss woanders sein.

                            Grüße

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

                              Hallo
                              @rantanplan:

                              Hallo mike2712

                              Dies wird Dir nicht wirklich weiterhelfen.

                              Aber ich habe Dein Blockly mal nach gebaut.

                              LampeSchaltetLampe.png

                              Beide Versionen funktionieren einwandfrei.

                              Das erzeugte Script sieht so aus.

                              ! on({id: "hm-rpc.0.KEQ0881320.1.STATE"/WZ-TA-LErker:1.STATE/, change: "ne"}, function (obj) {
                              ! var value = obj.state.val;
                              ! var oldValue = obj.oldState.val;
                              ! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
                              ! });
                              ! on({id: 'hm-rpc.0.KEQ0881320.1.STATE', change: "ne"}, function (obj) {
                              ! var value = obj.state.val;
                              ! var oldValue = obj.oldState.val;
                              ! setState("hm-rpc.0.KEQ1075100.1.STATE"/WZ-Licht-Regal:1.STATE/, getState("hm-rpc.0.KEQ0881320.1.STATE").val);
                              ! });

                              Die Trigger sind in Ordnung. Das Problem muss woanders sein.

                              Grüße `
                              ich habe meins jetzt mal exakt so gemacht wie Dein, natürlich mit meinem Licht.

                              Der Code ist unterschiedlich in der ersten Zeile:

                              ! on({id: 'hm-rpc\.0\.MEQ0276480\.1\.STATE', change: "ne"}, function (obj) {
                              ! var value = obj.state.val;
                              ! var oldValue = obj.oldState.val;
                              ! setState("hm-rpc.0.MEQ0276492.1.STATE"/_OG1 Flur Licht.STATE/, getState("hm-rpc.0.MEQ0276539.1.STATE").val);
                              ! });

                              Ich schau mal, jetzt habe ich ja einen Ansatz, aber verstehe tue ich das nicht.

                              Auch das bringt mich nicht weiter, folgendes script habe ich mit java, ohne Blockly erstellt, geht auch nicht.

                              ! on({id: 'hm-rpc.0.MEQ0276480.1.STATE', change: "ne"}, function (obj) {
                              ! var value = obj.state.val;
                              ! var oldValue = obj.oldState.val;
                              ! setState("hm-rpc.0.MEQ0276492.1.STATE"/_OG1 Flur Licht.STATE/, getState("hm-rpc.0.MEQ0276539.1.STATE").val);
                              ! });

                              Gruß Mike

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

                                Hallo,

                                vielen Dank für die Hilfe, ich hab es jetzt am laufen **** freu ****.

                                Es lag daran das Script unter global und nicht unter common war.

                                Weiß zwar noch nicht wo der Unterschied ist, aber jetzt kann ich loslegen mit dem testen und spielen.

                                Lg Mike

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

                                  @mike2712:

                                  Hallo,

                                  vielen Dank für die Hilfe, ich hab es jetzt am laufen **** freu ****.

                                  Es lag daran das Script unter global und nicht unter common war.

                                  Weiß zwar noch nicht wo der Unterschied ist, aber jetzt kann ich loslegen mit dem testen und spielen.

                                  Lg Mike `

                                  Na dann viel Spaß!

                                  Meine Scripte liegen alle oberhalb von "global" und "common".
                                  147_blocklyscripte.png
                                  Die Bedeutung von "global" und "common" ist mir noch ganz klar.

                                  Grüße

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

                                    Hallo

                                    Ich bin gerade dabei meine Heizungsscripte von ScriptGUI nach Blockly zu bringen.

                                    Wenn ich das durch habe, kann ich CCU.IO ausschalten 😄

                                    Jetzt vermisse ich aber einen Baustein in Blockly 😞

                                    Bei ScriptGUI hieß der "Timespan".

                                    Damit konnte man herausfinden ob die aktuelle Zeit innerhalb einen Zeitbereiches ist oder nicht.
                                    147_timespan.png

                                    Ein erzeugtes Script von dem Baustein sieht so aus.

                                    ! function codebox_21(data) {
                                    ! var inputlocal_131_out = Start_Zeit_Bereich;
                                    ! var inputlocal_132_out = Ende_Zeit_Bereich;
                                    ! var now = new Date();
                                    ! var time1 = new Date();
                                    ! var time2 = new Date();
                                    ! var in1 = inputlocal_131_out;
                                    ! var in2 = inputlocal_132_out;
                                    ! var double1 = in1.split(" ");
                                    ! var double2 = in2.split(" ");
                                    ! var time;
                                    ! var date1;
                                    ! var date2;
                                    ! if (double1[1]) {
                                    ! time = double1[1].split(":");
                                    ! date1 = double1[0].split(".");
                                    ! date2 = double1[0].split("-");
                                    ! } else {
                                    ! time = in1.split(":");
                                    ! date1 = in1.split(".");
                                    ! date2 = in1.split("-");
                                    ! }
                                    ! if (time.length == 2) {
                                    ! time1.setHours(time[0]);
                                    ! time1.setMinutes(time[1]);
                                    ! }
                                    ! if (time.length == 3) {
                                    ! time1.setHours(time[0]);
                                    ! time1.setMinutes(time[1]);
                                    ! time1.setSeconds(time[2]);
                                    ! }
                                    ! if (date2.length == 3) {
                                    ! if (date2[0].length == 4) {
                                    ! time1.setFullYear(date2[0]);
                                    ! } else {
                                    ! time1.setFullYear("20" + date2[0]);
                                    ! }
                                    ! time1.setMonth(date2[1] - 1);
                                    ! time1.setDate(date2[2]);
                                    ! }
                                    ! if (date1.length == 3) {
                                    ! if (date1[0].length == 4) {
                                    ! time1.setFullYear(date1[2]);
                                    ! } else {
                                    ! time1.setFullYear("20" + date1[2]);
                                    ! }
                                    ! time1.setMonth(date1[1] - 1);
                                    ! time1.setDate(date1[0]);
                                    ! }
                                    ! if (double2[1]) {
                                    ! time = double2[1].split(":");
                                    ! date1 = double2[0].split(".");
                                    ! date2 = double2[0].split("-");
                                    ! } else {
                                    ! time = in2.split(":");
                                    ! date1 = in2.split(".");
                                    ! date2 = in2.split("-");
                                    ! }
                                    ! if (time.length == 2) {
                                    ! time2.setHours(time[0]);
                                    ! time2.setMinutes(time[1]);
                                    ! }
                                    ! if (time.length == 3) {
                                    ! time2.setHours(time[0]);
                                    ! time2.setMinutes(time[1]);
                                    ! time2.setSeconds(time[2]);
                                    ! }
                                    ! if (date2.length == 3) {
                                    ! if (date2[0].length == 4) {
                                    ! time1.setFullYear(date2[0]);
                                    ! } else {
                                    ! time1.setFullYear("20" + date2[0]);
                                    ! }
                                    ! time2.setMonth(date2[1] - 1);
                                    ! time2.setDate(date2[2]);
                                    ! }
                                    ! if (date1.length == 3) {
                                    ! if (date1[0].length == 4) {
                                    ! time2.setFullYear(date1[2]);
                                    ! } else {
                                    ! time2.setFullYear("20" + date1[2]);
                                    ! }
                                    ! time2.setMonth(date1[1] - 1);
                                    ! time2.setDate(date1[0]);
                                    ! }
                                    ! process.send(time1);
                                    ! process.send(time2);
                                    ! if (time1.valueOf() < now.valueOf() && time2.valueOf() > now.valueOf()) {
                                    ! var timespan_57_out = true;
                                    ! } else {
                                    ! var timespan_57_out = false;
                                    ! }
                                    ! if (timespan_57_out != false && timespan_57_out != undefined && timespan_57_out != 0) {
                                    ! codebox_43(data);
                                    ! }
                                    ! if (timespan_57_out == false || timespan_57_out == undefined || timespan_57_out == '') {
                                    ! codebox_48(data);
                                    ! }
                                    ! };

                                    @Bluefox - Ist es möglich so einen Baustein in Blockly einzubauen?

                                    Grüße

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      robsdobs last edited by

                                      @Dutchman:

                                      @apollon77:

                                      Ein "schedule"-Blockly wo man eine Variable als "Zeit" übergeben kann wäre super. `

                                      +1 `
                                      Hallo, Danke für die Antwort (sorry das ich jetzt erst antworte).

                                      Also ich hab schon mit einer richtigen URL probiert. Aber das Problem ist doch vor dem Bildschirm. Ich hab das Ergebnis (den Rückgabewert) im Parameter result erwartet, dieser ist aber im objekt response.

                                      der Blockly
                                      1367_blockly_request.png

                                      erzeugt den code

                                       require("request")('http://192.168.178.205/addons/xmlapi/rssilist.cgi', function (error, response, result) {
                                            LogObject('error', error);
                                          LogObject('result', result);
                                          LogObject('response', response);
                                          });
                                      
                                      

                                      in response ist jetzt ein objekt

                                      response={"statusCode":200,"body":"ergebniss"}
                                      

                                      Wie greife ich jetzt unter Blockly auf das body zu? Muss ich dazu auf eine Javascript Funktion zurückgreifen, die mir das wieder auseinander nimmt oder gibt es da eine einfache Möglichkeit?

                                      Danke & Gruß

                                      (LogObject ist folgende Funktion (zum importieren in Blockly):

                                      ! ````
                                      <block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defcustomnoreturn" id="=m_sG#h6Qfd+Q`;Q/+-k" x="13" y="-87"><mutation statements="false"><arg name="text"></arg>
                                      <arg name="data"></arg></mutation>
                                      <field name="NAME">LogObject</field>
                                      <field name="SCRIPT">CmNvbnNvbGUubG9nKFN0cmluZyh0ZXh0KSArICc9JyArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsK</field>
                                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment></block>

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

                                        @robsdobs:

                                        @Dutchman:

                                        @apollon77:

                                        Ein "schedule"-Blockly wo man eine Variable als "Zeit" übergeben kann wäre super. `

                                        +1 `
                                        Hallo, Danke für die Antwort (sorry das ich jetzt erst antworte).

                                        Also ich hab schon mit einer richtigen URL probiert. Aber das Problem ist doch vor dem Bildschirm. Ich hab das Ergebnis (den Rückgabewert) im Parameter result erwartet, dieser ist aber im objekt response.

                                        der Blockly

                                        Blockly_request.PNG

                                        erzeugt den code

                                         require("request")('http://192.168.178.205/addons/xmlapi/rssilist.cgi', function (error, response, result) {
                                              LogObject('error', error);
                                            LogObject('result', result);
                                            LogObject('response', response);
                                            });
                                            
                                        

                                        in response ist jetzt ein objekt

                                        response={"statusCode":200,"body":"ergebniss"}
                                        

                                        Wie greife ich jetzt unter Blockly auf das body zu? Muss ich dazu auf eine Javascript Funktion zurückgreifen, die mir das wieder auseinander nimmt oder gibt es da eine einfache Möglichkeit?

                                        Danke & Gruß

                                        (LogObject ist folgende Funktion (zum importieren in Blockly):

                                        ! <block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defcustomnoreturn" id="=m_sG#h6Qfd+Q`;Q/+-k" x="13" y="-87"><mutation statements="false"><arg name="text"></arg> <arg name="data"></arg></mutation> <field name="NAME">LogObject</field> <field name="SCRIPT">CmNvbnNvbGUubG9nKFN0cmluZyh0ZXh0KSArICc9JyArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsK</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment></block> `
                                        Es ist komisch, dass result nichts drin hat.

                                        Laut request doku https://www.npmjs.com/package/request :

                                        var request = require('request');
                                        request('http://www.google.com', function (error, response, body) {
                                          if (!error && response.statusCode == 200) {
                                            console.log(body) // Show the HTML for the Google homepage. 
                                          }
                                        })
                                        

                                        muss body in deinem result drin stecken.

                                        Warum dass nicht so ist, weiß ich nicht, aber ich habe bei mir getestet und es geht mit "result".

                                        Du kannst mit dem block nicht auf ein Objekt zugreifen. Dafür muss du mit Funktionen arbeiten.

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

                                          @rantanplan:

                                          Hallo

                                          Ich bin gerade dabei meine Heizungsscripte von ScriptGUI nach Blockly zu bringen.

                                          Wenn ich das durch habe, kann ich CCU.IO ausschalten 😄

                                          Jetzt vermisse ich aber einen Baustein in Blockly 😞

                                          Bei ScriptGUI hieß der "Timespan".

                                          Damit konnte man herausfinden ob die aktuelle Zeit innerhalb einen Zeitbereiches ist oder nicht.

                                          Timespan.png

                                          Ein erzeugtes Script von dem Baustein sieht so aus.

                                          ! function codebox_21(data) {
                                          ! var inputlocal_131_out = Start_Zeit_Bereich;
                                          ! var inputlocal_132_out = Ende_Zeit_Bereich;
                                          ! var now = new Date();
                                          ! var time1 = new Date();
                                          ! var time2 = new Date();
                                          ! var in1 = inputlocal_131_out;
                                          ! var in2 = inputlocal_132_out;
                                          ! var double1 = in1.split(" ");
                                          ! var double2 = in2.split(" ");
                                          ! var time;
                                          ! var date1;
                                          ! var date2;
                                          ! if (double1[1]) {
                                          ! time = double1[1].split(":");
                                          ! date1 = double1[0].split(".");
                                          ! date2 = double1[0].split("-");
                                          ! } else {
                                          ! time = in1.split(":");
                                          ! date1 = in1.split(".");
                                          ! date2 = in1.split("-");
                                          ! }
                                          ! if (time.length == 2) {
                                          ! time1.setHours(time[0]);
                                          ! time1.setMinutes(time[1]);
                                          ! }
                                          ! if (time.length == 3) {
                                          ! time1.setHours(time[0]);
                                          ! time1.setMinutes(time[1]);
                                          ! time1.setSeconds(time[2]);
                                          ! }
                                          ! if (date2.length == 3) {
                                          ! if (date2[0].length == 4) {
                                          ! time1.setFullYear(date2[0]);
                                          ! } else {
                                          ! time1.setFullYear("20" + date2[0]);
                                          ! }
                                          ! time1.setMonth(date2[1] - 1);
                                          ! time1.setDate(date2[2]);
                                          ! }
                                          ! if (date1.length == 3) {
                                          ! if (date1[0].length == 4) {
                                          ! time1.setFullYear(date1[2]);
                                          ! } else {
                                          ! time1.setFullYear("20" + date1[2]);
                                          ! }
                                          ! time1.setMonth(date1[1] - 1);
                                          ! time1.setDate(date1[0]);
                                          ! }
                                          ! if (double2[1]) {
                                          ! time = double2[1].split(":");
                                          ! date1 = double2[0].split(".");
                                          ! date2 = double2[0].split("-");
                                          ! } else {
                                          ! time = in2.split(":");
                                          ! date1 = in2.split(".");
                                          ! date2 = in2.split("-");
                                          ! }
                                          ! if (time.length == 2) {
                                          ! time2.setHours(time[0]);
                                          ! time2.setMinutes(time[1]);
                                          ! }
                                          ! if (time.length == 3) {
                                          ! time2.setHours(time[0]);
                                          ! time2.setMinutes(time[1]);
                                          ! time2.setSeconds(time[2]);
                                          ! }
                                          ! if (date2.length == 3) {
                                          ! if (date2[0].length == 4) {
                                          ! time1.setFullYear(date2[0]);
                                          ! } else {
                                          ! time1.setFullYear("20" + date2[0]);
                                          ! }
                                          ! time2.setMonth(date2[1] - 1);
                                          ! time2.setDate(date2[2]);
                                          ! }
                                          ! if (date1.length == 3) {
                                          ! if (date1[0].length == 4) {
                                          ! time2.setFullYear(date1[2]);
                                          ! } else {
                                          ! time2.setFullYear("20" + date1[2]);
                                          ! }
                                          ! time2.setMonth(date1[1] - 1);
                                          ! time2.setDate(date1[0]);
                                          ! }
                                          ! process.send(time1);
                                          ! process.send(time2);
                                          ! if (time1.valueOf() < now.valueOf() && time2.valueOf() > now.valueOf()) {
                                          ! var timespan_57_out = true;
                                          ! } else {
                                          ! var timespan_57_out = false;
                                          ! }
                                          ! if (timespan_57_out != false && timespan_57_out != undefined && timespan_57_out != 0) {
                                          ! codebox_43(data);
                                          ! }
                                          ! if (timespan_57_out == false || timespan_57_out == undefined || timespan_57_out == '') {
                                          ! codebox_48(data);
                                          ! }
                                          ! };

                                          @Bluefox - Ist es möglich so einen Baustein in Blockly einzubauen?

                                          Grüße `
                                          Brauchst du wirklich mit Datum oder nur Tageszeit? Weil Tageszeit ist schon implementiert.

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

                                            @Bluefox:

                                            Brauchst du wirklich mit Datum oder nur Tageszeit? Weil Tageszeit ist schon implementiert. `

                                            Hallo Bluefox

                                            Danke für Deine Antwort.

                                            Du meinst wahrscheinlich den Baustein "Aktuelle Zeit ist "{}" "Uhrzeit"".

                                            Der währe gut, wenn "Uhrzeit" über eine Variable gesteuert werden könnte.

                                            So "festverdrahtete" Parameter mag ich nicht, weil man für Änderungen IMMER an das Programm muss.

                                            Das regel ich lieber über Systemvariablen.

                                            Und "Frau" will auch mal was ändern können. (Und die lasse ich besser nicht ans Programm 😉 )

                                            Ähnlich "Aktuelle Zeit von "Sonnenaufgang usw." Offset (Minuten).

                                            Der "Offset" sollte variabel sein.

                                            Ich habe es Momentan mit einer Funktion gelöst, die true/false zurückgibt.

                                            {aktuelle Zeit als SS:mm} >= {Zeit_Anfang} UND {aktuelle Zeit als SS:mm} <= {Zeit_Ende}

                                            Wobei "Zeit_Anfang" und "Zeit_Ende" Systemvariablen sind.

                                            Dies funktioniert leider nicht tagesübergreifend. Also zwischen "22:00" und "05:00".

                                            Ein Vergleich mit Zeit/Datum wäre auch nicht schlecht.

                                            Z.B. von 03.03.2017 bis 20.03.2017 ist Urlaub.

                                            (Zeitangaben natürlich variabel 😉 )

                                            Grüße

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            879
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            32
                                            332
                                            73491
                                            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