NEWS
4 Packs je 16 Zellspannungen, Diff V max ausgeben?
-
Hallo Gemeinde!
da ich nur Blockly mächtig und das nur rudimentär, möchte ich euch wieder um Rat fragen. Denke das könnte eine Java Script Berechnung werden... (Instanz?)pro Zellenpack (16) soll eine max. Wertdifferenz (Spannung) ausgegeben werden.
dann sind es 4 Packs.

denke das könnte eine Schleife werden die mir die Berechnung durchführt und ich somit nicht die einzelnen Werte alle überprüfen muss.
Danke!
-
hab mal mit ChatGPT gespielt, aber noch kein Ergebnis bekommen (ev. noch kein Trigger?)
const packs = [1, 2, 3, 4]; const cellsPerPack = 16; // Trigger auf ALLE Zellspannungen on({ id: /modbus\.0\.holdingRegisters\.(1|2|3|4)\.400(1[6-9]|2[0-9]|3[0-1])_Cell_Voltage_.*/, change: "ne" }, function (obj) { // Pack-Nummer aus der ID extrahieren const match = obj.id.match(/holdingRegisters\.(\d)\./); if (!match) return; const pack = match[1]; let values = []; // Alle 16 Zellspannungen dieses Packs einsammeln for (let i = 1; i <= cellsPerPack; i++) { const id = `modbus.0.holdingRegisters.${pack}.400${15 + i}_Cell_Voltage_${i}`; const val = getState(id)?.val; if (typeof val === "number") { values.push(val); } } if (values.length !== cellsPerPack) return; const min = Math.min(...values); const max = Math.max(...values); const diff = max - min; // Ergebnis schreiben setState(`javascript.0.BMS.Pack${pack}.CellDiff`, diff, true); // Optional Log log(`Pack ${pack}: Zellspannungs-Differenz = ${diff} mV`, "info"); }); -
Hallo Gemeinde!
da ich nur Blockly mächtig und das nur rudimentär, möchte ich euch wieder um Rat fragen. Denke das könnte eine Java Script Berechnung werden... (Instanz?)pro Zellenpack (16) soll eine max. Wertdifferenz (Spannung) ausgegeben werden.
dann sind es 4 Packs.

denke das könnte eine Schleife werden die mir die Berechnung durchführt und ich somit nicht die einzelnen Werte alle überprüfen muss.
Danke!
-
@Humidor sagte: nur Blockly mächtig
Versuche es mal so:

EDIT: Übersichtlicher mit Funktion, die auch bei Skriptstart aufgerufen wird:

-
@paul53 kannst mir das bitte erklären, was du mit den Namen meinst und welche Funktion das rechts ist?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden