Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Werte zählen, die >1 sind

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    [gelöst] Werte zählen, die >1 sind

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @ChristianF last edited by paul53

      @ChristianF

      function test(A, B, C) {
        A = A > 1 ? 1 : 0;
        B = B > 1 ? 1 : 0;
        C = C > 1 ? 1 : 0;
        return A + B + C;
      }
      
      C 1 Reply Last reply Reply Quote 0
      • C
        ChristianF @paul53 last edited by ChristianF

        @paul53 Ui, das ging schnell, ganzherzlichen Dank! Leider ist das zu hoch für mich, ich kann leider nur mit Blockly rumklicken 😞
        (hab oben noch hinzugefügt dass ich in Blockly bastel)

        paul53 F 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @ChristianF last edited by

          @ChristianF sagte:

          Blockly rumklicken

          Blockly_temp.JPG

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

            @ChristianF
            Addieren.PNG

            1 Reply Last reply Reply Quote 0
            • C
              ChristianF last edited by

              Ich danke Euch allen für die Hilfe. Vielleicht habe ich es zu abstrakt gemacht und komme deswegen nicht weiter. Daher hier kurz der Hintergrund:
              Es geht um einen Verbraucher, der mal nur auf einer, mal auf zwei und mal auf drei Phasen Strom zieht. Ein vorgeschalteter Zähler wertet die Ströme je Phase aus und stellt sie als "Strom L1 gegen N" usw. bis L3 jeweils als einen Datenpunkt zur Verfügung. Als Trigger dient eine Änderung der Leistungsabnahme (die hier über alle Phasen gemessen wird. Der Titel des State mit "Leistung L1 gegen N" ist falsch, es müsste eigentlich "Leistung gesamt" heißen).

              Mir geht es nun darum, herauszufinden, wieviele Phasen benutzt werden. Dieses Ergebnis möchte ich dann in einen State schreiben und damit weiter arbeiten (anderes Script).

              Meine Ansätze sehen aus wie folgt:

              Hier der Trigger und Aufruf der Funktion:
              b3.JPG

              Hier die Funktion:
              b2.JPG

              Was ich nicht hinbekomme ist, das Ergebnis in einen weiteren State "Phasigkeit" zu schreiben.

              Das Script wirft folgende Fehlermeldung aus:

              16:27:21.829	error	javascript.0 (924) at Object.<anonymous> (script.js.common.Phasigkeit_bestimmen:18:3)
              

              Falls es hilft, hier der von Blockly generierte Code:

              var L1, L2, L3, Strom_L3, Strom_L1, Strom_L2;
              
              // Beschreibe diese Funktion …
              function Phasencheck(L1, L2, L3) {
                L1 = Strom_L1 >= 1 ? 1 : 0;
                L2 = Strom_L2 >= 1 ? 1 : 0;
                L3 = Strom_L3 >= 1 ? 1 : 0;
                return L1 + L2 + L3;
              }
              
              
              on({id: 'modbus.2.inputRegisters.120_W_L1-N', change: "ne"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                Strom_L3 = getState("modbus.2.inputRegisters.114_A_L1-N").val;
                Strom_L3 = getState("modbus.2.inputRegisters.116_A_L2-N").val;
                Strom_L3 = getState("modbus.2.inputRegisters.118_A_L3-N").val;
                exec((Phasencheck(0, 0, 0)), function (error, result, stderr) {
                    setState("0_userdata.0.Phasigkeit"/*Phasigkeit*/, (L1 + L2 + L3), true);
                });
              });
              
              

              Danke für Eure Hilfe!

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

                @ChristianF
                Was soll im Script ein "exec" ? Vorschlag:

                Blockly_temp.JPG

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

                  Herzlichen Dank !!! Kaum macht man's richtig, funktioniert es 🙂

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

                    @ChristianF sagte:

                    funktioniert es

                    Erledigt.

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

                      @paul53 könntest du das Blocky zu importieren einstellen ?

                      @paul53 said in [gelöst] Werte zählen, die >1 sind:

                      @ChristianF
                      Was soll im Script ein "exec" ? Vorschlag:

                      Blockly_temp.JPG

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

                        @lucky51179 sagte: @paul53 könntest du das Blocky zu importieren einstellen ?

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <variables>
                           <variable id=":E26x_R.+3qqo6|9gIdI">phasen</variable>
                         </variables>
                         <block type="on_ext" id="d63d3i%;i~P~pa[=0hBB" x="37" y="37">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="|22u?%2f;}?d@7bj(LrD">
                               <field name="oid">0_userdata.0.Blockly.Heizung1</field>
                             </shadow>
                           </value>
                           <value name="OID1">
                             <shadow type="field_oid" id="HbqScnD=:9-mE5wLVve5">
                               <field name="oid">0_userdata.0.Blockly.Heizung2</field>
                             </shadow>
                           </value>
                           <value name="OID2">
                             <shadow type="field_oid" id="8(LV8-hpXF?h#h}hY,7}">
                               <field name="oid">0_userdata.0.Blockly.Heizung3</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="variables_set" id="h@9@NJx_Oml8#I;wQKTI">
                               <field name="VAR" id=":E26x_R.+3qqo6|9gIdI">phasen</field>
                               <value name="VALUE">
                                 <block type="math_arithmetic" id="e2|/zK]ufFFNajr,JVFL" inline="false">
                                   <field name="OP">ADD</field>
                                   <value name="A">
                                     <shadow type="math_number" id="e?WhL+[f5yz]8rP^rnST">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="math_arithmetic" id="Nx0]+g#4J1dAU!s*1h3Q" inline="false">
                                       <field name="OP">ADD</field>
                                       <value name="A">
                                         <shadow type="math_number" id="0M|30y~wk;3`v7^mptxC">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="logic_ternary" id="jt,Jle+@Tz8l+/-ysV@f" inline="true">
                                           <value name="IF">
                                             <block type="logic_compare" id="E|]X;/dCmTZ0xF,:!bv{">
                                               <field name="OP">GT</field>
                                               <value name="A">
                                                 <block type="get_value" id="ft2Z|IfoHBa`!?KDb^R(">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">0_userdata.0.Blockly.Heizung1</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="math_number" id="rGePRQ^5/;);,d(?WOZL">
                                                   <field name="NUM">1</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="THEN">
                                             <block type="math_number" id="%Py42+wTe_im1WI}(8h7">
                                               <field name="NUM">1</field>
                                             </block>
                                           </value>
                                           <value name="ELSE">
                                             <block type="math_number" id="u.J{:$Ew+s+|H3#N_J/h">
                                               <field name="NUM">0</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow type="math_number" id="L,1Ha#$;KE=Sn{l`bIWX">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="logic_ternary" id="0ilBTj!6%Yjauc%PHj(5" inline="true">
                                           <value name="IF">
                                             <block type="logic_compare" id="~#f(-0c{hn`F_cHn/}zj">
                                               <field name="OP">GT</field>
                                               <value name="A">
                                                 <block type="get_value" id="9_a[ae|/x0STUtyB(m,%">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">0_userdata.0.Blockly.Heizung2</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="math_number" id="M#FsD;4bjRHR^y,}#@GB">
                                                   <field name="NUM">1</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="THEN">
                                             <block type="math_number" id="gSa`@Yx{V=MN:Gh2V|~,">
                                               <field name="NUM">1</field>
                                             </block>
                                           </value>
                                           <value name="ELSE">
                                             <block type="math_number" id="v.h.){WEZO+X*TUVw!Z,">
                                               <field name="NUM">0</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow type="math_number" id="9ooA7F|yJH,-F+xo@;=j">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="logic_ternary" id="i]wewZ8vz=wAKo)Jm7PH" inline="true">
                                       <value name="IF">
                                         <block type="logic_compare" id=")k,Yv@jEA0*/5Hgb)R6L">
                                           <field name="OP">GT</field>
                                           <value name="A">
                                             <block type="get_value" id="d4$z|%IM:.fn)Auqxlu/">
                                               <field name="ATTR">val</field>
                                               <field name="OID">0_userdata.0.Blockly.Heizung3</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="math_number" id="9DQD]#2IRWfSDOr/$TM*">
                                               <field name="NUM">1</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="THEN">
                                         <block type="math_number" id="(i!t`$f;]r=WrVKYkb}S">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                       <value name="ELSE">
                                         <block type="math_number" id="[TS$k{!%d8exx+nU!d2|">
                                           <field name="NUM">0</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="Aum9d#sI/+huD-CEw/?l">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">Object ID</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="K#4oZ6M$r9!+I,*3Kot?">
                                       <field name="VAR" id=":E26x_R.+3qqo6|9gIdI">phasen</field>
                                     </block>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                        </xml>
                        

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        867
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        4
                        11
                        718
                        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