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.
    • M
      mrMuppet last edited by

      Hallo,

      ich will nur ein paar IO-Broker States in Homematic-Systemvariablen abspeichern (damit ich in Mediola darauf zugreifen kann). Aber aus irgend einem Grund wird mein Wert nicht in die Homematic-Variable geschrieben. Ich habe überprüft dass beide Variablentypen Zahlen sind und dass auch der Broker die Werte schreiben darf. Trotzdem klappt es nicht. Irgend einen Tipp?

      Vielen Dank
      1136_blocky.png

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

        Hallo

        Nimm nicht "aktualisiere" sondern "steuere".

        (Bin ich auch am Anfang drauf reingefallen)

        Grüße

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

          @rantanplan:

          @Ritter:

          Hallo!

          Wie kann man in einem Text ein "Enter" einfügen? `
          Hallo Ritter

          Probiere es mal mit \n

          1.Zeile\n2.Zeile

          Grüße `

          Das hab ich schon probiert ohne Erfolg, auch \r

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

            @rantanplan:

            Hallo

            Nimm nicht "aktualisiere" sondern "steuere".

            (Bin ich auch am Anfang drauf reingefallen) `

            Mhm. Hilft leider nicht. Auch wenn ich mal testweise nur einfach eine Zahl in die Variable schreiben lasse (jetzt mit "steuere" kommt nichts bei homematic an. Steht immer noch auf dem Vorgegebenen minimalen extrem.

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

              @mrMuppet:

              Mhm. Hilft leider nicht. Auch wenn ich mal testweise nur einfach eine Zahl in die Variable schreiben lasse (jetzt mit "steuere" kommt nichts bei homematic an. Steht immer noch auf dem Vorgegebenen minimalen extrem. `

              Wird das Script auch ausgeführt?

              Bau mal ein Debug-Baustein ein.

              Dann kannst du im Log-Reiter Die Ausgabe kontrolieren.

              Grüße

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

                Ja, script wird ausgeführt: hab mal nen pushover eingebaut und das hat funktioniert.

                Gesendet von meinem A0001 mit Tapatalk

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

                  Hmmm.

                  Werte in CCU-SysVar schreiben klappt bei mir einwandfrei.

                  Wird im Log etwas angezeigt?

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

                    So als Tipp für alle die die gleiche Logik bei mehreren verschiedenen Triggern ausgeführt haben wollen:

                    Die gesamte Logik kopieren ist eine Variante … Aber die zukünftige wartbarkeit bei Änderungen wohl eher nicht so prickelnd.

                    Packt einfach die ganze Logik in eine Funktion. Da gibt's auch ein Blockly dafür. Nehmt das ohne returnwert weil braucht man für den Anwendungsfall nicht. Gebt dem einen Funktionsnamen. Dann im Trigger nur diese Funktion aufrufen. Und fertig. Logik existiert nur einmal und man kann es von beliebigen Triggern aus aufrufen.

                    Mini-Manko: man kann die vorbelegten Skript-Variablen value und oldValue nicht nutzen ... Was aber bei dem Anwendungsfall mit gleicher Logik eh nicht so relevant sein dürfte.

                    Falls es noch Fragen gibt dazu kann ich nach meinem Urlaub gern ein Beispiel posten...

                    Have fun

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

                      @apollon77:

                      So als Tipp für alle die die gleiche Logik bei mehreren verschiedenen Zeigern ausgeführt habe wollen:

                      Die gesamte Logik kopieren ist eine Variante … Aber die zukünftige wartbarkeit bei Änderungen wohl eher nicht so prickelnd.

                      Packt einfach die ganze Logik in eine Funktion. Da gibt's auch ein Blockly dafür. Nehmt das ohne returnwert weil braucht man für den anwendungsfall nicht. Gebt dem einen funktionsnamen. Dann im Trigger nur diese Funktion aufrufen. Und fertig. Logik existiert nur einmal und man kann es von beliebigen triggern aus aufrufen.

                      Mini-Manko: man kann die vorverlegten Skript-Variablen value und oldValue nicht nutzen ... Was aber bei dem anwendungsfall mit gleicher Logik eh nicht so relevant sein dürfte.

                      Falls es noch gegen gibt dazu kann ich nach meinem Urlaub gern ein Beispiel posten...

                      Habe fun `

                      Hi Apollon77

                      …oder siehe Beispiele Seite 8 und 9.;)

                      Wir brauchen bald einen neue Rubrik. Der "Tester" Threat wird langsam unübersichtlich.

                      Grüße

                      und einen schönen Resturlaub

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

                        Hallo!

                        Kann man auch so etwas senden: http://192.168.1.111/web/message?text=t … timeout=15

                        Soll auf meinem Satreceiver einen Text einblenden.

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

                          @Bluefox - Klasse Update 3.0.6 !!!!!

                          Konnte aber noch nicht alles testen. (Fahre jetzt in Kurzurlaub)

                          Danke!

                          Grüße

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

                            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 ?

                            670_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

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

                              Hallo mike2712,

                              es müsste, denke ich, funktionieren wie du es gemacht hast. Aber ich glaube das in dem von dir verwendeten Blockly Baustein das Anhängen eines Eingangs(Triggers) noch nicht richtig passt.Wenn ein Logik-Baustein angehängt wird, bleibt im "Hintergrund" nach wie vor der "Beispielblockly" für den Trigger angehängt, oder wenn in dem "Beispielblockly" auch ein Eingang verwendet wird, tut sich bei mir noch nichts.

                              Es kann aber durchaus sein das ich einfach nicht drauf komme und den Baustein noch falsch verwende.

                              Ich mache es wie folgt:

                              Einmal mit einem Tastereingang und "wurde aktualisiert" und dann mit einem anderen Ausgang und "wurde geändert".
                              1455_test.png

                              Gruß

                              mhimc

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

                                Danke,

                                aber auch so, wie unten im 3. Beispiel bekomme ich kein Licht gesteuert.

                                So schwer kann es doch nicht sein, oder ?
                                670_blockly.jpg

                                Bestimmt nur eine Kleinigkeit.

                                Lg Mike

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

                                  Hallo mike2712,

                                  auch sehr wichtig, ich muss immer noch den "aktualisieren" Button rechts neben dem Scriptnamen betätigen.

                                  Gruß

                                  mhimc

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

                                    @mike2712:

                                    Danke,

                                    aber auch so, wie unten im 3. Beispiel bekomme ich kein Licht gesteuert.

                                    So schwer kann es doch nicht sein, oder ?

                                    blockly.JPG

                                    Bestimmt nur eine Kleinigkeit.

                                    Lg Mike `
                                    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.

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

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

                                      670_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

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

                                        Hey Bluefox,

                                        Blockly ist ja nochmal cooler geworden in den letzten zwei Wochen.

                                        Einen "Feature-Request" hätte ich aber noch:

                                        Es gibt schon den "schedule"-Blockly, wo man aber das ganze nur statisch definieren kann.

                                        Ich habe auch so einige dynamische Zeittigger wo die Zeit entweder aus Datenpunken kommt (und die in VIS eingestellt werden sollen) oder dynamisch berechnet werden.

                                        Ein "schedule"-Blockly wo man eine Variable als "Zeit" übergeben kann wäre super. Dann könnte man den "Cron-String ("* * * * …) dynamisch per Skript zusammenbauen und starten. Was man aber auch bräuchte ist das die "schedule-ID" (weiss nicht wie das heisst - das was man braucht um den schedule wieder zu löschen) zurückgegeben wird, damit man dann per clearschedule das wieder rückgängig machen kann.

                                        Oder besser: Das ganze umgesetzt wie die anderen "Timeout"-Blocklys die es ja schon gibt 🙂

                                        Was denkst Du?

                                        Dann könnte man sowas wie in http://forum.iobroker.net/viewtopic.php?f=21&t=3612 auch per Blockly bauen

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

                                          Hallo,

                                          irgendwie geht der Request bei mir nicht (Javascript Adapter Version 3.0.8).

                                          Der Code, mit dem ich teste, ist dieser:

                                          ! ````
                                          <xml xmlns="http://www.w3.org/1999/xhtml"><block 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> <block type="procedures_defcustomreturn" id="^85KpX]1kFVfVNz[zB7~" x="13" y="-37"><mutation statements="false"><arg name="xml"></arg></mutation> <field name="NAME">xml2json</field> <field name="SCRIPT">ICB0cnkgewogICAgdmFyIG9iaiA9IHt9OwogICAgaWYgKHhtbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeG1sLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGl0ZW0gPSB4bWwuY2hpbGRyZW4uaXRlbShpKTsKICAgICAgICB2YXIgbm9kZU5hbWUgPSBpdGVtLm5vZGVOYW1lOwoKICAgICAgICBpZiAodHlwZW9mIChvYmpbbm9kZU5hbWVdKSA9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgb2JqW25vZGVOYW1lXSA9IHhtbDJqc29uKGl0ZW0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodHlwZW9mIChvYmpbbm9kZU5hbWVdLnB1c2gpID09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIHZhciBvbGQgPSBvYmpbbm9kZU5hbWVdOwoKICAgICAgICAgICAgb2JqW25vZGVOYW1lXSA9IFtdOwogICAgICAgICAgICBvYmpbbm9kZU5hbWVdLnB1c2gob2xkKTsKICAgICAgICAgIH0KICAgICAgICAgIG9ialtub2RlTmFtZV0ucHVzaCh4bWwyanNvbihpdGVtKSk7CiAgICAgICAgfQogICAgICB9CiAgICB9IGVsc2UgewogICAgICBvYmogPSB4bWwudGV4dENvbnRlbnQ7CiAgICB9CiAgICByZXR1cm4gb2JqOwogIH0gY2F0Y2ggKGUpIHsKICAgICAgY29uc29sZS5sb2coZS5tZXNzYWdlKTsKICAgICAgcmV0dXJuIDA7CiAgfQo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment></block> <block type="procedures_defcustomreturn" id="t#xvDHK.~)bn5olq!{" x="13" y="13"><mutation statements="false"><arg name="xml"></arg></mutation>
                                          <field name="NAME">XmlToObject</field>
                                          <field name="SCRIPT">Y29uc29sZS5sb2coIiBpbiAiICsgeG1sKTsNCg0KLy9wYXJzZVN0cmluZyh4bWwsIGZ1bmN0aW9uIChlcnIsIHJlc3VsdCkgew0KLy8gICAgY29uc29sZS5sb2coIm5leHQgaW4gIiArIHhtbCk7DQovLyAgICBjb25zb2xlLmRpcihyZXN1bHQpOw0KLy8gICAgcmV0dXJuIHJlc3VsdDsNCi8vfSk7DQpyZXR1cm4gMDs=</field>
                                          <comment pinned="false" h="80" w="160">XML in ein Objekt umwandeln</comment></block>
                                          <block type="schedule" id="O6{|gum0ksgzqa501[uO" x="13" y="63"><field name="SCHEDULE">
                                          /5 * * * * </field>
                                          <statement name="STATEMENT"><block type="debug" id="|7
                                          9}D#ehh@ov@O+Ls~6"><field name="Severity">log</field>
                                          <value name="TEXT"><shadow type="text" id="DI(0]FX(1hGd.WsQV/+"><field name="TEXT">start script</field></shadow></value>
                                          <next><block type="request" id="#U)7f;4s)^#rwV?NMZh%"><mutation with_statement="true"></mutation>
                                          <field name="WITH_STATEMENT">TRUE</field>
                                          <field name="LOG">debug</field>
                                          <value name="URL"><shadow type="text" id="1!4,]JXU5M{!ZvV
                                          {BY:"><field name="TEXT">http://IP-Adresse-CCU/addons/xmlapi/rssilist.cgi</field></shadow></value>
                                          <statement name="STATEMENT"><block type="procedures_callcustomnoreturn" id="LV=TPx0|yRh(8A7nhRT#"><mutation name="LogObject"><arg name="text"></arg>
                                          <arg name="data"></arg></mutation>
                                          <value name="ARG0"><block type="text" id="v!)Fu^Az=fnqbSyPmzs1"><field name="TEXT">error</field></block></value>
                                          <value name="ARG1"><block type="variables_get" id="irB;n@O^zSwbj%i+NoT^"><field name="VAR">error</field></block></value>
                                          <next><block type="procedures_callcustomnoreturn" id="^NJBHPswMF;~%OnpUI8j"><mutation name="LogObject"><arg name="text"></arg>
                                          <arg name="data"></arg></mutation>
                                          <value name="ARG0"><block type="text" id="3r/Dsi_H^/%zw#{py+~+"><field name="TEXT">result</field></block></value>
                                          <value name="ARG1"><block type="variables_get" id="^?.,,MzH8N5Juz_.G.t"><field name="VAR">result</field></block></value> <next><block type="procedures_callcustomnoreturn" id="z(iI,CMz5ByVP{z[ZWTN"><mutation name="LogObject"><arg name="text"></arg> <arg name="data"></arg></mutation> <value name="ARG0"><block type="text" id="Pe6|hv3j@%Syr{jSV[9"><field name="TEXT">response</field></block></value>
                                          <value name="ARG1"><block type="variables_get" id="nZdpV}lW=3Blq]|P7o70"><field name="VAR">response</field></block></value>
                                          <next><block type="procedures_callcustomnoreturn" id="kq%3DU68R0HqXA0;T8HL"><mutation name="LogObject"><arg name="text"></arg>
                                          <arg name="data"></arg></mutation>
                                          <value name="ARG0"><block type="text" id="n]gxP)vQ,M9Y6mpCqu#y"><field name="TEXT">response2</field></block></value>
                                          <value name="ARG1"><block type="procedures_callcustomreturn" id="I3i(H=VEhll?7P-K}2(g"><mutation name="xml2json"><arg name="xml"></arg></mutation>
                                          <value name="ARG0"><block type="variables_get" id="@.~?U2o%(D4,r~uSJ9B7"><field name="VAR">response</field></block></value></block></value>
                                          <next><block type="variables_set" id="-lfNxQII6nUg(tbHN0r"><field name="VAR">value</field> <value name="VALUE"><block type="procedures_callcustomreturn" id="udD1pWkjV~VS4[)]r.kO"><mutation name="XmlToObject"><arg name="xml"></arg></mutation> <value name="ARG0"><block type="variables_get" id="_s,c#}{JR,AeIDOq}(hE"><field name="VAR">result</field></block></value></block></value> <next><block type="procedures_callcustomnoreturn" id="M26ky{kIYgQaDMH|]^d("><mutation name="LogObject"><arg name="text"></arg> <arg name="data"></arg></mutation> <value name="ARG0"><block type="text" id="128Hh]n.81@Vi.!AE2Ue"><field name="TEXT">value =</field></block></value> <value name="ARG1"><block type="procedures_callcustomreturn" id="ab3~kY^un?Nnu8U_iu6,"><mutation name="xml2json"><arg name="xml"></arg></mutation> <value name="ARG0"><block type="variables_get" id="c4Tez]2:hVzwKe?cviaV"><field name="VAR">value</field></block></value></block></value></block></next></block></next></block></next></block></next></block></next></block></statement> <next><block type="debug" id="NwsMT0D(J9)oLj6)UEQ"><field name="Severity">log</field>
                                          <value name="TEXT"><shadow type="text" id="(Y]v1ZaK%qgbS%UQm@7b"><field name="TEXT">ende</field></shadow></value></block></next></block></next></block></statement></block></xml>

                                          
                                          Der erzeugte Cose sieht auch irgendwie komisch aus. Aus  ![1367_blockly.png](/assets/uploads/files/1367_blockly.png)  wird
                                          

                                          try {
                                          require("request")('bla');
                                          } catch (e) { console.error(e); }
                                          console.log("request: " + 'bla');

                                          
                                          Hat jemand vielleicht ein Beispiel für einen Request mit Blockly?
                                          
                                          Danke & Gruß
                                          1 Reply Last reply Reply Quote 0
                                          • Dutchman
                                            Dutchman Developer Most Active Administrators last edited by

                                            @apollon77:

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

                                            +1

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            799
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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