Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. (Gelöst)Aus einer Liste "Name" und Wert

    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

    (Gelöst)Aus einer Liste "Name" und Wert

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

      Hallo zusammen,
      ich habe 5 Batteriepacks (PV-Speicher) mit jeweils 16 Zellen, nun möchte ich die Minimalspannung und die Maximalspannung der einzelnen Batteriepacks jeweils in einen Datenpunkt schreiben mit der Info (Name der Zelle) welche Zelle den jeweiligen Wert hatte. Den Wert alleine bekomme ich hin, aber nicht
      „Namen“ und Wert.

      da3e3637-b2bb-41ee-b8cb-f97d4215970d-Screenshot (45).png

      Hat jemand von Euch eine Lösung für das Problem?
      Vielen Dank!
      Harald

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @harald07 last edited by Codierknecht

        @harald07
        Da Du ja lediglich die Werte der DP in die Liste geschrieben hast, verlierst Du so den Bezug zum Objekt.
        Ich würde die DP komplett in die Liste schreiben (oder über Enum und Selektor) und mit einer Schleife durcheiern.
        Jeden Wert und den zugehörigen Namen in 4 Variablen wegschreiben, wenn der Wert niederiger bzw. höher ist als der jeweils zuletzt gemerkte.
        Am Ende hat man dann in den 4 Variablen den Min- und Maxwert und den zugehörigen Namen.
        Oder man nimmt nur 2 Variablen und schreibt dort das komplette Objekt weg.

        Codierknecht 1 Reply Last reply Reply Quote 1
        • Codierknecht
          Codierknecht Developer Most Active @Codierknecht last edited by Codierknecht

          Im Prizip so - geht aber vermutlich noch deutlich eleganter:

          c4fb2b69-80d9-4615-92c6-a4b0edf5ddf6-image.png

          EDIT: Korrigiert - s.u.

          paul53 1 Reply Last reply Reply Quote 0
          • H
            harald07 last edited by

            @Codierknecht Vielen Dank für deinen Vorschlag. Werde ich sofort mal probieren.

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

              @codierknecht sagte: Im Prizip so

              So kann man den Namen nicht ermitteln. Das funktioniert nur mittels JS-Funktion mit Ergebnis.

              Die ID-Liste sollte außerhalb des Triggers erstellt werden, wozu sich sicherlich auch der Selektor eignet.

              Codierknecht 1 Reply Last reply Reply Quote 1
              • Codierknecht
                Codierknecht Developer Most Active @paul53 last edited by

                @paul53 sagte in Aus einer Liste "Name" und Wert:

                So kann man den Namen nicht ermitteln. Das funktioniert nur mittels JS-Funktion mit Ergebnis.

                Du hast natürlich Recht - stolpere ich jedes Mal drüber.
                Hab's oben mal korrigiert.

                Codierknecht 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @Codierknecht last edited by

                  Da mich das immer wieder ärgert, habe ich mal ein Issue aufgemacht. Votes welcome 😉
                  https://github.com/ioBroker/ioBroker.javascript/issues/1249

                  DEV2DEV-DE created this issue in ioBroker/ioBroker.javascript

                  closed Blockly: Additional options for attributes of object #1249

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

                    @codierknecht sagte: Issue aufgemacht.

                    Es bräuchte ein zusätzliches Blockly-Element für getObject(id). Das gezeigte getState(id) hat nicht mehr Attribute (außer "Kommentar").

                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @paul53 last edited by

                      @paul53
                      Das wird @apollon77 mir sicher in das Issue schreiben 😁
                      So ein Block-Element "getObject()" wäre natürlich noch cooler. Damit könnte man dann auch noch "unit", "read", "write" usw. ermitteln - ohne JS.

                      paul53 apollon77 2 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @Codierknecht last edited by paul53

                        @codierknecht sagte: Block-Element "getObject()" wäre natürlich noch cooler.

                        In Blockly sollte man sich vielleicht auf getObject(id).common beschränken.

                        1 Reply Last reply Reply Quote 1
                        • H
                          harald07 last edited by harald07

                          Erst einmal allen vielen Dank!
                          Leider bekomme ich es nicht hin. Da ich zu keinem Ergebnis gekommen bin habe ich habe es erst einmal auf den Minimalwert mit Hilfe des Selectors reduziert. Aber leider gab dies sochon kein Ergebnis.
                          Screenshot (49).png

                          Ohne den Selektor und ohne die Schleife bekomme ich den Minimalwert und Maximalwert, aber nicht die jeweiligen Zellen.

                          Screenshot (50).png

                          Kann ich den Selektor in irgendeiner Weise prüfen?

                          paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                          • paul53
                            paul53 @harald07 last edited by paul53

                            @harald07 sagte: Kann ich den Selektor in irgendeiner Weise prüfen?

                            Ja, einfach den Selektor per Debug-Block ausgeben. Prinzip:

                            Blockly_temp.JPG

                            @harald07 sagte in Aus einer Liste "Name" und Wert:

                            Aber leider gab dies sochon kein Ergebnis.

                            Zeige bitte mal die ID-Struktur der Datenpunkte.

                            1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @harald07 last edited by

                              @harald07 sagte in Aus einer Liste "Name" und Wert:

                              Ohne den Selektor und ohne die Schleife bekomme ich den Minimalwert und Maximalwert, aber nicht die jeweiligen Zellen.

                              Dann probier doch mal mit Schleife 😉
                              Die brauchst Du ja auch mit funktionierendem Selektor.

                              <xml xmlns="https://developers.google.com/blockly/xml">
                                <variables>
                                  <variable id="A~:ypQ(^sX*l1C[*(J*f">objectID</variable>
                                  <variable id="bhZlx3!hSc?sjp*V4Q`E">liste</variable>
                                  <variable id="Aj-nChu[Wp@3CgK02W$J">voltMin</variable>
                                  <variable id="MyIUf~c5FUDksDs??}8C">voltMax</variable>
                                  <variable id="4)UVHmM{XPXRM28y.|3,">i</variable>
                                  <variable id="ZC|_9A-1eH/he1X=(Ks+">voltAkt</variable>
                                  <variable id="Uw4lz?=_m-;v@V$-q.MF">nameAkt</variable>
                                  <variable id="8Sm7p6erU*hf@rVW15vc">nameMin</variable>
                                  <variable id="OM(ZD@@sUa]ZQMPBA^.A">nameMax</variable>
                                </variables>
                                <block type="procedures_defcustomreturn" id="UOT5}.HTZe)Kjc^532X1" x="62" y="88">
                                  <mutation statements="false">
                                    <arg name="objectID" varid="A~:ypQ(^sX*l1C[*(J*f"></arg>
                                  </mutation>
                                  <field name="NAME">getObjectName</field>
                                  <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChvYmplY3RJRCkuY29tbW9uLm5hbWU7</field>
                                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                </block>
                                <block type="variables_set" id="jBp^VZ7,7bQ-#1nmyMSH" x="62" y="128">
                                  <field name="VAR" id="bhZlx3!hSc?sjp*V4Q`E">liste</field>
                                  <value name="VALUE">
                                    <block type="lists_create_with" id="`B+!j=H=qCQ:BY2Z-|Sr">
                                      <mutation items="3"></mutation>
                                      <value name="ADD0">
                                        <block type="field_oid" id="g^,Hd_+TYJ]^8-uQwQw6">
                                          <field name="oid">default</field>
                                        </block>
                                      </value>
                                      <value name="ADD1">
                                        <block type="field_oid" id="v]F#_(;`w6VWbR)L6lI-">
                                          <field name="oid">default</field>
                                        </block>
                                      </value>
                                      <value name="ADD2">
                                        <block type="field_oid" id="YaE_DebsR{hU.Z[$@Bh{">
                                          <field name="oid">default</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="on" id="YgiA/=!`3gaZ_y1oWYQO">
                                      <field name="OID">Object ID</field>
                                      <field name="CONDITION">ne</field>
                                      <field name="ACK_CONDITION"></field>
                                      <statement name="STATEMENT">
                                        <block type="variables_set" id="shOIp|-,)1QyBw~ccrcx">
                                          <field name="VAR" id="Aj-nChu[Wp@3CgK02W$J">voltMin</field>
                                          <value name="VALUE">
                                            <block type="math_number" id="?D@x3zu?X%1w%7S(nu]f">
                                              <field name="NUM">9999</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="variables_set" id="T-)l(-da2eB0BRJ{4[mZ">
                                              <field name="VAR" id="MyIUf~c5FUDksDs??}8C">voltMax</field>
                                              <value name="VALUE">
                                                <block type="math_number" id="AxKFw~!F:5uo$CL16E1.">
                                                  <field name="NUM">0</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="controls_forEach" id="`1%S^g=$~m-2@5V,2A%A">
                                                  <field name="VAR" id="4)UVHmM{XPXRM28y.|3,">i</field>
                                                  <value name="LIST">
                                                    <block type="variables_get" id="Hl{8^KvH+5Ds4lf+1u2n">
                                                      <field name="VAR" id="bhZlx3!hSc?sjp*V4Q`E">liste</field>
                                                    </block>
                                                  </value>
                                                  <statement name="DO">
                                                    <block type="variables_set" id="x!hMmFo3#5,abc9]mkFB">
                                                      <field name="VAR" id="ZC|_9A-1eH/he1X=(Ks+">voltAkt</field>
                                                      <value name="VALUE">
                                                        <block type="get_value_var" id="@/6zXxF$PcQZBRGn]{h5">
                                                          <field name="ATTR">val</field>
                                                          <value name="OID">
                                                            <shadow type="text" id="A9!pg*!mvM?X+RaEjB;k">
                                                              <field name="TEXT"></field>
                                                            </shadow>
                                                            <block type="variables_get" id="9h6H57!blOoANWu]Bj%4">
                                                              <field name="VAR" id="4)UVHmM{XPXRM28y.|3,">i</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="variables_set" id="7~l.(,3of}t}U?Gyu+J5">
                                                          <field name="VAR" id="Uw4lz?=_m-;v@V$-q.MF">nameAkt</field>
                                                          <value name="VALUE">
                                                            <block type="procedures_callcustomreturn" id="I%~zDlnJRmunzhGKB8L~">
                                                              <mutation name="getObjectName">
                                                                <arg name="objectID"></arg>
                                                              </mutation>
                                                              <value name="ARG0">
                                                                <block type="variables_get" id="4+c)R;?[DQe%+2vpA}Af">
                                                                  <field name="VAR" id="4)UVHmM{XPXRM28y.|3,">i</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="controls_if" id="*HnYlB^frWrq)xEu9G0E">
                                                              <value name="IF0">
                                                                <block type="logic_compare" id="Z4]Piz]]+BYOn+9I$ou,">
                                                                  <field name="OP">LT</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="=r`v4OL(AF%`|!|3[4LX">
                                                                      <field name="VAR" id="ZC|_9A-1eH/he1X=(Ks+">voltAkt</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="variables_get" id="*sUfB*-D:l#|)+p_JM$^">
                                                                      <field name="VAR" id="Aj-nChu[Wp@3CgK02W$J">voltMin</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO0">
                                                                <block type="variables_set" id=";X(jot?RmW?Gw/ty)=`_">
                                                                  <field name="VAR" id="Aj-nChu[Wp@3CgK02W$J">voltMin</field>
                                                                  <value name="VALUE">
                                                                    <block type="variables_get" id="1^nliQYKBMSuf2I~WL$^">
                                                                      <field name="VAR" id="ZC|_9A-1eH/he1X=(Ks+">voltAkt</field>
                                                                    </block>
                                                                  </value>
                                                                  <next>
                                                                    <block type="variables_set" id="*2kcJ^Eg8|C0ckmy}8@*">
                                                                      <field name="VAR" id="8Sm7p6erU*hf@rVW15vc">nameMin</field>
                                                                      <value name="VALUE">
                                                                        <block type="variables_get" id="+f3/2^wh$8vs@3GPwOI[">
                                                                          <field name="VAR" id="Uw4lz?=_m-;v@V$-q.MF">nameAkt</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <next>
                                                                <block type="controls_if" id=".JYC#cUROp3;c9Ly!o.w">
                                                                  <value name="IF0">
                                                                    <block type="logic_compare" id="Pj#6T{LC)mSD3q;g|E[7">
                                                                      <field name="OP">GT</field>
                                                                      <value name="A">
                                                                        <block type="variables_get" id="fSm$m`{8ZD#Hoe]02lOB">
                                                                          <field name="VAR" id="ZC|_9A-1eH/he1X=(Ks+">voltAkt</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="variables_get" id="qSWsI-NDk[=c#VaxO1Ph">
                                                                          <field name="VAR" id="MyIUf~c5FUDksDs??}8C">voltMax</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <statement name="DO0">
                                                                    <block type="variables_set" id="2a1Y/Lpg%6w=4-!G45I;">
                                                                      <field name="VAR" id="MyIUf~c5FUDksDs??}8C">voltMax</field>
                                                                      <value name="VALUE">
                                                                        <block type="variables_get" id="cAdJ^#g9Jl+#oO$]r1[?">
                                                                          <field name="VAR" id="ZC|_9A-1eH/he1X=(Ks+">voltAkt</field>
                                                                        </block>
                                                                      </value>
                                                                      <next>
                                                                        <block type="variables_set" id="uM9PPevc?Uu_^Tk0Lm.#">
                                                                          <field name="VAR" id="OM(ZD@@sUa]ZQMPBA^.A">nameMax</field>
                                                                          <value name="VALUE">
                                                                            <block type="variables_get" id="Q7KYi8vc;%-^+*[@n9E/">
                                                                              <field name="VAR" id="Uw4lz?=_m-;v@V$-q.MF">nameAkt</field>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </next>
                                                                    </block>
                                                                  </statement>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </statement>
                                    </block>
                                  </next>
                                </block>
                              </xml>
                              

                              1 Reply Last reply Reply Quote 0
                              • H
                                harald07 last edited by harald07

                                @paul53 gerne.!

                                Screenshot (51).png

                                P3_Z01 - P3_Z16 sind die Zellen. Alle Zellen des Packs haben die Funktion "Zellen_Alle" & "Zellen_P3".

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

                                  @harald07
                                  Möchtest du Minimum und Maximum von jeweils einem Pack oder von allen Packs?

                                  1 Reply Last reply Reply Quote 0
                                  • H
                                    harald07 last edited by

                                    Für jedes Pack und nochmal alle zusammen.
                                    Screenshot (52).png
                                    Hier fehlt noch Minimal und Maximal mit der Info welche Zelle es ist.

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

                                      @harald07 sagte: Für jedes Pack

                                      Pack_3:

                                      Blockly_temp.JPG

                                      Inhalt der JS-Funktion getName(id):

                                      return getObject(id).common.name;
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        harald07 last edited by

                                        @paul53 Vielen Dank! Versuche ich sofort umzusetzen.

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

                                          @harald07 sagte: nochmal alle zusammen.

                                          Der Selektor für alle Zellen:

                                          Blockly_temp.JPG

                                          1 Reply Last reply Reply Quote 0
                                          • H
                                            harald07 last edited by Homoran

                                            @paul53 Es tut sich was.

                                            2023-02-13 18:08:21.581 - info: javascript.0 (5714) script.js.PV.Zellen_Paul53: ['0_userdata.0.PV.Pack_3.P3_Z01','0_userdata.0.PV.Pack_3.P3_Z02','0_userdata.0.PV.Pack_3.P3_Z03','0_userdata.0.PV.Pack_3.P3_Z04','0_userdata.0.PV.Pack_3.P3_Z05','0_userdata.0.PV.Pack_3.P3_Z06','0_userdata.0.PV.Pack_3.P3_Z07','0_userdata.0.PV.Pack_3.P3_Z08','0_userdata.0.PV.Pack_3.P3_Z09','0_userdata.0.PV.Pack_3.P3_Z10','0_userdata.0.PV.Pack_3.P3_Z11','0_userdata.0.PV.Pack_3.P3_Z12','0_userdata.0.PV.Pack_3.P3_Z13','0_userdata.0.PV.Pack_3.P3_Z14','0_userdata.0.PV.Pack_3.P3_Z15','0_userdata.0.PV.Pack_3.P3_Z16']
                                            2023-02-13 18:08:21.582 - info: javascript.0 (5714) script.js.PV.Zellen_Paul53: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                            2023-02-13 18:08:32.111 - info: admin.0 (5672) <== Disconnect system.user.admin from ::ffff:192.168.20.20 javascript
                                            

                                            MOD-EDIT: Code in code-tags gesetzt!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            780
                                            Online

                                            31.9k
                                            Users

                                            80.3k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            31
                                            1202
                                            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