Commit Graph

104 Commits

Author SHA1 Message Date
PaulVua
d554f03195 v1.12.1: S88 ecrit toujours + code d'etat, plus de CO2 perime transmis
Probleme vu sur pro100: sonde S88 muette (panne cablage) mais write_data.py
n'ecrivait rien -> la base gardait la derniere valeur (487 ppm d'hier) et la
loop d'envoi la transmettait en boucle.

- data_S88: nouvelle colonne s88_status (0=OK, 0xFF=sonde muette), comme
  npm_status/noise_status. Migration via create_db.py + set_config.py + self-heal.
- S88/write_data.py: ecrit DESORMAIS une ligne a chaque cycle (CO2=0 + 0xFF si
  pas de reponse). Connexion SQLite timeout=10 (anti database-is-locked).
- SARA_send_data_v2.py: lit s88_status; si 0xFF -> bytes 81-82 restent 0xFFFF
  (CO2 absent) au lieu d'envoyer une valeur perimee. Compatible bases non migrees.
- database.html + launcher.php: badge statut + colonne dans les exports CSV.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 17:10:32 +02:00
PaulVua
dad953acdc v1.12.0: transmission CO2 S88 dans le payload UDP Miotiq (byte 81)
Débloque le WIP S88->Miotiq. Spec serveur reçue: byte 81-82 = CO2 (ISO_17,
uint16 ppm). Source = Senseair S88 (vrai CO2 NDIR).

- SensorPayload.set_co2() -> bytes 81-82 (uint16, clamp 0..65535)
- lecture data_S88 (derniere ligne) si config S88 active, puis set_co2
- defaut 0xFFFF = capteur absent
- canal UDP Miotiq uniquement (CSV/JSON non touches)
- error_flags.md: byte-map a jour (81-82 = CO2)

CCS811 (TVOC/eCO2) NON transmis: pas encore de champ dans la spec Miotiq.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 16:55:54 +02:00
PaulVua
4a74f949a0 v1.9.12: SARA loop - 2e test de comm avant hardware reboot
Quand AT+CSQ ne repond pas (hoquet serie temporaire), retente le
AT+CSQ jusqu'a 3x (0.5s d'intervalle) avant d'escalader. Si le modem
repond, le flux normal reprend sans reboot -> evite les coupures
d'alim GPIO et l'usure du modem pour une absence de reponse ponctuelle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 10:27:35 +02:00
PaulVua
094926e30d v1.7.3: Revert du check SIM sur branche CSQ=99
Le check SIM sur CSQ=99 ajoutait 2 commandes AT a chaque coupure
signal temporaire (frequent en zone marginale) pour un gain
marginal: le check sur la branche USOCR/PDP attrape le cas avec
un delai de 1-2 cycles max (le modem sans SIM alterne CSQ=99
et CSQ>0).

On garde uniquement le check v1.7.1 dans la branche USOCR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:36:50 +02:00
PaulVua
71211e281a v1.7.2: Detection SIM aussi dans la branche CSQ=99
Sans SIM, le modem retourne CSQ=99 systematique et le script
sortait avant d'atteindre le check SIM ajoute en v1.7.1.

- Branche CSQ=99: appelle aussi check_sim_status()
- Si SIM absente: alerte rouge + notification WiFi
- Si SIM OK: message vert (coupure reseau temporaire)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:32:43 +02:00
PaulVua
c004d32f0b v1.7.1: Detection SIM injoignable avant escalade hardware reboot
- Nouvelle fonction check_sim_status() (AT+CPIN? + AT+CCID)
- Branche d'echec PDP: diagnostic SIM avant reboot hardware
- Logs HTML tres visibles si SIM absente (bordure rouge, action claire)
- Notification WiFi dediee: 'SIM NOT DETECTED -> physical check required'
- Zero impact happy path: check uniquement quand PDP reset echoue

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:27:28 +02:00
PaulVua
1c565435e7 Fix: ping Miotiq command=0x02 pour retrocompat avec capteurs deployés (byte 9 = 0x01)
Les capteurs en production envoient 0x01 sur le byte 9 (ancien protocol_version).
Cote serveur: 0x00 et 0x01 = data normal, 0x02 = ping test.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:43:19 +02:00
PaulVua
f720649624 Ping aller-retour Miotiq: byte 9 = command, script ping + écoute réponse
- SensorPayload: byte 9 passe de protocol_version (0x01) à command (0x00 par défaut)
- Nouveau set_command() method (0x00=data normal, 0x01=ping test)
- Nouveau script SARA/sara_ping_miotiq.py: envoie payload 100 bytes avec command=1,
  puis écoute la réponse descendante Miotiq pendant 15s via AT+USORD
- Endpoint launcher.php sara_ping_miotiq
- Bouton "Ping Miotiq" dans la section tests Miotiq (page modem)
- Mise à jour error_flags.md avec la nouvelle map complète du payload

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:17:54 +02:00
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
PaulVua
11585b4783 Error flags: NPM deconnecte (0xFF) → ERR_NPM bit 3 dans byte 66
- npm_status 0xFF = pas de reponse du capteur → flag ERR_NPM (byte 66 bit 3)
  et byte 67 reste a 0x00 (pas de status valide a transmettre)
