Monitoring system for determining the location of Bluetooth beacons comprising: a plurality of battery-powered Bluetooth beacons, each arranged to: wirelessly transmit periodically Bluetooth beacon messages comprising a beacon identification, beacon ID, of each said transmitting beacon; a plurality of battery-powered repeaters, each arranged to: wirelessly receive the beacon messages transmitted by the Bluetooth beacons; measure the received signal strength of each received beacon message; and wirelessly transmit Bluetooth beacon messages comprising the beacon ID and the received signal strength of the received beacon messages and also comprising a repeater identification, repeater ID, of the transmitting repeater; one or more line-powered gateways, each arranged to: wirelessly receive said beacon messages from beacons and repeaters; measure the received signal strength of each received beacon message; and transmit one or more gateway messages comprising the beacon ID, the received signal strength, and the repeater ID if applicable, of the received beacon messages, and a gateway identification, gateway ID, of the transmitting gateway; a server arranged to: receive said gateway messages; and determine the location of each of said plurality of beacons from the received gateway messages using a database of predetermined locations for said one or more gateways and of predetermined locations for said plurality of repeaters. a plurality of battery-powered Bluetooth beacons, each arranged to: wirelessly transmit periodically Bluetooth beacon messages comprising a beacon identification, beacon ID, of each said transmitting beacon; a plurality of battery-powered repeaters, each arranged to: wirelessly receive the beacon messages transmitted by the Bluetooth beacons; measure the received signal strength of each received beacon message; and wirelessly transmit Bluetooth beacon messages comprising the beacon ID and the received signal strength of the received beacon messages and also comprising a repeater identification, repeater ID, of the transmitting repeater; wirelessly receive the beacon messages transmitted by the Bluetooth beacons; measure the received signal strength of each received beacon message; and wirelessly transmit Bluetooth beacon messages comprising the beacon ID and the received signal strength of the received beacon messages and also comprising a repeater identification, repeater ID, of the transmitting repeater; one or more line-powered gateways, each arranged to: wirelessly receive said beacon messages from beacons and repeaters; measure the received signal strength of each received beacon message; and transmit one or more gateway messages comprising the beacon ID, the received signal strength, and the repeater ID if applicable, of the received beacon messages, and a gateway identification, gateway ID, of the transmitting gateway; wirelessly receive said beacon messages from beacons and repeaters; measure the received signal strength of each received beacon message; and transmit one or more gateway messages comprising the beacon ID, the received signal strength, and the repeater ID if applicable, of the received beacon messages, and a gateway identification, gateway ID, of the transmitting gateway; a server arranged to: receive said gateway messages; and determine the location of each of said plurality of beacons from the received gateway messages using a database of predetermined locations for said one or more gateways and of predetermined locations for said plurality of repeaters. receive said gateway messages; and determine the location of each of said plurality of beacons from the received gateway messages using a database of predetermined locations for said one or more gateways and of predetermined locations for said plurality of repeaters.