My Arduino BLE 33 changes mac address. It used to be *****:2C, then it changed to *****:20, and today it changed to *****:00. I probably rebuilt and reflashed with some updated board and/or arduino libs between.
So if the mac keeps changing, how do I identify an arduino bord, if I have many with the same software?
I am currently using the MAC to identify which device is sending data to my receiver (a RPi with a bluepy python script)
With BLE it is generally undesirable to identify individual devices because most will allow any central to connect to them and read the information. This would allow tracking devices without the user being able to stop this.
It is different with paired devices because the pairing process is monitored by a human and all communication after pairing is encrypted.
Because the ArduinoBLE library does not support pairing you could implement a device id on the application level by defining a characteristic with a unique ID. You also could use the localName.
I think what Klaus is saying is that the changing of the address is a feature. It is meant to provide some safety from the use of the advertisement for tracking.
One can have quite a lot of fun with the nRF Connect app running on a phone. I was walking a park with this app running, and I could tell when people were approaching, how many of them, and what their phones were. Not in a precise way, but in a general way it kinda worked. Because it seems that if you turn Bluetooth on, on an iPhone, the phone will be advertising. It advertises its manufacturer ("Apple Inc") and model.
Clearly one could use this to know who to mug in the park, to get a nice new iPhone.