From a750f5d2da1f02aaaece6a7c05609d7e7b097fcb Mon Sep 17 00:00:00 2001 From: DjeAvd Date: Mon, 18 May 2026 23:19:03 +0200 Subject: [PATCH] docs(gateway): update sequence diagrams to reflect final implementation - Update class diagram: add INVALID_VALUE and EXPECTED_PAYLOAD_SIZE constants, add on_connect and on_publish callbacks, remove service_uuid - Update sequence diagram: replace UUID filter with company_id 0xffff filter, add payload size check, add CO2 0xFFFFFFFF handling --- .../gateway/sequence_data_collection.puml | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/doc_resources/gateway/sequence_data_collection.puml b/doc_resources/gateway/sequence_data_collection.puml index da9ba9d..b4fdbb8 100644 --- a/doc_resources/gateway/sequence_data_collection.puml +++ b/doc_resources/gateway/sequence_data_collection.puml @@ -9,18 +9,28 @@ participant "Database\n(InfluxDB)" as db == Data collection == thingy -> gw : BLE advertising packet -alt UUID does not match ef680100 +alt company_id != 0xffff gw -> gw : discard packet -else UUID matches - gw -> gw : extract raw payload - gw -> gw : decode_payload() - - alt unknown key or value out of range - gw -> gw : discard invalid value\nlog warning - else valid payload - gw -> gw : add UTC timestamp - gw -> broker : publish JSON\n{gateway_id}/{mac}/update - broker -> db : store measurement +else company_id == 0xffff + gw -> gw : check payload size + + alt payload size != 12 bytes + gw -> gw : discard packet\n(non-Thingy device) + else payload size == 12 bytes + gw -> gw : decode_payload() + + alt unknown key in payload + gw -> gw : discard packet\nlog debug + else valid keys + alt CO2 == 0xFFFFFFFF + gw -> gw : discard CO2 value\n(sensor not ready) + end + + gw -> gw : add UTC timestamp + gw -> broker : publish JSON\n{gateway_id}/{mac}/update + broker --> gw : on_publish confirmed + broker -> db : store measurement + end end end