Shunt Victron Energy BMV 700 - jlm - 12-02-2023
On m'a prêté cette semaine un shunt BMV-700 400 A de chez Victron. Merci à Ghislain :)
Je l'ai installé dans l'optique de comparer les valeurs fournies par cet appareil de mesure par rapport à celles que me fourni le BMS de mes Pylontech.
Ce que je peux déjà en dire, après 1 jour d'utilisation c'est que les valeurs sont cohérentes. Il s'est auto-calibré, je n'ai juste eu qu'à lui donner le nombre d'Ah du pack.
Aujourd'hui j'ai pu affiner en lui donnant:
- La tension batteries complètement chargées
- Le courant de queue
- Le temps de détection de ces valeurs
- La variable de Peukert
- Le facteur de charge pour batterie Lithium
Je verrais si tout est ok dans quelques jours.
Et surtout je n'ai pas pu m'empêcher de fabriquer et connecter un câble maison sur le petit écran rond qui me faisait de l’œil :P
En effet il s'agit d'un port de communication.Selon la documentation, il est sensé envoyer ses valeurs via ce port.
Voici sont schéma de câblage:
https://smartphoton.ch/wp-content/uploads/2023/02/20230212_163100.mp4
Alors voici ci-dessous les 1ers essais de connexion. Cela a fonctionné du 1er coup. C'est rare mais ça arrive parfois.
Les commandes à passer sous Linux et le résultat des données du Victron
On aperçoit bien les divers valeurs écrites en clair, ce qui n'est pas toujours le cas.
Par exemple, la Tension, l'Intensité, la Puissance et le SOC (State Of Charge) du pack batterie
Et voici les données du Victron Shunt dans Smartphoton 
RE: Shunt Victron Energy BMV 700 - jlm - 12-02-2023
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
}
]
RE: Shunt Victron Energy BMV 700 - jlm - 12-02-2023
J'attire votre attention, que avec ce type appareil, on pourrait gérer +/- toutes les batteries qui ne savent pas parler avec leur onduleur.
En effet, du moment que le SOC est disponible, on peut faire des automatismes et modifier les paramètres de l'onduleur en conséquence.
RE: Shunt Victron Energy BMV 700 - jlm - 13-02-2023
Petite remarque pour info:
J'ai tenté de modifier les paramètres, c'est +/- Ok sauf que
Il ne faut pas lancer la commande "reboot" car après le SOC passe à 100%. Il a donc perdu cette valeur.
Il va falloir attendre une charge complète de la batterie pour qu'il retrouve la bonne valeur.
|