NPM 0xFF = capteur deconnecte sur page sensors et self-test
Quand npm_status = 0xFF (aucune reponse du capteur), affiche "Capteur deconnecte" au lieu de lister tous les flags d'erreur. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -336,21 +336,27 @@ async function selfTestSequence() {
|
||||
addSelfTestLog(`NPM response: PM1=${npmResult.PM1}, PM2.5=${npmResult.PM25}, PM10=${npmResult.PM10}, status=${npmResult.npm_status_hex}`);
|
||||
|
||||
// Decode npm_status flags
|
||||
const status = npmResult.npm_status || 0;
|
||||
const statusFlags = {
|
||||
0x01: "Sleep mode",
|
||||
0x02: "Degraded mode",
|
||||
0x04: "Not ready",
|
||||
0x08: "Heater error",
|
||||
0x10: "THP sensor error",
|
||||
0x20: "Fan error",
|
||||
0x40: "Memory error",
|
||||
0x80: "Laser error"
|
||||
};
|
||||
const activeErrors = [];
|
||||
Object.entries(statusFlags).forEach(([mask, label]) => {
|
||||
if (status & mask) activeErrors.push(label);
|
||||
});
|
||||
const status = npmResult.npm_status !== undefined ? npmResult.npm_status : 0;
|
||||
|
||||
if (status === 0xFF) {
|
||||
// 0xFF = no response = disconnected
|
||||
updateTestStatus(sensor.id, 'Failed', 'Capteur déconnecté', 'bg-danger');
|
||||
testsFailed++;
|
||||
} else {
|
||||
const statusFlags = {
|
||||
0x01: "Sleep mode",
|
||||
0x02: "Degraded mode",
|
||||
0x04: "Not ready",
|
||||
0x08: "Heater error",
|
||||
0x10: "THP sensor error",
|
||||
0x20: "Fan error",
|
||||
0x40: "Memory error",
|
||||
0x80: "Laser error"
|
||||
};
|
||||
const activeErrors = [];
|
||||
Object.entries(statusFlags).forEach(([mask, label]) => {
|
||||
if (status & mask) activeErrors.push(label);
|
||||
});
|
||||
|
||||
if (activeErrors.length > 0) {
|
||||
updateTestStatus(sensor.id, 'Warning', `Status ${npmResult.npm_status_hex}: ${activeErrors.join(', ')}`, 'bg-warning');
|
||||
@@ -362,6 +368,7 @@ async function selfTestSequence() {
|
||||
updateTestStatus(sensor.id, 'Warning', 'Incomplete data received', 'bg-warning');
|
||||
testsFailed++;
|
||||
}
|
||||
} // end else (not 0xFF)
|
||||
|
||||
} else if (sensor.type === 'BME280') {
|
||||
// BME280 sensor test
|
||||
|
||||
Reference in New Issue
Block a user