Victron Shunt nach Update 2.10

Hallo

Seit dem Update auf 2.10 bekomme ich immer die Meldungen im nod red search PID und check H Values .

Der shunt wird mit dem PID 0xA389 erkannt und alle Werte werden angezeigt.

Jemand eine Idee/Erklärung

Gruß michl

Hallo michl,

besteht das Problem tatsächlich erst seit 2.10?. Ich bin mir ziemlich sicher, dass ich die Fehler auch schon in 2.09 gesehen habe. Aber auch mich haben die genervt.

Ursächlich sind folgende Nodes

Check H Values

/* msg.h = msg.payload.toString();
msg.h = msg.h.split("\n");
msg.h = msg.h[1].substring(0,2);

return msg; */

msg.h = msg.payload.toString().split("\n");

if (!msg.h[1]) return null;

msg.h = msg.h[1].substring(0, 2);
return msg;

Die ursprünglichliche Implementierung (auskommentiert) greift ungeprüft auf msg.h[1] zu. Wenn da nix drinsteht, wird ein Fehler geworfen. Die korrigierte Implementierung fängt den Fehler sauber ab.

Mit dieser Korrektur erhalte ich keine nervigen Fehler mehr. Aber: Die Korrektur ist nur ein “Pflaster”. Besser wäre es, das Problem an der Wurzel zu packen. Warum kommen überhaupt leere Frames?

Search PIDs

/*msg.pid = msg.payload.toString();
msg.pid = msg.pid.split("\n");

msg.pid = msg.pid[1].substring(4,10);

flow.set("VE_timestamp", new Date())
return msg;*/

if (!msg.pid[1]) return null;  

msg.pid = msg.pid[1].substring(4,10);

flow.set("VE_timestamp", new Date());
return msg;

Ich habe hier analog “Check H Values” korrigiert. Ebenfalls nur ein “Pflaster”.

Check Shunt

//BMV712 BMV-712 Smart Rev2
if (msg.pid == "0xA383")
    return msg;

Ich muss noch ergänzen, dass ich oben genannten Shunt nutze. Dieser war in der ursprünglichen Pekaway Implementierung nicht enthalten. Ich habe entsprechend ergänzt.

@Karl & @Vincent Schaut Ihr Euch das Thema bitte an und nehmt es ins kommende Release auf?