Forum: PC-Programmierung NodeRed: Frage zu String filtern


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bot N. (botnec)


Lesenswert?

Ich versuche erstmals mit Node-Red ein kleine Anwendung zu realisieren,
habe aber noch paar Probleme. Vielleicht kann mir jemand beim Einstieg
helfen.

Derzeit versuche ich aus eine String der aus einer UPD Quelle kommt, 
paar Daten herauszuholen und darzustellen. Den String sehe ich im 
Node-Red Debug-
fenster. Mein Problem ist jetzt, wie kann ich aus dem Datenstrom das 
rausfiltern was ich benötige.
Könnte mir da bitte jemand einen Tipp geben bzw. mir ein Beispiele 
irgendwo
zeigen, auf dem ich aufbauen kann ?

Dank sehr.

von Harry L. (mysth)


Lesenswert?

Zu wenige Infos!

Wie sieht dein String aus, und was soll hinten heraus kommen?

von Frank G. (frank_g53)


Lesenswert?

Bot N. schrieb:
> wie kann ich aus dem Datenstrom das
> rausfiltern was ich benötige.

Ich nutze dafür den Node "Switch".
https://flowfuse.com/node-red/core-nodes/switch/

Für jede Abfrage wird ein Ausgang erstellt, mit dem man weitere Aktionen 
starten kann.

von Bot N. (botnec)


Lesenswert?

Der String ist etwa 1 kB lang und enthält dann irgendwo z.B. folgendes:

....."humidity:0":{"id": 0,"rh":36.3},.....
....."temperature:0":{"id": 0,"tC":23.1,"tF":73.6},......

Ich möchte z.B. gerne nur den Wert (hier) 36.3 und 23.1 ausfiltern.

Reicht das ?

von Sebastian R. (sebastian_r569)


Lesenswert?

Bot N. schrieb:
> Reicht das ?

Sicher, dass du die Daten als String behandeln möchtest und nicht als 
das JSON-Objekt, das deine Daten eigentlich sind?

Dann hättest du sie in msg.payload.[...].humidity.rh und in 
msg.payload.[...].temperature.tC

von Bot N. (botnec)


Lesenswert?

Sebastian R. schrieb:

> Sicher, dass du die Daten als String behandeln möchtest und nicht als
> das JSON-Objekt, das deine Daten eigentlich sind?
>

Keine Ahnung!

Wie müsste ich das denn weiterverarbeiten ?

von Εrnst B. (ernst)


Lesenswert?

Bot N. schrieb:
> Wie müsste ich das denn weiterverarbeiten ?

Den gelben "json"-Converter-Block reinziehen...

https://cookbook.nodered.org/basic/convert-json

von Harry L. (mysth)


Lesenswert?

Εrnst B. schrieb:
> Bot N. schrieb:
>> Wie müsste ich das denn weiterverarbeiten ?
>
> Den gelben "json"-Converter-Block reinziehen...
>
> https://cookbook.nodered.org/basic/convert-json

Ist seit NodeRED 3 nicht mehr erforderlich.
JSON wird autom. erkannt.

von Harry L. (mysth)


Angehängte Dateien:

Lesenswert?

Kopier dir mal diesen Teil:
1
[
2
    {
3
        "id": "95032eca4c7dc401",
4
        "type": "inject",
5
        "z": "62a1b8b469090880",
6
        "name": "",
7
        "props": [
8
            {
9
                "p": "payload"
10
            },
11
            {
12
                "p": "topic",
13
                "vt": "str"
14
            }
15
        ],
16
        "repeat": "",
17
        "crontab": "",
18
        "once": false,
19
        "onceDelay": 0.1,
20
        "topic": "",
21
        "payload": "{\"humidity:0\":{\"id\":0,\"rh\":36.3},\"temperature:0\":{\"id\":0,\"tC\":23.1,\"tF\":73.6}}",
22
        "payloadType": "json",
23
        "x": 160,
24
        "y": 170,
25
        "wires": [
26
            [
27
                "8693ea96dad0697e"
28
            ]
29
        ]
30
    }
31
]

via "Import" in dein NodeRED, und schau dir das Verhalten im 
Debug-Fenster an!.
...dann wirst du das -hoffentlich- verstehen.
In deiner realen Anwendung ersetzt du den Inject-Node durch deine 
Datenquelle.

: Bearbeitet durch User
von Bot N. (botnec)


Lesenswert?

Vielen Dank für die diversen Hinweise.

Werde mir alles ansehen und dann (hoffentlich) verstehen wie das
alles funktioniert.

von Sebastian R. (sebastian_r569)


Lesenswert?

Bot N. schrieb:
> Werde mir alles ansehen und dann (hoffentlich) verstehen wie das
> alles funktioniert.

Gewöhn dich an JSON und JSON-Objekte, wenn du mit Node-RED arbeitest.
Ist aber eigentlich recht intuitiv.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.