Commit Graph

7 Commits

Author SHA1 Message Date
Your Name
c20ea823e9 docs(miotiq): repurpose payload byte 9 as command (ping test trigger)
Le champ `version` (offset 9 du payload NebuleAir Pro 4G) était hardcodé
`0x01` côté firmware et n'a jamais porté un vrai versioning protocole.
Renommé en `command` et réaffecté à un type de trame :

- 0x00 = données mesure
- 0x01 = ping test (firmware → Miotiq → backend, pas d'archivage)

Versioning protocole reste sur `version_major/minor/patch`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 16:22:27 +02:00
Your Name
a4ecbd7133 docs(miotiq): drop generic server parser skeleton
Will be moved to its own file later. Kept only the descriptor format
spec and per-sensor binary layout in this doc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:22:26 +02:00
Your Name
232f1b7097 docs(miotiq): integrate lat/lon/misc into NebuleAir Pro 4G descriptor
- latitude / longitude: 4 bytes each, offset-unsigned encoding
  (raw = round((deg + 90|180) * 1e6), Miotiq equation x/1000000-90|180)
  to sidestep the absence of signed hex2dec. Precision ~11cm.
- misc: 1 byte, enum 0-6 (documented as extensible without breaking
  the byte layout).
- "No fix" authority = device_status.GPS_NO_FIX bit; defensive rule
  for legacy firmwares documented.
- 9 of the 11 reserved bytes consumed; 2 bytes remain reserved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:21:07 +02:00
Your Name
33c4472350 docs: merge parsers/ into formats/ and drop misleading JSON wrapper
Parsers and formats are tightly linked (a parser produces a format) and
the split made cross-links heavy for a single parser file. Also removed
the confusing "Enveloppe JSON" block in udp-miotiq.md that mixed the
raw webhook wrapper with what the backend actually consumes — the
decoded payload schema lives in json-payload.md and is now referenced
directly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:02:10 +02:00
efd1aa438a docs: align with AirCarto 2026 JSON template + fix ISO mapping
formats/json-payload.md: full rewrite around the actual server-side template
  (endpoint api.aircarto.com/receive_data?device_type=<model>, flat schema,
  _unit suffix companions, -1 and 255 sentinel semantics, full bitfield
  tables for error_flags/npm_status/device_status, misc context codes).

formats/iso-pollutant-codes.md: fill in the LCSQA mapping. Fixes my earlier
  inversion — ISO_39=PM2.5 and ISO_24=PM10 (not the other way). Add gases:
  ISO_03=NO2, ISO_04=CO, ISO_05=H2S, ISO_08=O3, ISO_21=NH3.

parsers/udp-miotiq.md:
  - string base function outputs hex (not ASCII) — update description and
    generic Python parser accordingly.
  - Fix ISO_39/ISO_24 labels in NebuleAir Pro 4G byte layout.
  - Name the 5 gases by offset, cross-link bitfield docs and JSON canonical.
  - New TODO: origin of latitude/longitude/misc in final JSON (not in 83B
    descriptor).

README.md: reflect the new file layout and data flow summary.
2026-04-23 00:55:25 +02:00
7f8d6a21e9 docs(miotiq): Miotiq descriptor format as canonical parser + NebuleAir Pro 4G 83B descriptor
- Refactor parsers/udp-miotiq.md around the pipe-separated descriptor format used on Miotiq side.
- Document the full 83-byte NebuleAir Pro 4G descriptor (PM, gases, noise, weather, power, status).
- Keep legacy MobileAir 17B binary format for reference.
- Add formats/iso-pollutant-codes.md placeholder for AirCarto ISO 7168 code mapping.
- Open TODOs: flag W semantics, endianness, signed battery_current, MobileAir migration.
2026-04-23 00:46:35 +02:00
278775e7e8 chore: initial skeleton — NextPM sensor, JSON format, Miotiq UDP parser 2026-04-23 00:36:19 +02:00