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. Anfängerfrage http request

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Anfängerfrage http request

Geplant Angeheftet Gesperrt Verschoben Node-Red
5 Beiträge 4 Kommentatoren 402 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 Offline
    R Offline
    ralf2201
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich bin absoluter Anfänger und benötige einen Tip um in die richtige Richtung zu gehen. Ich bekomme über einen http request Daten eines Wettersensors. Die Daten liegen folgendermaßen an.

    20210415112525 TH0 2.5 65 1.4

    Am Anfang steht also Das Datum mit Uhrzeit. Dann folgt die Kennung des Sensors gefolgt von Temperatur, Luftfeuchtigkeit und Taupunkt.

    Mein Ziel ist jetzt die Daten so zu vereinzeln dass sie lesbar sind und ich sie an einen zB cuxd Sensor bzw. Eine Systemvariable an HomematicIP übergeben kann.

    Danke für eure Hilfe oder Anregungen.

    AsgothianA mickymM R 3 Antworten Letzte Antwort
    0
    • R ralf2201

      Hallo,

      ich bin absoluter Anfänger und benötige einen Tip um in die richtige Richtung zu gehen. Ich bekomme über einen http request Daten eines Wettersensors. Die Daten liegen folgendermaßen an.

      20210415112525 TH0 2.5 65 1.4

      Am Anfang steht also Das Datum mit Uhrzeit. Dann folgt die Kennung des Sensors gefolgt von Temperatur, Luftfeuchtigkeit und Taupunkt.

      Mein Ziel ist jetzt die Daten so zu vereinzeln dass sie lesbar sind und ich sie an einen zB cuxd Sensor bzw. Eine Systemvariable an HomematicIP übergeben kann.

      Danke für eure Hilfe oder Anregungen.

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von Asgothian
      #2

      @ralf2201 Was nutzt du denn / willst du denn nutzen ?

      JS ?
      Blockly ?

      NodeRed ?
      (edit: sorry, hatte das Forum nicht beachtet)

      Letztendlich würde ein Regex gehen :

      (\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d) TH\d (\d+.\d+) (\d+) (\d+.\d) Liefert ein Array zurück
      [Jahr, Monat, Tag, Stunde, Minute,Sekunde, Wert 1, Wert 2, Wert 3]

      Zum ausprobieren: https://regex101.com, deinen String als Teststring, meinen als Expression

      NodeRed hat sicherlich auch eine Node die ein Regex verarbeiten kann. Da kannst du dann die einzelnen Punkte heraus holen.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      1 Antwort Letzte Antwort
      0
      • R ralf2201

        Hallo,

        ich bin absoluter Anfänger und benötige einen Tip um in die richtige Richtung zu gehen. Ich bekomme über einen http request Daten eines Wettersensors. Die Daten liegen folgendermaßen an.

        20210415112525 TH0 2.5 65 1.4

        Am Anfang steht also Das Datum mit Uhrzeit. Dann folgt die Kennung des Sensors gefolgt von Temperatur, Luftfeuchtigkeit und Taupunkt.

        Mein Ziel ist jetzt die Daten so zu vereinzeln dass sie lesbar sind und ich sie an einen zB cuxd Sensor bzw. Eine Systemvariable an HomematicIP übergeben kann.

        Danke für eure Hilfe oder Anregungen.

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

        @ralf2201 Ich würde es so machen:
        Wandle entweder alles in ein Array um oder lass Dir die Daten nacheinander über die Split Node nacheinander ausgeben.
        Im Array greifst Du dann zum Beispiel auf die einzlnen Werte mit msg.payload[0] auf das Datum zu,

        Ich hab dann das Datum, als 1. Feld mal genommen, mit dem vom @Asgothian regulären Ausdruck in einen moment konformen String umgewandelt und dann kannst Du das Datum direkt in der für Dich gewünschten Form ausgeben:

        7e69aa37-4842-49d9-9c5f-d9bf37a5f75c-image.png

        Die regulären Ausdrücke stehen Dir auch in Abfragen zur Verfügung - und somit kannst Du nach der Split Node die Nachrichten auch direkt weiter verarbeiten.
        Damit sollten Dir nun alle Zugriffsmöglichkeiten zur Analyse und Weiterverarbeitung offen stehen.

        Hier der Flow zum Import:

        [
            {
                "id": "1a22e998.f26ea6",
                "type": "change",
                "z": "6e170384.60c96c",
                "name": "",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "$split(payload, ' ')",
                        "tot": "jsonata"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 1990,
                "y": 4460,
                "wires": [
                    [
                        "c4360147.fe2db",
                        "4fe27f3e.632cb"
                    ]
                ]
            },
            {
                "id": "512d58b0.e503e8",
                "type": "inject",
                "z": "6e170384.60c96c",
                "name": "",
                "props": [
                    {
                        "p": "payload"
                    }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "20210415112525 TH0 2.5 65 1.4",
                "payloadType": "str",
                "x": 1780,
                "y": 4460,
                "wires": [
                    [
                        "1a22e998.f26ea6",
                        "37608c3d.886b14"
                    ]
                ]
            },
            {
                "id": "c4360147.fe2db",
                "type": "debug",
                "z": "6e170384.60c96c",
                "name": "Array",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "",
                "statusType": "auto",
                "x": 2220,
                "y": 4460,
                "wires": []
            },
            {
                "id": "37608c3d.886b14",
                "type": "split",
                "z": "6e170384.60c96c",
                "name": "",
                "splt": " ",
                "spltType": "str",
                "arraySplt": 1,
                "arraySpltType": "len",
                "stream": false,
                "addname": "",
                "x": 1960,
                "y": 4520,
                "wires": [
                    [
                        "b43c4b47.ad7238"
                    ]
                ]
            },
            {
                "id": "6bb74424.1ab97c",
                "type": "debug",
                "z": "6e170384.60c96c",
                "name": "nacheinander",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "",
                "statusType": "auto",
                "x": 2560,
                "y": 4540,
                "wires": []
            },
            {
                "id": "4fe27f3e.632cb",
                "type": "change",
                "z": "6e170384.60c96c",
                "name": "Datum ausgeben",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "payload[0]",
                        "tot": "msg"
                    },
                    {
                        "t": "change",
                        "p": "payload",
                        "pt": "msg",
                        "from": "(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)",
                        "fromt": "re",
                        "to": "$1-$2-$3 $4:$5:$6",
                        "tot": "str"
                    },
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "$moment(payload).locale(\"de\").tz('Europe/Berlin').format('dddd, [der] D. MMMM YYYY [um] HH:mm')",
                        "tot": "jsonata"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 2250,
                "y": 4400,
                "wires": [
                    [
                        "a9bfff85.af1c4"
                    ]
                ]
            },
            {
                "id": "a9bfff85.af1c4",
                "type": "debug",
                "z": "6e170384.60c96c",
                "name": "Datum und Uhrzeit",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": false,
                "complete": "payload",
                "targetType": "msg",
                "statusVal": "",
                "statusType": "auto",
                "x": 2480,
                "y": 4400,
                "wires": []
            },
            {
                "id": "b43c4b47.ad7238",
                "type": "switch",
                "z": "6e170384.60c96c",
                "name": "Ist Datum?",
                "property": "payload",
                "propertyType": "msg",
                "rules": [
                    {
                        "t": "regex",
                        "v": "(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)",
                        "vt": "str",
                        "case": false
                    },
                    {
                        "t": "else"
                    }
                ],
                "checkall": "true",
                "repair": false,
                "outputs": 2,
                "x": 2150,
                "y": 4520,
                "wires": [
                    [
                        "4560291b.7b5ed8"
                    ],
                    [
                        "6bb74424.1ab97c"
                    ]
                ]
            },
            {
                "id": "4560291b.7b5ed8",
                "type": "change",
                "z": "6e170384.60c96c",
                "name": "Datum ausgeben",
                "rules": [
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "payload[0]",
                        "tot": "msg"
                    },
                    {
                        "t": "change",
                        "p": "payload",
                        "pt": "msg",
                        "from": "(\\d\\d\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)",
                        "fromt": "re",
                        "to": "$1-$2-$3 $4:$5:$6",
                        "tot": "str"
                    },
                    {
                        "t": "set",
                        "p": "payload",
                        "pt": "msg",
                        "to": "$moment(payload).locale(\"de\").tz('Europe/Berlin').format('dddd, [der] D. MMMM YYYY [um] HH:mm')",
                        "tot": "jsonata"
                    }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 2350,
                "y": 4500,
                "wires": [
                    [
                        "6bb74424.1ab97c"
                    ]
                ]
            }
        ]
        

        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 ralf2201

          Hallo,

          ich bin absoluter Anfänger und benötige einen Tip um in die richtige Richtung zu gehen. Ich bekomme über einen http request Daten eines Wettersensors. Die Daten liegen folgendermaßen an.

          20210415112525 TH0 2.5 65 1.4

          Am Anfang steht also Das Datum mit Uhrzeit. Dann folgt die Kennung des Sensors gefolgt von Temperatur, Luftfeuchtigkeit und Taupunkt.

          Mein Ziel ist jetzt die Daten so zu vereinzeln dass sie lesbar sind und ich sie an einen zB cuxd Sensor bzw. Eine Systemvariable an HomematicIP übergeben kann.

          Danke für eure Hilfe oder Anregungen.

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

          @ralf2201 Was @Asgothian vorgeschlagen hat geht natürlich auch ganz simpel in Node-red. Hier mal mit einem change-node und einem JS-Objekt als Ergebnis.

          2021-04-19_17-22-37.jpg

          Und hier der Flow:

          [
             {
                 "id": "63a2c2b5.20f30c",
                 "type": "inject",
                 "z": "bab1cb5b.6907f",
                 "name": "Teststring \"20210415112525 TH0 2.5 65 1.4\"",
                 "props": [
                     {
                         "p": "payload"
                     },
                     {
                         "p": "topic",
                         "vt": "str"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "20210415112525 TH0 2.5 65 1.4",
                 "payloadType": "str",
                 "x": 850,
                 "y": 120,
                 "wires": [
                     [
                         "4c8d9547.c1ce9c"
                     ]
                 ]
             },
             {
                 "id": "12fbd242.3e911e",
                 "type": "debug",
                 "z": "bab1cb5b.6907f",
                 "name": "",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 950,
                 "y": 300,
                 "wires": []
             },
             {
                 "id": "4c8d9547.c1ce9c",
                 "type": "change",
                 "z": "bab1cb5b.6907f",
                 "name": "Konvertieren mit regEx",
                 "rules": [
                     {
                         "t": "change",
                         "p": "payload",
                         "pt": "msg",
                         "from": "^((\\d\\d\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d) TH\\d (\\d+.\\d+) (\\d+) (\\d+.\\d).*)$",
                         "fromt": "re",
                         "to": "{\"Jahr\": \"$2\" ,\"Monat\": \"$3\", \"Tag\":\"$4\", \"Stunde\": \"$5\", \"Minute\": \"$6\", \"Sekunde\": \"$7\", \"Wert 1\": \"$8\", \"Wert 2\": \"$9\", \"Wert 3\": \"$10\" }",
                         "tot": "str"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 920,
                 "y": 180,
                 "wires": [
                     [
                         "d4dc4db8.ec7ee"
                     ]
                 ]
             },
             {
                 "id": "d4dc4db8.ec7ee",
                 "type": "json",
                 "z": "bab1cb5b.6907f",
                 "name": "Ergebnis in Javascript Objekt",
                 "property": "payload",
                 "action": "",
                 "pretty": false,
                 "x": 900,
                 "y": 240,
                 "wires": [
                     [
                         "12fbd242.3e911e"
                     ]
                 ]
             }
          ]
          

          1 Antwort Letzte Antwort
          0
          • R Offline
            R Offline
            ralf2201
            schrieb am zuletzt editiert von
            #5

            Vielen Dank für die Hilfe.
            Mein Problem ist soweit gelöst. Ich habe aber gesehen, dass ich mich noch viel mehr einlesen muss.

            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

            728

            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