v1.10.1: OTA installe les deps pip + filtre lectures parasites CCS811
Découvert en vérif SSH sur nebuleair-pro100 : le timer CCS811 échouait en ModuleNotFoundError car l'OTA fait git pull mais ne réinstallait jamais les dépendances pip (installation_part1.sh ne tourne qu'à l'install neuve). - requirements.txt: source unique de vérité des deps Python - installation_part1.sh: install via requirements.txt (chemin relatif au script, le repo n'est pas encore cloné dans /var/www à cette étape) - update_firmware.sh: nouvelle étape 2a, pip install -r requirements.txt (idempotent) -> les capteurs déjà déployés récupèrent les libs manquantes à l'OTA - CCS811/write_data.py + get_data.py: skip des lectures eCO2 < 400 ppm (échantillon 0/0 parasite juste après init du driver, plancher physique = 400) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,21 @@ if [ -f "/var/www/nebuleair_pro_4g/VERSION" ]; then
|
||||
print_status "Firmware version: $(cat /var/www/nebuleair_pro_4g/VERSION)"
|
||||
fi
|
||||
|
||||
# Step 2a: Install/update Python dependencies (self-heal)
|
||||
# OTA does a git pull but historically never (re)installed pip deps, so a new
|
||||
# sensor lib introduced by an update (e.g. adafruit-circuitpython-ccs811) was
|
||||
# missing on already-deployed sensors and the timer failed with ModuleNotFound.
|
||||
# requirements.txt is the single source of truth; pip skips already-satisfied
|
||||
# packages so this is idempotent and only pulls newly-added libs.
|
||||
print_status ""
|
||||
print_status "Step 2a: Installing/updating Python dependencies..."
|
||||
if [ -f "/var/www/nebuleair_pro_4g/requirements.txt" ]; then
|
||||
sudo pip3 install -r /var/www/nebuleair_pro_4g/requirements.txt --break-system-packages
|
||||
check_status "Python dependencies install"
|
||||
else
|
||||
print_status "⚠ requirements.txt not found, skipping dependency install"
|
||||
fi
|
||||
|
||||
# Step 2: Update database (schema migration + config keys)
|
||||
# create_db.py is idempotent (CREATE TABLE IF NOT EXISTS + ALTER TABLE ADD COLUMN
|
||||
# wrapped in try/except). Required to add tables introduced after the sensor was
|
||||
|
||||
Reference in New Issue
Block a user