From e733cd27e8e9cc66c9be29312e2b69411030e596 Mon Sep 17 00:00:00 2001 From: PaulVua Date: Wed, 18 Mar 2026 11:46:32 +0100 Subject: [PATCH] Doc: parser Miotiq dans README + mise a jour error_flags.md - README: ajout section parser Miotiq avec firmware version (bytes 69-71) - error_flags.md: parser mis a jour (version_major/minor/patch + reserved 22) - error_flags.md: correction note init bytes 66-68 a 0x00 Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ loop/error_flags.md | 11 +++++++---- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6a33ef3..d3ec548 100755 --- a/README.md +++ b/README.md @@ -237,6 +237,49 @@ Taille par paquet : 100 bytes payload + 8 bytes UDP header + 20 bytes IP header > Note : ces chiffres ne comptent que l'UDP vers Miotiq. Les envois HTTP (AirCarto) et HTTPS (uSpot) consomment des donnees supplementaires. +### Parser Miotiq + +``` +16|device_id|string|||W +2|signal_quality|hex2dec|dB|| +2|version|hex2dec|||W +4|ISO_68|hex2dec|ugm3|x/10| +4|ISO_39|hex2dec|ugm3|x/10| +4|ISO_24|hex2dec|ugm3|x/10| +4|ISO_54|hex2dec|degC|x/100| +4|ISO_55|hex2dec|%|x/100| +4|ISO_53|hex2dec|hPa|| +4|noise_cur_leq|hex2dec|dB|x/10| +4|noise_cur_level|hex2dec|dB|x/10| +4|max_noise|hex2dec|dB|x/10| +4|ISO_03|hex2dec|ppb|| +4|ISO_05|hex2dec|ppb|| +4|ISO_21|hex2dec|ppb|| +4|ISO_04|hex2dec|ppb|| +4|ISO_08|hex2dec|ppb|| +4|npm_ch1|hex2dec|count|| +4|npm_ch2|hex2dec|count|| +4|npm_ch3|hex2dec|count|| +4|npm_ch4|hex2dec|count|| +4|npm_ch5|hex2dec|count|| +4|npm_temp|hex2dec|°C|x/10| +4|npm_humidity|hex2dec|%|x/10| +4|battery_voltage|hex2dec|V|x/100| +4|battery_current|hex2dec|A|x/100| +4|solar_voltage|hex2dec|V|x/100| +4|solar_power|hex2dec|W|| +4|charger_status|hex2dec||| +4|wind_speed|hex2dec|m/s|x/10| +4|wind_direction|hex2dec|degrees|| +2|error_flags|hex2dec||| +2|npm_status|hex2dec||| +2|device_status|hex2dec||| +2|version_major|hex2dec||| +2|version_minor|hex2dec||| +2|version_patch|hex2dec||| +22|reserved|skip||| +``` + ### Byte 66 — error_flags | Bit | Masque | Description | diff --git a/loop/error_flags.md b/loop/error_flags.md index 40539ae..7b2ba2c 100644 --- a/loop/error_flags.md +++ b/loop/error_flags.md @@ -247,7 +247,10 @@ def set_device_status(self, status): 2|error_flags|hex2dec||| 2|npm_status|hex2dec||| 2|device_status|hex2dec||| -28|reserved|skip||| +2|version_major|hex2dec||| +2|version_minor|hex2dec||| +2|version_patch|hex2dec||| +22|reserved|skip||| ``` --- @@ -310,9 +313,9 @@ if sara_rebooted: ## Notes -- La payload est initialisee a 0xFF (tous bytes a 255). Le script doit explicitement - ecrire 0x00 dans les bytes 66-67 quand tout va bien, sinon Miotiq interpretera - 255 = toutes les erreurs. +- Les bytes 66-68 sont initialises a 0x00 dans le constructeur SensorPayload + (0x00 = aucune erreur/aucun flag). Les bytes 69-71 restent a 0xFF si le + fichier VERSION est absent ou malformed. - Le NPM status n'est pas encore lu par `get_data_modbus_v3.py`. Il faut d'abord ajouter la lecture du registre de status Modbus et le stocker en SQLite. - Les flags du byte 66 sont determines par le script d'envoi en analysant les