Das darstellen der Werte aller Victron Geräte per MQTT-In in Pekaway ist ja relativ simpel. Sie kommen bei mir vom zusätzlichen Pi mit Venus Software.
Problem bereitet mir die Darstellung der drei Shunt Werte auf dem Nextion Display! Wo müssen die MQTT-In nodes hin damit die Werte auch im Touchdisplay angezeigt werden?
Danke für jede Hilfe.
Danke @Vincent , das hat geklappt! Der Wert wird auch an die App weiter geleitet.
Für alle die das vielleicht auch möchten: die drei Nodes unten hinter die jeweilige MQTT-in Node , also current, Voltage und SOC, vom Victron Shunt hängen hängen, das war es schon.
[
{
"id": "1f587d8a6e8060ce",
"type": "function",
"z": "013c27e6e1e7446d",
"name": "Set SOC",
"func": "global.set(\"MainBattSoc\", msg.payload.value);\n\n// Den SOC-Wert aus msg.payload lesen und in eine Zahl konvertieren\nlet soc = parseFloat(msg.payload.value);\n\n// Überprüfen, ob der Wert keine \"NaN\" (Not a Number) ist\nif (!isNaN(soc)) {\n // Auf 2 Dezimalstellen begrenzen und in globaler Variable speichern\n global.set(\"MainBattSoc\", soc.toFixed(2));\n} else {\n node.warn(\"SOC payload is NaN\");\n}\n\n// Die Nachricht zurückgeben, falls weitere Verarbeitung nötig ist\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 240,
"y": 40,
"wires": [
[]
]
},
{
"id": "02b7764c38dc6329",
"type": "function",
"z": "013c27e6e1e7446d",
"name": "Set AMPS",
"func": "global.set(\"MainBattAmps\", msg.payload.value);\n// Den AMPS-Wert aus msg.payload lesen und in eine Zahl konvertieren\nlet amps = parseFloat(msg.payload.value);\n\n// Überprüfen, ob der Wert keine \"NaN\" (Not a Number) ist\nif (!isNaN(amps)) {\n // Auf 2 Dezimalstellen begrenzen und in globaler Variable speichern\n global.set(\"MainBattAmps\", amps.toFixed(2));\n} else {\n node.warn(\"AMPS payload is NaN\");\n}\n\n// Die Nachricht zurückgeben, falls weitere Verarbeitung nötig ist\nreturn msg;\n",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 230,
"y": 120,
"wires": [
[]
]
},
{
"id": "33c6da9aa10e456a",
"type": "function",
"z": "013c27e6e1e7446d",
"name": "Set VOLT",
"func": "global.set(\"MainBattVolt\", msg.payload.value);\n\n// Die Spannung aus msg.payload lesen und in eine Zahl konvertieren\nlet voltage = parseFloat(msg.payload.value);\n\n// Überprüfen, ob der Wert keine \"NaN\" (Not a Number) ist\nif (!isNaN(voltage)) {\n // Auf 2 Dezimalstellen begrenzen und in globaler Variable speichern\n global.set(\"MainBattVolt\", voltage.toFixed(2));\n} else {\n node.warn(\"Voltage payload is NaN\");\n}\n\n// Die Nachricht zurückgeben, falls weitere Verarbeitung nötig ist\nreturn msg;\n",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 220,
"y": 200,
"wires": [
[]
]
}
]
Achso, ich habe noch ein Inject Node vor die Node “Send Status Main Batt” in Pekaway Display1 gesetzt, ob das zwingend nötig ist weiss ich nicht, aber es schadet nicht.