Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. RegEx Frage

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    RegEx Frage

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

      Hallo als Neuling mit ioBroker, Parser und RegEx
      bekomme ich es nicht hin von der Seite https://price.bisq.wiz.biz/getAllMarketPrices mir nur den Preis in Euro (gerundet) anzeigen zu lassen:

      }, {
      "currencyCode" : "EUR",
      "price" : 24120.109399999998,
      "timestampSec" : 1693047959042,
      "provider" : "Bisq-Aggregate"
      }, {

      Ich habe diverse Dinge mit der Seite https://regex101.com erfolglos probiert.

      Ich hoffe auch hier auf Hilfe aus dem Forum.

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

        @hippocampus-0 So was parséd man nicht mit RegEx. Das ist ein JSON und da kannst Du direkt mit Deiner Logikmaschine zugreifen und dann ggf. runden. Mit regulären Ausdrücken rechnet man auch nicht (runden), sondern dass ist reine Stringverarbeitung.

        H 1 Reply Last reply Reply Quote 0
        • H
          hippocampus 0 @mickym last edited by

          @mickym das ist von der Seite direkt. Was meinst du mit Logikmaschine?

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

            @hippocampus-0 Na was nutzt Du NodeRed, Blockly, Javascript? Und dann wäre es gut, wenn Du die gesamte Ausgabe hier in CodeTags einstellst. Sensible Informationen kannst Du ja aus - xxx

            H mickym 2 Replies Last reply Reply Quote 0
            • H
              hippocampus 0 @mickym last edited by

              @mickym Den Adapter Parser.O im ioBroker wollte ich nutzen

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

                @mickym Na wie gesagt das ist schon ein JSON und sowas parsed man nicht. Sondern Du rufst die Seite direkt aus Deiner Logikmaschine auf und greifst auf die Inhalte zu. Du kannst auch die ganze Seite mit dem Parser in einen Datenpunkt schreiben und dann mit der Logikmaschine auslesen. Wie gesagt mit RegEx kannst Du das Parsen - aber es wird nie runden.

                f34101b4-7194-4116-9d96-683e4de2beb1-image.png

                "price" : \d+\.\d{3}
                

                damit schneidest Du nur ab, wirst aber nie runden. Du kannst auch 3 Stellen nehmen, die in einen Datenpunkt mit dem Parser schreiben und dann mit Deiner Logikmaschine runden. Ist halt alles von hinten durch die Brust. Anders ist es halt wesentlich eleganter.

                H 1 Reply Last reply Reply Quote 0
                • H
                  hippocampus 0 @mickym last edited by

                  @mickym Hallo Dank für deine Hilfestellung. Was würde ich denn bei Block für Module zum Filtern benutzen?
                  Bildschirmfoto 2023-08-26 um 13.48.40.png

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

                    OK ich seh - schon - ich mach Dir das Blockly. Ich geh mal davon aus, dass Du das EUR Teil willst.

                    H 1 Reply Last reply Reply Quote 0
                    • H
                      hippocampus 0 @mickym last edited by

                      @mickym Voll nett. Danke. Ja, nur der Euro Preis

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

                        @hippocampus-0 sagte: Was würde ich denn bei Block für Module zum Filtern benutzen?

                        Blockly_temp.JPG

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

                          @paul53 Vielen Dank. Ich teste es gleich aus.

                          @mickym @paul53
                          Eine offene Frage habe ich noch unter https://forum.iobroker.net/topic/67842/parser-regex-von-einer-seite-mit-nur-einer-zahl/10?_=1693050873544

                          Dabei handelt es sich um eine Seite mit nur einer Zahl, welche ich mit dem Parser und RegEx auslesen möchte. Dabei wurde die RegEx Einstellung mit \d+ vorgeschlagen. Anscheinen sind die Parser Einstellungen (Num, Rolle, Typ, Alt, Intervall …) falsch bei mir - es wird mir statt einer Sechstelligen Zahl die sich ändert konstant eine 32 angezeigt

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

                            @hippocampus-0 sagte: Seite mit nur einer Zahl, welche ich mit dem Parser und RegEx auslesen möchte.

                            Weshalb nicht mit Blockly / request?

                            Blockly_temp.JPG

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

                              @hippocampus-0 sagte in RegEx Frage:

                              @mickym Voll nett. Danke. Ja, nur der Euro Preis

                              Hier meine Lösung:

                              b7c06824-4a47-47e8-b9d0-fd48eb168440-image.png

                              <xml xmlns="https://developers.google.com/blockly/xml">
                               <variables>
                                 <variable id="Ek[*p2g7Z|Q*vQ@{yHXt">result</variable>
                               </variables>
                               <block type="request" id="kx4h?+GpTvqaa+KVru2K" x="188" y="-12">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                                 <field name="WITH_STATEMENT">TRUE</field>
                                 <field name="LOG"></field>
                                 <value name="URL">
                                   <shadow type="text" id="1N]NGk[~2i,3;A)-B$LC">
                                     <field name="TEXT">https://price.bisq.wiz.biz/getAllMarketPrices</field>
                                   </shadow>
                                 </value>
                                 <statement name="STATEMENT">
                                   <block type="debug" id="FZ|r?_d=XyaCjm%`U]yJ">
                                     <field name="Severity">log</field>
                                     <value name="TEXT">
                                       <shadow type="text" id="H~r14.s=j[sKO$^Z5,nW">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="convert_jsonata" id="YZ{3,d*?VUvcq@/N?@h5">
                                         <value name="EXPRESSION">
                                           <shadow type="text" id="7ri%?@Mqq_TxZu*(I1@9">
                                             <field name="TEXT"> $formatNumber($.data[currencyCode="EUR"].price,"0.00")</field>
                                           </shadow>
                                         </value>
                                         <value name="TARGET">
                                           <block type="convert_json2object" id="q5DR(Z~vmsR,q%[c?az-">
                                             <value name="VALUE">
                                               <block type="variables_get" id="U7yuCC{@B8ev9SkLG4u8">
                                                 <field name="VAR" id="Ek[*p2g7Z|Q*vQ@{yHXt">result</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                               </block>
                              </xml>
                              

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

                                @hippocampus-0

                                b55b4512-78aa-44a8-874a-842afb677643-image.png

                                kann ich nicht nachvollziehen - aber wie @paul schreibt entweder auch mit blockly. Mit dem 32 ist dann ein Bug im Adapter.

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

                                  @paul53
                                  Bei mir gibt es einen Fehler
                                  Bildschirmfoto 2023-08-26 um 14.13.53.png

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • H
                                    hippocampus 0 @mickym last edited by

                                    @mickym
                                    Bildschirmfoto 2023-08-26 um 14.15.20.png Bildschirmfoto 2023-08-26 um 14.15.39.png

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

                                      @hippocampus-0 Ja wie gesagt - nimm lieber blockly. Das ist nicht Dein Fehler, sondern ein Fehler des Adapters.

                                      c3d635f2-ed28-443d-9679-7abea8aa821a-image.png

                                      <xml xmlns="https://developers.google.com/blockly/xml">
                                       <variables>
                                         <variable id="Ek[*p2g7Z|Q*vQ@{yHXt">result</variable>
                                       </variables>
                                       <block type="request" id="kx4h?+GpTvqaa+KVru2K" x="88" y="-37">
                                         <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                                         <field name="WITH_STATEMENT">TRUE</field>
                                         <field name="LOG"></field>
                                         <value name="URL">
                                           <shadow type="text" id="1N]NGk[~2i,3;A)-B$LC">
                                             <field name="TEXT">https://price.bisq.wiz.biz/getAllMarketPrices</field>
                                           </shadow>
                                         </value>
                                         <statement name="STATEMENT">
                                           <block type="debug" id="FZ|r?_d=XyaCjm%`U]yJ">
                                             <field name="Severity">log</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="H~r14.s=j[sKO$^Z5,nW">
                                                 <field name="TEXT">test</field>
                                               </shadow>
                                               <block type="convert_jsonata" id="YZ{3,d*?VUvcq@/N?@h5">
                                                 <value name="EXPRESSION">
                                                   <shadow type="text" id="7ri%?@Mqq_TxZu*(I1@9">
                                                     <field name="TEXT"> $formatNumber($.data[currencyCode="EUR"].price,"0.00")</field>
                                                   </shadow>
                                                 </value>
                                                 <value name="TARGET">
                                                   <block type="convert_json2object" id="q5DR(Z~vmsR,q%[c?az-">
                                                     <value name="VALUE">
                                                       <block type="variables_get" id="U7yuCC{@B8ev9SkLG4u8">
                                                         <field name="VAR" id="Ek[*p2g7Z|Q*vQ@{yHXt">result</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                         <next>
                                           <block type="request" id="bR|TkI(fcG?lN[E6ZA7a">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                                             <field name="WITH_STATEMENT">TRUE</field>
                                             <field name="LOG"></field>
                                             <value name="URL">
                                               <shadow type="text" id="vOQ5NCa{6?!H9k{3i+jf">
                                                 <field name="TEXT">https://mempool.space/api/blocks/tip/height</field>
                                               </shadow>
                                             </value>
                                             <statement name="STATEMENT">
                                               <block type="debug" id="x@b/;@{A-l4y4cbDRvrp">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="H(qN|mDow5M*F:P2wst4">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="variables_get" id="U2Mwu}?|Bu{tt@#~`EFB">
                                                     <field name="VAR" id="Ek[*p2g7Z|Q*vQ@{yHXt">result</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                      </xml>
                                      

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

                                        @hippocampus-0 sagte: Bei mir gibt es einen Fehler

                                        Du musst im Block "aktualisiere" einen existierenden Datenpunkt vom Typ "Zahl" zuweisen.

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          hippocampus 0 @mickym last edited by

                                          @mickym $formatNumber($.data[currencyCode="EUR"].price...) ?

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

                                            @hippocampus-0 Na importiere halt das Ganze Blockly.

                                            Der Code heißt:

                                            $formatNumber($.data[currencyCode="EUR"].price,"0.00")
                                            

                                            Das ergibt einen String und keine Zahl - da Du dann auch 2 Nachkommastellen hast, wenn gerundet. Man kann das auch noch so abändern, dass Du ein Komma statt Punkt hast.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            469
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

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