I guess there are other problems. With the Blue Gecko chip I had no problems sending data from 7 m distance, through a wall, and no packets were lost. The packet rate just dropped, maybe because of resending. But this was all automatic in the Bluetooth layer. In my application layer it looked perfect. And the product page of the BLE112 says
"Typical Range: 150 Meters" (middle of the page, search for "meters"). Of course, problably they measure this in a desert, far away from all other RF sources, and at night, with new moon
but it should be still no problem in a normal setting for a dozen meters.
But the BLE112 is a very low power CPU, with only 8 kB RAM and a 8 bit CPU. The BGM11S I was using has a 32 bit ARM core, with 32 kB RAM. Maybe it doesn't buffer much and the protocol of the main CPU doesn't pay attention if sending data to it is allowed, like when it tries to resend data, or a RTS/CTS problem, if they are using a serial connection.
Or maybe it is a wrong GATT specification. For example if you really need 2 packets, you could specify a characteristic as "
reliable write". But this is only available for message sending from the PC/phone to the meter. But for the other way for me a simple "Notify" characteristics worked. Looks like they are
reliable, too, which would explain the packet rate drop in my tests, but no loss of packets. So there shouldn't be a problem with the bluetooth transfer itself.