Files
MSE-PI-E2EEDA-Plein-de-eeee…/doc_resources/gateway/sequence_data_collection.puml

38 lines
993 B
Plaintext

@startuml
skinparam sequenceMessageAlign center
collections "BLE broadcaster" as thingy
participant "Gateway\n(Raspberry Pi)" as gw
participant "MQTT Broker\n(RabbitMQ)" as broker
participant "Database\n(InfluxDB)" as db
== Data collection ==
thingy -> gw : BLE advertising packet
alt company_id != 0xffff
gw -> gw : discard packet
else company_id == 0xffff
gw -> gw : check payload size
alt payload size != 12 bytes
gw -> gw : discard packet\n(non-Thingy device)
else
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
@enduml