v1.11.0: CCS811 en daemon + fix filtrage + I2C 10kHz requis

Vérif terrain sur pro100 : à 100 kHz le CCS811 renvoie des valeurs corrompues
0x8000 (32768) par clock-stretching, et le modèle oneshot-reset-toutes-les-10s
ne donne que le 1er échantillon post-init (garbage). Refonte :

- CCS811/daemon.py: service long-running (Type=simple, Restart=always). Init 1x,
  boucle lecture/écriture 10s, filtre eCO2 dans [400,8192], re-init auto sur
  erreurs I2C répétées. Remplace write_data.py (supprimé).
- CCS811/get_data.py: lit la dernière ligne data_CCS811 au lieu du capteur
  (évite la collision I2C avec le daemon -> corruption observée).
- setup_services.sh: service daemon + self-heal suppression de l'ancien .timer;
  activation hors boucle timers.
- launcher.php: .timer -> .service (map statut + allowedServices x2).
- update_firmware.sh: redémarre le daemon à l'OTA.
- doc: README (archi daemon + I2C 10kHz confirmé requis), CLAUDE.md, changelog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
PaulVua
2026-06-02 16:08:03 +02:00
parent 46c73acb7e
commit 13c266d694
10 changed files with 240 additions and 211 deletions

View File

@@ -1681,9 +1681,10 @@ if ($type == "get_systemd_services") {
'description' => 'Reads CO2 concentration from MH-Z19 sensor',
'frequency' => 'Every 2 minutes'
],
'nebuleair-ccs811-data.timer' => [
'description' => 'Reads eCO2/TVOC from CCS811 air-quality sensor',
'frequency' => 'Every 10 seconds'
'nebuleair-ccs811-data.service' => [
'display_name' => 'CCS811',
'description' => 'Reads TVOC/eCO2 from CCS811 air-quality sensor (daemon)',
'frequency' => 'Continuous (daemon)'
],
'nebuleair-s88-data.timer' => [
'description' => 'Reads CO2 concentration from Senseair S88 sensor',
@@ -1776,7 +1777,7 @@ if ($type == "restart_systemd_service") {
'nebuleair-noise-data.timer',
'nebuleair-mhz19-data.timer',
'nebuleair-s88-data.timer',
'nebuleair-ccs811-data.timer',
'nebuleair-ccs811-data.service',
'nebuleair-db-cleanup-data.timer',
'nebuleair-wifi-powersave.timer',
'nebuleair-cpu-power.service',
@@ -1843,7 +1844,7 @@ if ($type == "toggle_systemd_service") {
'nebuleair-noise-data.timer',
'nebuleair-mhz19-data.timer',
'nebuleair-s88-data.timer',
'nebuleair-ccs811-data.timer',
'nebuleair-ccs811-data.service',
'nebuleair-db-cleanup-data.timer',
'nebuleair-wifi-powersave.timer',
'nebuleair-cpu-power.service',