initial commit
This commit is contained in:
7
.devcontainer/nodered/Dockerfile
Normal file
7
.devcontainer/nodered/Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
||||
FROM nodered/node-red:4.1
|
||||
|
||||
# Installer FlowFuse Dashboard
|
||||
RUN npm install --unsafe-perm @flowfuse/node-red-dashboard
|
||||
|
||||
# Copier votre flux si nécessaire
|
||||
COPY flows.json /data/flows.json
|
||||
571
.devcontainer/nodered/flows.json
Normal file
571
.devcontainer/nodered/flows.json
Normal file
@@ -0,0 +1,571 @@
|
||||
[
|
||||
{
|
||||
"id": "41526b8c80d5a5f7",
|
||||
"type": "tab",
|
||||
"label": "Flux 1",
|
||||
"disabled": false,
|
||||
"info": "",
|
||||
"env": []
|
||||
},
|
||||
{
|
||||
"id": "dc9d3b99eadb9b34",
|
||||
"type": "ui-button",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"group": "5fe915fcd26e78ae",
|
||||
"name": "",
|
||||
"label": "B0",
|
||||
"order": 2,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"emulateClick": false,
|
||||
"tooltip": "",
|
||||
"color": "",
|
||||
"bgcolor": "",
|
||||
"className": "",
|
||||
"icon": "",
|
||||
"iconPosition": "left",
|
||||
"payload": "",
|
||||
"payloadType": "str",
|
||||
"topic": "topic",
|
||||
"topicType": "msg",
|
||||
"buttonColor": "",
|
||||
"textColor": "",
|
||||
"iconColor": "",
|
||||
"enableClick": true,
|
||||
"enablePointerdown": false,
|
||||
"pointerdownPayload": "",
|
||||
"pointerdownPayloadType": "str",
|
||||
"enablePointerup": false,
|
||||
"pointerupPayload": "",
|
||||
"pointerupPayloadType": "str",
|
||||
"x": 130,
|
||||
"y": 320,
|
||||
"wires": [
|
||||
[
|
||||
"6444617c166984e0"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "9dcd1bf2a25f7371",
|
||||
"type": "ui-button",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"group": "5fe915fcd26e78ae",
|
||||
"name": "",
|
||||
"label": "B1",
|
||||
"order": 3,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"emulateClick": false,
|
||||
"tooltip": "",
|
||||
"color": "",
|
||||
"bgcolor": "",
|
||||
"className": "",
|
||||
"icon": "",
|
||||
"iconPosition": "left",
|
||||
"payload": "",
|
||||
"payloadType": "str",
|
||||
"topic": "topic",
|
||||
"topicType": "msg",
|
||||
"buttonColor": "",
|
||||
"textColor": "",
|
||||
"iconColor": "",
|
||||
"enableClick": true,
|
||||
"enablePointerdown": false,
|
||||
"pointerdownPayload": "",
|
||||
"pointerdownPayloadType": "str",
|
||||
"enablePointerup": false,
|
||||
"pointerupPayload": "",
|
||||
"pointerupPayloadType": "str",
|
||||
"x": 130,
|
||||
"y": 360,
|
||||
"wires": [
|
||||
[
|
||||
"4ee747c8012c58a1"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "143358afb510246e",
|
||||
"type": "ui-button",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"group": "5fe915fcd26e78ae",
|
||||
"name": "",
|
||||
"label": "B2",
|
||||
"order": 4,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"emulateClick": false,
|
||||
"tooltip": "",
|
||||
"color": "",
|
||||
"bgcolor": "",
|
||||
"className": "",
|
||||
"icon": "",
|
||||
"iconPosition": "left",
|
||||
"payload": "",
|
||||
"payloadType": "str",
|
||||
"topic": "topic",
|
||||
"topicType": "msg",
|
||||
"buttonColor": "",
|
||||
"textColor": "",
|
||||
"iconColor": "",
|
||||
"enableClick": true,
|
||||
"enablePointerdown": false,
|
||||
"pointerdownPayload": "",
|
||||
"pointerdownPayloadType": "str",
|
||||
"enablePointerup": false,
|
||||
"pointerupPayload": "",
|
||||
"pointerupPayloadType": "str",
|
||||
"x": 130,
|
||||
"y": 400,
|
||||
"wires": [
|
||||
[
|
||||
"d966ba0d813b7cb7"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "e863fe498c528076",
|
||||
"type": "ui-button",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"group": "5fe915fcd26e78ae",
|
||||
"name": "",
|
||||
"label": "B3",
|
||||
"order": 5,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"emulateClick": false,
|
||||
"tooltip": "",
|
||||
"color": "",
|
||||
"bgcolor": "",
|
||||
"className": "",
|
||||
"icon": "",
|
||||
"iconPosition": "left",
|
||||
"payload": "",
|
||||
"payloadType": "str",
|
||||
"topic": "topic",
|
||||
"topicType": "msg",
|
||||
"buttonColor": "",
|
||||
"textColor": "",
|
||||
"iconColor": "",
|
||||
"enableClick": true,
|
||||
"enablePointerdown": false,
|
||||
"pointerdownPayload": "",
|
||||
"pointerdownPayloadType": "str",
|
||||
"enablePointerup": false,
|
||||
"pointerupPayload": "",
|
||||
"pointerupPayloadType": "str",
|
||||
"x": 130,
|
||||
"y": 440,
|
||||
"wires": [
|
||||
[
|
||||
"501355b0c82cae08"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "04e097a5c78127cb",
|
||||
"type": "mqtt out",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "",
|
||||
"topic": "geii/in",
|
||||
"qos": "",
|
||||
"retain": "",
|
||||
"respTopic": "",
|
||||
"contentType": "",
|
||||
"userProps": "",
|
||||
"correl": "",
|
||||
"expiry": "",
|
||||
"broker": "5bf949eb0a1b50a7",
|
||||
"x": 730,
|
||||
"y": 120,
|
||||
"wires": []
|
||||
},
|
||||
{
|
||||
"id": "d12767fc3e33bb20",
|
||||
"type": "ui-button",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"group": "5fe915fcd26e78ae",
|
||||
"name": "",
|
||||
"label": "MARCHE",
|
||||
"order": 1,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"emulateClick": false,
|
||||
"tooltip": "",
|
||||
"color": "",
|
||||
"bgcolor": "",
|
||||
"className": "",
|
||||
"icon": "",
|
||||
"iconPosition": "left",
|
||||
"payload": "",
|
||||
"payloadType": "str",
|
||||
"topic": "topic",
|
||||
"topicType": "msg",
|
||||
"buttonColor": "",
|
||||
"textColor": "",
|
||||
"iconColor": "",
|
||||
"enableClick": true,
|
||||
"enablePointerdown": false,
|
||||
"pointerdownPayload": "",
|
||||
"pointerdownPayloadType": "str",
|
||||
"enablePointerup": false,
|
||||
"pointerupPayload": "",
|
||||
"pointerupPayloadType": "str",
|
||||
"x": 140,
|
||||
"y": 260,
|
||||
"wires": [
|
||||
[
|
||||
"3e0c75aae8971dca"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "0ca8f4a10a6048af",
|
||||
"type": "function",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "format mqtt",
|
||||
"func": "let marche = Number(flow.get(\"marche\") || 0);\nlet b0 = Number(flow.get(\"b0\") || 0);\nlet b1 = Number(flow.get(\"b1\") || 0);\nlet b2 = Number(flow.get(\"b2\") || 0);\n\nmsg.payload = {\n \"marche\": marche,\n \"b0\": b0,\n \"b1\": b1,\n \"b2\": b2\n};\n\nreturn msg;",
|
||||
"outputs": 1,
|
||||
"timeout": 0,
|
||||
"noerr": 0,
|
||||
"initialize": "",
|
||||
"finalize": "",
|
||||
"libs": [],
|
||||
"x": 570,
|
||||
"y": 120,
|
||||
"wires": [
|
||||
[
|
||||
"04e097a5c78127cb"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "a49263451d77f972",
|
||||
"type": "inject",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "",
|
||||
"props": [
|
||||
{
|
||||
"p": "payload"
|
||||
},
|
||||
{
|
||||
"p": "topic",
|
||||
"vt": "str"
|
||||
}
|
||||
],
|
||||
"repeat": "",
|
||||
"crontab": "",
|
||||
"once": true,
|
||||
"onceDelay": 0.1,
|
||||
"topic": "",
|
||||
"payload": "",
|
||||
"payloadType": "date",
|
||||
"x": 110,
|
||||
"y": 40,
|
||||
"wires": [
|
||||
[
|
||||
"d28f31d7c379f3d8"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "d28f31d7c379f3d8",
|
||||
"type": "change",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "",
|
||||
"rules": [
|
||||
{
|
||||
"t": "set",
|
||||
"p": "marche",
|
||||
"pt": "flow",
|
||||
"to": "0",
|
||||
"tot": "num"
|
||||
},
|
||||
{
|
||||
"t": "set",
|
||||
"p": "b1",
|
||||
"pt": "msg",
|
||||
"to": "0",
|
||||
"tot": "num"
|
||||
}
|
||||
],
|
||||
"action": "",
|
||||
"property": "",
|
||||
"from": "",
|
||||
"to": "",
|
||||
"reg": false,
|
||||
"x": 320,
|
||||
"y": 40,
|
||||
"wires": [
|
||||
[
|
||||
"0ca8f4a10a6048af"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "3e0c75aae8971dca",
|
||||
"type": "function",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "set marche",
|
||||
"func": "flow.set(\"marche\", !Number(flow.get(\"marche\")));\n\nreturn msg;",
|
||||
"outputs": 1,
|
||||
"timeout": 0,
|
||||
"noerr": 0,
|
||||
"initialize": "",
|
||||
"finalize": "",
|
||||
"libs": [],
|
||||
"x": 310,
|
||||
"y": 260,
|
||||
"wires": [
|
||||
[
|
||||
"0ca8f4a10a6048af"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "6444617c166984e0",
|
||||
"type": "function",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "set marche",
|
||||
"func": "flow.set(\"b0\", !Number(flow.get(\"b0\")));\n\nreturn msg;",
|
||||
"outputs": 1,
|
||||
"timeout": 0,
|
||||
"noerr": 0,
|
||||
"initialize": "",
|
||||
"finalize": "",
|
||||
"libs": [],
|
||||
"x": 310,
|
||||
"y": 320,
|
||||
"wires": [
|
||||
[
|
||||
"0ca8f4a10a6048af"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "4ee747c8012c58a1",
|
||||
"type": "function",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "set marche",
|
||||
"func": "flow.set(\"b1\", !Number(flow.get(\"b1\")));\n\nreturn msg;",
|
||||
"outputs": 1,
|
||||
"timeout": 0,
|
||||
"noerr": 0,
|
||||
"initialize": "",
|
||||
"finalize": "",
|
||||
"libs": [],
|
||||
"x": 310,
|
||||
"y": 360,
|
||||
"wires": [
|
||||
[
|
||||
"0ca8f4a10a6048af"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "d966ba0d813b7cb7",
|
||||
"type": "function",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "set marche",
|
||||
"func": "flow.set(\"b2\", !Number(flow.get(\"b2\")));\n\nreturn msg;",
|
||||
"outputs": 1,
|
||||
"timeout": 0,
|
||||
"noerr": 0,
|
||||
"initialize": "",
|
||||
"finalize": "",
|
||||
"libs": [],
|
||||
"x": 310,
|
||||
"y": 400,
|
||||
"wires": [
|
||||
[
|
||||
"0ca8f4a10a6048af"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "501355b0c82cae08",
|
||||
"type": "function",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "set marche",
|
||||
"func": "flow.set(\"b3\", !Number(flow.get(\"b3\")));\n\nreturn msg;",
|
||||
"outputs": 1,
|
||||
"timeout": 0,
|
||||
"noerr": 0,
|
||||
"initialize": "",
|
||||
"finalize": "",
|
||||
"libs": [],
|
||||
"x": 310,
|
||||
"y": 440,
|
||||
"wires": [
|
||||
[
|
||||
"0ca8f4a10a6048af"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1dfea06c14d2732c",
|
||||
"type": "mqtt in",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "",
|
||||
"topic": "geii/out",
|
||||
"qos": "2",
|
||||
"datatype": "auto-detect",
|
||||
"broker": "5bf949eb0a1b50a7",
|
||||
"nl": false,
|
||||
"rap": true,
|
||||
"rh": 0,
|
||||
"inputs": 0,
|
||||
"x": 130,
|
||||
"y": 580,
|
||||
"wires": [
|
||||
[
|
||||
"31ef90b8227cd6cb"
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "31ef90b8227cd6cb",
|
||||
"type": "debug",
|
||||
"z": "41526b8c80d5a5f7",
|
||||
"name": "debug 1",
|
||||
"active": true,
|
||||
"tosidebar": true,
|
||||
"console": false,
|
||||
"tostatus": false,
|
||||
"complete": "false",
|
||||
"statusVal": "",
|
||||
"statusType": "auto",
|
||||
"x": 380,
|
||||
"y": 580,
|
||||
"wires": []
|
||||
},
|
||||
{
|
||||
"id": "5fe915fcd26e78ae",
|
||||
"type": "ui-group",
|
||||
"name": "Pupitre",
|
||||
"page": "bb436fe040268d40",
|
||||
"width": "2",
|
||||
"height": 1,
|
||||
"order": 1,
|
||||
"showTitle": true,
|
||||
"className": "",
|
||||
"visible": "true",
|
||||
"disabled": "false",
|
||||
"groupType": "default"
|
||||
},
|
||||
{
|
||||
"id": "5bf949eb0a1b50a7",
|
||||
"type": "mqtt-broker",
|
||||
"name": "",
|
||||
"broker": "rabbitmq",
|
||||
"port": 1883,
|
||||
"clientid": "",
|
||||
"autoConnect": true,
|
||||
"usetls": false,
|
||||
"protocolVersion": 4,
|
||||
"keepalive": 60,
|
||||
"cleansession": true,
|
||||
"autoUnsubscribe": true,
|
||||
"birthTopic": "",
|
||||
"birthQos": "0",
|
||||
"birthRetain": "false",
|
||||
"birthPayload": "",
|
||||
"birthMsg": {},
|
||||
"closeTopic": "",
|
||||
"closeQos": "0",
|
||||
"closeRetain": "false",
|
||||
"closePayload": "",
|
||||
"closeMsg": {},
|
||||
"willTopic": "",
|
||||
"willQos": "0",
|
||||
"willRetain": "false",
|
||||
"willPayload": "",
|
||||
"willMsg": {},
|
||||
"userProps": "",
|
||||
"sessionExpiry": ""
|
||||
},
|
||||
{
|
||||
"id": "bb436fe040268d40",
|
||||
"type": "ui-page",
|
||||
"name": "LP SARII",
|
||||
"ui": "92537b03143c5e06",
|
||||
"path": "/page1",
|
||||
"icon": "home",
|
||||
"layout": "grid",
|
||||
"theme": "ea2bf5532fa513eb",
|
||||
"breakpoints": [
|
||||
{
|
||||
"name": "Default",
|
||||
"px": "0",
|
||||
"cols": "3"
|
||||
},
|
||||
{
|
||||
"name": "Tablet",
|
||||
"px": "576",
|
||||
"cols": "6"
|
||||
},
|
||||
{
|
||||
"name": "Small Desktop",
|
||||
"px": "768",
|
||||
"cols": "9"
|
||||
},
|
||||
{
|
||||
"name": "Desktop",
|
||||
"px": "1024",
|
||||
"cols": "12"
|
||||
}
|
||||
],
|
||||
"order": 1,
|
||||
"className": "",
|
||||
"visible": "true",
|
||||
"disabled": "false"
|
||||
},
|
||||
{
|
||||
"id": "92537b03143c5e06",
|
||||
"type": "ui-base",
|
||||
"name": "My Dashboard",
|
||||
"path": "/dashboard",
|
||||
"appIcon": "",
|
||||
"includeClientData": true,
|
||||
"acceptsClientConfig": [
|
||||
"ui-notification",
|
||||
"ui-control"
|
||||
],
|
||||
"showPathInSidebar": false,
|
||||
"headerContent": "page",
|
||||
"navigationStyle": "default",
|
||||
"titleBarStyle": "default",
|
||||
"showReconnectNotification": true,
|
||||
"notificationDisplayTime": 1,
|
||||
"showDisconnectNotification": true,
|
||||
"allowInstall": false
|
||||
},
|
||||
{
|
||||
"id": "ea2bf5532fa513eb",
|
||||
"type": "ui-theme",
|
||||
"name": "Default Theme",
|
||||
"colors": {
|
||||
"surface": "#ffffff",
|
||||
"primary": "#0094CE",
|
||||
"bgPage": "#eeeeee",
|
||||
"groupBg": "#ffffff",
|
||||
"groupOutline": "#cccccc"
|
||||
},
|
||||
"sizes": {
|
||||
"density": "default",
|
||||
"pagePadding": "12px",
|
||||
"groupGap": "12px",
|
||||
"groupBorderRadius": "4px",
|
||||
"widgetGap": "12px"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "925a608e1a2d82a3",
|
||||
"type": "global-config",
|
||||
"env": [],
|
||||
"modules": {
|
||||
"@flowfuse/node-red-dashboard": "1.29.0"
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user