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

This commit is contained in:
DjeAvd
2026-05-18 23:19:03 +02:00
committed by Klagarge
parent 98a77d7dbd
commit a750f5d2da

View File

@@ -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