- npm_status valide → byte 67 tel quel, pas de flag dans byte 66

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 16:38:56 +01:00
PaulVua
bd2e1f1eda v1.6.0: envoi npm_status dans payload UDP (byte 67)
- Lecture npm_status depuis derniere mesure en base (rowid DESC, pas de moyenne)
- Independant du RTC (pas de dependance au timestamp)
- Byte 67 du payload UDP = registre status NextPM

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:24:26 +01:00
PaulVua
a9db7750b2 v1.5.1: envoi firmware version dans payload UDP (bytes 69-71)
- Lecture fichier VERSION et pack major.minor.patch dans bytes 69-71
- README: documentation complete structure 100 bytes + conso data
- Changelog mis a jour

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 11:44:24 +01:00
PaulVua
eb93ba49bd v1.5.0: error flags payload UDP + init bytes status a 0x00
- Bytes 66-68 (error_flags, npm_status, device_status) initialises a 0x00
  au lieu de 0xFF pour eviter faux positifs cote serveur
- Implementation flag RTC (byte 66) + methodes SensorPayload
- Escalade PDP reset: si echec → notification + hardware reboot + exit
- Changelog et VERSION mis a jour

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 10:17:37 +01:00
PaulVua
3804a52fda Error flags byte 66: implementation RTC flags + escalade PDP reset → hardware reboot
- Constantes error_flags (byte 66) + methodes SensorPayload
- Construction byte 66 avec flags RTC (disconnected/reset)
- Escalade: si PDP reset echoue apres echec UDP → notification + hardware reboot + exit
- Doc: ajout byte 68 device_status (specification)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 09:58:39 +01:00
PaulVua
5bffec10a1 v1.4.3 — Payload UDP bruit cur_leq + cur_level, améliorations page database
- UDP bytes 22-23: noise_cur_leq, 24-25: noise_cur_level, 26-27: max_noise (réservé)
- Page database: validation dates obligatoire + bouton télécharger toute la table

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 10:03:08 +01:00
paul_vua
d5b2e9c6c3 v1.4.2 — Fix bug AT+USOWR leak dans payload UDP Miotiq
Corrige une desynchronisation serie qui causait l'envoi de la commande
AT+USOWR comme donnees UDP au lieu du payload capteurs. Ajout de flush
buffer serie, verification du prompt @, et abort propre a chaque etape.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 22:53:59 +01:00
PaulVua
1fa7a2d695 fix(noise): use correct variable for payload CSV assignment
Replace undefined DB_A_value with cur_level which holds the same value from last_row[2].

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 16:31:10 +01:00
PaulVua
e5770b09dc improve pdp reconnect 2026-01-15 11:21:30 +01:00
PaulVua
79d7f61e4a improve pdp reconnect 2026-01-15 11:19:56 +01:00
PaulVua
d593449171 improve pdp reconnect 2026-01-15 10:39:08 +01:00
PaulVua
c571bbd408 improve pdp reconnect 2026-01-15 10:35:46 +01:00
PaulVua
5742cc7e49 reboot when udp send error 2026-01-15 10:16:29 +01:00
PaulVua
4c552e4a31 more logs 2026-01-14 14:43:00 +01:00
Your Name
ca7533a344 update 2025-11-26 09:11:04 +00:00
Your Name
403c57bf18 update 2025-11-26 09:00:07 +00:00
Your Name
129b2de68e update 2025-11-11 13:41:44 +00:00
AirLab
c038084343 update 2025-11-03 17:20:37 +01:00
root
9de903f2db update 2025-10-02 15:53:14 +01:00
Your Name
77fcdaa08e update 2025-09-19 14:08:01 +02:00
Your Name
1fca3091eb update 2025-09-18 16:46:25 +01:00
Your Name
d0b49bf30c update 2025-09-18 16:45:08 +01:00
Your Name
4779f426d9 update 2025-09-18 16:43:49 +01:00
Your Name
9aab95edb6 update 2025-09-09 09:47:45 +02:00
root
fe61b56b5b update 2025-07-22 16:38:41 +01:00
Your Name
25c5a7a65a update 2025-07-22 15:36:36 +02:00
root
44b2e2189d update 2025-07-21 12:22:56 +01:00
root
74fc3baece update 2025-07-21 11:11:09 +01:00
Your Name
0539cb67af update 2025-07-02 08:25:29 +01:00
Your Name
98115ab22b update 2025-07-02 08:01:41 +01:00
Your Name
2989a7a9ed update 2025-06-30 15:10:29 +01:00
Your Name
aa458fbac4 update 2025-06-30 14:59:40 +01:00
root
057dc7d87b update 2025-06-05 16:48:38 +02:00
Your Name
3731c2b7cf update 2025-06-05 12:42:35 +02:00
Your Name
1240ebf6cd update 2025-06-04 15:54:43 +02:00
PaulVua
5a0f1c0745 updates 2025-05-23 14:30:18 +02:00
Your Name
4e4832b128 update 2025-05-20 10:43:27 +02:00
Your Name
11463b175c update 2025-05-20 09:50:15 +02:00
Your Name
b1352261e7 update 2025-05-20 09:45:59 +02:00
Your Name
932fdf83a2 update 2025-05-20 09:21:34 +02:00
Your Name
1ca3e2ada2 update 2025-05-20 09:14:25 +02:00