Wenn man REST Services abfragt, bekommt man oft viele Werte. Wie kann man nur einen davon leicht per NodeRed filtern?
Hier mal ein Beispiel eines JSON-Objekt mit mehreren Werten. Wir wollen da die Temperatur Filtern.
Wichtig ist, da der Key aus zwei Wörter besteht: CPU und Temperatur, das die Werte in Klammern und Hochkommas gesetzt werden, und zwar so:
1 |
["CPU Temperatur"] |
wie auch hier zu sehen:
Bei der Abfrage ist wichtig, das die IP eingetragen wird, und der doppelte Slash nicht vergessen wird:
So, hier nun das Ergebnis:
Wer den Flow kopieren will, kann das von der NodeRed Seite tun und da 5 Sterne vergeben oder hier:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
[ { "id": "12ce7612.4a38aa", "type": "tab", "label": "REST JSON", "disabled": false, "info": "" }, { "id": "7ba54c13.dd120c", "type": "http request", "z": "12ce7612.4a38aa", "name": "Raspberry Pi REST Systemabfrage", "method": "GET", "ret": "obj", "paytoqs": false, "url": "http://10.10.10.10:8080/info", "tls": "", "proxy": "", "x": 400, "y": 200, "wires": [ [ "8103ae1a.cb1288", "c107ae7c.b96418" ] ] }, { "id": "4513a22b.d7b27c", "type": "debug", "z": "12ce7612.4a38aa", "name": "Debugausgabe", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "x": 920, "y": 200, "wires": [] }, { "id": "b52bb406.5bdf48", "type": "inject", "z": "12ce7612.4a38aa", "name": "Start Abfrage", "topic": "", "payload": "", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": "", "x": 150, "y": 200, "wires": [ [ "7ba54c13.dd120c" ] ] }, { "id": "eda0fc2a.1cda2", "type": "comment", "z": "12ce7612.4a38aa", "name": "(c) 2019 Thomas Wenzlaff www.wenzlaff.info", "info": "", "x": 230, "y": 120, "wires": [] }, { "id": "8103ae1a.cb1288", "type": "function", "z": "12ce7612.4a38aa", "name": "Filter Temperatur", "func": "var nachricht=\"Die Temperatur ist \" + msg.payload[\"CPU Temperature\"] + \" Grad Celsius\";\nvar tstamp=(new Date()).toISOString().replace(/t/gi,' ').trim();\nmsg.payload = nachricht + \" am \" + tstamp;\nmsg.topic=nachricht;\nreturn msg;", "outputs": 1, "noerr": 0, "x": 670, "y": 200, "wires": [ [ "4513a22b.d7b27c" ] ] }, { "id": "c107ae7c.b96418", "type": "debug", "z": "12ce7612.4a38aa", "name": "Alle Daten Debugausgabe", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "x": 690, "y": 100, "wires": [] }, { "id": "2748fe21.9dccf2", "type": "comment", "z": "12ce7612.4a38aa", "name": "Filter einen Wert aus einer JSON REST Abfrage", "info": "", "x": 240, "y": 60, "wires": [] } ] |