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