Voici le flow (le code informatique) au format JSON pour Nodered si vous avez l'envie de regarder comment c'est fait
Code :
[
{
"id": "044397eebe1dc2a8",
"type": "tab",
"label": "Victron BMV-700",
"disabled": false,
"info": "",
"env": []
},
{
"id": "8412d2fa475d1595",
"type": "group",
"z": "044397eebe1dc2a8",
"name": "Victron BMV 700 avec Shunt 400 Ampères",
"style": {
"stroke": "#ff0000",
"label": true,
"color": "#ff3f3f"
},
"nodes": [
"32eb4faf65534af1",
"a88317a0cdcb2bdf",
"32b0e1c721cb183f",
"eff39b78b4d99b67",
"a559c315b19d96f5",
"56854b5b16ec224f",
"780f62a6b94113b2",
"0ad8152f1fc13b8c",
"42e72c6953690b18",
"88c7f4fa05e2f6ec",
"7b259061e942f7c5",
"57225073ed2a9bb1",
"0da0ba26253247d7"
],
"x": 14,
"y": 59,
"w": 1072,
"h": 202
},
{
"id": "32eb4faf65534af1",
"type": "serial in",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "Victron BMV-700",
"serial": "04d53f2a241023ea",
"x": 120,
"y": 120,
"wires": [
[
"780f62a6b94113b2"
]
]
},
{
"id": "a88317a0cdcb2bdf",
"type": "debug",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "debug 59",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 300,
"y": 160,
"wires": []
},
{
"id": "32b0e1c721cb183f",
"type": "switch",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "cont",
"v": "V",
"vt": "str"
},
{
"t": "cont",
"v": "I",
"vt": "str"
},
{
"t": "cont",
"v": "P",
"vt": "str"
},
{
"t": "cont",
"v": "SOC",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 4,
"x": 630,
"y": 120,
"wires": [
[
"eff39b78b4d99b67"
],
[
"a559c315b19d96f5"
],
[
"56854b5b16ec224f"
],
[
"0ad8152f1fc13b8c"
]
]
},
{
"id": "eff39b78b4d99b67",
"type": "function",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "Volt",
"func": "msg.payload = msg.payload /1000;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 810,
"y": 100,
"wires": [
[
"88c7f4fa05e2f6ec"
]
]
},
{
"id": "a559c315b19d96f5",
"type": "function",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "Intensité",
"func": "msg.payload = msg.payload /1000;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 820,
"y": 140,
"wires": [
[
"7b259061e942f7c5"
]
]
},
{
"id": "56854b5b16ec224f",
"type": "function",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "Puissance",
"func": "msg.payload = msg.payload /1;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 830,
"y": 180,
"wires": [
[
"57225073ed2a9bb1"
]
]
},
{
"id": "780f62a6b94113b2",
"type": "function",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "Nettoyage",
"func": "var values = msg.payload.trim().split('\\t'); // trim off the crlf first then split into parts \nmsg.payload = values[1]; // replace payload with the reading we want\nmsg.topic = values[0]; // set the topic in case we need to tell them apart later\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 310,
"y": 120,
"wires": [
[
"a88317a0cdcb2bdf",
"42e72c6953690b18"
]
]
},
{
"id": "0ad8152f1fc13b8c",
"type": "function",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "SOC",
"func": "msg.payload = msg.payload /10;\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 810,
"y": 220,
"wires": [
[
"0da0ba26253247d7"
]
]
},
{
"id": "42e72c6953690b18",
"type": "switch",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "PID",
"vt": "str"
},
{
"t": "cont",
"v": "BMV",
"vt": "str"
},
{
"t": "else"
}
],
"checkall": "true",
"repair": false,
"outputs": 3,
"x": 490,
"y": 120,
"wires": [
[],
[],
[
"32b0e1c721cb183f"
]
]
},
{
"id": "88c7f4fa05e2f6ec",
"type": "ui_gauge",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "",
"group": "798f2e7ae84f944d",
"order": 1,
"width": 3,
"height": 3,
"gtype": "gage",
"title": "Volts",
"label": "[V]",
"format": "{{value}}",
"min": "45",
"max": "59",
"colors": [
"#00b500",
"#e6e600",
"#ca3838"
],
"seg1": "",
"seg2": "",
"className": "",
"x": 990,
"y": 100,
"wires": []
},
{
"id": "7b259061e942f7c5",
"type": "ui_gauge",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "",
"group": "798f2e7ae84f944d",
"order": 2,
"width": 3,
"height": 3,
"gtype": "gage",
"title": "Intensité",
"label": "[A]",
"format": "{{value}}",
"min": "-100",
"max": "100",
"colors": [
"#ff0000",
"#ff8040",
"#008000"
],
"seg1": "0",
"seg2": "",
"className": "",
"x": 1000,
"y": 140,
"wires": []
},
{
"id": "57225073ed2a9bb1",
"type": "ui_gauge",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "",
"group": "798f2e7ae84f944d",
"order": 3,
"width": 3,
"height": 3,
"gtype": "gage",
"title": "Watts",
"label": "[W]",
"format": "{{value}}",
"min": "-1000",
"max": "1000",
"colors": [
"#ff0000",
"#ff8040",
"#008000"
],
"seg1": "0",
"seg2": "",
"className": "",
"x": 990,
"y": 180,
"wires": []
},
{
"id": "0da0ba26253247d7",
"type": "ui_gauge",
"z": "044397eebe1dc2a8",
"g": "8412d2fa475d1595",
"name": "",
"group": "798f2e7ae84f944d",
"order": 4,
"width": 3,
"height": 3,
"gtype": "gage",
"title": "SOC",
"label": "[%]",
"format": "{{value}}",
"min": 0,
"max": "100",
"colors": [
"#ff0000",
"#e6e600",
"#008000"
],
"seg1": "20",
"seg2": "80",
"className": "",
"x": 990,
"y": 220,
"wires": []
},
{
"id": "04d53f2a241023ea",
"type": "serial-port",
"serialport": "/dev/tty-victron",
"serialbaud": "19200",
"databits": "8",
"parity": "none",
"stopbits": "1",
"waitfor": "",
"dtr": "none",
"rts": "none",
"cts": "none",
"dsr": "none",
"newline": "\\n",
"bin": "false",
"out": "char",
"addchar": "",
"responsetimeout": "10000"
},
{
"id": "798f2e7ae84f944d",
"type": "ui_group",
"name": "BMV 700",
"tab": "4e18bff874299c58",
"order": 1,
"disp": true,
"width": 12,
"collapse": false,
"className": ""
},
{
"id": "4e18bff874299c58",
"type": "ui_tab",
"name": "Victron",
"icon": "dashboard",
"order": 35,
"disabled": false,
"hidden": false
}
]
Jean-Luc