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 aus einem Textfeld in Liste übergeben

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Werte aus einem Textfeld in Liste übergeben

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

      @mickym
      ich kann zwar mit

      $match(/(?:\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)/).match
      

      Das Datum mit der Uhrzeit (z.b. 2024-01-13T23:00:00.000Z) extrahieren, aber wie mach ich es mit den Beträgen, also 69.56, 67.53 usw. ? Vor allem könnte das auch um eine stelle mehr haben bzw. ein minuszeichen davor.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @ManfredHi last edited by

        @manfredhi sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

        /(?:\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z)

        Warum nutzt Du eigentlich nicht diese Seite: https://regex101.com/ bzw. da es konstant ist das Forward Lookup brauchst du erstmal nicht,

        Wie Du siehst bekommst Du ja Dein Datum richtig raus: https://regex101.com/r/6wBOu4/1

        Ich weiss aber nicht warum Du da Datum brauchst? oder ob Du es brauchst? - Dein Wert steht doch in der class="data-view-detail-link">69.56< , warun checjst Du das Datum oder willst Du das haben? Oder Beides?

        Ich gehe mal davon aus, Du willst beides.

        M 1 Reply Last reply Reply Quote 0
        • M
          ManfredHi @mickym last edited by ManfredHi

          @mickym
          habs eh mit regex versucht.
          mit dem

          ($match(/(?:)?-?\d+\.\d+/).match)#$i[$i%2=1].$round(($number()/10),3)
          

          bekomm ich die zahl nun raus.

          eigentlich wollte ich in einer liste beides haben, erst das datum, dann den betrag. aber das geht glaub ich nicht.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @ManfredHi last edited by

            @manfredhi Doch schau mal - ob Dir as gefällt?

            https://regex101.com/r/d9FrcN/1

            M 1 Reply Last reply Reply Quote 0
            • M
              ManfredHi @mickym last edited by

              @mickym

              @mickym sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

              Doch schau mal - ob Dir as gefällt?

              ja und in der Liste möchte ich dann immer abwechselnd das datum und den betrag

              d7ff0289-d431-4287-a21e-edbe9be982d9-image.png

              also so soll das z.b. dann aussehen:
              ['2024-01-13T23:00:00.000Z',6.956,'2024-01-14T00:00:000Z',6.753, .......]

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @ManfredHi last edited by mickym

                @manfredhi Na also - also siehst Du regEx geht, aber ein Objekt wäre doch sicher sinnvoller - also wieder so ein Stringchaos.

                Wäre das den nicht viel schöner:

                : https://try.jsonata.org/bz5mJZ3T_

                Warum löst ihr euch nicht von diesen blöden Strings?

                [
                  {
                    "date": "2024-01-13T23:00:00.000Z",
                    "value": "69.56"
                  },
                  {
                    "date": "2024-01-14T00:00:00.000Z",
                    "value": "67.53"
                  },
                  {
                    "date": "2024-01-14T01:00:00.000Z",
                    "value": "66.78"
                  },
                  {
                    "date": "2024-01-14T02:00:00.000Z",
                    "value": "66.32"
                  },
                  {
                    "date": "2024-01-14T03:00:00.000Z",
                    "value": "66.54"
                  }
                ]
                
                M 2 Replies Last reply Reply Quote 0
                • M
                  ManfredHi @mickym last edited by

                  @mickym sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

                  Warum löst ihr euch nicht von diesen blöden Strings?

                  im Grunde würden ja auch nur die Werte genügen, ohne Datumszuordnung. Es sind jeden Tag 24. also von 0 Uhr bis 23 Uhr.
                  Probleme sehe ich nur bei Wechsel auf Sommerzeit da sinds plötzlich nur 23 Werte bzw. im Herbst dann mal 25 Werte und da wäre die Zuordnung ideal.

                  mickym 2 Replies Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @ManfredHi last edited by mickym

                    @manfredhi Ja aber deswegen habe ich dir doch Objekte gemacht - wenn Du willst kannst ja dann schauen, ob Du nur die Werte oder das Objekt haben willst - aber warum willst Du weiter mit dem string Chaos weiterarbeiten?

                    Wenn du lieber Dein Stringchaos behalten möchtest, dann halt so: https://try.jsonata.org/g1gX0dk1Y

                    f22625df-4418-4b59-9561-4127d21874c6-image.png

                    [
                      "2024-01-13T23:00:00.000Z",
                      "69.56",
                      "2024-01-14T00:00:00.000Z",
                      "67.53",
                      "2024-01-14T01:00:00.000Z",
                      "66.78",
                      "2024-01-14T02:00:00.000Z",
                      "66.32",
                      "2024-01-14T03:00:00.000Z",
                      "66.54"
                    ]
                    

                    So wie Du es wünschst.

                    Oder so wenn Du ein Array mit Strings und in Zahl konvertierten Wert haben möchest:
                    : https://try.jsonata.org/5AZsbw1r9

                    [
                      "2024-01-13T23:00:00.000Z,69.56",
                      "2024-01-14T00:00:00.000Z,67.53",
                      "2024-01-14T01:00:00.000Z,66.78",
                      "2024-01-14T02:00:00.000Z,66.32",
                      "2024-01-14T03:00:00.000Z,66.54"
                    ]
                    

                    oder wenn Du Strings so sehr liebst dann halt alles in einem String:
                    https://try.jsonata.org/RvEH4MzlH

                    "2024-01-13T23:00:00.000Z,69.56,2024-01-14T00:00:00.000Z,67.53,2024-01-14T01:00:00.000Z,66.78,2024-01-14T02:00:00.000Z,66.32,2024-01-14T03:00:00.000Z,66.54"
                    

                    Und wenn du halt unbedingt ein Array mit Deinem String haben willst dann machst halt um das Join noch eine eckige Klammer. Macht aber alles in meinen Augen keinen Sinn.

                    Nun hast Du alle möglichen Ausgaben - von Objekten oder diversen Strings.

                    1 Reply Last reply Reply Quote 0
                    • M
                      ManfredHi @mickym last edited by

                      @mickym sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

                      Wäre das den nicht viel schöner:
                      : https://try.jsonata.org/bz5mJZ3T_

                      meinst du ich soll es so machen ?
                      Wenn ja, wenn ich das in den jsonata eintrage, bekomme ich einen Fehler.

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @ManfredHi last edited by

                        @manfredhi Ich würde es mit Objekten machen - aber wenn Du nur die Werte haben willst. Ich hab doch keine Ahnung was Du willst. Ich habe Dir doch alle Möglichkeiten gezeigt - was willst Du denn machen - warum willst du überhaupt das Datum, wenn Du es nicht weiterverarbeitest?

                        1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @ManfredHi last edited by

                          @manfredhi sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

                          @mickym sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

                          Warum löst ihr euch nicht von diesen blöden Strings?

                          im Grunde würden ja auch nur die Werte genügen, ohne Datumszuordnung. Es sind jeden Tag 24. also von 0 Uhr bis 23 Uhr.
                          Probleme sehe ich nur bei Wechsel auf Sommerzeit da sinds plötzlich nur 23 Werte bzw. im Herbst dann mal 25 Werte und da wäre die Zuordnung ideal.

                          Die Anzahl der Werte spielen doch für JSONATA oder regex keine Rolle. Wenn Du das Datum prüfen willst, dann würde ich die Objekte nehmen.

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            ManfredHi @mickym last edited by

                            @mickym
                            du hast mir jetzt mal verschiedene wege aufgezeigt. vielen dank dafür.
                            derzeit lese ich die daten von epexspot aus, da hab ich auch nur die 24 Werte ohne Datum und die Aufbereitung eines Json mit Datum und diversen Berechnungen läuft derzeit eh einwandfrei.
                            Mit den Daten von jetzt will ich mir nur eine zweite Quelle für das Auslesen der Daten von einer anderen Homepage schaffen und vorbereiten, sollte das andere nicht funktionieren, und da ist halt jetzt auch das Datum mit dabei.
                            Danke jedenfalls mal dass Du so geduldig mit mir bist und soviel zeit dafür investierst.
                            Wenn ich mal wieder nicht weiter weiß, darf ich mich hoffentlich bitte wieder bei dir melden.

                            mickym 2 Replies Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @ManfredHi last edited by mickym

                              @manfredhi Also hier hast Du alles mit Datum und Wert

                              20292507-5568-4b1c-98c6-bff8a6f515b8-image.png

                              Und das Blockly zum Import. Nach dem Objekt kannst Du über die Attribute auf das Datum mit dem zugehörigen Wert zugreifen.

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <variables>
                                 <variable id="C*(%s2V?l2/ZMsDD,BM,">Liste</variable>
                                 <variable id="d`)?8*7%K1}V`kUC1;/B">i</variable>
                               </variables>
                               <block type="variables_set" id="v(j/%p78,qDwA0}A=FwF" x="-1313" y="-962">
                                 <field name="VAR" id="C*(%s2V?l2/ZMsDD,BM,">Liste</field>
                                 <value name="VALUE">
                                   <block type="convert_jsonata" id="xz5ijXAFL3gB`SY##:zK">
                                     <value name="EXPRESSION">
                                       <shadow type="text" id="JZ*(!0?Y2d1j]_jS^.(W">
                                         <field name="TEXT">$match($,/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z).*?&gt;(-?\d+\.\d+)/).{"date":groups[0],"value":groups[1]}</field>
                                       </shadow>
                                     </value>
                                     <value name="TARGET">
                                       <block type="text" id="g=?.U|g3!nPIM8!Okui4">
                                         <field name="TEXT">&lt;tr&gt; &lt;td rowspan="1" class="first"&gt;00:00 - 01:00&lt;/td&gt; &lt;td class="dv-value-cell"&gt;&lt;span onclick="showDetail('eu.entsoe.emfip.transmission_domain.r2.presentation.entity.DayAheadPricesMongoEntity', '65a12a32dafea7778dc3c2fa', '2024-01-13T23:00:00.000Z', 'PRICE', 'CET');" class="data-view-detail-link"&gt;69.56&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td rowspan="1" class="first"&gt;01:00 - 02:00&lt;/td&gt; &lt;td class="dv-value-cell"&gt;&lt;span onclick="showDetail('eu.entsoe.emfip.transmission_domain.r2.presentation.entity.DayAheadPricesMongoEntity', '65a27c6c55592d197e768cc0', '2024-01-14T00:00:00.000Z', 'PRICE', 'CET');" class="data-view-detail-link"&gt;67.53&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td rowspan="1" class="first"&gt;02:00 - 03:00&lt;/td&gt; &lt;td class="dv-value-cell"&gt;&lt;span onclick="showDetail('eu.entsoe.emfip.transmission_domain.r2.presentation.entity.DayAheadPricesMongoEntity', '65a27c6c55592d197e768cc0', '2024-01-14T01:00:00.000Z', 'PRICE', 'CET');" class="data-view-detail-link"&gt;66.78&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td rowspan="1" class="first"&gt;03:00 - 04:00&lt;/td&gt; &lt;td class="dv-value-cell"&gt;&lt;span onclick="showDetail('eu.entsoe.emfip.transmission_domain.r2.presentation.entity.DayAheadPricesMongoEntity', '65a27c6c55592d197e768cc0', '2024-01-14T02:00:00.000Z', 'PRICE', 'CET');" class="data-view-detail-link"&gt;66.32&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td rowspan="1" class="first"&gt;04:00 - 05:00&lt;/td&gt; &lt;td class="dv-value-cell"&gt;&lt;span onclick="showDetail('eu.entsoe.emfip.transmission_domain.r2.presentation.entity.DayAheadPricesMongoEntity', '65a27c6c55592d197e768cc0', '2024-01-14T03:00:00.000Z', 'PRICE', 'CET');" class="data-view-detail-link"&gt;66.54&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="debug" id="$mUXBli_e}bd4hA?t2Ls">
                                     <field name="Severity">log</field>
                                     <value name="TEXT">
                                       <shadow type="text" id="+:$J:sSMpe_Z8M4p0YYN">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="variables_get" id="l5qP~-]nz`1`-58R/5nZ">
                                         <field name="VAR" id="C*(%s2V?l2/ZMsDD,BM,">Liste</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="controls_forEach" id="!7jgA`{UL-[r:;!@yoXJ">
                                         <field name="VAR" id="d`)?8*7%K1}V`kUC1;/B">i</field>
                                         <value name="LIST">
                                           <block type="variables_get" id="77ohO+SY?J6?{a=%]aA/">
                                             <field name="VAR" id="C*(%s2V?l2/ZMsDD,BM,">Liste</field>
                                           </block>
                                         </value>
                                         <statement name="DO">
                                           <block type="debug" id="~tgZ^)%;8xrn5R9kJXH[">
                                             <field name="Severity">log</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="h/,HHch?qZVXTZx2rTjj">
                                                 <field name="TEXT">test</field>
                                               </shadow>
                                               <block type="text_join" id="~!lR(NC)7]j,n;R^Hh=;">
                                                 <mutation items="2"></mutation>
                                                 <value name="ADD0">
                                                   <block type="text" id="(sue[4in3N@Hopwbh_.G">
                                                     <field name="TEXT">Datum: </field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="get_attr" id="6.V#XH?Y;R`Z$Wn~$ISY">
                                                     <value name="PATH">
                                                       <shadow type="text" id="t$xv8DI1M/HM?6T+8eZ|">
                                                         <field name="TEXT">date</field>
                                                       </shadow>
                                                     </value>
                                                     <value name="OBJECT">
                                                       <block type="variables_get" id="xN@oWcn#X!fKqf{si,4M">
                                                         <field name="VAR" id="d`)?8*7%K1}V`kUC1;/B">i</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id="XTkoukmL*_xw27D]QS=$">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="L(OeR6i31|-=rxy%-k[#">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="text_join" id="g{yGW$$%DHW(8xTQEZR$">
                                                     <mutation items="2"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text" id="Jat$dX8m[%pw4O1Zf0Sy">
                                                         <field name="TEXT">Wert: </field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="get_attr" id="5*X=Ftz:vj*/G2|(Qk.W">
                                                         <value name="PATH">
                                                           <shadow type="text" id="rnLpZXy5eD5,GMrU6=}|">
                                                             <field name="TEXT">value</field>
                                                           </shadow>
                                                         </value>
                                                         <value name="OBJECT">
                                                           <block type="variables_get" id="o9Q8nv:{!xjqMPErJ#64">
                                                             <field name="VAR" id="d`)?8*7%K1}V`kUC1;/B">i</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                              </xml>
                              

                              Wenn Du die Werte ohne Datum willst - dann kannst Du das ganze ja mit oder ohne Datum machen.

                              Warum zum Schluss ein undefined rauskommt - weiß ich nicht. Das scheint wieder so ein Blockly Mist zu sein. Da muss ggf. @paul53 Aufschluss geben - Eigentlich enthält die Liste nur 5 Objekte. Warum die Schleife noch ein 6. Mal durchlaufen wird - ist mir wieder ein Rätsel - aber wie gesagt ich bin eh kein Puzzlefan.

                              M 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @ManfredHi last edited by

                                @manfredhi sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

                                @mickym
                                du hast mir jetzt mal verschiedene wege aufgezeigt. vielen dank dafür.
                                derzeit lese ich die daten von epexspot aus, da hab ich auch nur die 24 Werte ohne Datum und die Aufbereitung eines Json mit Datum und diversen Berechnungen läuft derzeit eh einwandfrei.
                                Mit den Daten von jetzt will ich mir nur eine zweite Quelle für das Auslesen der Daten von einer anderen Homepage schaffen und vorbereiten, sollte das andere nicht funktionieren, und da ist halt jetzt auch das Datum mit dabei.
                                Danke jedenfalls mal dass Du so geduldig mit mir bist und soviel zeit dafür investierst.
                                Wenn ich mal wieder nicht weiter weiß, darf ich mich hoffentlich bitte wieder bei dir melden.

                                Wenn Du nur die Werte haben willst ohne das Datum dann halt einfach das regex anpassen

                                https://regex101.com/r/QaP4lf/1

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  ManfredHi @mickym last edited by

                                  @mickym sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

                                  Warum zum Schluss ein undefined rauskommt - weiß ich nicht. Das scheint wieder so ein Blockly Mist zu sein. Da muss ggf. @paul53 Aufschluss geben - Eigentlich enthält die Liste nur 5 Objekte. Warum die Schleife noch ein 6. Mal durchlaufen wird - ist mir wieder ein Rätsel - aber wie gesagt ich bin eh kein Puzzlefan.

                                  Danke. Ich mach das immer so, damit dieses undefined nicht kommt:

                                  91ef6fc1-7104-4ce8-96dd-4eaf541080a9-image.png

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    ManfredHi @mickym last edited by

                                    @mickym sagte in [gelöst] Werte aus einem Textfeld in Liste übergeben:

                                    Wenn Du nur die Werte haben willst ohne das Datum dann halt einfach das regex anpassen

                                    Vielen Dank. Hab mir jetzt mal alle möglichkeiten angelegt und nachgebaut. So dass mal jede Variante funktioniert. Für welche ich mich dann endgültig entscheide überlege ich noch.

                                    Auf jeden Fall großes DANKE an dich.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    398
                                    Online

                                    32.0k
                                    Users

                                    80.4k
                                    Topics

                                    1.3m
                                    Posts

                                    3
                                    30
                                    612
                                    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