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:
@@ -76,9 +76,13 @@ def main():
|
||||
print(json.dumps({"error": "CCS811 data not ready (warming up?)"}))
|
||||
return
|
||||
|
||||
eco2 = ccs811.eco2
|
||||
tvoc = ccs811.tvoc
|
||||
print(json.dumps({"eCO2": int(eco2), "TVOC": int(tvoc)}))
|
||||
eco2 = int(ccs811.eco2)
|
||||
tvoc = int(ccs811.tvoc)
|
||||
# eCO2 floor is 400 ppm; a sub-400 value is a not-yet-settled sample.
|
||||
if eco2 < 400:
|
||||
print(json.dumps({"error": "CCS811 reading not settled (warming up?)"}))
|
||||
return
|
||||
print(json.dumps({"eCO2": eco2, "TVOC": tvoc}))
|
||||
except Exception as e:
|
||||
print(json.dumps({"error": f"CCS811 read error: {e}"}))
|
||||
|
||||
|
||||
@@ -78,6 +78,13 @@ def main():
|
||||
eco2 = int(ccs811.eco2)
|
||||
tvoc = int(ccs811.tvoc)
|
||||
|
||||
# eCO2 has a physical floor of 400 ppm. Just after the driver (re)inits,
|
||||
# the CCS811 can return a 0/0 sample before its first valid measurement is
|
||||
# ready — those are spurious, drop them (next 10 s tick will retry).
|
||||
if eco2 < 400:
|
||||
print(f"CCS811: reading not settled (eCO2={eco2}), skipping.")
|
||||
return
|
||||
|
||||
cursor.execute("SELECT last_updated FROM timestamp_table LIMIT 1")
|
||||
row = cursor.fetchone()
|
||||
rtc_time_str = row[0]
|
||||
|
||||
Reference in New Issue
Block a user