Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. [Gelöst] Werte von Clever Tanken

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    152

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    565

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

[Gelöst] Werte von Clever Tanken

Geplant Angeheftet Gesperrt Verschoben Node-Red
29 Beiträge 6 Kommentatoren 2.2k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • R rewenode

    @mickym sagte in Werte auslesen von Webseite:

    Ich kanns nur leider nicht importieren - da Du den Export nicht in CodeTags gepackt hast und dann interpretiert der Browser irgendwelche Zeichen. Kannst Du es nochmal in CodeTags exportieren?

    Oh, sorry ;-( Schau mal ob es jetzt geht. Hab deb Beitrag geändert.

    Gruß
    Reiner

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #14

    @rewenode Ja jetzt ist die Change-Node solo drin und das wichtigste ist mit dem Code:

    (
    $art :=  $filter(payload,function(
            $v,$i){
              ($i)%2=0  
            });
    $preis := $map($filter(payload,function(
            $v,$i){
              ($i)%2=1  
            }),function($v,$i){
                $split($v,"\n")[2].$trim().$number()
            })      
            ;
    
    $map($art,function($v,$i){
         $v & ": " & $preis[$i]
    
    })
    
    )
    

    Allerdings stimmt das Ergebnis nicht.

    Schön wäre wie gesagt ein Objekt - Ok das bekomme ich nun auch ohne Flow variablen aber halt mit JS hin. Ich schau mir das nochmal in Ruhe an. Hab mal den Output in eine InjectNode gemacht, um nicht immer die Webabfrage zu starten:

    0d019c68-67cb-4f21-8745-40335a12f1cf-image.png

    Momentan kommt bei Deinem Code - immer noch ein Array, statt eines Objektes raus und die Werte passen noch nicht. Aber ich werde es erst nochmal so in JS machen und dann unterhalten wir uns über JSONATA. ;)

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    R 1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @rewenode Ja jetzt ist die Change-Node solo drin und das wichtigste ist mit dem Code:

      (
      $art :=  $filter(payload,function(
              $v,$i){
                ($i)%2=0  
              });
      $preis := $map($filter(payload,function(
              $v,$i){
                ($i)%2=1  
              }),function($v,$i){
                  $split($v,"\n")[2].$trim().$number()
              })      
              ;
      
      $map($art,function($v,$i){
           $v & ": " & $preis[$i]
      
      })
      
      )
      

      Allerdings stimmt das Ergebnis nicht.

      Schön wäre wie gesagt ein Objekt - Ok das bekomme ich nun auch ohne Flow variablen aber halt mit JS hin. Ich schau mir das nochmal in Ruhe an. Hab mal den Output in eine InjectNode gemacht, um nicht immer die Webabfrage zu starten:

      0d019c68-67cb-4f21-8745-40335a12f1cf-image.png

      Momentan kommt bei Deinem Code - immer noch ein Array, statt eines Objektes raus und die Werte passen noch nicht. Aber ich werde es erst nochmal so in JS machen und dann unterhalten wir uns über JSONATA. ;)

      R Offline
      R Offline
      rewenode
      schrieb am zuletzt editiert von
      #15

      @mickym Meinst du so?

      2022-09-10_14-28-21.png

      [
         {
             "id": "d43ad352c5585762",
             "type": "tab",
             "label": "Flow 3",
             "disabled": false,
             "info": "",
             "env": []
         },
         {
             "id": "67e607404c4e23a9",
             "type": "inject",
             "z": "d43ad352c5585762",
             "name": "",
             "props": [
                 {
                     "p": "trigger",
                     "v": "true",
                     "vt": "bool"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "x": 250,
             "y": 40,
             "wires": [
                 [
                     "978278b345db5c20"
                 ]
             ]
         },
         {
             "id": "978278b345db5c20",
             "type": "http request",
             "z": "d43ad352c5585762",
             "name": "",
             "method": "GET",
             "ret": "txt",
             "paytoqs": "ignore",
             "url": "https://nopaste.net/WEArq4Mojd",
             "tls": "",
             "persist": false,
             "proxy": "",
             "insecureHTTPParser": false,
             "authType": "",
             "senderr": false,
             "headers": [],
             "x": 250,
             "y": 100,
             "wires": [
                 [
                     "8817da5505a0693f"
                 ]
             ]
         },
         {
             "id": "8817da5505a0693f",
             "type": "html",
             "z": "d43ad352c5585762",
             "name": "",
             "property": "payload",
             "outproperty": "payload",
             "tag": "[class=\"price-type-name\"],[class=\"price-field\"]",
             "ret": "text",
             "as": "single",
             "x": 360,
             "y": 160,
             "wires": [
                 [
                     "df9f925401039198"
                 ]
             ]
         },
         {
             "id": "49c238fb0d7c57f6",
             "type": "debug",
             "z": "d43ad352c5585762",
             "name": "debug 21",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 240,
             "y": 280,
             "wires": []
         },
         {
             "id": "df9f925401039198",
             "type": "change",
             "z": "d43ad352c5585762",
             "name": "combine art and price",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "(\t   $art :=  $filter(\t       payload,\t       function(\t        $v,$i){\t          ($i)%2=0  \t        }\t   );\t   $preis := $map(\t       $filter(\t           payload,\t           function(\t        $v,$i){\t          ($i)%2=1  \t        }\t       ),\t       function($v,$i){\t           $split($v,\"\\n\")[2].$trim().$number().$formatNumber(\"#0.00\")\t        }\t   )      \t        ;\t   $map(\t       $art,\t       function($v,$i){\t     $v & \": \" & $preis[$i]\t}\t   ){$split(\":\")[0]: $split(\":\")[1]}\t\t)",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 280,
             "y": 220,
             "wires": [
                 [
                     "49c238fb0d7c57f6"
                 ]
             ]
         }
      ]
      

      Gruß
      Reiner

      mickymM 2 Antworten Letzte Antwort
      0
      • R rewenode

        @mickym Meinst du so?

        2022-09-10_14-28-21.png

        [
           {
               "id": "d43ad352c5585762",
               "type": "tab",
               "label": "Flow 3",
               "disabled": false,
               "info": "",
               "env": []
           },
           {
               "id": "67e607404c4e23a9",
               "type": "inject",
               "z": "d43ad352c5585762",
               "name": "",
               "props": [
                   {
                       "p": "trigger",
                       "v": "true",
                       "vt": "bool"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "x": 250,
               "y": 40,
               "wires": [
                   [
                       "978278b345db5c20"
                   ]
               ]
           },
           {
               "id": "978278b345db5c20",
               "type": "http request",
               "z": "d43ad352c5585762",
               "name": "",
               "method": "GET",
               "ret": "txt",
               "paytoqs": "ignore",
               "url": "https://nopaste.net/WEArq4Mojd",
               "tls": "",
               "persist": false,
               "proxy": "",
               "insecureHTTPParser": false,
               "authType": "",
               "senderr": false,
               "headers": [],
               "x": 250,
               "y": 100,
               "wires": [
                   [
                       "8817da5505a0693f"
                   ]
               ]
           },
           {
               "id": "8817da5505a0693f",
               "type": "html",
               "z": "d43ad352c5585762",
               "name": "",
               "property": "payload",
               "outproperty": "payload",
               "tag": "[class=\"price-type-name\"],[class=\"price-field\"]",
               "ret": "text",
               "as": "single",
               "x": 360,
               "y": 160,
               "wires": [
                   [
                       "df9f925401039198"
                   ]
               ]
           },
           {
               "id": "49c238fb0d7c57f6",
               "type": "debug",
               "z": "d43ad352c5585762",
               "name": "debug 21",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 240,
               "y": 280,
               "wires": []
           },
           {
               "id": "df9f925401039198",
               "type": "change",
               "z": "d43ad352c5585762",
               "name": "combine art and price",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "(\t   $art :=  $filter(\t       payload,\t       function(\t        $v,$i){\t          ($i)%2=0  \t        }\t   );\t   $preis := $map(\t       $filter(\t           payload,\t           function(\t        $v,$i){\t          ($i)%2=1  \t        }\t       ),\t       function($v,$i){\t           $split($v,\"\\n\")[2].$trim().$number().$formatNumber(\"#0.00\")\t        }\t   )      \t        ;\t   $map(\t       $art,\t       function($v,$i){\t     $v & \": \" & $preis[$i]\t}\t   ){$split(\":\")[0]: $split(\":\")[1]}\t\t)",
                       "tot": "jsonata"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 280,
               "y": 220,
               "wires": [
                   [
                       "49c238fb0d7c57f6"
                   ]
               ]
           }
        ]
        

        Gruß
        Reiner

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #16

        @rewenode Ja und nein - hab mal den Output in eine Inject Node gegeben, um nicht dauern die Webabfrage zu machen.

        Klare Verbesserung aus der HTML Node - es werden nur die Textinhalte geholt.
        Generell verstehe ich es - dass Du intern nun auch 2 Arrays machst, indem Du die geraden Elemente der $art zuweist und die ungeraden der $kraftstoff.
        So bei dem Preis verstehe ich was Du machst - aber ich würde lieber Zahlen haben.

        Dann lass uns mal zu der Zeile kommen, die in meinen Augen Probleme macht:

         $split($v,"\n")[2].$trim().$number()
        

        Ich hab mal das formatNumber schon weggelassen, weil ich ja keine Strings haben möchte. Allerdings bekomme ich das Leerzeichen vor nicht weg.

        Laut Beschreibung sollten ja auch führende Leerzeichen entfernt werden:

        05ce1389-4efc-4029-bede-5d476c8dd33e-image.png

        tut es aber nicht.

        Das Einzige wie ich es nun hin bekomme, ist wenn man das Objekt zusammensetzt, das ich es dort nochmal mache:

        $map(
               $art,
               function($v,$i){
             $v & ": " & $preis[$i]
        }
           ){$split(":")[0]: $split(":")[1].$trim().$number()}
        

        Das eigentlich geniale an JSONATA bzw. verwirrende ist die Iteration zur Objekterzeugung - das geht einfach noch nicht so recht in meinem Schädel.

        Sprich wenn ich die splits weglasse hast Du einfach ein array in dem Du mit maps, die zusammengesetzt sind.

        $map(
               $art,
               function($v,$i){
             $v & ": " & $preis[$i]
        }
           )
        

        ergibt also das Array.
        1c78106b-b80f-49d0-92a5-b5d14642486b-image.png

        Über das Verketten wird impliziert also jedes einzelne Array Element weiterverarbeitet. ;)

           $map(
               $art,
               function($v,$i){
             $v & ": " & $preis[$i]
        }
           ){$split(":")[0]: $split(":")[1].$trim().$number()}
        

        Das ist eigentlich das geniale an JSONATA - aber geht immer nicht so in den Kopf. Damit habe ich das gewünschte Ergebnis - wobei ich also

        oben jetzt nur noch das $trim() stehen habe - da dort aus mir unerfindlichen Gründen die Zahlenumwandlung nicht geht:

        48b2eb98-dd80-4ff8-8e1b-78dec200d2be-image.png

        Man kann das $trim() oben sogar ganz weglassen.

        :+1: :+1: :+1:

        Also insgesamt sieht es nun so aus:

        (
           $art :=  $filter(
               payload,
               function(
                $v,$i){
                  ($i)%2=0  
                }
           );
           $preis := $map(
               $filter(
                   payload,
                   function(
                $v,$i){
                  ($i)%2=1  
                }
               ),
               function($v,$i){
                   $split($v,"\n")[2]
                }
           )      
                ;
           $map(
               $art,
               function($v,$i){
             $v & ": " & $preis[$i]
        }
           ){$split(":")[0]: $split(":")[1].$trim().$number()}
        
        )
        

        Der Punkt ist ja eigentlich ein Abkürzung für das map - wenn ich also diesen kleinen Punkt machen - wird quasi aus jeder Property wieder ein Array Element gebildet.

         $map(
               $art,
               function($v,$i){
             $v & ": " & $preis[$i]
        }
           ).{$split(":")[0]: $split(":")[1].$trim().$number()}
        

        Dieser Punkt also ergibt dann:
        8031deb9-11ce-4610-b202-3f6c00b1cbe4-image.png

        Im Prinzip habe ich das verstanden - ich muss nur diese Verkettungen noch in meinen Kopf bekommen - jedenfalls ist diese Funktion schon mal zum Abspeichern.

        Bleibt nur die Frage offen, warum funktioniert das Konvertieren in einen Zahlenwert oben nicht und unten schon???

        EDIT: habe es auch mit dem Mapping oben versucht - das ergibt auch immer wieder Strings:

        $preis := $map(
               $filter(
                   payload,
                   function(
                $v,$i){
                  ($i)%2=1  
                }
               ),
               function($v,$i){
                   $split($v,"\n")[2] 
                }
                
           ).$trim().$number() ;
        

        Erzeugt trotzdem:

        151575f4-9f79-46b7-8e6c-391584d9a08c-image.png

        Na zumindest funktioniert es wenn man es unten bei der Objekterstellung macht. Ich versuche das jetzt trotzdem nochmal mit regEx.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        1 Antwort Letzte Antwort
        0
        • R rewenode

          @mickym Meinst du so?

          2022-09-10_14-28-21.png

          [
             {
                 "id": "d43ad352c5585762",
                 "type": "tab",
                 "label": "Flow 3",
                 "disabled": false,
                 "info": "",
                 "env": []
             },
             {
                 "id": "67e607404c4e23a9",
                 "type": "inject",
                 "z": "d43ad352c5585762",
                 "name": "",
                 "props": [
                     {
                         "p": "trigger",
                         "v": "true",
                         "vt": "bool"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "x": 250,
                 "y": 40,
                 "wires": [
                     [
                         "978278b345db5c20"
                     ]
                 ]
             },
             {
                 "id": "978278b345db5c20",
                 "type": "http request",
                 "z": "d43ad352c5585762",
                 "name": "",
                 "method": "GET",
                 "ret": "txt",
                 "paytoqs": "ignore",
                 "url": "https://nopaste.net/WEArq4Mojd",
                 "tls": "",
                 "persist": false,
                 "proxy": "",
                 "insecureHTTPParser": false,
                 "authType": "",
                 "senderr": false,
                 "headers": [],
                 "x": 250,
                 "y": 100,
                 "wires": [
                     [
                         "8817da5505a0693f"
                     ]
                 ]
             },
             {
                 "id": "8817da5505a0693f",
                 "type": "html",
                 "z": "d43ad352c5585762",
                 "name": "",
                 "property": "payload",
                 "outproperty": "payload",
                 "tag": "[class=\"price-type-name\"],[class=\"price-field\"]",
                 "ret": "text",
                 "as": "single",
                 "x": 360,
                 "y": 160,
                 "wires": [
                     [
                         "df9f925401039198"
                     ]
                 ]
             },
             {
                 "id": "49c238fb0d7c57f6",
                 "type": "debug",
                 "z": "d43ad352c5585762",
                 "name": "debug 21",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 240,
                 "y": 280,
                 "wires": []
             },
             {
                 "id": "df9f925401039198",
                 "type": "change",
                 "z": "d43ad352c5585762",
                 "name": "combine art and price",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "(\t   $art :=  $filter(\t       payload,\t       function(\t        $v,$i){\t          ($i)%2=0  \t        }\t   );\t   $preis := $map(\t       $filter(\t           payload,\t           function(\t        $v,$i){\t          ($i)%2=1  \t        }\t       ),\t       function($v,$i){\t           $split($v,\"\\n\")[2].$trim().$number().$formatNumber(\"#0.00\")\t        }\t   )      \t        ;\t   $map(\t       $art,\t       function($v,$i){\t     $v & \": \" & $preis[$i]\t}\t   ){$split(\":\")[0]: $split(\":\")[1]}\t\t)",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 280,
                 "y": 220,
                 "wires": [
                     [
                         "49c238fb0d7c57f6"
                     ]
                 ]
             }
          ]
          

          Gruß
          Reiner

          mickymM Offline
          mickymM Offline
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #17

          @rewenode Lieber Reiner - ich danke Dir wieder einmal so recht herzlich. :+1: :+1: :+1:

          • ich bin immer noch verwirrt aber ich habe es nun in einen Einzeiler geschafft - danke für Deine Ideen. Hat mich Zeit gekostet - aber mit dem JSONATA Exerciser habe ich mich schrittweise vorgetastet. ;)

          Die magische Zeile (JSONATA ist magisch) lautet:

          payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\d\.\d+/).match.$number())}
          

          efaf025f-1f72-4aab-8ce2-bf9d80acc397-image.png

          Damit reduziert sich der ganze Flow auf:

          Wenn man es als String dann auch noch mit den Nachkommastellen formatiert haben will kann man das dann ja noch einfach hinterher schieben. ;)

          payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\d\.\d+/).match.$number().$formatNumber("#0.00"))}
          

          5bea8dcc-96d2-43a3-862d-038e3d70d395-image.png

          [
             {
                 "id": "02ee08c829c2819c",
                 "type": "html",
                 "z": "d93c602e39839f86",
                 "name": "",
                 "property": "payload",
                 "outproperty": "payload",
                 "tag": "[class=\"price-type-name\"],[class=\"price-field\"]",
                 "ret": "text",
                 "as": "single",
                 "x": 630,
                 "y": 1500,
                 "wires": [
                     [
                         "c0a12f2315793304",
                         "605a896c2a98a031"
                     ]
                 ]
             },
             {
                 "id": "c0a12f2315793304",
                 "type": "change",
                 "z": "d93c602e39839f86",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\\d\\.\\d+/).match.$number())}",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 930,
                 "y": 1500,
                 "wires": [
                     [
                         "c12b286429069877"
                     ]
                 ]
             },
             {
                 "id": "c12b286429069877",
                 "type": "debug",
                 "z": "d93c602e39839f86",
                 "name": "Spritpreise als Zahlen",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1160,
                 "y": 1500,
                 "wires": []
             },
             {
                 "id": "900da6162b9d83d1",
                 "type": "inject",
                 "z": "d93c602e39839f86",
                 "name": "",
                 "props": [
                     {
                         "p": "trigger",
                         "v": "true",
                         "vt": "bool"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "x": 190,
                 "y": 1500,
                 "wires": [
                     [
                         "f51fcc63c0935308"
                     ]
                 ]
             },
             {
                 "id": "f51fcc63c0935308",
                 "type": "http request",
                 "z": "d93c602e39839f86",
                 "name": "",
                 "method": "GET",
                 "ret": "txt",
                 "paytoqs": "ignore",
                 "url": "https://nopaste.net/WEArq4Mojd",
                 "tls": "",
                 "persist": false,
                 "proxy": "",
                 "insecureHTTPParser": false,
                 "authType": "",
                 "senderr": false,
                 "headers": [],
                 "x": 350,
                 "y": 1500,
                 "wires": [
                     [
                         "02ee08c829c2819c"
                     ]
                 ]
             },
             {
                 "id": "605a896c2a98a031",
                 "type": "change",
                 "z": "d93c602e39839f86",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\\d\\.\\d+/).match.$number().$formatNumber(\"#0.00\"))}",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 930,
                 "y": 1540,
                 "wires": [
                     [
                         "793bea5a23676fa7"
                     ]
                 ]
             },
             {
                 "id": "793bea5a23676fa7",
                 "type": "debug",
                 "z": "d93c602e39839f86",
                 "name": "Spritpreise formatiert als String",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1190,
                 "y": 1540,
                 "wires": []
             }
          ]
          

          :grin: :grin: :grin:

          NodeRed ist einfach genial. ;)

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          R 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @rewenode Lieber Reiner - ich danke Dir wieder einmal so recht herzlich. :+1: :+1: :+1:

            • ich bin immer noch verwirrt aber ich habe es nun in einen Einzeiler geschafft - danke für Deine Ideen. Hat mich Zeit gekostet - aber mit dem JSONATA Exerciser habe ich mich schrittweise vorgetastet. ;)

            Die magische Zeile (JSONATA ist magisch) lautet:

            payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\d\.\d+/).match.$number())}
            

            efaf025f-1f72-4aab-8ce2-bf9d80acc397-image.png

            Damit reduziert sich der ganze Flow auf:

            Wenn man es als String dann auch noch mit den Nachkommastellen formatiert haben will kann man das dann ja noch einfach hinterher schieben. ;)

            payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\d\.\d+/).match.$number().$formatNumber("#0.00"))}
            

            5bea8dcc-96d2-43a3-862d-038e3d70d395-image.png

            [
               {
                   "id": "02ee08c829c2819c",
                   "type": "html",
                   "z": "d93c602e39839f86",
                   "name": "",
                   "property": "payload",
                   "outproperty": "payload",
                   "tag": "[class=\"price-type-name\"],[class=\"price-field\"]",
                   "ret": "text",
                   "as": "single",
                   "x": 630,
                   "y": 1500,
                   "wires": [
                       [
                           "c0a12f2315793304",
                           "605a896c2a98a031"
                       ]
                   ]
               },
               {
                   "id": "c0a12f2315793304",
                   "type": "change",
                   "z": "d93c602e39839f86",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\\d\\.\\d+/).match.$number())}",
                           "tot": "jsonata"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 930,
                   "y": 1500,
                   "wires": [
                       [
                           "c12b286429069877"
                       ]
                   ]
               },
               {
                   "id": "c12b286429069877",
                   "type": "debug",
                   "z": "d93c602e39839f86",
                   "name": "Spritpreise als Zahlen",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 1160,
                   "y": 1500,
                   "wires": []
               },
               {
                   "id": "900da6162b9d83d1",
                   "type": "inject",
                   "z": "d93c602e39839f86",
                   "name": "",
                   "props": [
                       {
                           "p": "trigger",
                           "v": "true",
                           "vt": "bool"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "x": 190,
                   "y": 1500,
                   "wires": [
                       [
                           "f51fcc63c0935308"
                       ]
                   ]
               },
               {
                   "id": "f51fcc63c0935308",
                   "type": "http request",
                   "z": "d93c602e39839f86",
                   "name": "",
                   "method": "GET",
                   "ret": "txt",
                   "paytoqs": "ignore",
                   "url": "https://nopaste.net/WEArq4Mojd",
                   "tls": "",
                   "persist": false,
                   "proxy": "",
                   "insecureHTTPParser": false,
                   "authType": "",
                   "senderr": false,
                   "headers": [],
                   "x": 350,
                   "y": 1500,
                   "wires": [
                       [
                           "02ee08c829c2819c"
                       ]
                   ]
               },
               {
                   "id": "605a896c2a98a031",
                   "type": "change",
                   "z": "d93c602e39839f86",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "payload#$i[$i%2=0]{$$.payload[$i]:($$.payload[$i+1].$match(/\\d\\.\\d+/).match.$number().$formatNumber(\"#0.00\"))}",
                           "tot": "jsonata"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 930,
                   "y": 1540,
                   "wires": [
                       [
                           "793bea5a23676fa7"
                       ]
                   ]
               },
               {
                   "id": "793bea5a23676fa7",
                   "type": "debug",
                   "z": "d93c602e39839f86",
                   "name": "Spritpreise formatiert als String",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 1190,
                   "y": 1540,
                   "wires": []
               }
            ]
            

            :grin: :grin: :grin:

            NodeRed ist einfach genial. ;)

            R Offline
            R Offline
            rewenode
            schrieb am zuletzt editiert von rewenode
            #18

            @mickym sagte in Werte auslesen von Webseite:

            Die magische Zeile (JSONATA ist magisch) lautet

            Sehr gut !!! Die Verlockung ist immer groß, JSONata-Konstrukte bis zum Einzeiler zu komprimieren, zumal es oft möglich ist.
            Gründe, warum ich das oft versuche zu vermeiden sind:

            1. ich will auch 2 Wochen später noch kapieren, was ich hier eigentlich gemacht habe;-) Und wenn da noch RegEx-Ausdrücke drin sind, geht es fast nicht mehr ohne sinnige Kommentare
            2. Man kann da schon ganz schön Zeit verdaddeln nur um ein paar Zeilen Code einzusparen

            Aber Spaß kann das schon machen;-)

            Gruß und schönen Sonntag
            Reiner

            mickymM 1 Antwort Letzte Antwort
            0
            • R rewenode

              @mickym sagte in Werte auslesen von Webseite:

              Die magische Zeile (JSONATA ist magisch) lautet

              Sehr gut !!! Die Verlockung ist immer groß, JSONata-Konstrukte bis zum Einzeiler zu komprimieren, zumal es oft möglich ist.
              Gründe, warum ich das oft versuche zu vermeiden sind:

              1. ich will auch 2 Wochen später noch kapieren, was ich hier eigentlich gemacht habe;-) Und wenn da noch RegEx-Ausdrücke drin sind, geht es fast nicht mehr ohne sinnige Kommentare
              2. Man kann da schon ganz schön Zeit verdaddeln nur um ein paar Zeilen Code einzusparen

              Aber Spaß kann das schon machen;-)

              Gruß und schönen Sonntag
              Reiner

              mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #19

              @rewenode Wenn ich Dich als Fachmann schon mal da habe. ;)

              Wenn ich, wie anfangs 2 Arrays habe - und möchte eines als topics bzw. property und das andere als Value nehmen:

              {
                "topic": [
                  "topic_01",
                  "topic_02",
                  "topic_03",
                  "topic_04",
                  "topic_05",
                  "topic_06"
                ],
                "payload": [
                  2.1,
                  1.96,
                  2.02,
                  2.11,
                  2.09,
                  1.08
                ]
              }
              

              dann bringe ich es nicht hin ohne $distinct-Function ein sauberes Objekt zu bekommen:

              topic#$i@$t.payload@$p{$t:$p[$i]}
              

              64d214d3-faa5-43b3-95a4-e321593a6b51-image.png

              topic#$i@$t.payload@$p{$t:$distinct($p[$i])}
              

              d5b2bf69-a598-4899-a53f-ac19716fee55-image.png

              Gibts da noch eine andere Möglichkeit zu verhindern, dass der payload - mal Anzahl der Elemente in einem Array rauskommt. In dieser Variable $i scheint es ein ganzes Array .

              Eventuell muss man da vorher was ausfiltern, weil im Beispiel - enthält das $i ja skalare Werte:

              2a3a3bd2-b074-44f2-bca6-e077822d7368-image.png

              EDIT:

              Ah ich habs :bulb: :bulb: :bulb: - muss man vorher ausfiltern. :+1: :+1:

              topic#$i@$t.payload#$j@$p[$i=$j]{$t:$p}
              

              6fb28e78-8661-4e04-86fd-c0eb4085f6ca-image.png

              Hier noch die praktische Anwendung in Node-Red:

              192d6d02-ee65-4604-b5c0-8b5474c87649-image.png

              [
                 {
                     "id": "18c446aa69e28041",
                     "type": "debug",
                     "z": "d93c602e39839f86",
                     "name": "debug 33",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 620,
                     "y": 1720,
                     "wires": []
                 },
                 {
                     "id": "42812429ed0f9f97",
                     "type": "change",
                     "z": "d93c602e39839f86",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "topic#$i@$t.payload#$j@$p[$i=$j]{$t:$p}",
                             "tot": "jsonata"
                         },
                         {
                             "t": "delete",
                             "p": "topic",
                             "pt": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 430,
                     "y": 1720,
                     "wires": [
                         [
                             "18c446aa69e28041"
                         ]
                     ]
                 },
                 {
                     "id": "c6812ad471a59a61",
                     "type": "comment",
                     "z": "d93c602e39839f86",
                     "name": "Kombiniere 2 Array in ein Objekt",
                     "info": "",
                     "x": 250,
                     "y": 1660,
                     "wires": []
                 },
                 {
                     "id": "903758012f51ae5c",
                     "type": "inject",
                     "z": "d93c602e39839f86",
                     "name": "",
                     "props": [
                         {
                             "p": "payload"
                         },
                         {
                             "p": "topic",
                             "v": "[\"Diesel\",\"Super E10\",\"Super E5\",\"SuperPlus\",\"LKW-Diesel\",\"LPG\"]",
                             "vt": "json"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "payload": "[2.1,1.96,2.02,2.11,2.09,1.08]",
                     "payloadType": "json",
                     "x": 230,
                     "y": 1720,
                     "wires": [
                         [
                             "42812429ed0f9f97"
                         ]
                     ]
                 }
              ]
              

              Sorry dass ich den Thread etwas missbraucht habe. - Aber vielleicht ist das ja auch für andere interessant. Höre jetzt auch auf. ;) -

              Danke Dir Reiner und auch einen schönen Sonntag. :)

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              R 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @rewenode Wenn ich Dich als Fachmann schon mal da habe. ;)

                Wenn ich, wie anfangs 2 Arrays habe - und möchte eines als topics bzw. property und das andere als Value nehmen:

                {
                  "topic": [
                    "topic_01",
                    "topic_02",
                    "topic_03",
                    "topic_04",
                    "topic_05",
                    "topic_06"
                  ],
                  "payload": [
                    2.1,
                    1.96,
                    2.02,
                    2.11,
                    2.09,
                    1.08
                  ]
                }
                

                dann bringe ich es nicht hin ohne $distinct-Function ein sauberes Objekt zu bekommen:

                topic#$i@$t.payload@$p{$t:$p[$i]}
                

                64d214d3-faa5-43b3-95a4-e321593a6b51-image.png

                topic#$i@$t.payload@$p{$t:$distinct($p[$i])}
                

                d5b2bf69-a598-4899-a53f-ac19716fee55-image.png

                Gibts da noch eine andere Möglichkeit zu verhindern, dass der payload - mal Anzahl der Elemente in einem Array rauskommt. In dieser Variable $i scheint es ein ganzes Array .

                Eventuell muss man da vorher was ausfiltern, weil im Beispiel - enthält das $i ja skalare Werte:

                2a3a3bd2-b074-44f2-bca6-e077822d7368-image.png

                EDIT:

                Ah ich habs :bulb: :bulb: :bulb: - muss man vorher ausfiltern. :+1: :+1:

                topic#$i@$t.payload#$j@$p[$i=$j]{$t:$p}
                

                6fb28e78-8661-4e04-86fd-c0eb4085f6ca-image.png

                Hier noch die praktische Anwendung in Node-Red:

                192d6d02-ee65-4604-b5c0-8b5474c87649-image.png

                [
                   {
                       "id": "18c446aa69e28041",
                       "type": "debug",
                       "z": "d93c602e39839f86",
                       "name": "debug 33",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 620,
                       "y": 1720,
                       "wires": []
                   },
                   {
                       "id": "42812429ed0f9f97",
                       "type": "change",
                       "z": "d93c602e39839f86",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "topic#$i@$t.payload#$j@$p[$i=$j]{$t:$p}",
                               "tot": "jsonata"
                           },
                           {
                               "t": "delete",
                               "p": "topic",
                               "pt": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 430,
                       "y": 1720,
                       "wires": [
                           [
                               "18c446aa69e28041"
                           ]
                       ]
                   },
                   {
                       "id": "c6812ad471a59a61",
                       "type": "comment",
                       "z": "d93c602e39839f86",
                       "name": "Kombiniere 2 Array in ein Objekt",
                       "info": "",
                       "x": 250,
                       "y": 1660,
                       "wires": []
                   },
                   {
                       "id": "903758012f51ae5c",
                       "type": "inject",
                       "z": "d93c602e39839f86",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "v": "[\"Diesel\",\"Super E10\",\"Super E5\",\"SuperPlus\",\"LKW-Diesel\",\"LPG\"]",
                               "vt": "json"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "[2.1,1.96,2.02,2.11,2.09,1.08]",
                       "payloadType": "json",
                       "x": 230,
                       "y": 1720,
                       "wires": [
                           [
                               "42812429ed0f9f97"
                           ]
                       ]
                   }
                ]
                

                Sorry dass ich den Thread etwas missbraucht habe. - Aber vielleicht ist das ja auch für andere interessant. Höre jetzt auch auf. ;) -

                Danke Dir Reiner und auch einen schönen Sonntag. :)

                R Offline
                R Offline
                rewenode
                schrieb am zuletzt editiert von
                #20

                @mickym So?

                2022-09-10_20-15-40.png

                $.topic#$i{$$.topic[$i]:$$.payload[$i]}
                

                Ja, sollte vlt. ein eigener Thread werden

                Gruß
                Reiner

                mickymM 1 Antwort Letzte Antwort
                0
                • R rewenode

                  @mickym So?

                  2022-09-10_20-15-40.png

                  $.topic#$i{$$.topic[$i]:$$.payload[$i]}
                  

                  Ja, sollte vlt. ein eigener Thread werden

                  Gruß
                  Reiner

                  mickymM Offline
                  mickymM Offline
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von mickym
                  #21

                  @rewenode sagte in Werte auslesen von Webseite:

                  $.topic#$i{$$.topic[$i]:$$.payload[$i]}

                  Ja - das geht auch. :) - Meins ist umständlicher.

                  Ist abgespeichert. ;)

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  R 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @rewenode sagte in Werte auslesen von Webseite:

                    $.topic#$i{$$.topic[$i]:$$.payload[$i]}

                    Ja - das geht auch. :) - Meins ist umständlicher.

                    Ist abgespeichert. ;)

                    R Offline
                    R Offline
                    rewenode
                    schrieb am zuletzt editiert von rewenode
                    #22

                    @mickym Oder auch so, um mal mit $zip zu spielen ;-)

                    $zip($.topic,$.payload){$[0]:$[1]}
                    

                    #$i brauchts da natürlich nicht.
                    In JSONata gibt es da immer 1000...

                    Gruß
                    Reiner

                    mickymM 1 Antwort Letzte Antwort
                    1
                    • R rewenode

                      @mickym Oder auch so, um mal mit $zip zu spielen ;-)

                      $zip($.topic,$.payload){$[0]:$[1]}
                      

                      #$i brauchts da natürlich nicht.
                      In JSONata gibt es da immer 1000...

                      Gruß
                      Reiner

                      mickymM Offline
                      mickymM Offline
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #23

                      @rewenode sagte in Werte auslesen von Webseite:

                      $zip($.topic,$.payload){$[0]:$[1]}

                      Ich muss immer erst 2mal überlegen - OK die Zip Funktion ist ja beschrieben - aber ich bin wieder über das reduce in dem Objekt gestolpert. Das man mit 0 und 1 ja jedes Array-Element ;) durchiteriert wird - Aber auch sehr elegant.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      R 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @rewenode sagte in Werte auslesen von Webseite:

                        $zip($.topic,$.payload){$[0]:$[1]}

                        Ich muss immer erst 2mal überlegen - OK die Zip Funktion ist ja beschrieben - aber ich bin wieder über das reduce in dem Objekt gestolpert. Das man mit 0 und 1 ja jedes Array-Element ;) durchiteriert wird - Aber auch sehr elegant.

                        R Offline
                        R Offline
                        rewenode
                        schrieb am zuletzt editiert von
                        #24

                        @mickym zurück zum eigentlichen Thema. Einen hätte ich noch :-)
                        Mit einem besseren Selektor wird es dann nur ein ganz kurzer Einzeiler

                        2022-09-10_23-45-12.png

                        .price-type-name, [id|=current-price]
                        

                        Und im Change dann:

                        payload#$i[($i%2)=0]{$$.payload[$i]:$$.payload[$i+1].$number()}
                        

                        Gruß
                        Reiner

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • R rewenode

                          @mickym zurück zum eigentlichen Thema. Einen hätte ich noch :-)
                          Mit einem besseren Selektor wird es dann nur ein ganz kurzer Einzeiler

                          2022-09-10_23-45-12.png

                          .price-type-name, [id|=current-price]
                          

                          Und im Change dann:

                          payload#$i[($i%2)=0]{$$.payload[$i]:$$.payload[$i+1].$number()}
                          

                          Gruß
                          Reiner

                          mickymM Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #25

                          @rewenode sagte in Werte auslesen von Webseite:

                          Das mit dem JSONATA ist ja nun nach den vorherigen Ausführungen zu erklären ;) - aber mit den CSS Selektoren bist Du mir im Vorteil - auch wenn es in der Hilfe zur HTML Node verlinkt ist: https://github.com/fb55/css-select#user-content-supported-selectors

                          Aber ich bevorzuge dann die andere Schreibweise mit [class="price-type-name"] und dann die Vergleiche zu machen. Das mit dem vorangestellten Punkt einer Klasse entspricht - ist mir bei CSS zwar prinzipiell bekannt, aber hätte ich hier nie verwendet. ;)

                          6476581b-e6f7-4122-b9a5-095773bfe10d-image.png

                          Ok - ich merke - ich beginne das mit den CSS Selektoren erst langsam zu verstehen. Dann geht das was @merlin2k11 gesagt hat, dass es nicht exakt übereinstimmen muss. :) - Klasse.

                          Dann gehen aber noch ein paar mehr Selektoren:

                          04028030-29a5-44cf-b1cb-e0fb117bb227-image.png

                          7e9d3149-10f9-44fe-9d85-416fead1dfc1-image.png

                          Ich hab heute jedenfalls wieder einiges von Dir gelernt.

                          Vielen Dank! :)

                          EDIT:

                          Noch eine Info - wenn man eine Standalone Version von NodeRed nutzt, kann man auch den doppelten Kontextspeicher verwenden, dann muss man für solche Tests keine Webanfragen machen. ;)

                          463bbd59-2e96-47f8-ae66-47ecebf6612c-image.png

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          R 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @rewenode sagte in Werte auslesen von Webseite:

                            Das mit dem JSONATA ist ja nun nach den vorherigen Ausführungen zu erklären ;) - aber mit den CSS Selektoren bist Du mir im Vorteil - auch wenn es in der Hilfe zur HTML Node verlinkt ist: https://github.com/fb55/css-select#user-content-supported-selectors

                            Aber ich bevorzuge dann die andere Schreibweise mit [class="price-type-name"] und dann die Vergleiche zu machen. Das mit dem vorangestellten Punkt einer Klasse entspricht - ist mir bei CSS zwar prinzipiell bekannt, aber hätte ich hier nie verwendet. ;)

                            6476581b-e6f7-4122-b9a5-095773bfe10d-image.png

                            Ok - ich merke - ich beginne das mit den CSS Selektoren erst langsam zu verstehen. Dann geht das was @merlin2k11 gesagt hat, dass es nicht exakt übereinstimmen muss. :) - Klasse.

                            Dann gehen aber noch ein paar mehr Selektoren:

                            04028030-29a5-44cf-b1cb-e0fb117bb227-image.png

                            7e9d3149-10f9-44fe-9d85-416fead1dfc1-image.png

                            Ich hab heute jedenfalls wieder einiges von Dir gelernt.

                            Vielen Dank! :)

                            EDIT:

                            Noch eine Info - wenn man eine Standalone Version von NodeRed nutzt, kann man auch den doppelten Kontextspeicher verwenden, dann muss man für solche Tests keine Webanfragen machen. ;)

                            463bbd59-2e96-47f8-ae66-47ecebf6612c-image.png

                            R Offline
                            R Offline
                            rewenode
                            schrieb am zuletzt editiert von
                            #26

                            @mickym sagte in Werte auslesen von Webseite:

                            Noch eine Info - wenn man eine Standalone Version von NodeRed nutzt, kann man auch den doppelten Kontextspeicher verwenden, dann muss man für solche Tests keine Webanfragen machen.

                            :+1: wieder was gelernt

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • R rewenode

                              @mickym sagte in Werte auslesen von Webseite:

                              Noch eine Info - wenn man eine Standalone Version von NodeRed nutzt, kann man auch den doppelten Kontextspeicher verwenden, dann muss man für solche Tests keine Webanfragen machen.

                              :+1: wieder was gelernt

                              mickymM Offline
                              mickymM Offline
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von
                              #27

                              @rewenode Ich mach mal noch einen neuen Thread auf - weil ich immer wieder auf Verständnisprobleme stoße.

                              Aus einem anderen Thread - gabs auch eine Anforderung - ich habs zwar geschafft, fand das aber wieder umständlich. Um den Thread nicht vollständig hier zu kapern, habe ich mal einen eigenen aufgemacht: https://forum.iobroker.net/topic/57856/jsonata-verständnisprobleme

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              1 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                merlin2k11
                                schrieb am zuletzt editiert von
                                #28

                                ähm ... topic#$i@$t.payload#$j@$p[$i=$j]{$t:$p}
                                Ihr müsst doch was geraucht haben... was auch immer es war ich will es auch damit ich verstehe was ihr da gebaut habt. Wie war das? Das ist Magisch?

                                Ich habe auch nach dem dritten mal lesen nur Fragezeichen und keine Ahnung was ihr da gebaut habt - aber es klappt und das war ja mein Ziel :)

                                Ich danke euch :fireworks: :fireworks: :balloon:

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • M merlin2k11

                                  ähm ... topic#$i@$t.payload#$j@$p[$i=$j]{$t:$p}
                                  Ihr müsst doch was geraucht haben... was auch immer es war ich will es auch damit ich verstehe was ihr da gebaut habt. Wie war das? Das ist Magisch?

                                  Ich habe auch nach dem dritten mal lesen nur Fragezeichen und keine Ahnung was ihr da gebaut habt - aber es klappt und das war ja mein Ziel :)

                                  Ich danke euch :fireworks: :fireworks: :balloon:

                                  mickymM Offline
                                  mickymM Offline
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #29

                                  @merlin2k11 Wie gesagt die finale Version sieht nun so aus:

                                  69d865aa-31db-4589-84d5-aa9d06f91c6e-image.png

                                  [
                                     {
                                         "id": "84644114056d7367",
                                         "type": "inject",
                                         "z": "d93c602e39839f86",
                                         "name": "",
                                         "props": [
                                             {
                                                 "p": "trigger",
                                                 "v": "true",
                                                 "vt": "bool"
                                             }
                                         ],
                                         "repeat": "",
                                         "crontab": "",
                                         "once": false,
                                         "onceDelay": 0.1,
                                         "topic": "",
                                         "x": 170,
                                         "y": 1940,
                                         "wires": [
                                             [
                                                 "18b108dc8d983dbe"
                                             ]
                                         ]
                                     },
                                     {
                                         "id": "18b108dc8d983dbe",
                                         "type": "http request",
                                         "z": "d93c602e39839f86",
                                         "name": "",
                                         "method": "GET",
                                         "ret": "txt",
                                         "paytoqs": "ignore",
                                         "url": "https://nopaste.net/WEArq4Mojd",
                                         "tls": "",
                                         "persist": false,
                                         "proxy": "",
                                         "insecureHTTPParser": false,
                                         "authType": "",
                                         "senderr": false,
                                         "headers": [],
                                         "x": 330,
                                         "y": 1940,
                                         "wires": [
                                             [
                                                 "58c77855680f94e2"
                                             ]
                                         ]
                                     },
                                     {
                                         "id": "58c77855680f94e2",
                                         "type": "html",
                                         "z": "d93c602e39839f86",
                                         "name": "",
                                         "property": "payload",
                                         "outproperty": "payload",
                                         "tag": ".price-type-name, [id|=current-price]",
                                         "ret": "html",
                                         "as": "single",
                                         "x": 620,
                                         "y": 1940,
                                         "wires": [
                                             [
                                                 "06b25788793b83a0"
                                             ]
                                         ]
                                     },
                                     {
                                         "id": "74f9010595f6e982",
                                         "type": "debug",
                                         "z": "d93c602e39839f86",
                                         "name": "[id|=current-price]",
                                         "active": true,
                                         "tosidebar": true,
                                         "console": false,
                                         "tostatus": false,
                                         "complete": "payload",
                                         "targetType": "msg",
                                         "statusVal": "",
                                         "statusType": "auto",
                                         "x": 1190,
                                         "y": 1940,
                                         "wires": []
                                     },
                                     {
                                         "id": "06b25788793b83a0",
                                         "type": "change",
                                         "z": "d93c602e39839f86",
                                         "name": "",
                                         "rules": [
                                             {
                                                 "t": "set",
                                                 "p": "payload",
                                                 "pt": "msg",
                                                 "to": "payload#$i[($i%2)=0]{$$.payload[$i]:$$.payload[$i+1].$number()}",
                                                 "tot": "jsonata"
                                             }
                                         ],
                                         "action": "",
                                         "property": "",
                                         "from": "",
                                         "to": "",
                                         "reg": false,
                                         "x": 930,
                                         "y": 1940,
                                         "wires": [
                                             [
                                                 "74f9010595f6e982"
                                             ]
                                         ]
                                     }
                                  ]
                                  

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  444

                                  Online

                                  32.5k

                                  Benutzer

                                  81.8k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe