|
|
Riadok 1: |
Riadok 1: |
− | Moje hratky s Node-RED
| |
| | | |
− | Pripojit sem aj poznamky z desktopu
| + | == Quick Start == |
| | | |
− | Node-RED | + | # Inštalácia: https://nodered.org/docs/getting-started/windows |
| + | #* Online Node-RED environment FRED: https://fred.sensetecnic.com/ |
| + | # START http://localhost:1880/ |
| + | #* Start Dashboard http://localhost:1880/ui |
| + | # Základy |
| + | #* Node-RED Guide http://noderedguide.com |
| + | #* Cookbook: https://cookbook.nodered.org/basic/map-between-different-number-ranges |
| + | # Knižnice: obvykle radia cez npm (node package manager), ale mne to velmi neslo, preto odporucam postup priamo z Node-RED menu: Settings -> Palette -> Install |
| + | # Ukladanie: vytvorené flows sa nikam extra neukladajú, ale ak by to náhodou spadlo, prídete o ne. Preto odporúčam cez Menu -> Export uložiť to čo potrebujete |
| + | # Koniec: Ctrl+C |
| | | |
− | * START http://localhost:1880/
| + | Hlbšie znalosti: |
− | * START Dashboard http://localhost:1880/ui
| |
| | | |
− | * http://noderedguide.com/node-red-lecture-3-basic-nodes-and-flows/ | + | * Node-RED Guide: http://noderedguide.com |
− | * Cookbook: https://cookbook.nodered.org/basic/map-between-different-number-ranges | + | * Toto je dolezite pochopit https://nodered.org/docs/user-guide/messages#understanding-the-structure-of-a-message |
| + | * Dashboard podrobnejšie http://noderedguide.com/lecture-7-node-red-dashboard-part2/ |
| + | |
| + | |
| + | |
| + | |
| + | V tychto prikladoch sme použili okrem iného: |
| | | |
| * https://discourse.nodered.org/t/multiple-lines-on-a-graph-from-one-message/9315/4 | | * https://discourse.nodered.org/t/multiple-lines-on-a-graph-from-one-message/9315/4 |
| * http://noderedguide.com/tutorial-node-red-dashboards-multiple-lines-on-a-chart/ | | * http://noderedguide.com/tutorial-node-red-dashboards-multiple-lines-on-a-chart/ |
| + | * https://flows.nodered.org/node/node-red-contrib-ui-level - Pekny indikator |
| | | |
− | * https://flows.nodered.org/node/node-red-contrib-ui-level - Pekny indikator
| |
| | | |
| A sem dame jeden priklad na Dashboard s viacerymi prvkami | | A sem dame jeden priklad na Dashboard s viacerymi prvkami |
| | | |
| <source lang="json"> | | <source lang="json"> |
− | [
| |
− | {
| |
− | "id": "667ca37f.39af9c",
| |
− | "type": "tab",
| |
− | "label": "Flow 1",
| |
− | "disabled": false,
| |
− | "info": ""
| |
− | },
| |
− | {
| |
− | "id": "716b65e3.f5fd44",
| |
− | "type": "ui_tab",
| |
− | "z": "",
| |
− | "name": "FEI STU Bratislava : N48 11 06 E 017 12 023 : meteo",
| |
− | "icon": "dashboard",
| |
− | "disabled": false,
| |
− | "hidden": false
| |
− | },
| |
− | {
| |
− | "id": "3fbaf987.a5a6f6",
| |
− | "type": "ui_group",
| |
− | "z": "",
| |
− | "name": "Aktuálne počasie",
| |
− | "tab": "716b65e3.f5fd44",
| |
− | "disp": true,
| |
− | "width": "19",
| |
− | "collapse": false
| |
− | },
| |
− | {
| |
− | "id": "53a055fc.9dee3c",
| |
− | "type": "ui_base",
| |
− | "theme": {
| |
− | "name": "theme-dark",
| |
− | "lightTheme": {
| |
− | "default": "#0094CE",
| |
− | "baseColor": "#0094CE",
| |
− | "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
| |
− | "edited": true,
| |
− | "reset": false
| |
− | },
| |
− | "darkTheme": {
| |
− | "default": "#097479",
| |
− | "baseColor": "#0b3f7d",
| |
− | "baseFont": "Copperplate,Copperplate Gothic Light,fantasy",
| |
− | "edited": true,
| |
− | "reset": false
| |
− | },
| |
− | "customTheme": {
| |
− | "name": "Untitled Theme 1",
| |
− | "default": "#4B7930",
| |
− | "baseColor": "#4B7930",
| |
− | "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
| |
− | },
| |
− | "themeState": {
| |
− | "base-color": {
| |
− | "default": "#097479",
| |
− | "value": "#0b3f7d",
| |
− | "edited": true
| |
− | },
| |
− | "page-titlebar-backgroundColor": {
| |
− | "value": "#0b3f7d",
| |
− | "edited": false
| |
− | },
| |
− | "page-backgroundColor": {
| |
− | "value": "#111111",
| |
− | "edited": false
| |
− | },
| |
− | "page-sidebar-backgroundColor": {
| |
− | "value": "#000000",
| |
− | "edited": false
| |
− | },
| |
− | "group-textColor": {
| |
− | "value": "#1162c3",
| |
− | "edited": false
| |
− | },
| |
− | "group-borderColor": {
| |
− | "value": "#555555",
| |
− | "edited": false
| |
− | },
| |
− | "group-backgroundColor": {
| |
− | "value": "#333333",
| |
− | "edited": false
| |
− | },
| |
− | "widget-textColor": {
| |
− | "value": "#eeeeee",
| |
− | "edited": false
| |
− | },
| |
− | "widget-backgroundColor": {
| |
− | "value": "#0b3f7d",
| |
− | "edited": false
| |
− | },
| |
− | "widget-borderColor": {
| |
− | "value": "#333333",
| |
− | "edited": false
| |
− | },
| |
− | "base-font": {
| |
− | "value": "Copperplate,Copperplate Gothic Light,fantasy"
| |
− | }
| |
− | },
| |
− | "angularTheme": {
| |
− | "primary": "indigo",
| |
− | "accents": "blue",
| |
− | "warn": "red",
| |
− | "background": "grey"
| |
− | }
| |
− | },
| |
− | "site": {
| |
− | "name": "Node-RED Dashboard",
| |
− | "hideToolbar": "false",
| |
− | "allowSwipe": "false",
| |
− | "lockMenu": "false",
| |
− | "allowTempTheme": "true",
| |
− | "dateFormat": "DD/MM/YYYY",
| |
− | "sizes": {
| |
− | "sx": 48,
| |
− | "sy": 48,
| |
− | "gx": 6,
| |
− | "gy": 6,
| |
− | "cx": 6,
| |
− | "cy": 6,
| |
− | "px": 0,
| |
− | "py": 0
| |
− | }
| |
− | }
| |
− | },
| |
− | {
| |
− | "id": "73736cc1.367c2c",
| |
− | "type": "ui_spacer",
| |
− | "name": "spacer",
| |
− | "group": "3fbaf987.a5a6f6",
| |
− | "order": 2,
| |
− | "width": 12,
| |
− | "height": 1
| |
− | },
| |
− | {
| |
− | "id": "eff3ead5.cab97",
| |
− | "type": "inject",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "topic": "",
| |
− | "payload": "",
| |
− | "payloadType": "str",
| |
− | "repeat": "300",
| |
− | "crontab": "",
| |
− | "once": false,
| |
− | "onceDelay": "",
| |
− | "x": 190,
| |
− | "y": 300,
| |
− | "wires": [
| |
− | [
| |
− | "8cd83d4d.d778a"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "8cd83d4d.d778a",
| |
− | "type": "http request",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "Recent Quakes",
| |
− | "method": "GET",
| |
− | "paytoqs": false,
| |
− | "url": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/significant_week.csv",
| |
− | "tls": "",
| |
− | "persist": false,
| |
− | "proxy": "",
| |
− | "authType": "",
| |
− | "x": 360,
| |
− | "y": 300,
| |
− | "wires": [
| |
− | [
| |
− | "f313061e.b57498"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "f313061e.b57498",
| |
− | "type": "csv",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "sep": ",",
| |
− | "hdrin": true,
| |
− | "hdrout": "",
| |
− | "multi": "one",
| |
− | "ret": "\\n",
| |
− | "temp": "",
| |
− | "skip": 0,
| |
− | "strings": true,
| |
− | "x": 530,
| |
− | "y": 300,
| |
− | "wires": [
| |
− | [
| |
− | "cd545c9b.47f688",
| |
− | "29043f0a.fc5768"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "cd545c9b.47f688",
| |
− | "type": "debug",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "active": false,
| |
− | "tosidebar": true,
| |
− | "console": false,
| |
− | "tostatus": false,
| |
− | "complete": "payload",
| |
− | "targetType": "msg",
| |
− | "x": 690,
| |
− | "y": 300,
| |
− | "wires": []
| |
− | },
| |
− | {
| |
− | "id": "29043f0a.fc5768",
| |
− | "type": "switch",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "property": "payload.mag",
| |
− | "propertyType": "msg",
| |
− | "rules": [
| |
− | {
| |
− | "t": "gte",
| |
− | "v": "6",
| |
− | "vt": "num"
| |
− | }
| |
− | ],
| |
− | "checkall": "true",
| |
− | "repair": false,
| |
− | "outputs": 1,
| |
− | "x": 570,
| |
− | "y": 360,
| |
− | "wires": [
| |
− | [
| |
− | "cb876b20.7e69e8"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "cb876b20.7e69e8",
| |
− | "type": "change",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "rules": [
| |
− | {
| |
− | "t": "set",
| |
− | "p": "payload",
| |
− | "pt": "msg",
| |
− | "to": "PANIC!",
| |
− | "tot": "str"
| |
− | }
| |
− | ],
| |
− | "action": "",
| |
− | "property": "",
| |
− | "from": "",
| |
− | "to": "",
| |
− | "reg": false,
| |
− | "x": 710,
| |
− | "y": 420,
| |
− | "wires": [
| |
− | [
| |
− | "2acc7858.b3f5"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "2acc7858.b3f5",
| |
− | "type": "debug",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "active": false,
| |
− | "complete": false,
| |
− | "x": 810,
| |
− | "y": 360,
| |
− | "wires": []
| |
− | },
| |
− | {
| |
− | "id": "686552cf.1e648c",
| |
− | "type": "comment",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "Poznamka",
| |
− | "info": "# Poznamocka\n\nTento komentar ma dve casti\n\n## Prva\n\nTu je dolezita **informacia**\n\n## Druha\n\nA tu je tiez nejaka informacia aj s odkazom na\nwebstranku [robotika.sk](http://robotika.sk)",
| |
− | "x": 180,
| |
− | "y": 160,
| |
− | "wires": [],
| |
− | "icon": "node-red/alert.svg"
| |
− | },
| |
− | {
| |
− | "id": "6edc0476.ff6ae4",
| |
− | "type": "inject",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "temperature",
| |
− | "topic": "temperature",
| |
− | "payload": "10",
| |
− | "payloadType": "num",
| |
− | "repeat": "1",
| |
− | "crontab": "",
| |
− | "once": false,
| |
− | "onceDelay": 0.1,
| |
− | "x": 140,
| |
− | "y": 440,
| |
− | "wires": [
| |
− | [
| |
− | "655ff53d.c446a4",
| |
− | "3c2afec9.d14f4a"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "46876adc.ff037c",
| |
− | "type": "join",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "mode": "custom",
| |
− | "build": "object",
| |
− | "property": "",
| |
− | "propertyType": "full",
| |
− | "key": "topic",
| |
− | "joiner": "\\n",
| |
− | "joinerType": "str",
| |
− | "accumulate": false,
| |
− | "timeout": "",
| |
− | "count": "3",
| |
− | "reduceRight": false,
| |
− | "reduceExp": "",
| |
− | "reduceInit": "",
| |
− | "reduceInitType": "",
| |
− | "reduceFixup": "",
| |
− | "x": 570,
| |
− | "y": 460,
| |
− | "wires": [
| |
− | [
| |
− | "e707a31.e2eb56"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "e707a31.e2eb56",
| |
− | "type": "debug",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "active": false,
| |
− | "tosidebar": true,
| |
− | "console": false,
| |
− | "tostatus": false,
| |
− | "complete": "true",
| |
− | "targetType": "full",
| |
− | "x": 870,
| |
− | "y": 500,
| |
− | "wires": []
| |
− | },
| |
− | {
| |
− | "id": "397cee7c.3b22e2",
| |
− | "type": "inject",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "humidity",
| |
− | "topic": "humidity",
| |
− | "payload": "",
| |
− | "payloadType": "num",
| |
− | "repeat": "1",
| |
− | "crontab": "",
| |
− | "once": false,
| |
− | "onceDelay": 0.1,
| |
− | "x": 120,
| |
− | "y": 500,
| |
− | "wires": [
| |
− | [
| |
− | "ad5871c6.a407c"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "248e3e7b.d21dc2",
| |
− | "type": "inject",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "pressure",
| |
− | "topic": "pressure",
| |
− | "payload": "999",
| |
− | "payloadType": "num",
| |
− | "repeat": "1",
| |
− | "crontab": "",
| |
− | "once": false,
| |
− | "onceDelay": 0.1,
| |
− | "x": 120,
| |
− | "y": 560,
| |
− | "wires": [
| |
− | [
| |
− | "2be11026.fe49b8"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "655ff53d.c446a4",
| |
− | "type": "function",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "nahodne cislo",
| |
− | "func": "msg.payload = Math.round(Math.random()*100);\nreturn msg;",
| |
− | "outputs": 1,
| |
− | "noerr": 0,
| |
− | "x": 340,
| |
− | "y": 440,
| |
− | "wires": [
| |
− | [
| |
− | "46876adc.ff037c",
| |
− | "1d61e023.7b57e8",
| |
− | "e4e3aa12.79ac8"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "ad5871c6.a407c",
| |
− | "type": "function",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "nahodne cislo",
| |
− | "func": "msg.payload = Math.round(Math.random()*100);\nreturn msg;",
| |
− | "outputs": 1,
| |
− | "noerr": 0,
| |
− | "x": 340,
| |
− | "y": 500,
| |
− | "wires": [
| |
− | [
| |
− | "46876adc.ff037c",
| |
− | "1d61e023.7b57e8",
| |
− | "775a9045.e6d6c"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "2be11026.fe49b8",
| |
− | "type": "function",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "nahodne cislo",
| |
− | "func": "msg.payload = Math.round(Math.random()*100);\nreturn msg;",
| |
− | "outputs": 1,
| |
− | "noerr": 0,
| |
− | "x": 340,
| |
− | "y": 560,
| |
− | "wires": [
| |
− | [
| |
− | "46876adc.ff037c",
| |
− | "1d61e023.7b57e8",
| |
− | "e925c588.27715"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "1d61e023.7b57e8",
| |
− | "type": "ui_chart",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "group": "3fbaf987.a5a6f6",
| |
− | "order": 6,
| |
− | "width": 19,
| |
− | "height": 5,
| |
− | "label": "Tri veličiny:",
| |
− | "chartType": "line",
| |
− | "legend": "true",
| |
− | "xformat": "HH:mm:ss",
| |
− | "interpolate": "linear",
| |
− | "nodata": "",
| |
− | "dot": false,
| |
− | "ymin": "",
| |
− | "ymax": "",
| |
− | "removeOlder": 1,
| |
− | "removeOlderPoints": "100",
| |
− | "removeOlderUnit": "60",
| |
− | "cutout": 0,
| |
− | "useOneColor": false,
| |
− | "colors": [
| |
− | "#1f77b4",
| |
− | "#aec7e8",
| |
− | "#ff7f0e",
| |
− | "#2ca02c",
| |
− | "#98df8a",
| |
− | "#d62728",
| |
− | "#ff9896",
| |
− | "#9467bd",
| |
− | "#c5b0d5"
| |
− | ],
| |
− | "useOldStyle": false,
| |
− | "outputs": 1,
| |
− | "x": 630,
| |
− | "y": 640,
| |
− | "wires": [
| |
− | []
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "3c2afec9.d14f4a",
| |
− | "type": "debug",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "active": true,
| |
− | "tosidebar": true,
| |
− | "console": false,
| |
− | "tostatus": false,
| |
− | "complete": "true",
| |
− | "targetType": "full",
| |
− | "x": 320,
| |
− | "y": 380,
| |
− | "wires": []
| |
− | },
| |
− | {
| |
− | "id": "e4e3aa12.79ac8",
| |
− | "type": "ui_gauge",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "group": "3fbaf987.a5a6f6",
| |
− | "order": 3,
| |
− | "width": 7,
| |
− | "height": 4,
| |
− | "gtype": "gage",
| |
− | "title": "Teplota",
| |
− | "label": "° C",
| |
− | "format": "{{value}} ",
| |
− | "min": 0,
| |
− | "max": "100",
| |
− | "colors": [
| |
− | "#49c4fe",
| |
− | "#c927e0",
| |
− | "#ca3838"
| |
− | ],
| |
− | "seg1": "",
| |
− | "seg2": "",
| |
− | "x": 620,
| |
− | "y": 500,
| |
− | "wires": []
| |
− | },
| |
− | {
| |
− | "id": "775a9045.e6d6c",
| |
− | "type": "ui_chart",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "group": "3fbaf987.a5a6f6",
| |
− | "order": 4,
| |
− | "width": 4,
| |
− | "height": 4,
| |
− | "label": "Vlhkost",
| |
− | "chartType": "bar",
| |
− | "legend": "false",
| |
− | "xformat": "HH:mm:ss",
| |
− | "interpolate": "linear",
| |
− | "nodata": "",
| |
− | "dot": false,
| |
− | "ymin": "0",
| |
− | "ymax": "100",
| |
− | "removeOlder": 1,
| |
− | "removeOlderPoints": "",
| |
− | "removeOlderUnit": "3600",
| |
− | "cutout": 0,
| |
− | "useOneColor": false,
| |
− | "colors": [
| |
− | "#1f77b4",
| |
− | "#aec7e8",
| |
− | "#ff7f0e",
| |
− | "#2ca02c",
| |
− | "#98df8a",
| |
− | "#d62728",
| |
− | "#ff9896",
| |
− | "#9467bd",
| |
− | "#c5b0d5"
| |
− | ],
| |
− | "useOldStyle": false,
| |
− | "outputs": 1,
| |
− | "x": 620,
| |
− | "y": 540,
| |
− | "wires": [
| |
− | []
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "e925c588.27715",
| |
− | "type": "ui_gauge",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "group": "3fbaf987.a5a6f6",
| |
− | "order": 5,
| |
− | "width": 8,
| |
− | "height": 4,
| |
− | "gtype": "donut",
| |
− | "title": "Tlak",
| |
− | "label": "kPa",
| |
− | "format": "{{value}}",
| |
− | "min": 0,
| |
− | "max": "100",
| |
− | "colors": [
| |
− | "#00b500",
| |
− | "#e6e600",
| |
− | "#ca3838"
| |
− | ],
| |
− | "seg1": "",
| |
− | "seg2": "",
| |
− | "x": 610,
| |
− | "y": 580,
| |
− | "wires": []
| |
− | },
| |
− | {
| |
− | "id": "2ed48bea.985704",
| |
− | "type": "inject",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "",
| |
− | "topic": "",
| |
− | "payload": "",
| |
− | "payloadType": "date",
| |
− | "repeat": "1",
| |
− | "crontab": "",
| |
− | "once": false,
| |
− | "onceDelay": 0.1,
| |
− | "x": 130,
| |
− | "y": 640,
| |
− | "wires": [
| |
− | [
| |
− | "2567a87a.c4cdb"
| |
− | ]
| |
− | ]
| |
− | },
| |
− | {
| |
− | "id": "5541894f.182c98",
| |
− | "type": "ui_text",
| |
− | "z": "667ca37f.39af9c",
| |
− | "group": "3fbaf987.a5a6f6",
| |
− | "order": 1,
| |
− | "width": 7,
| |
− | "height": 1,
| |
− | "name": "",
| |
− | "label": "Dátum",
| |
− | "format": "{{msg.payload}}",
| |
− | "layout": "row-right",
| |
− | "x": 620,
| |
− | "y": 720,
| |
− | "wires": []
| |
− | },
| |
− | {
| |
− | "id": "2567a87a.c4cdb",
| |
− | "type": "function",
| |
− | "z": "667ca37f.39af9c",
| |
− | "name": "Datum",
| |
− | "func": "// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;\n",
| |
− | "outputs": 1,
| |
− | "noerr": 0,
| |
− | "x": 340,
| |
− | "y": 660,
| |
− | "wires": [
| |
− | [
| |
− | "5541894f.182c98"
| |
− | ]
| |
− | ]
| |
− | }
| |
− | ]
| |
− |
| |
| </source> | | </source> |