Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Blockly

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Blockly

Geplant Angeheftet Gesperrt Verschoben Tester
332 Beiträge 32 Kommentatoren 82.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • E Offline
    E Offline
    Elektroman
    schrieb am zuletzt editiert von
    #201

    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 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #202

      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 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        mike2712
        schrieb am zuletzt editiert von
        #203

        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

        ioBroker im Docker auf Qnap TS-453A 16GB Ram 4-Bay

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #204

          @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 Antwort Letzte Antwort
          0
          • E Offline
            E Offline
            Elektroman
            schrieb am zuletzt editiert von
            #205

            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 Antwort Letzte Antwort
            0
            • apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #206

              @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

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              1 Antwort Letzte Antwort
              0
              • E Offline
                E Offline
                Elektroman
                schrieb am zuletzt editiert von
                #207

                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 Antwort Letzte Antwort
                0
                • apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #208

                  "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 ;(

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • E Offline
                    E Offline
                    Elektroman
                    schrieb am zuletzt editiert von
                    #209

                    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 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      mike2712
                      schrieb am zuletzt editiert von
                      #210

                      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

                      ioBroker im Docker auf Qnap TS-453A 16GB Ram 4-Bay

                      1 Antwort Letzte Antwort
                      0
                      • rantanplanR Online
                        rantanplanR Online
                        rantanplan
                        schrieb am zuletzt editiert von
                        #211

                        @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

                        Rantanplan

                        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          mike2712
                          schrieb am zuletzt editiert von
                          #212

                          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

                          ioBroker im Docker auf Qnap TS-453A 16GB Ram 4-Bay

                          1 Antwort Letzte Antwort
                          0
                          • M Offline
                            M Offline
                            mike2712
                            schrieb am zuletzt editiert von
                            #213

                            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

                            ioBroker im Docker auf Qnap TS-453A 16GB Ram 4-Bay

                            1 Antwort Letzte Antwort
                            0
                            • rantanplanR Online
                              rantanplanR Online
                              rantanplan
                              schrieb am zuletzt editiert von
                              #214

                              @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

                              Rantanplan

                              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                              1 Antwort Letzte Antwort
                              0
                              • rantanplanR Online
                                rantanplanR Online
                                rantanplan
                                schrieb am zuletzt editiert von
                                #215

                                Hallo

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

                                Wenn ich das durch habe, kann ich CCU.IO ausschalten :D

                                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

                                Rantanplan

                                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                1 Antwort Letzte Antwort
                                0
                                • R Offline
                                  R Offline
                                  robsdobs
                                  schrieb am zuletzt editiert von
                                  #216

                                  @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>

                                  Scripte: http://forum.iobroker.net/viewtopic.php?f=23&amp;t=2799&amp;p=119565#p119565,

                                  1 Antwort Letzte Antwort
                                  0
                                  • BluefoxB Offline
                                    BluefoxB Offline
                                    Bluefox
                                    schrieb am zuletzt editiert von
                                    #217

                                    @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 Antwort Letzte Antwort
                                    0
                                    • BluefoxB Offline
                                      BluefoxB Offline
                                      Bluefox
                                      schrieb am zuletzt editiert von
                                      #218

                                      @rantanplan:

                                      Hallo

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

                                      Wenn ich das durch habe, kann ich CCU.IO ausschalten :D

                                      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 Antwort Letzte Antwort
                                      0
                                      • rantanplanR Online
                                        rantanplanR Online
                                        rantanplan
                                        schrieb am zuletzt editiert von
                                        #219

                                        @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

                                        Rantanplan

                                        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                        1 Antwort Letzte Antwort
                                        0
                                        • DutchmanD Offline
                                          DutchmanD Offline
                                          Dutchman
                                          Developer Most Active Administrators
                                          schrieb am zuletzt editiert von
                                          #220
                                          • 1 auch ich würde mich freuen wen man diese werte (zeit/timer etc) hard Coded UND als Variable setzen könnte, das macht alles flexibler/dynsmischer

                                          Sent from my iPhone using Tapatalk

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          664

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe