Files
PaulVua 47d76be5df v1.6.1: NSRT MK4 deconnexion — noise_status en base + ERR_NOISE dans error_flags
Meme modele que NPM: ecriture en base avec valeurs a 0 et noise_status=0xFF
si capteur deconnecte, flag ERR_NOISE (bit 5) dans byte 66 UDP, messages
explicites sur page capteurs et self-test.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 11:42:10 +01:00

41 lines
1.3 KiB
Python

'''
____ ___ _ _ _ _ ____
/ ___| / _ \| | | | \ | | _ \
\___ \| | | | | | | \| | | | |
___) | |_| | |_| | |\ | |_| |
|____/ \___/ \___/|_| \_|____/
python3 /var/www/nebuleair_pro_4g/sound_meter/read.py
Read current values from NSRT MK4 Sound Level Meter (USB /dev/ttyACM0)
Used by the web interface "Get Data" button via launcher.php
'''
import json
import nsrt_mk3_dev
try:
nsrt = nsrt_mk3_dev.NsrtMk3Dev('/dev/ttyACM0')
leq_level = nsrt.read_leq()
weighted_level = nsrt.read_level()
weighting = nsrt.read_weighting()
time_constant = nsrt.read_tau()
data = {
"LEQ": round(leq_level, 2),
"dBA": round(weighted_level, 2),
"weighting": str(weighting),
"tau": time_constant
}
print(json.dumps(data))
except Exception as e:
err_msg = str(e)
if "No such file or directory" in err_msg or "could not open port" in err_msg:
print(json.dumps({"error": "Capteur déconnecté — vérifiez le câblage USB du sonomètre NSRT MK4 (/dev/ttyACM0)", "disconnected": True}))
elif "Permission denied" in err_msg:
print(json.dumps({"error": "Permission refusée sur /dev/ttyACM0 — exécutez: sudo chmod 777 /dev/ttyACM0", "disconnected": False}))
else:
print(json.dumps({"error": err_msg}))