Firehose data questions

I have been reading firehose format data from my local ADS-B receiver (piaware). I don’t understand several things, and haven’t found explanation in the documentation.

Here are four sequential received messages…

{“facility_hash”:“01234567”,“alt”:“22200”,“lon”:“-116.62632”,“gs”:“392”,“type”:“position”,“hexid”:“78071C”,“air_ground”:“A”,“gps_alt”:“23100”,“ident”:“#78071C”,“squawk”:“5377”,“clock”:“1543397572”,“id”:“78071C-1543397435-piaware-411”,“heading”:“281”,“lat”:“33.14533”,“baro_alt”:“22200”,“updateType”:“A”,“facility_name”:“Local ADS-B”,“pitr”:“1543397572”}
{“facility_hash”:“01234567”,“alt”:“22125”,“lon”:“-116.63058”,“gs”:“392”,“type”:“position”,“hexid”:“78071C”,“air_ground”:“A”,“gps_alt”:“23100”,“ident”:“#78071C”,“squawk”:“5377”,“clock”:“1543397581”,“id”:“78071C-1543397435-piaware-411”,“heading”:“281”,“lat”:“33.14594”,“baro_alt”:“22125”,“updateType”:“A”,“facility_name”:“Local ADS-B”,“pitr”:“1543397582”}
{“facility_hash”:“01234567”,“alt”:“21800”,“lon”:“-116.65350”,“gs”:“389”,“gps_alt”:“22575”,“type”:“position”,“hexid”:“78071C”,“air_ground”:“A”,“squawk”:“5377”,“clock”:“1543397588”,“ident”:“CKK272”,“id”:“78071C-1543397435-piaware-411”,“heading”:“279”,“lat”:“33.14882”,“baro_alt”:“21800”,“updateType”:“A”,“facility_name”:“Local ADS-B”,“pitr”:“1543397588”}
{“facility_hash”:“01234567”,“alt”:“21375”,“lon”:“-116.68096”,“gs”:“386”,“gps_alt”:“22100”,“type”:“position”,“hexid”:“78071C”,“air_ground”:“A”,“squawk”:“5377”,“clock”:“1543397598”,“ident”:“CKK272”,“id”:“78071C-1543397435-piaware-411”,“heading”:“279”,“lat”:“33.15239”,“baro_alt”:“21375”,“updateType”:“A”,“facility_name”:“Local ADS-B”,“pitr”:“1543397598”}

I believe these are from the same aircraft. They have identical “squawk” and idential “hexid”.

However, the “ident” field is not the same. In some packets “ident” looks like “hexid” with a “#” at the beginning. I don’t know the signfiicance of the “#”. Documentation doesn’t mention the “#”.

In other packets, “ident” is “CKK272”. Why does ident change?

What field(s) should I use to categorize messages as having come from the same aircraft?

This is a thing specific to piaware/pirehose; when it doesn’t know an ident, it’ll give you the data with the hexid as the ident instead (ident is a mandatory field in the json). Real firehose will always give you an ident (or no data at all if the ident is unknown - but real firehose has many potential sources for ident that piaware doesn’t have)

piaware heard a message with an ident and started using it

hexid (or - in real firehose - registration) for the same physical aircraft; id for the same “flight” (which does not have much meaning in pirehose, but in real firehose this corresponds to a single tracked flight with origin, destination, etc)