Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. String teilen - split-Befehl

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    String teilen - split-Befehl

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active last edited by

      @ub-privat
      hier noch mal das was ich meine.....(danach halte ich mich raus)

      Testblockly mit Debug-Bausteinen. Hier wird vielleicht klar was ich meine. Oben die Funktion und unten die Splittmethode.

      Bildschirmfoto 2020-01-03 um 17.43.31.png

      Ergebnis:

      Bildschirmfoto 2020-01-03 um 17.43.22.png

      Hier die genutzte Funktion

      Bildschirmfoto 2020-01-03 um 17.36.30.png

      if(getObject(id).common.states) return getObject(id).common.states[val];
      return id + ' Dieser Datenpunkt hat keinen Zustand !';
      

      <xml xmlns="http://www.w3.org/1999/xhtml">
       <variables>
         <variable type="" id="y}n5NpIEF{U9uP/AG}OB">id</variable>
         <variable type="" id="u7#6,S]3U-LR0^kP5l]P">val</variable>
       </variables>
       <block type="procedures_defcustomreturn" id="7R:L*9?)7Wl^RqVg+G`q" x="13" y="13">
         <mutation statements="false">
           <arg name="id" varid="y}n5NpIEF{U9uP/AG}OB"></arg>
           <arg name="val" varid="u7#6,S]3U-LR0^kP5l]P"></arg>
         </mutation>
         <field name="NAME">Kaffeesorte</field>
         <field name="SCRIPT">aWYoZ2V0T2JqZWN0KGlkKS5jb21tb24uc3RhdGVzKSByZXR1cm4gZ2V0T2JqZWN0KGlkKS5jb21tb24uc3RhdGVzW3ZhbF07CnJldHVybiBpZCArICcgRGllc2VyIERhdGVucHVua3QgaGF0IGtlaW5lbiBadXN0YW5kICEnOw==</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
       <block type="debug" id="s7Q~Dg^CTndwVGwE,*a7" x="12" y="88">
         <field name="Severity">log</field>
         <value name="TEXT">
           <shadow type="text" id="fQ4x5I0_yE)XMLP)wC~a">
             <field name="TEXT">test</field>
           </shadow>
           <block type="text_join" id="Kv@T0V3-5W4:|GmX@Cd(">
             <mutation items="2"></mutation>
             <value name="ADD0">
               <block type="text" id="9rUT6o2O96Lk9p/t;P!F">
                 <field name="TEXT">Funktion-Werteliste: </field>
               </block>
             </value>
             <value name="ADD1">
               <block type="procedures_callcustomreturn" id="HpQS1cqWv}c}%Zepn}ax">
                 <mutation name="Kaffeesorte">
                   <arg name="id"></arg>
                   <arg name="val"></arg>
                 </mutation>
                 <value name="ARG0">
                   <block type="field_oid" id="j@NlUln%G`DESX4Ra8CJ">
                     <field name="oid">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                   </block>
                 </value>
                 <value name="ARG1">
                   <block type="get_value" id="cDp+]Va_smIe?b)Fp`ks">
                     <field name="ATTR">val</field>
                     <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                   </block>
                 </value>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="debug" id="K$o+3aO=Sadm^HBM$2$R">
             <field name="Severity">log</field>
             <value name="TEXT">
               <shadow type="text" id="fQ4x5I0_yE)XMLP)wC~a">
                 <field name="TEXT">test</field>
               </shadow>
               <block type="text_join" id="wq(3B2wVQRPRNA!cQDle">
                 <mutation items="2"></mutation>
                 <value name="ADD0">
                   <block type="text" id="_m%swPGrjWBn4:uQZ3CN">
                     <field name="TEXT">Split-Methode: </field>
                   </block>
                 </value>
                 <value name="ADD1">
                   <block type="text_getSubstring" id=";V75FO4VtMZ3nP[Seh:A" inline="false">
                     <mutation at1="true" at2="false"></mutation>
                     <field name="WHERE1">FROM_START</field>
                     <field name="WHERE2">LAST</field>
                     <value name="STRING">
                       <block type="get_value" id="t$6J}yw=#$*H%Oy@L$lh">
                         <field name="ATTR">val</field>
                         <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                       </block>
                     </value>
                     <value name="AT1">
                       <block type="math_arithmetic" id="h7_S)hH`5@RA?#U)5g=1" inline="false">
                         <field name="OP">ADD</field>
                         <value name="A">
                           <shadow type="math_number" id="A`TLz5Lbfgw;=mJOp}(^">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="text_indexOf" id="0e*(2Dhq5d1#U;xsFNn%" inline="false">
                             <field name="END">LAST</field>
                             <value name="VALUE">
                               <block type="get_value" id="isq[qfzLYyRaRLY;L45w">
                                 <field name="ATTR">val</field>
                                 <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                               </block>
                             </value>
                             <value name="FIND">
                               <shadow type="text" id="P5s;aJDPT*F;y(,VtRBs">
                                 <field name="TEXT">abc</field>
                               </shadow>
                               <block type="text" id="c,}EJ]POpPpb|nI#.!zb">
                                 <field name="TEXT">.</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <value name="B">
                           <shadow type="math_number" id="-9+`M14/p._`PvUM3`yk">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="math_number" id="(Kg1M+/J_!`LmKq-sU!S">
                             <field name="NUM">1</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </value>
           </block>
         </next>
       </block>
      </xml>
      

      I 1 Reply Last reply Reply Quote 0
      • I
        ichwersonst @dslraser last edited by

        Hallo,
        ich habe einen Datenpunkt als Zeichenkette in den ich an 16 verschiedene Stellen Uhrzeiten schreibe. So das der Inhalt der Zeichenkette so aussieht :

        16:11:25,17:15:30,20:03:54,usw.

        Wie bekomme ich es jetzt in vis hin, dass ich die Uhrzeiten einzeln an verschiedenen Stellen (Textfelder) angezeigt bekomme?

        Grüße...

        G 1 Reply Last reply Reply Quote 0
        • G
          gfrene @ichwersonst last edited by

          Moin zusammen, ich versuche gerade noch die letzte Baustelle im VIS einzubauen. Leider komme ich mit dem TEXT ausschneiden nicht weiter.
          Folgendes habe ich versucht:

          ich möchte gerne den rot markierten wert in VIS anzeigen lassen
          97ed2600-9ae1-48ec-845a-6112e2b6e88d-grafik.png

          Aber bei mir kommt nur das bei raus !!!!
          79a96fe5-289f-4ab2-add4-57c0eca45efb-grafik.png

          Hier den Code den genutzt habe
          {s:Datenpunkt;s.split('.')[s.split('.').length-1]}

          Aber wie man sehen kann mache hier irgendwas falsch .. wie müsste der Aufbau genau aussehen ?

          Gruß und danke für eure Hilfe
          Rene

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @gfrene last edited by liv-in-sky

            @gfrene sagte in String teilen - split-Befehl:

            {s:Datenpunkt;s.split('.')[s.split('.').length-1]}

            
            {s:controll-own.0.AAATEST.TestString3;s.split('.')[0]}
            

            du musst den datenpunkt (bei mir "controll-own.0.AAATEST.TestString3") auch eingeben und nicht den state reinschreiben - und du willst die erste stelle - also [0]

            dein datenpunkt:

            Image 1.png

            G 1 Reply Last reply Reply Quote 1
            • G
              gfrene @liv-in-sky last edited by

              @liv-in-sky Danke dir für deine Hilfe man kommt langsam ans ziel 🙂 aber so sieht es jetzt aus

              {s:homeconnect.0.010060519425000485.status.BSH_Common_Status_DoorState;s.split('.')[0]}

              7801e1e0-b7fb-41f7-bd7c-3bb8a9b41324-grafik.png

              liv-in-sky 2 Replies Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @gfrene last edited by

                @gfrene im bild oben sieht es aus als ob es an erster stelle steht - sorry - dann doch

                [s.split('.').length-1]
                

                anstatt der "0"

                G 1 Reply Last reply Reply Quote 1
                • liv-in-sky
                  liv-in-sky @gfrene last edited by

                  @gfrene oder kann es sein, dass dies eine werteliste ist - also mehrere werte zur auswahl - dann brauchst du den split nicht

                  wenn du auf den wert klickst - kommen dann mehrere zur auswahl ? wenn mehrere zur auswahl - dann musst du anders vorgehen

                  G 1 Reply Last reply Reply Quote 1
                  • G
                    gfrene @liv-in-sky last edited by

                    @liv-in-sky said in String teilen - split-Befehl:

                    @gfrene im bild oben sieht es aus als ob es an erster stelle steht - sorry - dann doch

                    [s.split('.').length-1]
                    

                    anstatt der "0"

                    Das wars ... zur Auswahl komme ich noch .. bisher arbeite ich Werte nur aus .. Ggf. würde ich mir dann hier wieder melden .... DICKES DANKE für deine Hilfe 🙂

                    1 Reply Last reply Reply Quote 1
                    • G
                      gfrene @liv-in-sky last edited by

                      @liv-in-sky Ok doch gleich noch eine Frage jetzt steht ja Closed ... kann man das auch gleich mit einbauen das dort alls in Deutsch steht

                      Der Wert ist ja unterschiedlich : Tür geschlossen ( Closed )
                      Tür geöffnet steht : BSH.Common.EnumType.DoorState.Open
                      und eben für Open (geöffnet)

                      liv-in-sky 1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @gfrene last edited by liv-in-sky

                        @gfrene poste bitte mal, was momentan drinsteht

                        G 1 Reply Last reply Reply Quote 1
                        • G
                          gfrene @liv-in-sky last edited by

                          @liv-in-sky eb4cff53-f9b9-452f-82a6-6f918914d238-grafik.png

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @gfrene last edited by liv-in-sky

                            @gfrene

                            bei mir geht es so;

                            {s:controll-own.0.AAATEST.TestString3;a:"";a=s.split('.')[0]; a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a}
                            

                            aber bei mir steht es an erster stelle - du mußt das andere nehmen (ohne[0])

                            wenn du deine formel in forum stellst, kann ich dir das gerne umarbeiten

                            G 1 Reply Last reply Reply Quote 1
                            • G
                              gfrene @liv-in-sky last edited by gfrene

                              @liv-in-sky Mmmm jetzt steht nur 0 drin .. bestimmt nicht richtig zusammengebaut.

                               {s:homeconnect.0.010060519425000485.status.BSH_Common_Status_DoorState;s.split('.')[s.split('.').length-1] a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a} 
                              
                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @gfrene last edited by liv-in-sky

                                @gfrene
                                bitte testen

                                {s:homeconnect.0.010060519425000485.status.BSH_Common_Status_RemoteControlStartAllowede;a:"";a=s.split('.')[s.split('.').length-1]; a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a}
                                
                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  gfrene @liv-in-sky last edited by gfrene

                                  @liv-in-sky sorry oben war der falsche text jetzt wertet er nichts mehr aus

                                  {s:homeconnect.0.010060519425000485.status.BSH_Common_Status_DoorState;a:"";a=s.split('.')[s.split('.').length-1] a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a
                                  

                                  01a4b0f4-ae55-44c4-8e9c-0dd4b606207a-grafik.png

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @gfrene last edited by

                                    @gfrene

                                    {s:homeconnect.0.010060519425000485.status.BSH_Common_Status_DoorState;a:"";a=s.split('.')[s.split('.').length-1] ;a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a}
                                    

                                    das hier ?

                                    G 1 Reply Last reply Reply Quote 1
                                    • G
                                      gfrene @liv-in-sky last edited by

                                      @liv-in-sky said in String teilen - split-Befehl:

                                      {s:homeconnect.0.010060519425000485.status.BSH_Common_Status_DoorState;a:"";a=s.split('.')[s.split('.').length-1] ;a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a}

                                      TOP 🙂 und wieder ein DICKES DANKE ... nun mal weiter machen ggf. würde ich mich gerne wieder bei dir melden .... DANKE DANKE

                                      liv-in-sky 2 Replies Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @gfrene last edited by

                                        @gfrene gern geschehen

                                        1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @gfrene last edited by

                                          @gfrene

                                          hi ich nochmal - teste bitte mal , ob das auch geht

                                          {s:homeconnect.0.010060519425000485.status.BSH_Common_Status_DoorState;a=s.split('.')[s.split('.').length-1] ;a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a}
                                          

                                          die version von gestern funktioniert, macht aber einen fehler im browser (sichtbar in entwicklertools von chrome)

                                          G 1 Reply Last reply Reply Quote 0
                                          • G
                                            gfrene @liv-in-sky last edited by gfrene

                                            @liv-in-sky said in String teilen - split-Befehl:

                                            ;a=="Closed" ? "geschlossen" : a== "Open" ? "geöffnet" : a}

                                            THX habe ich gefixt geht auch schon vorran 🙂 Wenn diese blöde Zeit nicht wäre hihihihi

                                            5aa573c7-7e36-4db9-a381-18dc2eb28338-grafik.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            886
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            7
                                            46
                                            3550
                                            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