NANO Iot BLE RSSI erratic

I am stretching the use of these devices. In our solution design there are multiple of these devices in the same room... they are advertising, and scanning. they keep track of the rssi of their peer devices (result of scan) over a 5 minute period of time (advertising at default rate)

I also have an IOS mobile app that interacts with these devices, which advertises and scans. the devices record the phones rssi as well.

and the phone reads the tables of interdevice rssi's and also the devices perspective of the phones rssi.

'most' of the time the cross reference rssi's are pretty close. but sometimes, WAY off

I KNOW these two devices are 6 ft apart, with clear line of sight, their antennas are pointed in the same direction (parallel to each other) and yet the rssi from one is -87, while the other is -71, which SHOULD be closer to -62/63

similarly the rssi on the phone for some of these is also crazy way off...

I am 20ft from 2 devices, which are 12 ft apart, their antenna end is pointed in my direction, line of sight, no obstructions.. one is pretty close at -86
the other is -65??? what?

or design 'depends' on consistent results (notice I didn't say 'accurate'), but consistent.

in my test scenario I have 6 Nano IoTs and the phone all advertising and scanning concurrently. are there any concerns about cross device signal interference? I have no idea what channel(s) they are using (and don't 'want' to know), but clearly some of them can end up on the same one.

in one scenario I am parallel to two devices but 10 ft away from one and 25 ft away from the other. the 25ft away RSSI NEVER EVER gets above 18ft equivalent (using all different conversion algorithms to look at the results)
while the nearer one NEVER gets below 12-15 ft.

but if I turn to face those two devices. the left rssi is close , while the right one is woefully short again (-61/62), line of sight in all cases.

the phone is iPhone 7 or 7-Plus, IOS 14 or 15

I've done all kinds of things to try and stabilize the numbers, using a saved snapshot of interdevice info, averaging the two interposing RSSI's, different conversion factors and algorithms. restarting all the devices at once before testing.

from the phone, one scan result will be good for one sensor,m bad for another,
next scan (2-4 seconds later) both bad, WILD changes, almost double distances,
next scan, they might be reversed, next scan both close, nothing consistent

any guidance on whether this was/is too much to hope for to begin with, or some suggestions on how to debug further.. or another arduino family device that might have other results.. I am pretty sure this was never tested like this

one funny side note.. my over the air TV antenna (I live in the US) does not work on one channel if one of the devices is powered on within 8 ft of the antenna pad. its not the power supply, as I can unplug the IOT and the channel comes it.. plug in the IOT(usb port) and the channel is gone..
hadn't expected that kind of radio interference

As you are discovering, RSSI measurements are nearly useless. They depend on distance, transmission power, relative antenna orientation and the presence and orientation of nearby reflecting and absorbing objects.

You do not seem to be allowing for reflections and multi-path reception.
Paul

how can I account for that when all I have is RSSI?

Im interested

The evidence in your post suggests that what you are trying to do with RSSI won't work well, or at all.

This is consistent with what others have observed, for decades now.

You can't. Using RSSI is similar to the perpetual motion schemes my father and grandfather worked so hard to develop. Sorry, can't offer even "good luck".
Paul

You cannot, that sort of variation in RSSI sounds normal to me, especially indoors ...........

BLE does adaptive frequency hoping. So, the channels change continuously. This is done to avoid everyone else in the 2.4GHz ISM band. Most other users in that band do not need to worry as much about power.

As many others already state RSSI is not useful for range estimation. You can make a "Geiger counter" toy that will be fun for 10 minutes under fixed condition but not more than that.