Node-RED – Voorbeeld – Data object splitsen en visualiseren (weerstation)
Op deze pagina vind je een voorbeeld hoe je met Node-RED data dat binnenkomt als een “data object” koppelt aan een meter/grafiek, in dit geval een weerstation node die gebruikmaakt van data van buienradar.
Wat heb je nodig?
- Node-RED Dashboard
- Node-RED plugin buienradar (node-red-contrib-buienradar)
Stap 1
Installeer de buienradar node, en configureer deze op een weerstation met een interval:
Stap 2
Volgens de tekst van de plugin word er een “data object” aangemaakt met een array aan data:
Buienradar Node
Fetches the current weather for the selected weather station and polls it for the specified interval. Outputs a msg.payload.buienradar object which holds all the data.
Results
Current conditions will return
- stationcode – unique station code which corresponds to a weather station
- stationnaam – the weather station name
- temperatuurGC – temperature in degrees celsius
- windsnelheidBF – windspeed in beaufort
- luchtvochtigheid – humidity in percentage
- datum – the datetime of the measurement
- zichtmeters – sight in meters
- icoonactueel – an URL to the current weather icon
- icoonzin – short description of the current weather
- regenMMPU – rain in millimeters per hour
- luchtdruk – air pressure
- windrichtingGR – wind direction in degrees
- windrichting – wind direction
Als je er een debug aan hangt zie je de volgende output:
Zet achter de buienradar node een functie met 3 uitgangen, en “distilleer” de waarden met onderstaand script, om de waarden te koppelen aan de uitgangen:
1 2 3 4 5 |
var temp = msg.payload.buienradar.temperatuurGC; var hum = msg.payload.buienradar.luchtvochtigheid; var tekst = msg.payload.buienradar.icoonzin; return[{payload:temp},{payload:hum},{payload:tekst}] |
Stap 3
Voeg in Node-RED de dash grafieken e.d. toe op de uitgangen
Op het dashboard kan je dan de data zien:
Project in Node-RED clipboard:
1 |
[{"id":"f5672742.a946c8","type":"buienradar","z":"b97cca23.a9c7b8","name":"Weerstation","station":"6278","interval":"60000","x":130,"y":120,"wires":[["86f288d0.b91388"]]},{"id":"86f288d0.b91388","type":"function","z":"b97cca23.a9c7b8","name":"Data naar I/O","func":"var temp = msg.payload.buienradar.temperatuurGC;\nvar hum = msg.payload.buienradar.luchtvochtigheid;\nvar tekst = msg.payload.buienradar.icoonzin;\n\nreturn[{payload:temp},{payload:hum},{payload:tekst}]","outputs":3,"noerr":0,"x":320,"y":120,"wires":[["10135083.6bdfaf"],["2a0c1989.b08506"],["e44a52fa.c56b1"]]},{"id":"10135083.6bdfaf","type":"ui_gauge","z":"b97cca23.a9c7b8","name":"Temperatuur","group":"3d6590b5.4c272","order":0,"width":0,"height":0,"gtype":"gage","title":"Temperatuur","label":"%","format":"{{value}}","min":"-10","max":"40","colors":["#00b500","#e6e600","#ca3838"],"seg1":"15","seg2":"30","x":530,"y":80,"wires":[]},{"id":"2a0c1989.b08506","type":"ui_gauge","z":"b97cca23.a9c7b8","name":"Luchtvochtigheid","group":"3d6590b5.4c272","order":0,"width":0,"height":0,"gtype":"donut","title":"Luchtvochtigheid","label":"%","format":"{{value}}","min":"10","max":"98","colors":["#00ffff","#0080ff","#0000ff"],"seg1":"40","seg2":"60","x":550,"y":120,"wires":[]},{"id":"e44a52fa.c56b1","type":"ui_text","z":"b97cca23.a9c7b8","group":"3d6590b5.4c272","order":0,"width":0,"height":0,"name":"Weer tekst","label":"","format":"{{msg.payload}}","layout":"row-spread","x":530,"y":160,"wires":[]},{"id":"3d6590b5.4c272","type":"ui_group","z":"","name":"Weer","tab":"84c7a07.a96616","order":10,"disp":true,"width":"6","collapse":false},{"id":"84c7a07.a96616","type":"ui_tab","z":"","name":"Verlichting","icon":"dashboard","order":1}] |