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 == == Data collection ==
thingy -> gw : BLE advertising packet thingy -> gw : BLE advertising packet
alt UUID does not match ef680100 alt company_id != 0xffff
gw -> gw : discard packet gw -> gw : discard packet
else UUID matches else company_id == 0xffff
gw -> gw : extract raw payload gw -> gw : check payload size
gw -> gw : decode_payload()
alt payload size != 12 bytes
alt unknown key or value out of range gw -> gw : discard packet\n(non-Thingy device)
gw -> gw : discard invalid value\nlog warning else payload size == 12 bytes
else valid payload gw -> gw : decode_payload()
gw -> gw : add UTC timestamp
gw -> broker : publish JSON\n{gateway_id}/{mac}/update alt unknown key in payload
broker -> db : store measurement 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
end end