v1.12.1: S88 ecrit toujours + code d'etat, plus de CO2 perime transmis
Probleme vu sur pro100: sonde S88 muette (panne cablage) mais write_data.py n'ecrivait rien -> la base gardait la derniere valeur (487 ppm d'hier) et la loop d'envoi la transmettait en boucle. - data_S88: nouvelle colonne s88_status (0=OK, 0xFF=sonde muette), comme npm_status/noise_status. Migration via create_db.py + set_config.py + self-heal. - S88/write_data.py: ecrit DESORMAIS une ligne a chaque cycle (CO2=0 + 0xFF si pas de reponse). Connexion SQLite timeout=10 (anti database-is-locked). - SARA_send_data_v2.py: lit s88_status; si 0xFF -> bytes 81-82 restent 0xFFFF (CO2 absent) au lieu d'envoyer une valeur perimee. Compatible bases non migrees. - database.html + launcher.php: badge statut + colonne dans les exports CSV. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -323,7 +323,7 @@ function buildTableHeader(table) {
|
||||
data_MPPT: ['Timestamp','Battery Voltage','Battery Current','solar_voltage','solar_power','charger_status'],
|
||||
data_NOISE: ['Timestamp','Curent LEQ','DB_A_value','Status'],
|
||||
data_MHZ19: ['Timestamp','CO2 (ppm)'],
|
||||
data_S88: ['Timestamp','CO2 (ppm)'],
|
||||
data_S88: ['Timestamp','CO2 (ppm)','Status'],
|
||||
data_CCS811: ['Timestamp','eCO2 (ppm)','TVOC (ppb)']
|
||||
};
|
||||
return (headers[table] || ['Data']).map(h => `<th>${h}</th>`).join('');
|
||||
@@ -343,11 +343,16 @@ function buildTableRow(table, columns) {
|
||||
const nStatusLabel = nStatus === 255 ? '❌ Déconnecté' : '✅ OK';
|
||||
return `<td>${columns[0]}</td><td>${columns[1]}</td><td>${columns[2]}</td><td>${nStatusLabel}</td>`;
|
||||
}
|
||||
if (table === "data_S88") {
|
||||
const sStatus = parseInt(columns[2]) || 0;
|
||||
const sStatusLabel = sStatus === 255 ? '❌ Déconnecté' : '✅ OK';
|
||||
return `<td>${columns[0]}</td><td>${columns[1]}</td><td>${sStatusLabel}</td>`;
|
||||
}
|
||||
if (table === "timestamp_table") {
|
||||
return `<td>${columns[1]}</td>`;
|
||||
}
|
||||
// Default: render all available columns
|
||||
const colCount = { data_BME280: 4, data_NPM_5channels: 6, data_envea: 6, data_WIND: 3, data_MPPT: 6, data_MHZ19: 2, data_S88: 2, data_CCS811: 3 };
|
||||
const colCount = { data_BME280: 4, data_NPM_5channels: 6, data_envea: 6, data_WIND: 3, data_MPPT: 6, data_MHZ19: 2, data_S88: 3, data_CCS811: 3 };
|
||||
const n = colCount[table] || columns.length;
|
||||
return columns.slice(0, n).map(c => `<td>${c}</td>`).join('');
|
||||
}
|
||||
@@ -487,7 +492,7 @@ function downloadCSV(response, table) {
|
||||
csvContent += "TimestampUTC,CO2_ppm\n";
|
||||
}
|
||||
else if (table === "data_S88") {
|
||||
csvContent += "TimestampUTC,CO2_ppm\n";
|
||||
csvContent += "TimestampUTC,CO2_ppm,s88_status\n";
|
||||
}
|
||||
else if (table === "data_CCS811") {
|
||||
csvContent += "TimestampUTC,eCO2_ppm,TVOC_ppb\n";
|
||||
|
||||
Reference in New Issue
Block a user