Navigation

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

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    blockly eleganter machen

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dos1973 @Ahnungsbefreit last edited by

      @Ahnungsbefreit

      ja, für Homematik klappt es, aber ich brauche die Shellys und schaffe es nicht es umzubauen/ nachzubauen.

      A 1 Reply Last reply Reply Quote 0
      • A
        Ahnungsbefreit @dos1973 last edited by

        @dos1973 Statt des JSON poste doch bitte nur mal den Namen/die ID des Datenpunktes eines Shellys, den Du auf Erreichbarkeit prüfen willst

        D 1 Reply Last reply Reply Quote 0
        • D
          dos1973 @Ahnungsbefreit last edited by

          @Ahnungsbefreit

          shelly.0.SHSW-25#E563E8#1.online
          
          A 1 Reply Last reply Reply Quote 0
          • A
            Ahnungsbefreit @dos1973 last edited by Ahnungsbefreit

            @dos1973 said in blockly eleganter machen:

            shelly.0.SHSW-25#E563E8#1.online

            ok, dann ist der "ID vom Selektor..." Eintrag

            shelly.0.*.online
            

            und bei "setze ParentID" im "Text i suche letztes Auftreten des Begriffs ".online"

            D 1 Reply Last reply Reply Quote 0
            • D
              dos1973 @Ahnungsbefreit last edited by

              @Ahnungsbefreit

              es geht, aber ich verstehe es leider immer noch nicht...

              Bildschirmfoto 2021-01-04 um 14.40.31.png

              ich verstehe nicht wie wir das ".online" da abziehen, bzw. warum wir das abziehen müssen, damit es funktioniert?

              common.name
              wo kommt das her, wie kann ich das nachvollziehen?

              A 1 Reply Last reply Reply Quote 0
              • A
                Ahnungsbefreit @dos1973 last edited by

                @dos1973 In meinem Beispiel oben:
                1d56ce9d-cca0-4467-846f-0549a200004d-image.png

                frage ich den Wert des Objektes

                hm-rpc.1.<irgendeineserienummer>.0.UNREACH
                

                ab. Der Name steht aber "2 Etagen höher" beim Gerät

                hm-rpc.1.<irgendeineserienummer>
                
                

                im Feld "common.name" (siehe gelbe Markierung oben rechts).

                Nachlesbar z.B. hier: Doku

                Wird's jetzt klarer?

                D 1 Reply Last reply Reply Quote 0
                • D
                  dos1973 @Ahnungsbefreit last edited by

                  @Ahnungsbefreit
                  ok, zum common.name muss ich mal diese Doku lesen...

                  aber das abschneiden verstehe ich immer noch nicht.

                  Bildschirmfoto 2021-01-04 um 15.03.01.png

                  für jeden i.... selector...*shelly

                  kommt doch als Ergebnis alle Shelly mit dem gesamten String
                  shelly.0.SHSW-25#00B00D#1.online

                  jetzt schneide ich das online von "shelly.0.SHSW-25#00B00D#1.online"
                  ab.

                  ich nächsten Abschnitt such ich ob dieser Wert, mit online
                  shelly.0.SHSW-25#00B00D#1.online = True ist

                  Falls Wert von i ist true

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    Ahnungsbefreit @dos1973 last edited by Ahnungsbefreit

                    @dos1973 Versteh die Frage nicht so ganz aber die Idee ist

                    • mit "shelly.0.SHSW-25#00B00D#1.online" haben wir die ID des Objektes, das wir abfragen wollen und

                    • und dem "common.name" von "shelly.0.SHSW-25#00B00D#1" den Namen für die Ausgabe

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      dos1973 @Ahnungsbefreit last edited by

                      @Ahnungsbefreit

                      ja, ist kompliziert zu beschrieben 😉 Danke für deine Geduld und Mühe!!

                      die ID's haben wir über den Selektor erhalten

                      • shelly.0.SHSW-25#00B00D#1.online
                      • ...

                      warum schneide ich dann das .online ab?

                      im nächsten Step frage ich doch genau diesen Wert (mit .online) wieder ab

                      • shelly.0.SHSW-25#00B00D#1.online = True/false
                      A 1 Reply Last reply Reply Quote 0
                      • A
                        Ahnungsbefreit @dos1973 last edited by Ahnungsbefreit

                        @dos1973 Wir merken uns die "abgeschnittene" Version doch nur für die Abfrage des Namens über "common.name", wir brauchen also beides, Namen und die ID des "online" Objekts.

                        Wenn bei Dir der Name auch direkt über "common.name" von "shelly.0.SHSW-25#00B00D#1.online" korrekt (also so, wie er in der Textliste bzw. im JSON erscheinen soll) rauskommt, dann kannst Du das Abschneiden weglassen

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          dos1973 @Ahnungsbefreit last edited by

                          @Ahnungsbefreit

                          jetzt habe ich es verstanden... oh mann.

                          aus dem Wert

                          • shelly.0.SHSW-25#00B00D#1.online

                          würde ich keinen "common.name" erhalten, daher das abschneiden.

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            Ahnungsbefreit @dos1973 last edited by

                            @dos1973 Genau! Zumindest keinen "sauberen" Namen. In meinem Beispiel wäre das dann "BUR-RAU:0.UNREACH" statt nur "BUR-RAU". Evtl. ist der Name auch gar nicht gesetzt für den DP "UNREACH" bzw. in Deinem Fall "online"

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              dos1973 @Ahnungsbefreit last edited by

                              @Ahnungsbefreit
                              ich muss nochmals etwas fragen, mit welchem Widget zeigst du das Json im VIS an. Bei mir werden alle klammern angezeigt?
                              habe es mit Basic und HTML widget versucht

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                Ahnungsbefreit @dos1973 last edited by

                                @dos1973 vis-inventwo JSON

                                D 1 Reply Last reply Reply Quote 0
                                • D
                                  dos1973 @Ahnungsbefreit last edited by dos1973

                                  @Ahnungsbefreit

                                  du machst mich fertig 😉
                                  von einem Problem ins andere... ich habe das mal installiert... da kommt erstmal nichts an - mal sehen.

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    Ahnungsbefreit @dos1973 last edited by

                                    @dos1973 ich poste morgen mal ein Beispiel, bin jetzt nicht mehr am PC

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      Ahnungsbefreit @Ahnungsbefreit last edited by

                                      @dos1973 So kannst Du das Widget vis-inventwo JSON Table ganz einfach konfigurieren, damit das JSON angezeigt wird:
                                      3384d41a-2ebf-4b22-b601-ddee1b9c044a-image.png

                                      Als Objekt ID verwendest Du das Objekt, in das am Ende meines Blockly Scripts das JSON geschrieben wird und das Du natürlich "von Hand" als Zeichenkette angelegt hast.

                                      1 Reply Last reply Reply Quote 0
                                      • David G.
                                        David G. last edited by David G.

                                        @Ahnungsbefreit
                                        @dos1973

                                        Danke für eure Inspiration.
                                        Ich habe mir anhand eurer Diskussion ein Skript bauen können, welches mir eine schöne HTML-Tabelle erstellt.
                                        Mit dieser lasse ich mir zeigen, ob meine HomematicIP-Geäte den Akku schwach haben (zum Testen steht es grade noch auf dem Schaltzustand, damit ich unterschiedliche Werte habe.).

                                        Lässt sich natürlich für jegliche Abfrage mit true und false missbrauchen.

                                        Unbenannt.JPG

                                        Screenshot_20210105-082125_Fully Kiosk Browser.jpg

                                        <xml xmlns="https://developers.google.com/blockly/xml">
                                          <variables>
                                            <variable id="q=Q/4S_nykMJv,R-%5SK">id</variable>
                                            <variable id="SKh+R[G%ptX]9uv^hB,!">wahr</variable>
                                            <variable id=";O,|I4cqK/q|U6dt.?NN">falsch</variable>
                                            <variable id="%62`(Q[9y{,UvP3o}T|/">i</variable>
                                            <variable id="GI^dumJfw0)4Nzi2HVw`">ParentID</variable>
                                          </variables>
                                          <block type="schedule" id="=M?}+$74/A|+fu)hob?*" x="1188" y="463">
                                            <field name="SCHEDULE">* * * * *</field>
                                            <statement name="STATEMENT">
                                              <block type="variables_set" id="dZ;P0S=A~Ue9U{sxWFjF">
                                                <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                                <value name="VALUE">
                                                  <block type="text" id="1Rdn%LJ,UsyiTo}^fQyi">
                                                    <field name="TEXT"></field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="variables_set" id="JoJ{Z)?hFmCa3B.z1B~;">
                                                    <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                                    <value name="VALUE">
                                                      <block type="text" id="I)B703c6WPKo}@_L8ai^">
                                                        <field name="TEXT"></field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="controls_forEach" id="VXic[*WK}rqr0-!U:EFy">
                                                        <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                                        <value name="LIST">
                                                          <block type="selector" id="vI2MD73D2c=a4z1nh`=`">
                                                            <field name="TEXT">hm-rpc.0.*.1.STATE</field>
                                                          </block>
                                                        </value>
                                                        <statement name="DO">
                                                          <block type="variables_set" id="5%|F-TdcQ{4t*4:+v!]w">
                                                            <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                                            <value name="VALUE">
                                                              <block type="text_getSubstring" id="`QFsslqwXJcDRwUQ_z;$" inline="false">
                                                                <mutation at1="true" at2="true"></mutation>
                                                                <field name="WHERE1">FROM_START</field>
                                                                <field name="WHERE2">FROM_START</field>
                                                                <value name="STRING">
                                                                  <block type="variables_get" id="2K5mqiyK-@A,u?+%_r-I">
                                                                    <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                                                  </block>
                                                                </value>
                                                                <value name="AT1">
                                                                  <block type="math_number" id="_q*GktBrg4YS~$oc@#.$">
                                                                    <field name="NUM">1</field>
                                                                  </block>
                                                                </value>
                                                                <value name="AT2">
                                                                  <block type="math_arithmetic" id="BHxb,^*vvK^,t3OWIp~N" inline="false">
                                                                    <field name="OP">MINUS</field>
                                                                    <value name="A">
                                                                      <shadow type="math_number" id="V4^8g/Fq~(QA(Gn,=_g9">
                                                                        <field name="NUM">1</field>
                                                                      </shadow>
                                                                      <block type="text_indexOf" id=";@~lMPhmFt@}zblOq8}z" inline="false">
                                                                        <field name="END">LAST</field>
                                                                        <value name="VALUE">
                                                                          <block type="variables_get" id="ZxgO1Qq@jpN)?*](o;s%">
                                                                            <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="FIND">
                                                                          <shadow type="text" id="xWkYFdwM0dR_rBOFM|zY">
                                                                            <field name="TEXT">.1.STATE</field>
                                                                          </shadow>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                    <value name="B">
                                                                      <shadow type="math_number" id="h-25vZ[WT=N4?QJ3saG%">
                                                                        <field name="NUM">1</field>
                                                                      </shadow>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                            <next>
                                                              <block type="controls_if" id="[t4#.[R7stu?S`@$u3BW">
                                                                <mutation else="1"></mutation>
                                                                <value name="IF0">
                                                                  <block type="get_value_var" id="Iq+@rH{{dyJ9HWgoI~T4">
                                                                    <field name="ATTR">val</field>
                                                                    <value name="OID">
                                                                      <shadow type="text">
                                                                        <field name="TEXT"></field>
                                                                      </shadow>
                                                                      <block type="variables_get" id="B)n%:}PX%zZGvt#JtbR(">
                                                                        <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </value>
                                                                <statement name="DO0">
                                                                  <block type="variables_set" id="sh;fX7NWP+]`^FcnbVjU">
                                                                    <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                                                    <value name="VALUE">
                                                                      <block type="text_join" id="|Xz[CQA5p*BCe{uu*,ir">
                                                                        <mutation items="5"></mutation>
                                                                        <value name="ADD0">
                                                                          <block type="variables_get" id="F4J0jDpn[Na[1p8Ruf=%">
                                                                            <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="ADD1">
                                                                          <block type="text" id="C+UnHlb%GLN.|tA3o,`C">
                                                                            <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="ADD2">
                                                                          <block type="get_attr" id="=z[7ycSqfif0h~4Sz*|=" inline="false">
                                                                            <value name="PATH">
                                                                              <shadow type="text" id="C*^0Xt3cP0zy%F4#veYO">
                                                                                <field name="TEXT">common.name</field>
                                                                              </shadow>
                                                                            </value>
                                                                            <value name="OBJECT">
                                                                              <block type="procedures_callcustomreturn" id=",{*p|W,%6Npy^h.,(XSP">
                                                                                <mutation name="GetObjectByID">
                                                                                  <arg name="id"></arg>
                                                                                </mutation>
                                                                                <value name="ARG0">
                                                                                  <block type="variables_get" id="dgPrr_H^_1Z}0!cS+Iw{">
                                                                                    <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                        <value name="ADD3">
                                                                          <block type="text" id="yNUk#G;)wLb1Xq!/%A[M">
                                                                            <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=green&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </statement>
                                                                <statement name="ELSE">
                                                                  <block type="variables_set" id="S+Gd]Tap?Ej$]1P.V.(_">
                                                                    <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                                                    <value name="VALUE">
                                                                      <block type="text_join" id="5?soV=/V!gT:YP;%=C7*">
                                                                        <mutation items="4"></mutation>
                                                                        <value name="ADD0">
                                                                          <block type="variables_get" id="t5Hgf|mSwoVqQ}(:~9Y7">
                                                                            <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="ADD1">
                                                                          <block type="text" id="xa}qmEJ|8{^pBcPkIB|C">
                                                                            <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                                                          </block>
                                                                        </value>
                                                                        <value name="ADD2">
                                                                          <block type="get_attr" id="N%K=-ar/nF2t;vp68{4;" inline="false">
                                                                            <value name="PATH">
                                                                              <shadow type="text" id="NEKfB0mKYNB9yf[p[(LM">
                                                                                <field name="TEXT">common.name</field>
                                                                              </shadow>
                                                                            </value>
                                                                            <value name="OBJECT">
                                                                              <block type="procedures_callcustomreturn" id="mBvJ_WhP|}o*z}@Nf9Gx">
                                                                                <mutation name="GetObjectByID">
                                                                                  <arg name="id"></arg>
                                                                                </mutation>
                                                                                <value name="ARG0">
                                                                                  <block type="variables_get" id="D:=8pGehBP5ZOKH2LV2?">
                                                                                    <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                                                                  </block>
                                                                                </value>
                                                                              </block>
                                                                            </value>
                                                                          </block>
                                                                        </value>
                                                                        <value name="ADD3">
                                                                          <block type="text" id="2WmqZ^-K89eQ9Z!T.Sg!">
                                                                            <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=red&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                                                          </block>
                                                                        </value>
                                                                      </block>
                                                                    </value>
                                                                  </block>
                                                                </statement>
                                                              </block>
                                                            </next>
                                                          </block>
                                                        </statement>
                                                        <next>
                                                          <block type="update" id="|*Wyl;F2(g0J1J^:!x68">
                                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                            <field name="OID">0_userdata.0.VIS.Akkumeldungen.hmip_akku_tabelle</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE">
                                                              <block type="text_join" id="CF52S*}*)[vTA|Y~w+@1">
                                                                <mutation items="5"></mutation>
                                                                <value name="ADD0">
                                                                  <block type="text" id="yxd%qU_@2Bv39AdiqwQ*">
                                                                    <field name="TEXT">&lt;table style="width: 100%;"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=100%&gt;&lt;b&gt;&lt;font size="3"&gt;Gerät&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;td ALIGN="CENTER"&gt;&lt;b&gt;&lt;font size="3"&gt;Batteriestatus&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;/tr&gt;</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD1">
                                                                  <block type="text" id="`hArP:}QO5fa:5w(*q*y">
                                                                    <field name="TEXT">&lt;tr&gt; &lt;td colspan="2"&gt; &lt;hr&gt; &lt;/dt&gt; &lt;/tr&gt;</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD2">
                                                                  <block type="variables_get" id="!NM$6J~B9mGR:#`~#8V_">
                                                                    <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD3">
                                                                  <block type="variables_get" id="JwXRwyMGnb)]ut6eTQc-">
                                                                    <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                                                  </block>
                                                                </value>
                                                                <value name="ADD4">
                                                                  <block type="text" id="#E/@/Eiu!x|i4nvHP^wR">
                                                                    <field name="TEXT">&lt;/tbody&gt; &lt;/table&gt;</field>
                                                                  </block>
                                                                </value>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </next>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                          <block type="procedures_defcustomreturn" id="z1v5P%=uhnATnl`x*fMU" x="1287" y="462">
                                            <mutation statements="false">
                                              <arg name="id" varid="q=Q/4S_nykMJv,R-%5SK"></arg>
                                            </mutation>
                                            <field name="NAME">GetObjectByID</field>
                                            <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCk7</field>
                                            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                          </block>
                                        </xml>
                                        
                                        A D 2 Replies Last reply Reply Quote 1
                                        • A
                                          Ahnungsbefreit @David G. last edited by

                                          @David-G Freut mich, wenn ich helfen konnte.

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            dos1973 @David G. last edited by

                                            @David-G @Ahnungsbefreit

                                            oh mann wieso könnt ihr das so gut.
                                            kopieren kann ich gut 😉 hab das von David gleich aufgenommen.

                                            Bildschirmfoto 2021-01-05 um 11.00.54.png

                                            Toll wäre es, diese Tabelle jetzt zu erweitern, IP, FW tec. aber bei mir reicht es nicht, dafür sind meine Kenntnisse nicht ausreichend ...

                                            A David G. 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            535
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            5
                                            72
                                            4534
                                            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