v1.10.0: intégration capteur CCS811 (TVOC/eCO2, I2C)

Nouveau capteur de qualité d'air CCS811 sur le bus I2C, calqué sur le
pattern S88 (local-only, pas encore dans le payload de transmission).

- CCS811/get_data.py (lecture live) + write_data.py (timer 10s, self-heal table)
- table data_CCS811 (timestamp, eCO2, TVOC) dans create_db.py
- config CCS811 (bool) + CCS811_address (0x5A/0x5B, défaut 0x5A) dans set_config.py
- service+timer systemd nebuleair-ccs811-data (10s) + ajout boucle d'activation
- admin.html: case d'activation + dropdown adresse I2C
- sensors.html: carte Get Data (TVOC + eCO2)
- database.html + launcher.php: consultation/export/stats data_CCS811
- lib adafruit-circuitpython-ccs811 dans installation_part1.sh
- CCS811/README.md: câblage, adresses, warning clock-stretching I2C sur Pi
- CLAUDE.md + changelog mis à jour

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
PaulVua
2026-06-02 14:27:11 +02:00
parent 4767b145b2
commit 4f3d273981
14 changed files with 455 additions and 9 deletions

View File

@@ -168,6 +168,15 @@ CREATE TABLE IF NOT EXISTS data_S88 (
)
""")
# Create a table CCS811 (AMS CCS811 air-quality sensor: eCO2 + TVOC)
cursor.execute("""
CREATE TABLE IF NOT EXISTS data_CCS811 (
timestamp TEXT,
eCO2 INTEGER,
TVOC INTEGER
)
""")
# Commit and close the connection
conn.commit()
conn.close()

View File

@@ -53,6 +53,8 @@ config_entries = [
("MHZ19", "0", "bool"),
("S88", "0", "bool"),
("S88_port", "/dev/ttyAMA5", "str"),
("CCS811", "0", "bool"),
("CCS811_address", "0x5A", "str"),
("modem_version", "XXX", "str"),
("device_type", "nebuleair_pro", "str"),
("language", "fr", "str"),