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. String & Wert Parsen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    742

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

String & Wert Parsen

Geplant Angeheftet Gesperrt Verschoben Node-Red
12 Beiträge 4 Kommentatoren 704 Aufrufe 3 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.
  • Niklas SchoenN Niklas Schoen

    Moin Zusammen,

    folgendes habe ich vor:
    Ich habe einen statischen String & einen Objekt in IObroker.
    An den String möchte ich den Wert des Objektes anhängen. Das ganze ohne Leerzeichen o.ä.
    Also soll das ganze dann: DasHieristderStringunddirektdarandieValue

    Das soll dann an ein HTTP-Request übergeben werden, der eine Anmeldung benötigt. Der gebaute String soll hierbei die URL sein.

    Ich hoffe ihr könnt mir helfen! :)
    Danke euch!

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von
    #3

    @Niklas-Schoen

    das ist möglich. leider hast du nicht geschrieben wo du das machen möchtest.
    als skript. in einem adapter, in einem widget.

    als lösung gibt es diverse node bibliotheken wie request,axios oder auch direkt in node eingebaut http

    gut zu wissen, wäre welche technologie für das anmelden verwendet wird:
    formular-basiert, basic authentication, oauth, etc.

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    Niklas SchoenN 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      @Niklas-Schoen sagte in String & Wert Parsen:

      An den String möchte ich den Wert des Objektes anhängen

      das ist aber nicht parsen!
      Das ist eine Textverkettung

      Niklas SchoenN Offline
      Niklas SchoenN Offline
      Niklas Schoen
      schrieb am zuletzt editiert von
      #4

      @Homoran Danke für die Info!

      1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @Niklas-Schoen

        das ist möglich. leider hast du nicht geschrieben wo du das machen möchtest.
        als skript. in einem adapter, in einem widget.

        als lösung gibt es diverse node bibliotheken wie request,axios oder auch direkt in node eingebaut http

        gut zu wissen, wäre welche technologie für das anmelden verwendet wird:
        formular-basiert, basic authentication, oauth, etc.

        Niklas SchoenN Offline
        Niklas SchoenN Offline
        Niklas Schoen
        schrieb am zuletzt editiert von
        #5

        @OliverIO Danke für die Hilfe, das ganze will ich in Node-Red umsetzen.
        Wie kann ich denn herausfinden,welche Auth. eingesetzt wird?
        Im Firefox bekomme ich dann ein Popup für Benutzername & Kennwort.

        danke!

        HomoranH OliverIOO 2 Antworten Letzte Antwort
        0
        • Niklas SchoenN Niklas Schoen

          @OliverIO Danke für die Hilfe, das ganze will ich in Node-Red umsetzen.
          Wie kann ich denn herausfinden,welche Auth. eingesetzt wird?
          Im Firefox bekomme ich dann ein Popup für Benutzername & Kennwort.

          danke!

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #6

          @Niklas-Schoen sagte in String & Wert Parsen:

          das ganze will ich in Node-Red umsetzen.

          dann bin ich leider raus, in Blockly müsste das ganz einfach gehen

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          Niklas SchoenN 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @Niklas-Schoen sagte in String & Wert Parsen:

            das ganze will ich in Node-Red umsetzen.

            dann bin ich leider raus, in Blockly müsste das ganz einfach gehen

            Niklas SchoenN Offline
            Niklas SchoenN Offline
            Niklas Schoen
            schrieb am zuletzt editiert von
            #7

            @Homoran An sich spricht auch nichts gegen Blocky, wie bekommen ich denn das Zusammensetzung des Strings und vor allem, den Http-Request mit Auth hin?

            HomoranH 1 Antwort Letzte Antwort
            0
            • Niklas SchoenN Niklas Schoen

              @Homoran An sich spricht auch nichts gegen Blocky, wie bekommen ich denn das Zusammensetzung des Strings und vor allem, den Http-Request mit Auth hin?

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #8

              @Niklas-Schoen sagte in String & Wert Parsen:

              den Http-Request mit Auth hin?

              da habe ich keine Ahnung, ich dachte du wolltest "nur" den URL zusammensetzen

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • Niklas SchoenN Niklas Schoen

                @OliverIO Danke für die Hilfe, das ganze will ich in Node-Red umsetzen.
                Wie kann ich denn herausfinden,welche Auth. eingesetzt wird?
                Im Firefox bekomme ich dann ein Popup für Benutzername & Kennwort.

                danke!

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von OliverIO
                #9

                @Niklas-Schoen
                das bekommt man meist nur über die developer konsole im browser heraus.
                dort einfach F12 drücken, auf den reiter Network oder so ähnlich gehen.
                Dann die Seite Neu laden und auf die Anmeldeseite gehen und am besten schon die Login-Daten eingeben,
                aber nochg nicht bestätigen
                Dann die Netzwerkliste löschen.
                Dann dier Logindaten bestätigen.
                Dann müssen die einzelnen requests des browsers in der networkliste untersucht werden.
                Form-Login: erkannt man, wenn ein Post-Request ausgelöst wird, in dem deine Login-Daten an den Server übermittelt wird
                OAUTTH erkennt man meist an einem Request, in dem irgendwo in den Daten oauth vorkommt.
                basic auth ist erigentlich nicht mehr üblich, hier würde der browser selbst ein meist hässliches Eingabefeld anzeigen.
                Alternativ, wenn es eine bekannte Seite ist, kann man auch mal im Internet suchen. evtl gibt es dafür ja bereits eine bibliothek
                oder du nennst hier die Seite und ich kann mal schauen

                denk aber daran, dein vorhaben ist nicht trivial (besonders mit deinen Vorkenntnissen, wie ich annehme)
                aber ich find es toll wenn sich jemand da etwas weiterbilden will.

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                Niklas SchoenN 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @Niklas-Schoen
                  das bekommt man meist nur über die developer konsole im browser heraus.
                  dort einfach F12 drücken, auf den reiter Network oder so ähnlich gehen.
                  Dann die Seite Neu laden und auf die Anmeldeseite gehen und am besten schon die Login-Daten eingeben,
                  aber nochg nicht bestätigen
                  Dann die Netzwerkliste löschen.
                  Dann dier Logindaten bestätigen.
                  Dann müssen die einzelnen requests des browsers in der networkliste untersucht werden.
                  Form-Login: erkannt man, wenn ein Post-Request ausgelöst wird, in dem deine Login-Daten an den Server übermittelt wird
                  OAUTTH erkennt man meist an einem Request, in dem irgendwo in den Daten oauth vorkommt.
                  basic auth ist erigentlich nicht mehr üblich, hier würde der browser selbst ein meist hässliches Eingabefeld anzeigen.
                  Alternativ, wenn es eine bekannte Seite ist, kann man auch mal im Internet suchen. evtl gibt es dafür ja bereits eine bibliothek
                  oder du nennst hier die Seite und ich kann mal schauen

                  denk aber daran, dein vorhaben ist nicht trivial (besonders mit deinen Vorkenntnissen, wie ich annehme)
                  aber ich find es toll wenn sich jemand da etwas weiterbilden will.

                  Niklas SchoenN Offline
                  Niklas SchoenN Offline
                  Niklas Schoen
                  schrieb am zuletzt editiert von
                  #10

                  @OliverIO Danke dir für die gute Beschreibung, dass es etwas Aufwand wird ist mir klar, aber wie du schon sagst, irgendwann muss man ja anfangen sich etwas beizubringen! :)

                  Es handelt sich um Basic-Auth....Ja es gibt ein hässliches Eingabefeld und ich finde im Request Header: Authorization: Basic

                  Ab das ganze in Blockly, Node-Red oder JS gelöst wird ist mir eigentlich ziemlich egal (wobei ich nicht glaube, dass Blockly dafür gut geeignet ist)....Auf's ergebnis kommt es an und ich möchte etwas lernen! :)

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • Niklas SchoenN Niklas Schoen

                    @OliverIO Danke dir für die gute Beschreibung, dass es etwas Aufwand wird ist mir klar, aber wie du schon sagst, irgendwann muss man ja anfangen sich etwas beizubringen! :)

                    Es handelt sich um Basic-Auth....Ja es gibt ein hässliches Eingabefeld und ich finde im Request Header: Authorization: Basic

                    Ab das ganze in Blockly, Node-Red oder JS gelöst wird ist mir eigentlich ziemlich egal (wobei ich nicht glaube, dass Blockly dafür gut geeignet ist)....Auf's ergebnis kommt es an und ich möchte etwas lernen! :)

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #11

                    @Niklas-Schoen
                    sehr schön, dann lese mal diesen artikel.
                    https://www.haykranen.nl/2011/06/21/basic-http-authentication-in-node-js-using-the-request-module/

                    kannst auch noch nach weiteren im internet mittels den suchbegriffen
                    node request basic authorization

                    suchen.
                    wir machen es mit dem javascript adapter, dann haben wir nicht noch eine weitere komplexitätsstufe durch node-red oder blockly (welches ich nicht kenn/mag)

                    auch kannst du dich mal bei der request bibliothek einlesen:
                    https://www.npmjs.com/package/request
                    Diese wird von iobroker selbst verwendet und ist bereits vorinstalliert.
                    Störe dich nicht an dem deprecated. Es ist immer noch eine der meist verwendeten bibliotheken bei node.

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    1 Antwort Letzte Antwort
                    0
                    • Niklas SchoenN Niklas Schoen

                      Moin Zusammen,

                      folgendes habe ich vor:
                      Ich habe einen statischen String & einen Objekt in IObroker.
                      An den String möchte ich den Wert des Objektes anhängen. Das ganze ohne Leerzeichen o.ä.
                      Also soll das ganze dann: DasHieristderStringunddirektdarandieValue

                      Das soll dann an ein HTTP-Request übergeben werden, der eine Anmeldung benötigt. Der gebaute String soll hierbei die URL sein.

                      Ich hoffe ihr könnt mir helfen! :)
                      Danke euch!

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #12

                      @Niklas-Schoen Mit Node-Red ist es doch sehr einfach.

                      Du liest über einen iobroker in Node Dein Objekt aus - baust über einen Change Node die URL und übergibst diesem einem HTTP-Request Node - der auch eine Basic Authentication übergibt.

                      Das sind 3-4 Nodes je nachdem wie Du das triggern möchtest.

                      Ich mach Dir mal ein Beispiel - ich lese als Datenpunkt den String z. Bsp "microsoft" und hänge dann ".com" und den Rest für die URL an und übergebe das dem HTTP-Request Node.

                      Basic Authentication habe ich nichts angegeben aber das ist selbsterklärend in dem HTTP-Request Node.

                      Hier der Flow zum Testen:

                      [
                          {
                              "id": "7c137d0b.bd8124",
                              "type": "http request",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "method": "GET",
                              "ret": "txt",
                              "paytoqs": "ignore",
                              "url": "",
                              "tls": "",
                              "persist": false,
                              "proxy": "",
                              "authType": "",
                              "x": 1350,
                              "y": 320,
                              "wires": [
                                  [
                                      "f9dc7268.16b3b"
                                  ]
                              ]
                          },
                          {
                              "id": "6c167017.42f4e",
                              "type": "ioBroker get",
                              "z": "dce8fa20.2e93c8",
                              "name": "test",
                              "topic": "0_userdata.0.test",
                              "attrname": "payload",
                              "payloadType": "value",
                              "x": 960,
                              "y": 320,
                              "wires": [
                                  [
                                      "88c1b523.772e08"
                                  ]
                              ]
                          },
                          {
                              "id": "bcdaa5e0.3c0fb8",
                              "type": "inject",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "trigger",
                              "payloadType": "str",
                              "x": 810,
                              "y": 320,
                              "wires": [
                                  [
                                      "6c167017.42f4e"
                                  ]
                              ]
                          },
                          {
                              "id": "88c1b523.772e08",
                              "type": "change",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "url",
                                      "pt": "msg",
                                      "to": "\"http://\" & payload  & \".com\"",
                                      "tot": "jsonata"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 1130,
                              "y": 320,
                              "wires": [
                                  [
                                      "67c5e032.4345e",
                                      "7c137d0b.bd8124"
                                  ]
                              ]
                          },
                          {
                              "id": "67c5e032.4345e",
                              "type": "debug",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "url",
                              "targetType": "msg",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 1350,
                              "y": 260,
                              "wires": []
                          },
                          {
                              "id": "f9dc7268.16b3b",
                              "type": "debug",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "false",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 1550,
                              "y": 320,
                              "wires": []
                          }
                      ]
                      

                      Hier ein Screenshot - wie gesagt die Basic Authentisierung musst Du nur in der Request Node anhacken und Credentials eingeben.

                      screen.png

                      Die Ausgabe des letzten Debug Nodes zeigt Dir dann den Output der HTML Page.

                      Wenn Du keinen externen/manuellen Trigger brauchst - setzt Du anstelle des iobroker get und inject nodes einfache eine iobroker in node - und der ruft Dir die Seite bei jeder Aktualisierung/änderung des Objektes im iobroker auf.

                      Das Analysieren der HTML Daten/Codes, die von der Webpage zurückgeliefert werden - das ist dann das Parsen - da bin ich raus.

                      Um das evtl. bisschen praxisnäher zu machen - habe ich mal die Webseite dieses Threads zusammengestellt.

                      Ausserdem gibt es html parser node - da musst dann die Dich interessierenden Sections angeben und werden Dir als Array zurückgegeben.

                      Hier siehst DU also als URL diesen Thread hier - wobei genau dieser als Object im iobroker abgelegt ist. "40556/"String & Wert Parsen"

                      screen.png

                      screen.png
                      Im HTML Parser habe ich angegeben, dass ich alle title Sections haben möchte und dann siehst im Debug wie das extrahiert wird - oben drüber siehst den HTML Output. Aber wie gesagt da müssen Dir dann Leute ggf. helfen die Web programmierung mehr beherrschen.

                      Hier noch der Flow:

                      [
                          {
                              "id": "7c137d0b.bd8124",
                              "type": "http request",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "method": "GET",
                              "ret": "txt",
                              "paytoqs": "ignore",
                              "url": "",
                              "tls": "",
                              "persist": false,
                              "proxy": "",
                              "authType": "",
                              "x": 1410,
                              "y": 280,
                              "wires": [
                                  [
                                      "f9dc7268.16b3b",
                                      "f3944e9.d49e5b"
                                  ]
                              ]
                          },
                          {
                              "id": "6c167017.42f4e",
                              "type": "ioBroker get",
                              "z": "dce8fa20.2e93c8",
                              "name": "test",
                              "topic": "0_userdata.0.test",
                              "attrname": "payload",
                              "payloadType": "value",
                              "x": 1030,
                              "y": 280,
                              "wires": [
                                  [
                                      "88c1b523.772e08"
                                  ]
                              ]
                          },
                          {
                              "id": "bcdaa5e0.3c0fb8",
                              "type": "inject",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "props": [
                                  {
                                      "p": "payload"
                                  },
                                  {
                                      "p": "topic",
                                      "vt": "str"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "trigger",
                              "payloadType": "str",
                              "x": 910,
                              "y": 280,
                              "wires": [
                                  [
                                      "6c167017.42f4e"
                                  ]
                              ]
                          },
                          {
                              "id": "88c1b523.772e08",
                              "type": "change",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "rules": [
                                  {
                                      "t": "set",
                                      "p": "url",
                                      "pt": "msg",
                                      "to": "\"https://forum.iobroker.net/topic/\" & payload",
                                      "tot": "jsonata"
                                  }
                              ],
                              "action": "",
                              "property": "",
                              "from": "",
                              "to": "",
                              "reg": false,
                              "x": 1190,
                              "y": 280,
                              "wires": [
                                  [
                                      "67c5e032.4345e",
                                      "7c137d0b.bd8124"
                                  ]
                              ]
                          },
                          {
                              "id": "67c5e032.4345e",
                              "type": "debug",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "url",
                              "targetType": "msg",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 1400,
                              "y": 220,
                              "wires": []
                          },
                          {
                              "id": "f9dc7268.16b3b",
                              "type": "debug",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "false",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 1610,
                              "y": 220,
                              "wires": []
                          },
                          {
                              "id": "f3944e9.d49e5b",
                              "type": "html",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "property": "payload",
                              "outproperty": "payload",
                              "tag": "title",
                              "ret": "html",
                              "as": "single",
                              "x": 1590,
                              "y": 280,
                              "wires": [
                                  [
                                      "8e34c445.0d1158"
                                  ]
                              ]
                          },
                          {
                              "id": "8e34c445.0d1158",
                              "type": "debug",
                              "z": "dce8fa20.2e93c8",
                              "name": "",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "false",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 1830,
                              "y": 220,
                              "wires": []
                          }
                      ]
                      

                      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

                      423

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      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