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
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?