Add RX reject reasons to telemetry and UI
BACKWARD-INCOMPATIBLE: MeterBatch schema bumped to v2 with err_rx_reject. - Track and log RX reject reasons (CRC/protocol/role/payload/length/id/batch) - Include rx_reject in sender telemetry JSON and receiver web UI - Add lora_receive reject reason logging under SERIAL_DEBUG_MODE
This commit is contained in:
@@ -203,14 +203,16 @@ MeterData JSON (sender + MQTT):
|
||||
"p2_w": 450.00,
|
||||
"p3_w": 0.00,
|
||||
"bat_v": 3.92,
|
||||
"bat_pct": 78
|
||||
"bat_pct": 78,
|
||||
"rx_reject": 0,
|
||||
"rx_reject_text": "none"
|
||||
}
|
||||
```
|
||||
|
||||
### Binary MeterBatch Payload (LoRa)
|
||||
Fixed header (little-endian):
|
||||
- `magic` u16 = 0xDDB3
|
||||
- `schema` u8 = 1
|
||||
- `schema` u8 = 2
|
||||
- `flags` u8 = 0x01 (bit0 = signed phases)
|
||||
- `sender_id` u16 (1..NUM_SENDERS, maps to `EXPECTED_SENDER_IDS`)
|
||||
- `batch_id` u16
|
||||
@@ -222,6 +224,8 @@ Fixed header (little-endian):
|
||||
- `err_d` u8 (decode failures, sender-side counter)
|
||||
- `err_tx` u8 (LoRa TX failures, sender-side counter)
|
||||
- `err_last` u8 (last error code: 0=None, 1=MeterRead, 2=Decode, 3=LoraTx, 4=TimeSync)
|
||||
- `err_rx_reject` u8 (last RX reject reason)
|
||||
- `err_rx_reject` u8 (last RX reject reason: 0=None, 1=crc_fail, 2=bad_protocol_version, 3=wrong_role, 4=wrong_payload_type, 5=length_mismatch, 6=device_id_mismatch, 7=batch_id_mismatch)
|
||||
- MQTT faults payload also includes `err_last_text` (string) and `err_last_age` (seconds).
|
||||
|
||||
Body:
|
||||
|
||||
Reference in New Issue
Block a user